Bài giảng tóm tắt Cơ sở dữ liệu
MỤC LỤC
Chương 1: Tổng quan về cơ sở dữ liệu. Trang 1
I. Khái niệm và định nghĩa về cơ sở dữ liệu .1
II. Mô tả cách tiếp cận cơ sở dữ liệu .2
III. Người sử dụng cơ sở dữ liệu.7
IV. Các tính năng của hệ quản trị cơ sở dữ liệu.7
V. Ngôn ngữ cơ sở dữ liệu .9
Chương 2: Mô hình thực thể - Kết hợp.10
I. Quá trình thiết kế cơ sở dữ liệu .10
II. Các thành phần cơ bản của Mô hình E-R.11
III. Các ràng buộc trên các liên kết.13
IV. Lược đồ thực thể - kết hợp (ERD).14
V. Các tính năng mở rộng của mô hình E-R. .15
VI. Thiết kế lược đồ cơ sở dữ liệu E-R.16
Chương 3: Mô hình dữ liệu quan hệ.18
I. Các khái niệm của mô hình quan hệ.18
II. Chuyển lược đồ thực thể - kết hợp (ERD) sang thiết kế quan hệ.21
III. Đại số quan hệ .23
IV. Ngôn ngữ phép tính quan hệ.32
V. Khung nhìn .35
Chương 4: Ngôn ngữ SQL.36
I. Giới thiệu. .36
II. Định nghĩa dữ liệu .36
III. Truy vấn dữ liệu.38
IV. Cập nhật dữ liệu.47
V. Khung nhìn (view).48
VI. Chỉ mục (index) .49
Chương 5: Ràng buộc toàn vẹn.50
I. Các khái niệm.50
II. Phân loại .53
II.1 Ràng buộc toàn vẹn có bối cảnh trên mộtlược đồ quan hệ.53
II.2 Ràng buộc toàn vẹn có bối cảnh trên nhiều lược đồ quan hệ .55
III. Cài đặt ràng buộc toàn vẹn .58
Chương 6: Lý thuyết thiết kế cơ sở dữ liệu quan hệ .60
I. Mở đầu .60
II. Phụ thuộc hàm. .60
III. Các dạng chuẩn của lược đồ quan hệ .70
IV. Phân rã lược đồ quan hệ dựa vào phụ thuộc hàm .73
V. Phụ thuộc đa trị và dạng chuẩn thứ 4 .78
Chương 7: Tối ưu hóa câu truy vấn.82
I. Mở đầu .82
II. Các chiến lược tối ưu hóa .82
III. Các quy tắc liên quan đến các phép toán.83
IV. Kỹ thuật tối ưu hóa.85
Bài Tập .87
rã này có phải là phân rã giữ lại phụ thuộc? tại sao? c) Các lược đồ quan hệ trong phân rã này ở dạng chuẩn nào? e) Nếu R không ở dạng chuẩn 3NF, hãy tìm một phân rã ở dạng chuẩn 3NF thỏa tính chất nối không mất thông tin và giữ lại phụ thuộc. Có nhận xét gì về dạng chuẩn của các lược đồ quan hệ trong kết quả của phân rã này? 15) Cho lược đồ quan hệ của hệ quản lý tuyển sinh đại học: TuyểnSinh(SBD, HọTS, TênTS, GiớiTính, NgàySinh, ĐịaChỉ, KhuVực, ĐốiTượng, MãNgành, TênNgành, MãMôn, TênMôn, Điểm) và tập phụ thuộc hàm F như sau: F = { SBD HọTS, TênTS, GiớiTính, NgàySinh, ĐịaChỉ, KhuVực, ĐốiTượng, MãNgành; MãNgành TênNgành; MãMôn TênMôn; SBD,MãMôn Điểm } a) Tìm tất cả các khóa của lược đồ quan hệ TuyểnSinh. b) Xác định dạng chuẩn của quan hệ TuyểnSinh. Nếu dùng lược đồ này để cài đặt thì tốt không? Vì sao? c) Hãy tìm cách phân rã (chuẩn hoá) lược đồ TuyểnSinh thành dạng 3NF và đặt tên phù hợp cho các lược đồ con trong kết quả phân rã. 16) Cho một phần cơ sở dữ liệu của hệ quản lý thẻ ATM như sau: ThẻATM(SốThẻ, MãKH, TênKH, SốCMND, SốPin, Số_Tiền_Có, Giờ_Rút, Ngày_Rút, Số_Máy_ATM, Số_Tiền_Rút) và tập phụ thuộc hàm F như sau: Bài giảng tóm tắt Cơ sở dữ liệu 109 F = { MãKH TênKH, SốCMND, SốPin; SốThẻ MãKH, Số_Tiền_Có; SốThẻ, Ngày_Rút, Giờ_Rút Số_Máy_ATM, Số_Tiền_Rút; } Diễn giải: Mỗi thẻ ATM có một số (SốThẻ) duy nhất để phân biệt với những thẻ ATM khác, được cấp cho một khách hàng duy nhất (MãKH) và có một số tiền hiện có trong tài khoản (Số_Tiền_Có). Mỗi khách hàng có một mã khách hàng để phân biệt, có họ tên (TênKH), số chứng minh nhân dân (SốCMND), số pin (SốPin) để thực hiện giao dịch rút tiền. Mỗi lần khách hàng rút tiền tại máy ATM ngân hàng sẽ ghi lại các thông tin về ngày rút (Ngày_Rút), giờ rút (Giờ_Rút), số máy ATM thực hiện giao dịch này (Số_Máy_ATM) và số tiền khách hàng đã rút (Số_Tiền_Rút) trong lần giao dịch đó. a) Tìm tất cả các khóa của ThẻATM. b) Lược đồ ThẻATM đạt dạng chuẩn mấy (cao nhất). Nếu dùng lược đồ này để cài đặt thì cơ sở dữ liệu có những hạn chế gì? c) Hãy tìm cách phân rã (chuẩn hoá) ThẻATM thành dạng BCNF nối không mất và giữ lại phụ thuộc; đặt tên phù hợp cho các lược đồ con trong kết quả phân rã; xác định khóa cho từng lược đồ con. 17) Cho lược đồ quan hệ PhiếuGiao(MSPG, NgàyGiao, MSNV, SOHD, NgàyHD) Tân từ: mỗi phiếu giao hàng có một mã phiếu (MSPG) duy nhất. Mỗi phiếu giao do một nhân viên lập và giao theo 1 hợp đồng (SOHD), mỗi hợp đồng có nhiều phiếu giao. NgàyGiao là ngày giao hàng cho khách, NgàyHD là ngày ký hợp đồng. a) Xác định khóa của quan hệ trên. b) Xác định dạng chuẩn cao nhất mà lược đồ quan hệ trên đạt được. c) Nếu lược đồ quan hệ trên chưa đạt dạng chuẩn 3, hãy tiến hành phân rã để lược đồ đạt ít nhất là dạng chuẩn 3. Bài giảng tóm tắt Cơ sở dữ liệu 110 BÀI TẬP TỔNG HỢP I. Cho một lược đồ cơ sở dữ liệu C dùng để quản lý hoạt động sửa chữa, bảo trì xe của một gara xe hơi. Lược đồ cơ sở dữ liệu C gồm các lược đồ quan hệ như sau: R1: Tho(MATHO,TENTHO, NHOM, NHOM_TRUONG) Tân từ: Mỗi người thợ đều có mã số là MATHO để nhận diện. Mỗi thợ chỉ có một tên (TENTHO) và chỉ thuộc một nhóm (NHOM). Nhóm trưởng (NHOM_TRUONG) của mỗi nhóm là một trong số những người thợ của nhóm đó. MGT(MATHO)=MGT(NHOM_TRUONG) R2: Cong_viec(MACV, NOIDUNGCV) Tân từ: Dịch vụ sửa chữa xe được chia nhỏ thành nhiều công việc để dễ dàng tính toán chi phí với khách hàng. Mỗi công việc đều có mã riêng (MACV)và nội dung của công việc được mô tả qua NOIDUNGCV. R3: Hop_dong(SOHD, NGAYHD, MAKH, TENKH, DCHI, SOXE, TRIGIAHD, NG_GIAO_DK, NG_NGTHU) Tân từ: Mỗi hợp đồng sửa xe ký kết với khách hàng đều có mã số (SOHD) để phân biệt. NGAYHD là ngày ký hợp đồng. Mỗi khách hàng có một mã số (MAKH), một tên (TENKH) và một địa chỉ (DCHI) để theo dõi công nợ. SOXE là số đăng bộ của xe đem đến sửa chữa, số này do phòng CSGT đường bộ cấp (nếu xe đổi chủ thì xem như một xe khác). Khách hàng ký hợp đồng chính là chủ xe sửa chữa. Một khách hàng có thể ký nhiều hợp đồng sửa chữa nhiều xe khác nhau hoặc hợp đồng sửa chữa nhiều lần của cùng một xe nhưng trong cùng một ngày. Những công việc sửa chữa cho một đầu xe chỉ ký hợp đồng một lần. TRIGIAHD là tổng trị giá của hợp đồng. NG_GIAO_DK là ngày dự kiến phải giao trả xe cho khách. NG_NGTHU là ngày nghiệm thu thật sự sau khi đã sửa chữa xong để thanh lý hợp đồng. R4: Chitiet_HD(SOHD, MACV, TRIGIA_CV, MATHO, KHOANTHO) Tân từ: Mỗi hợp đồng sửa xe có thể gồm nhiều công việc. MACV là mã số của từng công việc. TRIGIA_CV là chi phí về vật tư, phụ tùng, thiết bị, công thợ ... đã tính toán với khách. Mỗi công việc của hợp đồng sẽ giao cho một người thợ phụ trách (MATHO) và một người thợ có thể tham gia vào nhiều công việc của một hay nhiều hợp đồng khác nhau. KHOANTHO là số tiền giao khóan lại cho người thợ sửa chữa. R5: Phieu_thu(SOPH, NGAYPH, SOHD, MAKH, HOTEN, SOTIENTHU) Tân từ: Khách hàng (MAKH) có thể thanh toán tiền của một hợp đồng (SOHD) làm nhiều lần trước hoặc sau khi nghiệm thu (trong cùng ngày hoặc khác ngày). Mỗi lần thanh toán đều có số phiếu để phân biệt (SOPH), NGAYPH là ngày phát hành phiếu và SOTIENTHU là số tiền thanh toán. HOTEN là họ tên của người mang tiền đến thanh toán (có thể khác với tên của khách hàng đứng ra ký hợp đồng) Bài giảng tóm tắt Cơ sở dữ liệu 111 Yêu cầu: 1) Xác định tập hợp F gồm tất cả các phụ thuộc hàm suy ra từ tân từ của các lược đồ quan hệ (không cần liệt kê các phụ thuộc hàm hiển nhiên). Xác định khóa cho từng lược đồ quan hệ. 2) Lược đồ cơ sở dữ liệu C ở dạng chuẩn mấy (cao nhất). Nếu chất lượng thiết kế của cơ sở dữ liệu chưa tốt, hãy dùng thuật toán phân rã để nâng cấp lược đồ cơ sở dữ liệu trên. 3) Mô tả tất cả các ràng buộc toàn vẹn của lược đồ cơ sở dữ liệu C. Lập bảng tầm ảnh hưởng tổng hợp. 4) Vẽ sơ đồ ER của hệ thống. 5) Dùng ngôn ngữ SQL để thực hiện những yêu cầu sau: a) Cho biết danh sách những người thợ hiện không tham gia vào một hợp đồng sửa chữa nào. b) Cho biết danh sách những hợp đồng hiện đã thanh lý (đã giao tra xe cho khách) nhưng chưa được thanh toán đầy đủ. c) Cho biết người thợ nào thực hiện nhiều công việc nhất. d) Cho biết người thợ nào thực hiện tổng giá trị công việc (tổng số tiền) cao nhất. Lưu ý: Các thuộc tính đều được xem như thuộc tính đơn. II. Cho lược đồ CSDL gồm các lược đồ quan hệ sau: 1. NUOC (MAN, TENN) Tân từ: Mỗi nước có một mã nước (MAN) duy nhất và một tên nước (TENN). 2. TINH (MAT, TENT, MAN) Tân từ: Mỗi tỉnh (thành phố) có một mã tỉnh thành phố (MAT) duy nhất, một tên tỉnh thành phố (TENT) thuộc về một nước (MAN). 3. QUAN(MAQ, MAT, TENQ, TONG_SO_DT) Tân từ: Mỗi quận có một mã quận (MAQ) để phân biệt với các quận khác trong cùng một tỉnh (MAT) và một tên quận (TENQ) và tổng số điện thoại được lắp trong quận (TONG_SO_DT). 4. KHACHHANG (MAKH, TENKH, DIACHI, LOAIKH) Tân từ: Mỗi khách hàng có một mã khách hàng (MAKH) duy nhất, một tên khách hàng (TENKH), địa chỉ khách hàng (DIACHI), và thuộc một loại khách hàng (LOAIKH). Loại khách hàng gồm có “cá nhân” và “doanh nghiệp”. 5. DIENTHOAI (SODT, MAKH, LOAIDT, MAQ, MAT, SOHD) Tân từ: Mỗi điện thoại có một số điện thoại (SODT) để phân biệt với các điện thoại khác, thuộc về một khách hàng (MAKH), loại điện thoại (LOAIDT). Loại điện thoại gồm có “vô tuyến” và “dây cáp”. Một số điện thoại nằm ở một quận của một tỉnh, được lắp đặt theo một hợp đồng (SOHD). Bài giảng tóm tắt Cơ sở dữ liệu 112 6. DICHVU (MADV, TENDV) Tân từ: Mỗi dịch vụ có một mã dịch vụ (MADV) duy nhất và một tên dịch vụ (TENDV). 7. DANGKY (SODT, MADV) Tân từ: Mỗi số điện thoại có thể đăng ký nhiều dịch vụ, một dịch vụ cũng được nhiều số điện thoại đăng ký. 8. KHA_NANG_DK (LOAIKH, MADV) Tân từ: Mỗi loại khách hàng được cho phép đăng ký một số dịch vụ. Yêu cầu: 1) Vẽ lược đồ ER 2) Xác định các khóa chính, khóa ngoại của các lược đồ quan hệ trên. 3) Không kể các ràng buộc suy từ khóa chính của các lược đồ quan hệ, hãy phát biểu một cách chặt chẽ tất cả các ràng buộc toàn vẹn của các lược đồ trên. 4) Thực hiện các câu truy vấn sau bằng ngôn ngữ đại số quan hệ (câu a, b, c, d, e) và ngôn ngữ SQL: a) Danh sách tên các khách hàng lắp điện thoại “Dây cáp” của tỉnh có tên là “Tiền Giang”. b) Danh sách các điện thoại thuộc loại “Vô tuyến”. c) Cho biết tên và địa chỉ của các khách hàng có đăng ký dịch vụ có tên là “Dịch vụ 108”. d) Danh sách các khách hàng có đăng ký dịch vụ có tên là dịch vụ “Dịch vụ 108” thuộc loại khách hàng “cá nhân”. e) Liệt kê tất cả các tỉnh (mã tỉnh, tên tỉnh) hiện tại có lắp hơn 1000 điện thoại. f) Cho biết số lượng điện thoại thuộc “TPHCM”. g) Cho biết số lượng điện thoại của từng tỉnh (thành phố). h) Cho biết số điện thoại đăng ký nhiều dịch vụ nhất. i) Cho biết số lượng khách hàng theo từng loại. j) Cho biết tổng số điện thoại của từng loại. TÀI LIỆU THAM KHẢO Tiếng việt [1] Vũ Đức Thi, Cơ sở dữ liệu - Kiến thức và thực hành, NXB Khoa học Thống kê, 1997. [2] Trần Thành Trai, Nhập môn cơ sở dữ liệu, Nxb Trẻ, 1996. [3] Đỗ Trung Tuấn, Cơ sở dữ liệu, NXB Giáo dục, 1998. [4] ULLMAN, J.D., Nguyên lý các hệ cơ sở dữ liệu & cơ sở tri thức: Thiết kế các hệ cơ sở dữ liệu, tập II (sách dịch), NXB Thống kê, 1999 (sách dịch). [5] Lê Tiến Vương, Nhập môn Cơ sở dữ liệu quan hệ, NXB Khoa học và Kỹ thuật, 1994. Tiếng Anh [6] Elmasri, R. and Shamkant B. Navathe, Fundamentals of Database Systems, Fourth Edition, Addison-Wesley, 2004. [7] Maier, D. , The Theory of Relational Databases, Computer Science Press, 1983. [8] Ramakrishnan, R. and Gehrke, J., Database Management Systems, Third Edition, McGraw Hill, 2003 [9] Silberschatz, A., Henry F. Korth and Sudarshan, S., Database System Concepts, Fourth Edition. McGraw Hill, 2004. [10] Sumathi, S. and Esakkirajan, S., Fundamentals of Relational Database Management Systems, Springer-Verlag, 2007
File đính kèm:
- Bài giảng tóm tắt Cơ sở dữ liệu.pdf