1. Trang chủ
  2. » Hóa học

ngngày 1121 ngày 1121 cô gửi các em bảng điểm các em phản hồi cho cô trước ngày chủ nhật 3121 nếu thắc mắc nhé diemdhhttt15atranthikimchihk12021 diemdhktpm15btttranthikimchihk12021 n

17 19 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 60,96 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Vì vậy trong quá trình chuẩn hoá dữ liệu và tìm kiếm thông tin, cần thiết phải thực hiện các phép tách lược đồ quan hệ chưa chuẩn hoá về tập các lược đồ quan hệ chiếu đã được chuẩn hoá, [r]

Trang 1

CHƯƠNG 7: KỸ THUẬT THIẾT KẾ CÁC HỆ CƠ SỞ DỮ LIỆU QUAN HỆ

Chương này sẽ giới thiệu nguyên lý thiết kế và cài đặt các hệ cơ sở dữ liệu quan hệ

Kỹ thuật chuyển đổi một quan hệ chưa chuẩn hóa về một nhóm các quan hệ ở dạng chuẩn 3NF không bị tổn thất thông tin, trong một số trường hợp các phép tách vẫn bảo toàn các phụ thuộc và phân rã lược đồ thành dạng chuẩn BCNF

Nội dung của chương bao gồm:

• Mục đích phân rã

• Định nghĩa phân rã lược đồ

• Phân rã lược đồ không mất mát thông tin

• Phân rã lược đồ bảo toàn phụ thuộc hàm

• Phân rã lược đồ thành BCNF

• Phân rã lược đồ thành 3NF

7.1 Phân rã lược đồ cơ sở dữ liệu

7.1.1 Mục đích phân rã

Một trong hai nguyên nhân do thiết kế kém sẽ gây nguy hiểm cho cơ sở dữ liệu là trùng lắp thông tin và không có khả năng trình bày thông tin một cách chắc chắn Mục tiêu của

lý thuyết thiết kế cơ sở dữ liệu là tính độc lập của dữ liệu Cấu trúc lưu trữ các hệ cơ sở

dữ liệu phản ảnh tính hiện thực, khách quan và tính toàn vẹn dữ liệu Vì vậy trong quá trình chuẩn hoá dữ liệu và tìm kiếm thông tin, cần thiết phải thực hiện các phép tách lược

đồ quan hệ chưa chuẩn hoá về tập các lược đồ quan hệ chiếu đã được chuẩn hoá, sao cho quá trình tách không làm tổn thất thông tin (lossless- mất mát thông tin), theo nghĩa các quan hệ gốc được khôi phục chính xác từ phép kết nối tự nhiên của các quan hệ chiếu Tách và kết nối các lược đồ quan hệ có làm tổn thất thông tin hay không, có bảo toàn các phụ thuộc hay không đã được nhiều người quan tâm nghiên cứu, giải quyết A.V Ho , C.Beeri & J.D Ullman giới thiệu thuật toán xác định phép kết nối các lược đồ quan hệ không có tổn thất thông tin với giả thiết các phụ thuộc dữ liệu là các phụ thuộc hàm

Ví dụ 5.1: Cho một lược đồ quan hệ dùng để ghi nhận giảng viên và lớp giảng dạy của

giảng viên

GIANGDAY(MONHOC, SOTIET, LOP, GIAOVIEN, HOCVI, DIACCHI)

MONHOC SOTIE

T

Trang 2

CSDL 45 DHKTPM11A Trần Lan Anh ThS Tp.HCM

Các phụ thuộc hàm: MONHOC  SOTIET;

MONHOC, LOP GIAOVIEN;

GIAOVIEN HOCVI, DIACHI

Do có phụ thuộc hàm MONHOC  SOTIET nên số tiết của dòng thứ 2 và dòng thứ 4 gây nên trùng lắp thông tin Tương tự phụ thuộc hàm GIAOVIEN  HOCVI, DIACHI nên học vị và địa chỉ của dòng thứ 2 và dòng thứ 4 gây nên trùng lắp thông tin Các dữ liệu gây trùng lắp thông tin là các dữ liệu có thể suy đoán được một cách chắc chắn và duy nhất từ phụ thuộc hàm

Ở đây để lưu học vị và địa chỉ của một giảng viên thì giảng viên đó phải tham gia giảng dạy một lớp nào đó Để giải quyết vấn đề lưu thông tin các giảng viên không tham gia giảng dạy người ta dùng giá trị NULL cho các thuộc tính MONHOC, SOTIET, LOP Như vậy, lược đồ quan hệ này lưu trữ hai thông tin của hai đối tượng khác nhau một là giảng dạy của các giảng viên tham gia giảng dạy, hai là thông tin của các giảng viên không tham gia giảng dạy Vấn đề nảy sinh ở đây là khi ta chỉ cần cập nhật việc giảng dạy ta phải đảm bảo không gây ảnh hưỏng tới các giảng viên không tham gia giảng dạy

và ngược lại Như vậy thông tin lưu trữ ở lược đồ quan hệ này không chắc chắn

Do đó lược đồ quan hệ GIANGDAY kém chất lượng, không phản ảnh tính hiện thực, khách quan và tính toàn vẹn dữ liệu Ta cần phải phân rã thành những lược đồ quan

hệ chất lượng hơn dựa vào tập phụ thuộc hàm ban đầu của nó theo một nguyên tắc nào đó

7.1.2 Định nghĩa phân rã lược đồ

Định nghĩa 1:

Phép phân rã các lược đồ quan hệ R={A1, A2, , An} là việc thay thế lược đồ quan hệ R thành các lược đồ con {R1, , Rk}, trong đó Ri⊆R và R=R1 ∪ R2…∪ Rk Được xem như một công cụ bổ sung vào phương pháp ER để loại trừ dư thừa dữ liệu Phụ thuộc hàm được xem như là sự khái quát hóa các ràng buộc chính (key constraint) Các phụ thuộc hàm được dùng để xác định các dạng chuẩn (normal form) Việc phân rã lược đồ sẽ dựa theo các dạng chuẩn này Vì vậy lý thuyết phân rã còn được gọi là lý thuyết chuẩn hóa

Ví dụ: Phân rã quan hệ GIANGDAY(MONHOC, SOTIET, LOP, GIAOVIEN, HOCVI,

DIACCHI) thành hai lược đồ LICHDAY và GIAOVIEN

LICHDAY(MONHOC, SOTIET, LOP)

Trang 3

GIAOVIEN(LOP, GIAOVIEN, HOCVI, DIACHI)

Tình trạng dữ liệu của hai lược đồ trên như sau

MONHO

C

SOTIE T

N

HOCV I

DIACHI

Anh

M

A

DHKTPM11 A

Trần Lan Anh

M

A

DHKTPM11 A

Nai

Nai

Nếu ta phân rã thành hai quan hệ trên phát sinh hai vấn đề sau:

1 Để trả lời câu hỏi: ”Cho biết thông tin của các giáo viên dạy CSDL của lớp DHHTTT11A thì ta phải kết nối tự nhiên hai quan hệ LICHDAY và GIAOVIEN Kết quả như sau:

A

Trần Lan Anh

A

A

Trần Lan Anh

A

A

A

Trần Lan Anh

A

Trần Lan Anh

Ta thấy lớp DHHTTT11A môn CSDL có hai giáo viên giảng dạy là Trần Lan Anh

và Lê Hà Điều này không giống dữ liệu ban đầu Vấn đề này gọi là phân rã không bảo toàn thông tin

3 Xét phụ thuộc hàm trên lược đồ phân rã, ta có:

TKB(MONHOC, SOTIET, LOP) MONHOC  SOTIET

Trang 4

GV(LOP, GIAOVIEN, HOCVI, DIACHI) GV  HOCVI, DIACHI

Từ hai phụ thuộc hàm trên ta không thể suy ra được phụ thuộc hàm MONHOC, LOP

GV Như vậy, hai phụ thuộc hàm trên không đảm bảo kiểm tra các ràng buộc toàn vẹn

do 3 phụ thuộc hàm ban đầu gây ra nên Vấn đề này gọi là phân rã không bảo toàn phụ thuộc hàm

Để phân rã thành các lược đồ quan hệ sao cho không vi phạm hai vấn đề trên, chúng

ta sẽ xét các quy tắc và các thuật toán sau để đảm bảo phân rã các lược đồ sao cho phản ảnh được tính hiện thực, khách quan và tính toàn vẹn dữ liệu

7.2 Phép tách bảo toàn thông tin - (Lossless decomposition)

Khảo sát quan hệ r và các phân rã của nó r1,…, rn Sau phân rã, CSDL không còn lưu trữ quan hệ r nữa mà chỉ lưu lại các quan hệ chiếu của nó r1, , rn CSDL phải có khả năng khôi phục lại quan hệ gốc r từ các quan hệ chiếu này Nếu không khôi phục lại được quan hệ r thì việc phân rã không biểu diễn cùng một thông tin với CSDL gốc  Phân rã mất mát thông tin (lossy decomposition)

Ví dụ 2: Cho lược đồ quan hệ Q(TENNCC,DIACHI,SANPHAM,DONGIA) có quan

hệ tương ứng là r

Đặt r1 là quan hệ có được bằng cách chiếu r lên Q1(TENNCC,SANPHAM,DONGIA), Đặt r2 là quan hệ có được bằng cách chiếu r lên Q2(TENNCC,DIACHI)

Đặt r’là quan hệ có được bằng cách kết tự nhiên giữa r1 và r2 qua TENNCC

r

TENNCC

DIACHI

SANPHAM

DONGIA

Hung

12 Nguyễn Kiệm

Tivi

200

Hung

12 Nguyễn Kiệm

Máy giặt

Trang 5

Hung

40 Nguyễn Oanh

Tivi

200

r 2 = r.Q 2

r 1 = r.Q 1 +

TENNCC

DIACHI

TENNCC

SANPHAM

DONGIA

Hung

12 Nguyễn Kiệm

Hung

Tivi

200

Hung

40 Nguyễn Oanh

Hung

Máy giặt

250

TENNCC r’ = r 1 |><|r 2

Trang 6

Hung 12 Nguyễn Kiệm Tivi 200

Kết quả là r  r’ hay r  r.Q1|><|r.Q2

Với kết quả trên, ta nói phép tách (Q1,Q2) tách Q thành Q1, Q2 là tách-kết nối (phân rã) mất mát thông tin

Nếu r = r.Q1|><|r.Q2 ta nói phép tách (Q1,Q2)là tách-kết nối không mất mát thông tin (tách kết nối bảo toàn thông tin hay phân rã bảo toàn thông tin)

Vậy với điều kiện nào thì phép tách trở thành tách-kết nối không mất mát thông tin?

7.2.1.Định nghĩa phép tách Q thành hai lược đồ con bảo toàn thông tin

Q là lược đồ quan hệ, Q1, Q2 hai lược đồ con có:

Q1  Q2 = X Q1  Q2 = Q + Nói rằng lược đồ quan hệ Q được tách thành hai lược đồ con Q1, Q2 theo phép tách

(Q1,Q2)là phép tách kết nối không mát thông tin (hay phép tách bảo toàn thông tin) nếu với r là quan hệ bất kỳ của Q ta có:

r = r.Q1 |><|

X

r.Q2 Tức là r được tạo nên từ phép kết nối tự nhiên của các hình chiếu của nó trên các Q1,Q2

Ví dụ: Ta phân rã lại quan hệ GIANGDAY(MONHOC, SOTIET, LOP, GIAOVIEN,

HOCVI, DIACCHI) thành hai lược đồ LICHDAY và GIAOVIEN

LICHDAY(MONHOC, SOTIET, LOP)

GIAOVIEN(LOP, GIAOVIEN, HOCVI, DIACHI)

Tình trạng dữ liệu của hai lược đồ trên như sau

T

VI

DIACHI

Anh

Nếu ta phân rã thành hai quan hệ trên phát sinh hai vấn đề sau:

Trang 7

Để trả lời câu hỏi: ”Cho biết thông tin của các giáo viên dạy CSDL của lớp DHHTTT11A thì ta phải kết nối tự nhiên hai quan hệ LICHDAY và GIAOVIEN Kết quả như sau:

MONHO

C

Nhận xét: sau khi kết nối tự nhiên giữa hai qua hệ LICHDAY và GIAOVIEN ta được quan hệ giống như quan hệ ban đầu Vậy phép tách trên bảo toàn thông tin

7.2.2 Tính chất

Nếu Q là một lược đồ quan hệ, Q1,Q2 là hai lược đồ quan hệ con có

Q 1 +  Q 2 + = X

Q 1 +  Q 2 + = Q +

X  Q 2 +

Thì r = r.Q 1 |><|X r.Q 2

Ví dụ: cho Q(SAIP), Q1 =(SA) , Q2 =(SIP) F={S→A,SI→P} Hỏi việc tách Q thành

Q1 và Q2 có gây ra mất mát thông tin không?

Áp dụng tính chất trên, ta có

Q1+ ∩ Q2+ = S

Q1+  Q2+ = SAIP = Q+

S → SA = Q1+

Theo tính chất trên, với mọi quan hệ r của Q ta luôn có

r = r.Q1 r.Q2

Suy ra phép tách trên là phép tách kết nối bảo toàn thông tin

7.2.3 Phép tách Q thành n lược đồ con

Q

Q1 Q12

Q21 Q2

Q3 Q4

Trang 8

Q là một lược đồ quan hệ, F là tập phụ thuộc hàm Q được tách thành các lược đồ con Q1, Q2, Q3 ,Qn theo từng bước mà ở mỗi bước một lược đồ được tách thành hai lược

đồ con và thỏa mãn điều kiện của tính chất bảo toàn thông tin thì với r là quan hệ bất kỳ của Q ta luôn có:

r = r.Q1|><|r.Q2|><|r.Q3 |><|r.Qn

7.2.4 Thuật toán kiểm tra phân rã bảo toàn thông tin (Lossless-join decomposition)

Dữ liệu vào: lược đồ quan hệ Q(A1,A2,…An), tập phụ thuộc hàm F, phép tách

=(Q1,Q2,…,Qk)

Dữ liệu ra: kết luận phép tách  có phải là phép tách bảo toàn thông tin ?

Bước 1:

 Thiết lập một bảng với n cột (tương ứng với n thuộc tính) và k dòng (tương ứng với k quan hệ), trong đó cột thứ j ứng với thuộc tính Aj, dòng thứ i ứng với lược

đồ Ri

 Tại dòng i và cột j, ta điền ký hiệu aj nếu thuộc tinh Aj∈Ri Ngược lại ta điền ký hiệu bij

Bước 2:

 Xét các phụ thuộc hàm trong F và áp dụng cho bảng trên

 Giả sử ta có phụ thuộc hàm X→Y∈F, xét các dòng có giá trị bằng nhau trên

thuộc tính X thì làm bằng các giá trị của chúng trên Y.

 Ngược lại làm bằng chúng bằng ký hiệu bij Tiếp tục áp dụng các pth cho bảng (kể cả việc lặp lại các phụ thuộc hàm đã áp dụng) cho tới khi không còn áp dụng được nữa

Bước 3:

Xem xét bảng kết quả Nếu xuất hiện một dòng chứa toàn giá trị a1, a2 ,…,an thì

kết luận phép tách ρ không mất mát thông tin

Chú ý: một điều quan trọng cần phải nhớ là khi cho hai ký hiệu bằng nhau thì phải cho bằng nhau ở tất cả các xuất hiện của chúng trong bảng chứ không phải chỉ cho bằng nhau

ở những ký hiệu trong phạm vi các phụ thuộc hàm X  Y  F

Ví dụ: Với Q(ABCDE)

Q1 = (AD),Q2 =(AB), Q3 =(BE), Q4 =(CDE), Q5 =(AE)

F = {AC,BC,AD,DEC,CEA}

Kiểm tra tính bảo toàn thông tin của phép phân rã Q thành Q1,Q2,Q3,Q4,Q5

1

a 2

a 3

a 4

a 5

Bước 2: Điền b1,b2,b3,

Trang 9

A B C D E A B C D E

Sửa bảng giá trị để thảa AC

Sửa b4,b13 thành b2

Sửa bảng giá trị để thỏa BC Sửa b8 thành b2

Q 1 (AD) a1 b1 b2 a4 b3 Q 1 (AD) a1 b1 b2 a4 b3

Q 2 (AB) a1 a2 b2 b5 b6 Q 2 (AB) a1 a2 b2 b5 b6

Q 3 (BE) b7 a2 b8 b9 a5 Q 3 (BE) b7 a2 b2 b9 a5

Q 4 (CDE) b10 b11 a3 a4 a5 Q 4 (CDE) b10 b11 a3 a4 a5

Q 5 (AE) a1 b12 b2 b14 a5 Q 5 (AE) a1 b12 b2 b14 a5

Sửa bảng giá trị để thỏa AD

Sửa b5,b14 thành a4

Sửa bảng giá trị để thỏa DEC

Sửa b2 thành a3  sửa tất cả b2 thành a3

A

B

C

D

E

A

B

C

D

E

Q 1 (AD)

a1

b1

b2

Trang 10

b3

Q 1 (AD)

a1

b1

a3

a4

b3

Q 2 (AB)

a1

a2

b2

a4

b6

Q 2 (AB)

a1

a2

a3

a4

b6

Q 3 (BE)

b7

a2

b2

b9

a5

Q 3 (BE)

b7

a2

a3

b9

a5

Q 4 (CDE)

Trang 11

b11

a3

a4

a5

Q 4 (CDE)

b10

b11

a3

a4

a5

Q 5 (AE)

a1

b12

b2

a4

a5

Q 5 (AE)

a1

b12

a3

a4

a5

Sửa bảng giá trị để thỏa CEA

Sửa b7,b10 thành a1

Lần lượt xét lại các phụ thuộc hàm trong F, nếu bảng giá trị chưa thỏa phụ thuộc hàm nào thì tiếp tục làm cho nó thỏa

Sửa bảng giá trị để thỏa AD

A

Trang 12

B C D E

A B C D E

Q 1 (AD)

a1 b1 a3 a4 b3

Q 1 (AD)

a1 b1 a3 a4 b3

Q 2 (AB)

a1 a2 a3 a4 b6

Q 2 (AB)

a1 a2 a3

Trang 13

b6

Q 3 (BE)

a1

a2

a3

b9

a5

Q 3 (BE)

a1

a2

a3

a4

a5

Q 4 (CDE)

a1

b11

a3

a4

a5

Q 4 (CDE)

a1

b11

a3

a4

a5

Q 5 (AE)

a1

b12

a3

Trang 14

a5

Q 5 (AE)

a1

b12

a3

a4

a5

Dòng thứ 3 Q3(BE) của bảng chứa toàn giá trị aj (j=1 n) nên phép phân rã trên là bảo toàn thông tin

7.3 Phân rã bảo toàn phụ thuộc hàm (decompositions that preserve dependencies)

7.3.1 Định nghĩa

Cho lược đồ quan hệ Q và tập phụ thuộc hàm F xác định trên Q Phân rã Q thành {Q1, Q2…Qn} thì mỗi Q sẽ xác định một tập phụ thuộc hàm Fi:

Fi = {X  Y : XY  Qi và X   F+}

Fi được gọi là tham chiếu của F+ lên Qi

Phân rã trên bảo toàn phụ thuộc hàm nếu:

Đặt F‟ = F1  F2  …  Fn thì F‟ = F (nghĩa là F‟+ = F+ )

Để kiểm tra phân rã bảo toàn phụ thuộc hàm ta đi kiểm tra F1F2 …  Fn  F

Lưu ý: Khi tính các Fi thường hay thiếu sót các phụ thuộc hàm vì Fi là chiếu của F+ lên

Qi chứ không phải F lên Qi Như vậy để tính đầy đủ Fi của Qi ta tính bao đóng của tất cả các tập con thực sự của Qi

X  Qi Nếu X+  Qi  X thì (X  (X+  (Qi - X))  Fi

Ví dụ: Cho Q(ABCD), F = {A  B, B  C, C  D, D A}

Phân rã Q thành {Q1(AB), Q2(BC), Q3(CD)} sẽ dễ dàng nhầm lẫn:

Q1(AB), F1 = {A  B}

Q1(BC), F2 = {B  C}

Q1(CD), F1 = {C  D}

Lúc này F‟ = F1  F2 F3 = {A  B, B  C, C  D}

Rõ ràng là F‟ không tương đương với F vì F‟+  F+ do D  A  F‟+

Như vậy nếu vội vã kết luận phân rã trên không bảo toàn phụ thuộc hàm là sai

Trang 15

Thực ra:

Q1(AB) Af+ = ABCD  A  B F1 Bf+ = BCDA  B  A  F1

Vậy F1 = {A  B, B  A}Q2(BC) Bf+ = BCDA  B  C  F2 Cf+ = CDAB  C  B  F2 Vậy F2 = {B  C, C  B}

Q3(CD) Cf+ = CDAB  C  D  F3 Df+ = DABC  D  C  F3

Vậy F3 = {C  D, D  C}

Vậy F‟ = F1  F2  F3 = { A  B,B  A, B  C, C  B, C  D, D  C}

Ta tính được F‟+ = F+  F‟  F

Kết luận: Phân rã trên bảo toàn phụ thuộc hàm

Trang 16

Thuật toán phân rã lược đồ bảo toàn phụ thuộc hàm

Vào: Cho lược đồ quan hệ Q(A1, A2,…,An) và tập phụ thuộc hàm F

Ra: Tách Q thành các lược đồ bảo toàn phụ thuộc hàm

Bước 1: Liệt kê tất cả các tập con của Q+

Bước 2: Với mỗi tập con của Q

Tính bao đóng của các tập con của các Qi+

Tìm hình chiếu của tất cả các Qi

Bước 3: Tạo tập phụ thuộc hàm G gồm tất cả các hình chiếu của các Qi Kiểm tra nếu F

có tương đương với G thì phép tách bảo toàn phụ thuộc hàm, ngược lại kết luận phép tách không bảo toàn thụ thuộc hàm

Ví dụ: Cho lược đồ quan hệ Q(A,B,C) và F={AB,BC,CA} Phép phân rã =(Q1,Q2) tách Q thành hai lược đồ quan hệ Q1(A,B) và Q2(B,C) Hãy tính hình chiếu của F trên Q1 và Q2 Phép phân rã có bảo toàn phụ thuộc hàm F không?

Giải:

Bước 1: Liệt kê tất cả tập con của Q+

AB Bước 2: Tính bao đóng của các tập con của Q1

+= A+=ABC B+=ABC

AB+=ABC Bước 3: Tính F1 =Q1(F)

Tính cho Q2

Bước 4: Kê tất cả tập con của Q2

BC Bước 5: Tính bao đóng của các tập con của Q2

Bước 6: Tính F2 =Q2(F)

Bước 7:

G=Q1(F)Q2(F)={AB,AAB,BA,BAB,BC,BBC,CB,CBC}

Trang 17

F={AB,BC,CA} có AB, BC là thành viên của G còn CA có là thành viên của G hay không ta tính CG+ CG+=ABC  CA cũng là thành viên của G Vậy phép phân rã trên bảo toàn phụ thuộc hàm

Ngày đăng: 25/01/2021, 15:05

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w