Giáo trình Cơ sở dữ liệu
M?C L?C
Chương 1 .3
MÔ HÌNH QUAN HỆ .3
I NGUYÊN NHÂN RA ĐỜI CỦA MÔ HÌNH QUAN HỆ .3
II CƠ SỞ DỮ LIỆU VÀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU.3
1 CSDL là gì?.4
2 Hệ quản trị CSDL .4
3 Người dùng (User).4
4 CSDLQH và Hệ tập tin theo lối cũ .5
III MÔ HÌNH QUAN HỆ .5
1 Mô hình quan hệ là gì ?.5
2 Các khái niệm cơ bản của mô hình quan hệ .6
3 Các phép toán tập hợp .10
4 Các phép toán quan hệ.11
5 Các tính chất của đại số quan hệ .12
IV MÔ HÌNH THỰC THỂ KẾT HỢP.15
1 Giới thiệu mô hình thực thể kết hợp .15
2 Chuyển từ mô hình thực thể kết hợp sang lược đồ CSDL.17
V BÀI TẬP .19
1 Phép toán tập hợp và phép toán quan hệ .19
2 Mô hình thực thể kết hợp .20
Chương 2 .22
NGÔN NGỮ TRUY VẤN SQL.22
I CÁCH TẠO QUAN HỆ BẰNG ACCESS .22
II CÂU LỆNH TRUY VẤN.22
1 BIỂU THỨC (EXPRESSION) .22
2 CÂU LỆNH SQL.25
III BÀI TẬP .28
Chương 3 .32
RÀNG BUÔC TOÀN VẸN QUAN HỆ.32
I RÀNG BUỘC TOÀN VẸN - CÁC YẾUTỐ CỦA RÀNG BUỘC TOÀN VẸN .32
1 Ràng Buộc Toàn Vẹn.32
2 Các Yếu Tố Của Ràng Buộc Toàn Vẹn .32
II PHÂN LOẠI RÀNG BUỘC TOÀN VẸN .33
1 Ràng buộc toàn vẹn liên bộ .34
2 Ràng buộc toàn vẹn về phụ thuộc tồn tại: .34
3 Ràng buộc toàn vẹn về miền giá trị.34
4 Ràng buộc toàn vẹn liên thuộc tính .35
5 Ràng buộc toàn vẹn liên thuộc tính liên quan hệ .35
6 Ràng buộc toàn vẹn về thuộc tính tổng hợp .35
III BÀI TẬP .35
Chương 4 .37
PHỤ THUỘC HÀM .37
I KHÁI NIÊM PHỤ THUỘC HÀM.37
Giáo trình CƠ SỞ DỮ LIỆU Trang
B?mơn CSDL Tru?ng CÐCN 4
2
1 Định nghĩa phụ thuộc hàm .38
2 Phụ thuộc hàm hiển nhiên.38
3 Thuật toán Satifies .38
4 Các phụ thuộc hàm có thể có .39
II HỆ LUẬT DẪN ARMSTRONG.42
1 Phụ thuộc hàm được suy diễn logic từ F .42
2 Hệ luật dẫn Amstrong .43
3 Hệ luật dẫn Armstrong là đầy đủ .47
III THUẬT TOÁN TÌM F
+
.48
1 Thuật toán cơ bản.48
2 Thuật toán cải tiến .48
IV BÀI TẬP .49
Chương 5 .50
PHỦ CỦA TẬP PHỤ THUỘC HÀM.50
I ĐỊNH NGHĨA .50
II PHỦ TỐI THIỂU CỦA MỘT TẬP PHỤ THUỘC HÀM.50
1 Phụ thuộc hàm có vế trái dư thừa .50
2 Tập phụ thuộc hàm có vế phải một thuộc tính.51
3 Tập phụ thuộc hàm không dư thừa.51
4 Tập phụ thuộc hàm tối thiểu .51
III KHÓA CỦA LƯỢC ĐỒ QUAN HỆ .52
1 Định Nghĩa .52
2 Thuật toán tìm tất cả khóa .53
IV BÀI TẬP .55
Chương 6 .57
CHUẨN HÓA CƠ SỞ DỮ LIỆU .57
I DẠNG CHUẨN CỦA LƯỢC ĐỒ QUAN HỆ .57
1 Định nghĩa các dạng chuẩn .57
II PHÉP TÁCH KẾT NỐI BẢO TOÀN .62
1 Phép tách kết nối bảo toàn thông tin .62
2 Phép tách bảo toàn phụ thuộc hàm.67
III THIẾT KẾ CSDL BẰNG CÁCH PHÂN RÃ .70
1 Phân rã thành dạng chuẩn BC(hay chuẩn 3) bảo toàn thông tin .70
2 Phân rã thành dạng chuẩn 3 vừa bảo toàn thông tin vừa bảo toàn phụ thuộc hàm .76
IV BÀI TẬP .79
àng chỉ nhận một loại nguyên tệ với số tiền nguyên tệ là TIENNT Q5: Giay_bao(SOGB,MADV,SODS,HOTENKH,NGAYGB,LAN) Tân từ : Sau khi nhận danh sách của một đơn vị, công ty gởi giấy báo cho các khách hàng tại VN. Mỗi giấy báo có số thứ tự là SOGB (đánh số tăng dần) để phân biệt với các giấy báo khác (của cùng đơn vị hoặc khác đơn vị). Nếu sau 3 lần gởi giấy báo (mỗi lần cách nhau 1 tuần) mà khách hàng không đến nhận tiền, công ty sẽ gởi trả cho đơn vị tại nước ngoài). Q6:Chi_tra(SOPCHI,MADV,SODS,HOTENKH,NGAYCTRA,SOTIENVN) Tân từ : Mỗi khách hàng trong danh sach của 1 đơn vị, sau khi nhận giấy báo, sẽ đến nhận tiền đồng VN 1 lần tại công ty và mỗi phiếu chi tiền cho khách sẽ có số là SOPCHI để phân biệt với bất kỳ phiếu chi khác. Thuộc tính SOTIENVN chỉ số tiền ĐVN mà khách hàng nhận được tương đương với TIENNT ghi trong danh sách. Tỉ giá qui đổi được tính vào ngày chi trả (NGAYCTRA). Số tiền huê hồng mà công ty được hưởng sẽ được tính toán dựa trên số tiền thực chi (SOTIENVN) và tỉ lệ huê hồng của nguyên tệ. Giáo trình CƠ SỞ DỮ LIỆU Trang Bộ mơn CSDL Trường CĐCN 4 91 Câu hỏi : 1. Xác định tậ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ệ. Xác định khóa cho từng lược đồ quan hệ. 2. Mô tả tất cả các ràng buộc toàn vẹn của lược đồ cơ sở dữ liệu. Lập bảng tầm ảnh hưởng tổng hợp. 3. Dùng ngôn ngữ SQL để thực hiện những yêu cầu sau: a) Cho biết tỉ giá của các nguyên tệ trong ngày 21/12/95 b) Cho biết những danh sách chi trả kiều hối của các đơn vị có trụ sở chính đặt tại nước Pháp. c) Cho biết những khách hàng không đến nhận tiền. d) Cho tổng số tiền huê hồng mà công ty được trong khoảng thời gian từ ngày d1 đến ngày d2. e) Cho biết đơn vị nước ngoài có tổng số tiền chi trả (tính theo tiền đồng VN) cao nhất. 4. Lược đồ cơ sở dữ liệu C ở dạng chuẩn mấy (cao nhất) ? Hãy dùng thuật toán phân rã để nâng cấp cơ sở dữ liệu trên. Lưu ý : Các thuộc tính có miền giá trị là ngày dương lịch xem như thuộc tính đơn. ----oOo---- Giáo trình CƠ SỞ DỮ LIỆU Trang Bộ mơn CSDL Trường CĐCN 4 92 Đề 4 Cho một lược đồ cơ sở dữ liệu C dùng để quản lý việc thuê mướn phòng tại một khách sạn. Lược đồ cơ sở dữ liệu C gồm các lược đồ quan hệ nhu sau : Q1: Phong(MAPH,SO_NGUOI,DACDIEM,GIA_PHONG) Tân từ: Các phòng của khách sạn được phân biệt với nhau qua MAPH. SO_NGUOI là khả năng chứa tối đa của phòng. DACDIEM mô tả số đặc điểm của phòng. GIA_PHONG là giá cả thuê phòng trong 1 ngày. Q2: Tien_nghi(LOAI_TN,TEN_TN) Tân từ: Ngoài các vật dụng tối thiểu, khách sạn có thể trang bị thêm một số tiện nghi khác cho các phòng như : điện thoại, tivi, tủ lạnh, … LOAI_TN là mã số để phân biệt từng loại tiện nghi. TEN_TN là tên gọi của loại tiện nghi. Q3: Tai_san(LOAI_TN,STT,MAPH,NGAY_TB) Tân từ : Mỗi loại tiện nghi, khách sạn có thể mua một số lượng lớn và STT dùng để phân biệt các vật dụng trong cùng loại tiện nghi. Một vật dụng có thể được sắp xếp trang bị cho nhiều phòng khác nhau nhưng trong một ngày vật dụng chỉ trang bị cho một phòng. MAPH là phòng được trang bị và NGAY_TB là ngày bắt đầu trang bị. Lưu ý : Mỗi khi một vật dụng được thay đổi phòng thì cập nhật lại MAPH và NGAY_TB của vật dụng đó. Q4: Thue_phong(MAPH,HOTEN,NGAYBD,NGAYKT,NGAYTRA,LOAIDV,NGAYDV,TIENDV) Tân từ : HOTEN là họ tên của khách thuê phòng MAPH. Giả sử rằng hô tên các khách thuê phòng trong cùng một phòng trong một ngày luôn luôn khác nhau. NGAYBD và NGAYKT là ngày bắt đầu và ngày kết thúc (dự kiến) thuê phòng. NGAYTRA là ngày trả thật sự. Giả sử rằng không có trường hợp khách trả phòng và thuê lại chính phòng đó trong cùng một ngày. Số tiền thuê phòng được chia đều cho số khách thuê trong cùng phòng. Khách thuê phòng có thể sử dụng thêm các dịch vụ (gọi điện thoại đường dài, thuê xe, thủ tục hành chính, …) LOAI_DV là mã số của loại dịch vụ sử dụng. NGAYDV ngày dịch vụ thực hiện. TIENDV là số tiền khách thuê phải trả cho dịch vụ. Nếu trong cùng một ngày khách thuê phòng sử dụng 1 dịch vụ nhiều lần thì tiền dịch vụ được cộng dồn lại thành một lần và tạo thành một bộ (ví dụ trong ngày gọi điện thoại 3 cuộc với số tiền phải trả lần lượt là : 5000ĐVN, 4500ĐVN, 2000ĐVN thì sẽ được tính chung một lần là 11500ĐVN). Các dịch vụ được tính riêng đối với từng khách. Nếu là dịch vụ chung cho một số khách thì sẽ tính tiền cho một đơn vị khách đại diện nào đó. Câu hỏi : 1. Xác định tậ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ệ. Xác định các khóa cho từng lược đồ quan hệ. 2. 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 của các ràng buộc toàn vẹn. 3. Dùng ngôn ngữ SQL để thực hiện những yêu cầu sau : a) Cho biết các thông tin của các phòng có khả năng chứa trên 3 người. b) Cho biết các thông tin của các phòng có trang bị máy lạnh (LOAITN=’ML’) Giáo trình CƠ SỞ DỮ LIỆU Trang Bộ mơn CSDL Trường CĐCN 4 93 c) Cho biết các thông tin của các phòng hiện nay (02/01/96) có trang bị máy lạnh. d) Giả sử hôm nay là ngày 02/01/96. Tính tổng số tiền phải trả (tiền thuê phòng và tiền dịch vụ) của từng khách đã thuê phòng X từ ngày 21/12/95 và trả phòng vào hôm nay . e) Cho biết doanh số thu được của từng phòng (không tính tiền dịch vụ) 1. Lược đồ cơ sở dữ liệu C ở dạng chuẩn mấy (cao nhất) ?. Hãy dùng thuật toán phân rã để nâng cấp lược đồ cơ sở dữ liệu C. Lưu ý : Các thuộc tính có miền giá trị là ngày dương lịch xem như thuộc tính đơn. ----oOo---- Giáo trình CƠ SỞ DỮ LIỆU Trang Bộ mơn CSDL Trường CĐCN 4 94 Đề 5 Cho một lược đồ cơ sở dữ liệu C dùng để quản lý việc việc cho mượn sách tại một thư viện (xem tại chỗ hoặc mang về nhà). Lược đồ cơ sở dữ liệu C gồm các lược đồ quan hệ như sau : Q1 : The_loai(MATL,TENTL) Tân từ : Sách của thư viện được phân chia theo thể loại để bạn đọc dễ dàng tra cứu. MATL là mã số của từng thể loại và dùng để phân biệt giữa các thể loại. TENTL là tên gọi của thể loại. Q2 : Sach(MASH,TENSH,NGUYEN_TAC,TAC_GIA,MATL) Tân từ : MASH dùng để phân biệt các quyển sách. TENSH là tên (tựa) bằng tiếng Việt của sách và NGUYEN_TAC là tên nguyên tác (tiếng Việt hoặc tiếng nước ngoài). TAC_GIA là tên tác giả (hay nhóm các tác giả) của sách. Nếu sách có nhiều tập hay nhiều bản thì cũng xem như các đầu sách khác nhau và có mã số khác nhau. MATL là mã thể loại của sách. Q3 : phieu_muon(MADG,TENDG,DCHI,NGAYCAP,MASH,NGAYMUON,NGAYTRA,TAI_CHO) Tân từ : Mỗi độc giả chỉ có một phiếu mượn sách với mã số là MADG để phân biệt với các độc giả khác. Các thuộc tính TENDG, DCHI là tên và địa chỉ của độc giả. NGAYCAP là ngày cấp thẻ cho độc giả. MASH là mã số của sách mượn. Giả sử không có trường hợp mượn rồi trả lại cùng 1 quyển sách trong cùng 1 ngày. Nếu sách mượn đọc tại chỗ thì thuộc tính TAI_CHO có giá trị True và NGAYMUON=NGAYTRA. Nếu sách mượn về nhà thì thuộc tính TAI_CHO có giá trị False và NGAYTRA sẽ có giá trị trống cho đến khi sách được mang trả lại cho thư viện. Mỗi độc giả chỉ được giữ tại nhà tối đa 3 quyển sách và mỗi quyển sách chỉ được giữ tại nhà tối đa 30 ngày (không cần lưu ý đến biện pháp xử lý nếu khách vi phạm nội qui) Q4 : Le_phi(MADG,NAM,NGAY_NOP,SOTIEN) Tân từ: Độc giả phải đóng lệ phí hằng năm (NAM) để gia hạn thẻ mới được mượn sách. NGAY_NOP,SOTIEN là ngày và số tiền nôp lệ phí cho NAM. Câu hỏi : 1. Xác định tậ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ệ. Xác định các khóa cho từng lược đồ quan hệ. 2. Mô tả tất các ràng buộc toàn vẹn của lược đồ cơ sở dữ liệ C. Lập bảng tầm ảnh hưởng tổng hợp của các ràng buộc toàn vẹn. 3. Dùng ngôn ngữ SQL để thực hiện những yêu cầu sau : a) Cho biết danh sách độc giả và những quyển sách mượn quá 20 ngày (kể từ ngày 02/01/96). b) Cho biết những quyển sách có tên thể loại là “Tin học” và có sự tham gia biên soạn của tác giả “X”. c) Cho biết tổng số lần mượn của từng quyển sách. d) Cho biết tổng số lần mượn của từng thể loại sách. e) Cho biết thể loại sách nào được mượn nhiều nhất. 4. Lược đồ cơ sở dữ liệu C ở dạng chuẩn mấy (cao nhất) ? Hãy dùng thuật toán phân rã để nâng cấp lược đồ cơ sở dữ liệu C. Lưu ý : Các thuộc tính có miền giá trị là ngày dương lịch xem như thuộc tính đơn. Giáo trình CƠ SỞ DỮ LIỆU Trang Bộ mơn CSDL Trường CĐCN 4 95 TÀI LIỆU THAM KHẢO [1].Nhập môn cơ sở dữ liệu Đồng Thị Bích Thủy - Nguyễn An Tế [2].Cơ sở dữ liệu – lý thuyết và thực hành Nguyễn Bá Tường [3].Cơ sở dữ liệu Đỗ Trung Tuấn [4].Mô hình dữ liệu và ngôn ngữ truy vấn JEFFREY D. ULLMAN [5].Lý thuyết thiết kế cơ sở dữ liệu JEFFREY D. ULLMAN [6].The Theory Of Relational Databases DAVID MAIER ----oOo----
File đính kèm:
- Giao_Trinh_CSDL.pdf