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

pdf108 trang | Chuyên mục: Hệ Quản Trị Cơ Sở Dữ Liệu | Chia sẻ: dkS00TYs | Lượt xem: 2049 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng tóm tắt Cơ sở dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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:

  • pdfBài giảng tóm tắt Cơ sở dữ liệu.pdf