Bài giảng tóm tắt Cơ sở dữ liệu
MỤC LỤC
Lời mở đầu .1
Chương 1: Giới thiệu chung.2
1. Giới thiệu .2
1.1. Giới thiệu hệthống các tập tin cổ điển .2
1.2. Định nghĩa CSDL.4
1.3. Các đối tượng sửdụng CSDL.5
1.4. Hệquản trịCSDL.6
1.5. Các mức biểu diễn một CSDL. .6
1.6. Sơ đồtổng quát một hệquản trịCSDL.8
1.7. Tính độc lập giữa dữliệu và chương trình.9
2. Các cách tiếp cận của một CSDL .9
2.1. Mô hình dữliệu mạng .10
2.2. Mô hình dữliệu phân cấp.11
2.3. Mô hình dữliệu quan hệthực thể.12
2.4. Mô hình dữliệu quan hệ. .12
2.5. Mô hình dữliệu hướng đối tượng .13
3. Bài tập .13
Chương 2: Mô hình thực thểkết hợp.15
1. Mô hình thực thểkết hợp.15
1.1. Thực thể- tập thực thể.15
1.2. Thuộc tính .15
1.3. Mối kết hợp .16
1.4. Bản số.17
1.5. Khoá .18
1.6. Sốchiều của mối kết hợp .19
1.7. Tổng quát hóa và chuyên biệt hóa .19
1.8. Tập thực thểyếu.20
2. Ví dụ.21
3. Bài tập .23
Chương 3: Mô hình dữliệu quan hệ.24
1. Các khái niệm cơbản.24
1.1. Thuộc tính .24
1.2. Quan hện ngôi .25
1.3. Bộ.25
1.4. Lược đồquan hệ.26
1.5. Khóa của một quan hệ.27
1.6. Ràng buộc toàn vẹn.29
2. Các thao tác cơbản trên quan hệ.29
2.1. Phép thêm.29
2.2. Phép xóa .30
2.3. Phép sửa .30
3. Các bước chuyển đổi từmô hình thực thểkết hợp
sang mô hình quan hệ.31
3.1. Biến các tập thực thểchuyên biệt hóa vềdạng bình thường .31
3.2. Chuyển tất cảcác tập thực thểthành quan hệ.32
3.3. Mối kết hợp .33
3.4. Nhập tất cảcác quan hệcó cùngkhóa .33
4. Bài tập .33
Chương 4: Ngôn ngữ đại sốquan hệ.34
1. Các phép toán cơsở.34
1.1. Các phép toán tập hợp.34
1.2. Các phép toán quan hệ.37
2. Các phép toánkhác .40
2.1. Phép kết hai quan hệ.40
2.2. Phép kết nối nội.41
2.3. Phép kết nối trái .42
2.4. Phép kết nối phải.43
2.5. Hàm kết hợp và gom nhóm.43
2.6. Các phép toán cập nhật trên quan hệ.44
3. Bài tập .46
Chương 5: Ngôn ngữtân từ.49
1. Ngôn ngữtân từcó biến là bộ.49
1.1. Một sốkhái niệm.49
1.2. Định nghĩa hình thức của phép tính bộ.49
1.3. Lượng từtồn tại ∃và với mọi ∀.51
2. Ngôn ngữtân từcó biến là miền giá trị.52
3. Bài tập .53
Chương 6: Ngôn ngữtruy vấn SQL .55
1. Các lệnh hỏi .55
1.1. Cú pháp lệnh truy vấn .55
1.2. Phép chiếu .56
1.3. Phép chọn .56
1.4. Phép kết.57
1.5. Một sốlưu ý .57
2. Truy vấn lồng.59
3. Nhóm lệnh thực hiện tính toán .62
4. Các lệnh khai báo cấu trúc CSDL.63
5. Nhóm lệnh cập nhật dữliệu .66
5.1. Thêm .66
5.2. Xóa.66
5.3. Sửa.67
6. Bài tập .67
Chương 7: Phụthuộc hàm, khóa, ràng buộc toàn vẹn .68
1. Phụthuộc hàm .68
1.1. Khái niệm .68
1.2. Hệluật dẫn Amstrong .69
1.3. Thuật toán tìm bao đóng của tập thuộc tính.71
1.4. Bài toán thành viên.72
1.5. Phủtối thiểu của một tập phụthuộc hàm.72
2. Khóa.76
2.1. Định nghĩa.76
2.2. Thuật toán tìmkhóa.76
3. Ràng buộc toàn vẹn.79
3.1. Định nghĩa – các yếu tốcủa ràng buộc toàn vẹn .79
3.2. Các loại ràng buộc toàn vẹn .81
4. Bài tập .87
Chương 8: Dạng chuẩn và chuẩn hóa CSDL.90
1. Dạng chuẩn của lược đồquan hệ.90
1.1. Dạng chuẩn 1.90
1.2. Dạng chuẩn 2.91
1.3. Dạng chuẩn 3.94
1.4. Dạng chuẩn BC .95
1.5. Kiểm tra dạng chuẩn.95
2. Phép phân rã.96
2.1. Phân rã bảo toàn thông tin.96
2.2. Phân rã bảo toàn phụthuộc hàm .97
3. Thiết kếCSDL bằng cách phân rã.98
3.1. Phân rã thành dạng chuẩn BC (hoặc dạng chuẩn 3)
bảo toàn thông tin .98
3.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.102
4. Bài tập .102
Tài liệu tham khảo.103
g quan hệ MONHOC và xoá bộ {‘0310000’, ‘CT110’, ‘Nguyễn Ngọc’, ‘1 Lê Hồng Phong, Đà Lạt’, 9} trong quan hệ SINHVIEN. Khi đó thông tin về sinh viên sẽ bị mất. Để khắc phục những bất lợi trên, quan hệ SINHVIEN có thể tách thành 2 quan hệ SINHVIEN (MSSV, TenSV, DiaChi) và KETQUATHI (MSSV, MaMH, Diem). Như vậy, 3 quan hệ trên đều đã ở dạng chuẩn thứ 2. Trang 94/103 1.3. Dạng chuẩn 3 1.3.1. Định nghĩa Định nghĩa 1 Với một lược đồ Q; X, Y là hai tập con của Q+; A là một thuộc tính. Khi đó A được gọi là phụ thuộc bắc cầu vào X nếu thỏa: (1) XÆY, YÆA (2) Y X (3) A ∉ XY Lược đồ Q ở dạng chuẩn 3 nếu mọi thuộc tính không khóa đều không phụ thuộc bắc cầu vào khóa. Việc kiểm tra dạng chuẩn 3 theo định nghĩa trên sẽ khó cài đặt. Ta có thể thực hiện kiểm tra dạng chuẩn 3 theo định nghĩa sau: Định nghĩa 2 Lược đồ Q ở dạng chuẩn 3 nếu mọi phụ thuộc hàm XÆA∈F+, với A ∉ X đều có: (1) X là siêu khóa, hoặc (2) A là thuộc tính khóa 1.3.2. Kiểm tra dạng chuẩn 3 Từ định nghĩa 2, để kiểm tra dạng chuẩn 3 thực hiện các bước sau: Bước 1: Tìm mọi khóa của Q Bước 2: Phân rã vế phải của mọi phụ thuộc hàm trong F để tập F trở thành tập phụ thuộc hàm có vế phải một thuộc tính Bước 3: Nếu mọi phụ thuộc hàm XÆA ∈F, mà A ∉ X đều thỏa (1) X là siêu khóa (vế trái chứa một khóa), hoặc (2) A là thuộc tính khóa (vế phải là tập con của khóa) thì Q đạt dạng chuẩn 3, ngược lại Q không đạt dạng chuẩn 3. Ví dụ. Cho Q (A, B, C, D), F={ABÆD, CÆD} Bước 1: Q có một khóa là ABC Trang 95/103 Bước 2: Mọi phụ thuộc hàm trong F đều đã có vế phải một thuộc tính. Bước 3: Với ABÆD, nhận thấy rằng D ∉ ABC có • Vế trái (AB) không phải là siêu khóa. • Hơn nữa vế phải (D) không là thuộc tính khóa Vậy Q không đạt dạng chuẩn 3. 1.4. Dạng chuẩn BC (Boyce Codd) 1.4.1. Định nghĩa Lược đồ Q ở dạng chuẩn BC nếu mọi phụ thuộc hàm XÆA∈F+, với A ∉ X đều có X là siêu khóa. 1.4.2. Kiểm tra dạng chuẩn BC Từ định nghĩa, để kiểm tra dạng chuẩn BC thực hiện các bước sau: Bước 1: Tìm mọi khóa của Q Bước 2: Phân rã vế phải của mọi phụ thuộc hàm trong F để tập F trở thành tập phụ thuộc hàm có vế phải một thuộc tính Bước 3: Nếu mọi phụ thuộc hàm XÆA ∈F, mà A ∉ X đều thỏa X là siêu khóa (vế trái chứa một khóa), thì Q đạt dạng chuẩn BC, ngược lại Q không đạt dạng chuẩn BC. Ví dụ. Cho Q (A, B, C, D, E, I), F={ACDÆEBI, CEÆAD} Bước 1: Q có hai khóa là {ACD, CE} Bước 2: Phân rã vế phải của các phụ thuộc hàm trong F, ta có: F={ACDÆE, ACDÆB, ACDÆI, CEÆA, CEÆD} Bước 3: Mọi phụ thuộc hàm trong F đều có vế trái là một siêu khóa Vậy Q đạt dạng chuẩn BC. 1.5. Kiểm tra dạng chuẩn Kiểm tra dạng chuẩn của lược đồ quan hệ Q Bước 1: Tìm mọi khóa của Q Bước 2: Kiểm tra dạng chuẩn BC, nếu đúng thì Q đạt dạng chuẩn BC, Trang 96/103 ngược lại qua bước 3. Bước 3: Kiểm tra dạng chuẩn 3, nếu đúng thì Q đạt dạng chuẩn 3, ngược lại qua bước 4. Bước 4: Kiểm tra dạng chuẩn 2, nếu đúng thì Q đạt dạng chuẩn 2, ngược lại Q đạt dạng chuẩn 1. Kiểm tra dạng chuẩn của lược đồ CSDL Dạng chuẩn của một lược đồ CSDL là dạng chuẩn thấp nhất trong các dạng chuẩn của các lược đồ quan hệ con. 2. Phép phân rã Mục tiêu của việc thiết kế CSDL quan hệ là tạo ra một tập các lược đồ quan hệ cho phép chúng ta lưu trữ thông tin không có những dư thừa không cần thiết và truy tìm thông tin một cách dễ dàng, chính xác. Việc phân rã một lược đồ thành những lược đồ con đều mong muốn đạt được bảo toàn thông tin và bảo toàn phụ thuộc. 2.1. Phân rã bảo toàn thông tin Cho lược đồ quan hệ Q (TenNCC, DiaChiNCC, SanPham, DonGia) Phân rã Q thành Q1 và Q2 như sau: Q1 (TenNCC, SanPham, DonGia) Q2 (TenNCC, DiaChiNCC) Khi đó ta có các thể hiện sau: Q TenNCC DiaChiNCC SanPham DonGia Nguyễn Mai 10 Nguyễn Công Trứ Bánh xốp 10.000 Nguyễn Mai 10 Nguyễn Công Trứ Kẹo mè 20.000 Nguyễn Mai 20 Nguyễn Văn Trỗi Kẹo mè 20.000 Q1 TenNCC SanPham DonGia Nguyễn Mai Bánh xốp 10.000 Trang 97/103 Nguyễn Mai Kẹo mè 20.000 Q2 TenNCC DiaChiNCC Nguyễn Mai 10 Nguyễn Công Trứ Nguyễn Mai 20 Nguyễn Văn Trỗi 21 QQ >< TenNCC DiaChiNCC SanPham DonGia Nguyễn Mai 10 Nguyễn Công Trứ Bánh xốp 10.000 Nguyễn Mai 10 Nguyễn Công Trứ Kẹo mè 20.000 Nguyễn Mai 20 Nguyễn Văn Trỗi Bánh xốp 10.000 Nguyễn Mai 20 Nguyễn Văn Trỗi Kẹo mè 20.000 Như vậy kết quả thể hiện Q và 21 QQ >< là khác nhau, khi đó ta nói phép phân rã gọi là không bảo toàn thông tin (mất mát thông tin). Định nghĩa Q là lược đồ quan hệ, Q1, Q2 là hai lược đồ con có: +++ ++ =∪ =∩ QQQ XQQ 21 21 Khi đó Q được phân rã thành hai lược đồ con Q1, Q2 là phép phân rã bảo toàn thông tin nếu với r là thể hiện bất kỳ của Q ta có: 21 .. QrQrr ><= (r là kết quả của phép kết tự nhiên của các hình chiếu của nó trên Q1, Q2) 2.2. Phân rã bảo toàn phụ thuộc hàm Một vấn đề cần quan tâm khi phân rã lược đồ Q thành các lược đồ con Qi với tập các Fi tương ứng được tính từ tập phụ thuộc hàm F. Phép phân rã bảo toàn phụ thuộc (giữ lại Trang 98/103 phụ thuộc) nếu với ri là thể hiện của Qi thoả điều kiện: ri chỉ thoả những phụ thuộc hàm XÆY ∈F+ với XY⊆Qi+ Định nghĩa Gọi Q1, Q2,…, Qn là phân rã của lược đồ quan hệ Q, tập phụ thuộc hàm F trên Q. Hình chiếu của F trên một tập các thuộc tính Qi+ ký hiệu ΠQi+(F) là tập các phụ thuộc hàm XÆY ∈F+ với XY⊆Qi+ ΠQi+(F) = Fi+={XÆY | XÆY ∈F+ và XY⊆Qi+ } Khi đó phân rã là bảo toàn tập phụ thuộc hàm F nếu F ≡ ∪ ΠQi+(F) 3. Thiết kế CSDL bằng cách phân rã 3.1. Phân rã thành dạng chuẩn BC (hoặc dạng chuẩn 3) bảo toàn thông tin 3.1.1. Thuật toán Bước 1: Tìm tất cả các khóa của Q Bước 2: Tìm phụ thuộc hàm XÆY ∈F có X không là siêu khóa và Y không chứa thuộc tính khóa. • Nếu tìm thấy thì tách Q thành Q1 và Q2 theo cách: o Q1 = Q[XY]; F1 ≡ ΠQ1(F) (tìm bao đóng của tất cả các tập con của XY để tính F1). Tiếp tục phân rã (Q1, F1). o Q2 = Q[Q+ - Y]; F2 ≡ ΠQ2(F) (tìm bao đóng của tất cả các tập con của (Q+ - Y) để tính F2). Tiếp tục phân rã (Q2, F2). • Nếu không tìm thấy thì xét dạng chuẩn Qi: o Nếu mọi phụ thuộc hàm trong Fi đều có vế trái là siêu khóa thì Qi đạt dạng chuẩn BC o Nếu có phụ thuộc hàm trong Fi có vế trái không là siêu khóa và vế phải là thuộc tính khóa thì Qi đạt dạng chuẩn 3 3.1.2. Ví dụ Ví dụ 1 Cho Q (SDIM), F={SIÆD, SDÆM} Trang 99/103 Bước 1: Q có một khóa là {SI} Bước 2: Phụ thuộc hàm SDÆM có SD không là siêu khóa nên tách: Q1 = (SDM); F1 = {SDÆM} Q2 = (SDI); F2 = {SIÆD} Để tìm tập phụ thuộc hàm F1, F2 cần tính bao đóng của mọi tập con. Tìm F1: với Q1 = (SDM): bao đóng của mọi tập con SSF =+ DDF =+ MM F =+ SDMSDF =+ SMSM F =+ DMDM F =+ SDMSDM F =+ F1 = ΠQ1(F) = {SDÆM, SDÆSM, SDÆDM, SDÆSDM } ⇒ F1 = {SDÆM} Tìm F2: với Q2= (SDI): bao đóng của mọi tập con SSF =+ DDF =+ II F =+ SDMSDF =+ SIDMSI F =+ DIDI F =+ SDIMSDI F =+ Trang 100/103 F2 = ΠQ2(F) = {SIÆD, SIÆSD, SIÆDI, SIÆSDI } ⇒ F2 = {SIÆD} Bước 3: Mọi phụ thuộc hàm trong F1và F2 đều có vế trái là một siêu khóa nên Q1 và Q2 đạt dạng chuẩn BC. Ví dụ 2 Cho Q (ABCDE), F = {BCÆA, CÆD, AEÆB, BÆD, BÆE} Bước 1: 2 khóa là {CB, CAE} Bước 2: Từ CÆ D tách thành: • Q1(CD), F1= {CÆD}, Khóa C. Đạt dạng chuẩn BC. • Q2(CABE), F2= {BÆE, CBÆA, AEÆB} Chi tiết tính F1, F2 như sau: Tìm F1: với Q1 = (CD) CDCF =+ DDF =+ CDCDF =+ Vậy F1 = {CÆD} Tìm F2: với Q2(CABE): CDCF =+ AAF =+ BDEBF =+ EEF =+ CADCAF =+ CBADECBF =+ CEDCEF =+ Trang 101/103 ABDEABF =+ AEBDAEF =+ BEDBEF =+ CABDECABF =+ CAEBDCAEF =+ CBEADCBEF =+ ABEDABEF =+ CABEDCABEF =+ F2= {BÆE, CBÆAE, ABÆE, AEÆB, CABÆE, CAEÆB, CBEÆA} Vậy F2= {BÆE, CBÆA, AEÆB} Xét dạng chuẩn Q2: Khoá Q2: {CB, CAE}. Vậy Q2 đã đạt dạng chuẩn 3. 3.1.3. Cải tiến thuật toán Nhận thấy rằng trong tìm phụ thuộc hàm hình chiếu trên Qi, xét tập một con Xi, nếu ( ) ++ = QX Fi , khi đó nếu tiếp tục xét các tập XjXiXj ⊂: , thì hiển nhiên ( ) ++ = QX Fj , và cuối cùng thì phụ thuộc hàm có vế trái Xj cũng sẽ bị loại để chỉ chọn phụ thuộc hàm có vế trái Xi. Do đó, khi tìm phụ thuộc hàm hình chiếu trên Qi, xét tập một con Xi, nếu ( ) ++ = QX Fi , thực hiện loại bỏ các tính toán cho các trường hợp XjXiXj ⊂: . Ví dụ: với tìm F2 như ví dụ trên: Q2(CABE), F = {BCÆA, CÆD, AEÆB, BÆD, BÆE} CDCF =+ AAF =+ BDEBF =+ EEF =+ Trang 102/103 CADCAF =+ CBADECBF =+ , loại các tập CAB, CBE, CABE CEDCEF =+ ABDEABF =+ AEBDAEF =+ BEDBEF =+ ABEDABEF =+ F2= {BÆE, CBÆAE, ABÆE, AEÆB} Vậy F2= {BÆE, CBÆA, AEÆB} 3.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 Bước 1: Tìm phủ tối thiểu của F. Bước 2: Loại bỏ tất cả các thuộc tính của Q không liên quan đến một phụ thuộc hàm nào của PTT(F). Bước 3: Nếu có một phụ thuộc hàm trong PTT(F) liên quan đến mọi thuộc tính của Q thì không thể phân rã. Ngược lại, qua bước 4. Bước 4: Gom nhóm những phụ thuộc hàm có cùng vế trái. Với mỗi nhóm phụ thuộc hàm có cùng vế trái, tạo thành một lược đồ con. Bước 5: Kiểm tra các lược đồ con có thoả dạng chuẩn 3 chưa, nếu chưa thì áp dụng bước 4 để phân rã tiếp. Ví dụ. Cho Q (CTHRSG), F={CÆT, HRÆC, HTÆR, CSÆG, HSÆR} PTT(F) = F = {CÆT, HRÆC, HTÆR, CSÆG, HSÆR} Ta có kết quả phân rã Q1(CT), Q2(HRC), Q3(HTR), Q4(CSG), Q5(HRS) 4. Bài tập Bài tập 7, 8, 9 trong chương 7, với yêu cầu: - Phân rã thành dạng chuẩn BC hoặc dạng chuẩn 3 bảo toàn thông tin Trang 103/103 - Phân rã thành dạng chuẩn 3 bảo toàn thông tin và bảo toàn phụ thuộc hàm Tài Liệu Tham Khảo 1. Bài giảng Cơ sở dữ liệu, Nguyễn Hữu Tân, Đại Học Đà Lạt, 2004. 2. Bài tập cơ sở dữ liệu, Nguyễn Xuân Huy – Lê Hoài Bắc, NXB thống kê, 2003. 3. Giáo trình Cơ sở dữ liệu, Nguyễn Đăng Tỵ - Đỗ Phúc, Đại Học Quốc gia Tp. Hồ Chí Minh, 2001. 4. Nhập môn Cơ sở dữ liệu quan hệ, Lê Tiến Vương, NXB Khoa học và Kỹ thuật, 1994. 5. David Maier, The theory of Relational Databases, Computer Science Press, Rockville, 1983.
File đính kèm:
- Bài giảng tóm tắt Cơ sở dữ liệu.pdf