ỦY BAN NHÂN DÂN THÀNH PHỐ HÀ NỘI TRƢỜNG CAO ĐẲNG NGHỀ VIỆT NAM - HÀN QUỐC THÀNH PHỐ HÀ NỘI ĐẶNG MINH NGỌC (Chủ biên) LÊ TRỌNG HƢNG – NGUYỄN TUẤN HẢI GIÁO TRÌNH CƠ SỞ DỮ LIỆU Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính Trình độ: Cao đẳng (Lưu hành nội bộ) Hà Nội - Năm 2021 LỜI NÓI ĐẦU Ngày nay, cơ sở dữ liệu đã có nhiều ứng dụng trong mọi hoạt động của xã hội. Muốn thiết kế và sử dụng cơ sở dữ liệu chúng ta phải nắm đƣợc các kỹ thuật cơ bản của cơ sở dữ liệu. Tài liệu học tập này nhằm trình bày các kỹ thuật cơ sở của cơ sở dữ liệu truyền thống, đó là mô hình liên kết thực thể, mô hình cơ sở dữ liệu quan hệ. Tài liệu cũng trình bày cách thiết kế một cơ sở dữ liệu quan hệ, cách sử dụng các phép toán đại số quan hệ để tạo, cập nhật và truy vấn cơ sở dữ liệu và khái niệm phụ thuộc hàm ứng dụng trong lí thuyết thiết kế và chuẩn hóa cơ sở dữ liệu quan hệ.
Tài liệu học tập “Cơ sở dữ liệu” là sách hƣớng dẫn học tập dùng cho sinh viên ngành công nghệ thông tin và ngành mạng máy máy tính & truyền thông dữ liệu. Tài liệu ”Cơ sở dữ liệu” không chỉ đề cập đến những vấn đề cơ sở lý thuyết mà còn trình bày một số kỹ năng cần thiết để thiết kế và cài đặt các hệ cơ sở dữ liệu cụ thể. Hy vọng sẽ có ích cho sinh viên và những ngƣời muốn xây dựng các hệ thống tin học ứng dụng phục vụ cho sản xuất, quản lý trong các doanh nghiệp. Mặc dù đã có những cố gắng để hoàn thành giáo trình theo kế hoạch, nhƣng do hạn chế về thời gian và kinh nghiệm soạn thảo giáo trình, nên tài liệu chắc chắn còn những khiếm khuyết.
Rất mong nhận đƣợc sự đóng góp ý kiến của các thầy cô trong Khoa cũng nhƣ các bạn sinh viên và những ai sử dụng tài liệu này. Địa chỉ đóng góp về khoa CNTT, Trƣờng Cao Đẳng Nghề Việt Nam – Hàn Quốc, Đƣờng Uy Nỗ – Đông Anh – Hà Nội. Xin chân thành cảm ơn! Hà Nội, ngày … tháng … năm 2021 Chủ biên: Đặng Minh Ngọc 1 MỤC LỤC LỜI NÓI ĐẦU. 2 Chƣơng 1 Tổng quan về cơ sở dữ liệu.1 Dữ liệu – thông tin .2 Các hệ thống xử lý truyền thống .3 Phƣơng pháp cơ sở dữ liệu .4 Phân loại ngƣời dùng CSDL.
8 Chƣơng 2 Các mô hình dữ liệu .1 Sơ đồ thực thể liên kết .2 Mô hình thực thể, quan hệ .3 Mô hình dữ liệu quan hệ: .4 Mô hình dữ liệu mạng .5 Mô hình dữ liệu phân cấp. 19 Chƣơng 3 Mô hình cơ sở dữ liệu quan hệ .2 Ràng buộc toàn vẹn .3 Các phép tính trên cơ sở dữ liệu quan hệ. 33 Chƣơng 4 Ngôn ngữ thao tác dữ liệu .1 Đại số quan hệ .2 Các phép toán tập hợp .3 Các phép toán đặc biệt trên quan hệ .4 Các phép toán quan hệ bổ sung. 49 Chƣơng 5 Ngôn ngữ truy vấn dữ liệu SQL .1 Cách tạo quan hệ bằng Access .2 Câu lệnh truy vấn.
55 Chƣơng 6 Lý thuyết thiết kế cơ sở dữ liệu.1 Phụ thuộc hàm.2 Phép tách các lƣợc đồ quan hệ .4 Chuẩn hóa qua phép tách. 117 TÀI LIỆU THAM KHẢO. 122 3 CHƢƠNG TRÌNH MÔN HỌC Tên môn học: Cơ sở dữ liệu Mã số của môn học: MH 29 Thời gian của môn học: 60 giờ; (Lý thuyết: 30 giờ; Thực hành, thí nghiệm, thảo luận, bài tập: 26 giờ; Kiểm tra: 4 giờ) I. Vị trí, tính chất môn học: - Vị trí: + Môn học đƣợc bố trí sau khi sinh viên học xong các môn học chung, các môn học, mô đun đào tạo chuyên môn nghề.
+ Môn học đƣợc bố trí sau khi sinh viên học xong các môn học Lập trình căn bản. - Tính chất: + Là mô học chuyên ngành tự chọn. Mục tiêu môn học: - Về kiến thức: + Hiểu đƣợc công dụng của cơ sở dữ liệu. + Xây dựng đƣợc các mô hình quan hệ.
+ Thiết kế đƣợc cơ sở dữ liệu + Phân tích đƣợc chƣơng trình: xác định nhiệm vụ chƣơng trình. - Về kỹ năng: + Chuyển các câu hỏi tối ƣu hoá bằng sơ đồ sang ngôn ngữ SQL. + Viết đƣợc chƣơng trình và thực hiện chƣơng trình trên máy tính có ứng dụng CSDL. - Về năng lực tự chủ và trách nhiệm: + Có ý thức tự giác, tính kỷ luật, tinh thần trách nhiệm trong học tập.
+ Tính cẩn thận, trách nhiện khi thao tác trên Cơ sở dữ liệu. Nội dung môn học: 1.Nội dung tông quát và phân phối thời gian Thời gian Tên các bài trong môn học Tổng Thực TT Lý Kiểm hành, số thuyết tra* Bài tập 1 Tổng quan về cơ sở dữ liệu 5 4 1 2 Các mô hình dữ liệu 8 2 5 1 3 Mô hình cơ sở dữ liệu quan hệ 5 3 2 4 Ngôn ngữ thao tác dữ liệu 14 8 6 5 Ngôn ngữ truy vấn dữ liệu SQL 14 7 6 1 6 Lý thuyết thiết kế cơ sở dữ liệu 14 6 6 2 Cộng 60 30 26 4 *Ghi chú: Thời gian kiểm tra được tích hợp giữa lý thuyết với thực hành được tính bằng giờ thực hành. 5 Chƣơng 1 Tổng quan về cơ sở dữ liệu 1.1 Dữ liệu – thông tin - Dữ liệu là những gì có thật đƣợc ghi nhận lại (thủ công hoặc dùng máy tính) và mang một ý nghĩa nào đó. - Thông tin là khái niệm phản ánh tri thức, sự hiểu biết của con ngƣời về một đối tƣợng.
Dữ liệu là khái niệm thô và rời rạc. Thông tin là nội dung của dữ liệu. - Cơ sở dữ liệu là một tập hợp dữ liệu đƣợc tổ chức và lƣu trữ theo một cấu trúc chặt chẽ nhằm phục vụ cho nhiều đối tƣợng với các mục đích khác nhau.2 Các hệ thống xử lý truyền thống Hệ thống quản lý tệp truyền thống thƣờng đƣợc tổ chức riêng rẽ, phục vụ cho một mục đích của một đơn vị hoặc một đơn vị con trực thuộc cụ thể. Hệ thống quản lý tệp truyền thống cho phép ta tạo các tệp, truy cập và xử lý thông tin trong các tệp thông qua các chƣơng trình ứng dụng.
Các phần mềm ứng dụng này đƣợc viết bằng các ngôn ngữ lập trình đa năng nhƣ PASCAL, C. - Ƣu điểm: Việc xây dựng hệ thống các tệp tin riêng tại từng đơn vị quản lý ít tốn thời gian bởi khối lƣợng thông tin cần quản lý và khai thác là nhỏ, không đòi hỏi đầu tƣ vật chất và chất xám nhiều, do đó triển khai ứng dụng nhanh. Thông tin đƣợc khai thác chỉ phục vụ mục đích hẹp nên khả năng đáp ứng nhanh chóng, kịp thời. - Nhƣợc điểm: Thông tin đƣợc tổ chức riêng rẽ ở nhiều nơi nên việc cập nhật dễ làm mất tính nhất quán dữ liệu.
Hệ thống thông tin đƣợc tổ chức thành các hệ thống file riêng lẻ nên thiếu sự chia sẻ thông tin giữa các nơi. Có sự dƣ thừa dữ liệu rất lớn qua việc trùng lặp các tệp tin trong các ứng dụng khác nhau. Không gian đĩa bị lãng phí, khó khăn trong việc bảo trì hệ thống. Khó khăn trong việc truy xuất dữ liệu.
6 Một ví dụ điển hình về sự trùng lắp dữ liệu nhƣ trong Hệ quản lý nguồn nhân lực bao gồm ba hệ chính: 1. Hệ lƣơng, hệ này duy trì ngày công và lƣơng cho tất cả nhân viên. Hệ nhân sự, hệ này duy trì lý lịch cá nhân, dữ liệu về tổ chức, công việc đào tạo và vị trí thăng tiến. Hệ hƣu, hệ này quản trị các qui tắc liên quan đến nghỉ hƣu, loại nghỉ hƣu.
Chi tiết về hƣu của từng nhân viên. Vấn đề bất lợi là Hệ quản lý lƣơng thông thƣờng đƣợc quản lý bởi phòng Tài chính, trong khi Hệ quản lý nhân sự và Hệ quản lý hƣu đƣợc quản lý bởi phòng Tổ chức cán bộ. Rõ ràng, có nhiều dữ liệu về nhân viên là chung cho cả ba hệ. Thƣờng những hệ này thực hiện và lƣu trữ riêng biệt nên chúng tạo ra sự trùng lặp dữ liệu.
Qua phân tích trên, chúng ta nhận thấy việc tổ chức dữ liệu theo hệ thống tệp hoàn toàn không phù hợp với những hệ thống thông tin lớn. Việc xây dựng một hệ thống thông tin đảm bảo đƣợc tính nhất quán dữ liệu, đáp ứng đƣợc nhu cầu khai thác đồng thời của nhiều ngƣời là thực sự cần thiết.3 Phƣơng pháp cơ sở dữ liệu 1.1 Cơ sở dữ liệu là gì Cơ sở dữ liệu (CSDL) là một hệ thống các thông tin có cấu trúc đƣợc lƣu trữ trên các thiết bị nhƣ băng từ, đĩa từ,để có thể thoả mãn yêu cầu khai thác đồng thời của nhiều ngƣời sử dụng. CSDL gắn liền với đại số, logic toán và một số lĩnh vực khác.2 Hệ quản trị cơ sở dữ liệu Để giải quyết tốt những vấn đề mà cách tổ chức CSDL đặt ra nhƣ đã nói ở trên, cần thiết phải có những phần mềm chuyên dùng để khai thác chúng. Những phần mềm này đƣợc gọi là các hệ quản trị CSDL.
Các hệ quản trị CSDL có nhiệm vụ hỗ trợ cho các nhà phân tích thiết kế CSDL cũng nhƣ những ngƣời khai thác CSDL. Hiện nay trên thị trƣờng phần mềm đã có những hệquản trị CSDL hỗ trợđƣợc nhiều tiện ích nhƣ: MS Access, Visual Foxpro, SQL Server Oracle, Mỗi hệ quản trị CSDL đều đƣợc cài đặt dựa trên một mô hình dữ liệu cụthể. Dù là dựa trên mô hình dữ liệu nào, một hệ quản trị CSDL cũng phải hội đủcác yếu tố sau: - Ngôn ngữ giao tiếp giữa ngƣời sử dụng và CSDL, bao gồm : Ngôn ngữ mô tả dữ liệu: Để cho phép khai báo cấu trúc của CSDL, khai báo các mối liên hệ của dữ liệu và các quy tắc quản lý áp đặt lên các dữ liệu đó. 7 Ngôn ngữ thao tác dữ liệu: Cho phép ngƣời sử dụng có thể cập nhật dữ liệu (thêm/sửa/xoá) Ngôn ngữ truy vấn dữ liệu: Cho phép ngƣời khai thác sử dụng đểtruy vấn các thông tin cần thiết trong CSDL Ngôn ngữ quản lý dữ liệu: Cho phép những ngƣời quản trị hệthống thay đổi cấu trúc của các bảng dữ liệu, khai báo bảo mật thông tin và cấp quyền hạn khai thác CSDL cho ngƣời sử dụng., - Từ điển dữ liệu: Dùng để mô tả các ánh xạ liên kết, ghi nhận các thành phần cấu trúc của CSDL, các chƣơng trình ứng dụng, mật mã, quyền hạn sử dụng, - Cơ chế giải quyết vấn đề tranh chấp dữ liệu: Mỗi hệ quản trị CSDL cũng có thể cài đặt một cơ chế riêng để giải quyết các vấn đề này.