Do đâu có phụ thuộc hàm? - Khoa CNTT-HVKTQSfit.mta.edu.vn/files/DanhSach/Ch04_Phu thuoc ham...

Preview:

Citation preview

Do đâu có phụ thuộc hàm?

“Tính khóa (duy nhất)” của các thuộc tính.

Các ràng buộc trên miền giá trị và ràng buộc ứngCác ràng buộc trên miền giá trị và ràng buộc ứngdụng.

ếCác ràng buộc của thế giới thực

Phụ thuộc hàm giúp chúng ta định nghĩa “khóa”

- 48 -

Khóa của sơ đồ quan hệ

Trong lược đồ quan hệ, một số thuộc tính đóngvai trò quan trọng, và từ các thuộc tính này có thểá đị h á th ộ tí h kháxác định các thuộc tính khác.

Khái niệm sơ đồ quan hệệ q ệCho lược đồ quan hệ R={A1,A2,…,An}, F là tậpcác phụ thuộc hàm trên R. Sơ đồ quan hệ là cặpR F h t ê ký hiệ SĐQH là W <R F>R, F như trên, ký hiệu SĐQH là W=<R,F>

Sơ đồ quan hệ là một lược đồ quan hệ và tậpq ệ ộ ợ q ệ ậpphụ thuộc hàm trên nó.

- 49 -

Định nghĩa khóa SĐQH

được gọi là khóa tối thiểu của SĐQH trên W nếu k là tập tối thiểu kéo theo R, tức là k là khóa tốithiể ế à ế bớt khỏi k dù ột

k R⊂

( )k R k R+thiểu nếu: và nếu bớt khỏi k dù mộtphần tử thì bao đóng của tập còn lại khác R.

i là khó tối thiể ế thỏ ã

( )k R k R+ = →

k R gọi là khóa tối thiểu nếu thỏa mãnk R⊂

1.k R+ =

Những thuộc tính thuộc khóa gọi là thuộc tính2.( ) for k A R A k+− ≠ ∀ ∈

g gkhóa, những thuộc tính không thuộc khóa gọi làthuộc tính không khóa (thuộc tính thứ cấp)

- 50 -

X là siêu khóa nếu X thỏa mãn điều kiện 1.

Định lý 2.4

a. Nếu k là khóa của sơ đồ quan hệ W = <R,F>, r làquan hệ trên R thì với mọi cặp phần tử khác nhaut1 t2 ủ t l ô ó t k t k≠t1, t2 của r ta luôn có

b. Ngược lại nếu k là tập tối thiểu và với mọi quan hệ r

1 2. .t k t k≠

b. Ngược lại nếu k là tập tối thiểu và với mọi quan hệ r trên R mà mọi cặp t1, t2 của r mà thì k làkhóa của sơ đồ quan hệ W=<R,F>

1 2. .t k t k≠

- 51 -

Thuật toán tìm khóa

Do bao đóng của k là R nên ban đầu ta coi k=R.

Ta loại trừ dần các phần tử và kiểm tra xem k+=RTa loại trừ dần các phần tử và kiểm tra xem k+=R

Input: W = <R,F>

Output: k – khóa của W

ậ áThuật toánBước 1: Đặt k=RBước 2: Lặp quá trình loại khỏi k phần tử ABước 2: Lặp quá trình loại khỏi k phần tử Amà (k-A)+=R

- 52 -

Thuật toán tìm khóa

Mô tả thuật toán bằng ngôn ngữ tựa Pascal

BeginBegink=Rfor each A in k do

if (k-A)+=R then k=k-AEnd

Thuật toán sẽ tìm được một khóa k cho R

Nếu muốn tìm được khóa khác, ta có thể thay

đổi thứ tự loại trừ các phần tử A ra khỏi k.

- 53 -

đổi thứ tự loại trừ các phần tử A ra khỏi k.

Các tính chất của khóa

1. Các thuộc tính không xuất hiện trong cả hai vếtrái hoặc phải của tập F phải có trong mọi khóa k.

2 Cá th ộ tí h hỉ ất hiệ bê t ái ủ á PTH2. Các thuộc tính chỉ xuất hiện bên trái của các PTHtrong F cũng phải thuộc mọi khóa k.

3. Những thuộc tính xuất hiện, và chỉ xuất hiện bên3. Những thuộc tính xuất hiện, và chỉ xuất hiện bênvế phải của tập PTH sẽ không thuộc bất kỳ khóanào.

4 Th ật t á khẳ đị h i SĐQH W đề ó4. Thuật toán khẳng định mọi SĐQH W đều cókhóa, tuy nhiên thuật toán không khẳng định cóbao nhiêu khóa và số lược các phần tử trongbao nhiêu khóa và số lược các phần tử trongkhóa có như nhau hay không.

5. Họ tất cả các khóa của một SĐQH W là hệSperner (tức là không có hai khóa bao nhau).

- 54 -

Thuật toán tìm mọi khóa

Ý tưởng

Cho W=<R F>Cho W=<R,F>

1. Tìm tất cả các tập con khác rỗng của R

2. Loại tập con có bao đóng khác R.

3. Tạo tập con bao tập con khácạ ập ập

4. Những tập còn lại là khóa của W.

- 55 -

Thuật toán tìm mọi khóa

Cho W=<R,F>R={A,B,C}, F={A B, A C, B A, B C, AC B}

Bao đóng Tập con cóbao đóngbằng R

Khóa

bằng RA ABC A AB ABC B BC CAB ABC ABAC ABC ACBC ABC BCABC ABC ABC

- 56 -

Thuật toán tìm mọi khóa

Một số cải tiến*Theo tính chất của khóa, chúng ta sẽ có một số

thuộc tính luôn thuộc khóa. Trong thuật toán

tìm khóa sẽ không xét nó và thêm vào khóatìm khóa sẽ không xét nó và thêm vào khóa

* Một số thuộc tính không thuộc khóa nào cả. Ta

loại bỏ nó trong quá trình tìm kiếm khóa.

- 57 -

Thuật toán tìm mọi khóa

Cho W = <R,F>, R={A,B,C,D,E,H}F = {A B, A C, B A, B C, AC B, E C,C H B H}C H, B H}• Chắc chắn D, E tham gia mọi khóa• H sẽ không tham gia vào khóa nàoH sẽ không tham gia vào khóa nào

Thuật toán tìm khóa: sẽ không cố gắng loại trừ D,E ra khỏi tập. Tập khởi tạo ban đầu có thể làE ra khỏi tập. Tập khởi tạo ban đầu có thể làK=R\{H}

Th ật t á tì i khó Thê ột ột ới l ôThuật toán tìm mọi khóa: Thêm một cột mới luônchứa D, E. Trong các tập con của thuộc tính cònlại không xem xét đến H.

- 58 -

ạ ô g e ét đế

Thuật toán

Bao đóng Siêu khóa KhóaDE DEHCDE A DEHABC DEA DEADE A DEHABC DEA DEADE B DEHABC DEB DEBDE C DEHCDE AB DEHABC DEABDE AB DEHABC DEABDE AC DEHABC DEACDE BC DEHABC DEBCDE ABC DEHABC DEABC

- 59 -

Tìm khóa từ mô hình ER

Tìm khóa từ mô hình ER

Tìm khóa từ mô hình ER

Bài tập

Các bài tập trong chương 2

- 63 -

Các dạng chuẩn

Mỗi dạng chuẩn là một tập các điều kiện trênlược đồ nhằm đảm bảo các tính chất của nó (liên

tới d thừ à bất th ờ t ậ hật)quan tới dư thừa và bất thường trong cập nhật)

Chuẩn hóa dữ liệu: quá trình phân tích lược đồChuẩn hóa dữ liệu: quá trình phân tích lược đồquan hệ dựa trên FD và các khóa chính để đạtđược:

ể• Cực tiểu sự dư thừa• Cực tiểu các phép cập nhật bất thường

- 64 -

Các dạng chuẩn

Thủ tục chuẩn hóa cung cấp:• Một cơ cấu hình thức để phân tích các lược

đồ hệ d t ê á khó ủ ó à áđồ quan hệ dựa trên các khóa của nó và cácphụ thuộc hàm giữa các thuộc tính của nó

• Một loạt các kiểm tra dạng chuẩn có thểMột loạt các kiểm tra dạng chuẩn có thểthực hiện trên các lược đồ quan hệ riêng rẽsao cho CSDL có thể được chuẩn hóa đếnột ứ ầ thiếtmột mức cần thiết.

Tính chất• Nối không mất mát (hoặc nối không phụNối không mất mát (hoặc nối không phụ

thêm)• Bảo toàn sự phụ thuộc: Nó bảo đảm rằng

ể- 65 -

từng phụ thuộc hàm sẽ được biểu hiện trongcác quan hệ riêng rẽ nhận được sau khi tách.

Phân loại các dạng chuẩn

Boyce Codd đề nghị 3 dạng• 1NF (first normal form): tương đương với định

hĩ ủ l đồ hệ ( hệ à bộ)nghĩa của lược đồ quan hệ (quan hệ và bộ)• 2NF: không có giá trị trong thực tiễn• 3NF BCNF: thường được sử dụng nhiều3NF BCNF: thường được sử dụng nhiều

nhất

4NF, 5NF do tính đa trị và phụ thuộc hàm nối

- 66 -

Dạng chuẩn 1

Định nghĩa: 1NF nếu miền giá trị của một thuộctính chỉ chứa giá trị nguyên tử (đơn, không phânhi đ ) à iá t ị ủ ỗi th ộ tí h ũ làchia được) và giá trị của mỗi thuộc tính cũng là

một giá trị đơn lấy từ miền giá trị của nó.

Trong 1NF• Không có thuộc tính lặp lại

Không có th ộc tính đa trị• Không có thuộc tính đa trị

Ví dụ: PHONGBAN(MaPHG, TenPHG, DDIEM)

PHONGBAN(MaPHG, TenPHD)

DDIEM PHG(M PHG DDIEM)

- 67 -

DDIEM_PHG(MaPHG, DDIEM)

Dạng chuẩn 1

Vẫn còn vấn đề tồn tại trong 1NF

Xét lược đồ: DDIEM_PHG(MaPHG, DDIEM)

MAPHG DIADIEM1 TPHCMVẫn bị lặp lại

4 HANOI5 VUNGTAU5 NHATRANG

Ẩn chứa các phụ thuộchàm bộ phận

5 TP HCM

- 68 -

Dạng chuẩn 2

Phụ thuộc hàm đầy đủ: Một phụ thuộc hàm X Ylà một phụ thuộc hàm đầy đủ nếu loại bỏ bất kỳth ộ tí h A à đó khỏi X thì h th ộ hàthuộc tính A nào đó ra khỏi X thì phụ thuộc hàmđó không còn đúng nữa.

( { } )A A X X A Y∀

Phụ thuộc hàm bộ phận: Một phụ thuộc hàmế ể ỏ

, , ( { } )A A X X A Y∀ ∈ − → là sai

X Y là phụ thuộc hàm bộ phận nếu có thể bỏmột thuộc tính ra khỏi X phụ thuộc hàmvẫn đúng điều đó có nghĩa là

A X∈vẫn đúng, điều đó có nghĩa là

, ( { })A X X A Y∃ ∈ − →

- 69 -

Dạng chuẩn 2

2NF• Thỏa mãn 1NF

Ph th ộ hà đầ đủ à khó hí h• Phụ thuộc hàm đầy đủ vào khóa chính

Với các quan hệ có thuộc tính khóa đơn thìkhô hải étkhông phải xét

Chỉ kiểm tra các lược đồ có chứa phụ thuộc hàmbộ phận

- 70 -

Ví dụ Dạng chuẩn 2

Phụ thuộc vào cả 2 MaNV, MaDA

NV_DA (MaNV, MaDA, Sogio, TenDA, DDiemDA)

Chỉ phụ thuộc vào MaDA

- 71 -

Ví dụ Dạng chuẩn 2

Phụ thuộc vào cả 2 MaNV, MaDA

NV_DA (MaNV, MaDA, Sogio, TenDA, DDiemDA)

Chỉ phụ thuộc vào MaDA

NV_DA (MaNV, MaDA, Sogio)

- 72 -

DUAN (MaDA, TenDA, DDiemDA)

Dạng chuẩn 3

3NF dựa trên khái niệm phụ thuộc bắc cầu.

Định nghĩa: Một lược đồ quan hệ R là ở dạng3NF nếu nó thỏa mãn (theo Codd)( )• Thỏa mãn 2NF• Không có thuộc tính không khóa nào của R là

phụ thuộc bắc cầu vào khóa chínhphụ thuộc bắc cầu vào khóa chính.

- 73 -

Dạng chuẩn 3Ph th ộ à M NVPhụ thuộc vào MaNV

NV_DV (MaNV, TenNV, NS, DCHI, MaDV, TenDV, TruongPHG)

Phụ thuộc vào MaDV

Tất cả các thuộc tính phải phụ thuộc vào thuộctính khóa

Một ài th ộ tí h h th ộ à th ộ tí h• Một vài thuộc tính phụ thuộc vào thuộc tínhkhông phải là khóa

• Để chuẩn hóa Tách nhóm các thuộc tính

- 74 -

Để chuẩn hóa Tách nhóm các thuộc tínhđó thành quan hệ mới

Dạng chuẩn 3Ph th ộ à M NVPhụ thuộc vào MaNV

NV_DV (MaNV, TenNV, NS, DCHI, MaDV, TenDV, TruongPHG)

Phụ thuộc vào MaDV

NHANVIEN (MaNV, TenNV, NS, DCHI, MaDV)

DONVI (MaDV, TenDV, TruongPHG)

- 75 -

Tóm tắt dạng chuẩn 1-3NF Nhậ biết Cá h h ẩ hóNF Nhận biết Cách chuẩn hóa1 Quan hệ có

thuộc tính đa trịhoặc quan hệ

Loại bỏ các thuộc tính vi phạm dạng chuẩn 1 và đặt chúngvào một bảng riêng cùng với khóa chính của quan hệ ban đầu Khóa chính của bảng này là một tổ hợp của khóa chínhhoặc quan hệ

lặpđầu. Khóa chính của bảng này là một tổ hợp của khóa chínhcủa quan hệ ban đầu và thuộc tính đa trị hoặc khóa bộ phậncủa nhóm lặp. Các thuộc tính còn lại lập thành một quan hệvới khóa chính là khóa chính ban đầu

2 Phụ thuộc 1 phần vào thuộctính khóa

Loại bỏ các thuộc tính không khóa phụ thuộc vào một bộphận khóa chính và tách rành ra một bảng riêng, khóa chínhcủa bảng này là bộ phận khóa mà chúng phụ thuộc vào. Cácth ộ tí h ò l i lậ thà h ột hệ khó hí h ủ óthuộc tính còn lại lập thành một quan hệ, khóa chính của nólà khóa chính ban đầu

3 Phụ thuộc ẩn, Loại bỏ các thuộc tính phụ thuộc bắc cầu ra khỏi quan hệ vàtồn tại phụthuộc hàm giữacác thuộc tínhkhông phải là

tách chúng thành một quan hệ riêng có khóa chính là thuộctính bắc cầu. Các thuộc tính còn lại lập thành một quan hệ cókhóa chính là quan hệ ban đầu.

- 76 -

không phải làkhóa

Các bước chuẩn hóa – Đưa về dạng 1

Tách các thuộc tính lặp

Nhóm các thuộc tính đơn còn lại thành một quanNhóm các thuộc tính đơn còn lại thành một quan

hệ. Chọn khóa cho nó.

Nhóm các thuộc tính lặp tách ra, tăng thêm khóa

của quan hệ trên tạo thành một quan hệ (hay mộtq ệ ạ ộ q ệ ( y ộ

số quan hệ theo chủ đề). Chọn khóa cho quan hệ

này thường là khóa bội trong đó khóa của quannày, thường là khóa bội, trong đó khóa của quan

hệ trên là một thành phần.

Các quan hệ lập được đều là 1NF- 77 -

Các bước chuẩn hóa – Đưa về dạng 2

Tách các nhóm thuộc tính phụ thuộc hàm một

phần của khóaphần của khóa

Nhóm còn lại tạo thành quan hệ với khóa là khóa

của quan hệ ban đầu

Mỗi nhóm tách ra (gồm các thuộc tính cùng phụ(g ộ g p ụ

thuộc hàm vào bộ phận của khóa) tăng thêm các

thuộc tính mà chúng phụ thuộc tạo thành mộtthuộc tính mà chúng phụ thuộc tạo thành một

quan hệ. Khóa là các thuộc tính tăng thêm này.

Các quan hệ lập được đều là 2NF- 78 -

Các bước chuẩn hóa – Đưa về dạng 3

Tách các nhóm thuộc tính phụ thuộc vào một haymột số thuộc tính ngoài khóa.Nhó ò l i t thà h hệ ới khó là khóNhóm còn lại tạo thành quan hệ với khóa là khóacủa quan hệ ban đầuMỗi nhóm tách ra (gồm các thuộc tính cùng phụMỗi nhóm tách ra (gồm các thuộc tính cùng phụthuộc vào một hay một số thuộc tính ngoài khóa)tăng thêm các thuộc tính mà chúng phụ thuộc tạothà h ột hệ Khó là á th ộ tí h tăthành một quan hệ. Khóa là các thuộc tính tăngthêm này.Các quan hệ lập được đều là 3NFCác quan hệ lập được đều là 3NF

- 79 -

Ví dụ kiểm tra dạng chuẩn

Ví dụ 1: Cho sơ đồ quan hệ W như sau:W = <U=CTRHSG; F={C T, HR C, HT R,CS G HS R}CS G, HS R}>

C – giáo trình (curriculumn)C giáo trình (curriculumn)T – Giáo viên (Teacher)R – phòng học (Room)H Giờ (H )H – Giờ (Hour)S – Sinh viên (Student)G – Lớp (Grade)G Lớp (Grade)

- 80 -

Các ràng buộc PTH

C T: Mỗi giáo trình chỉ có một thầy dạyHR C: chỉ một môn học ở một phòng học tạiột thời điểmột thời điểm.

HT R: Tại mỗi thời điểm, mỗi giáo viên chỉ cóthể dạy ở một phòng họcthể dạy ở một phòng họcCS G: Mỗi sinh viên chỉ ở một lớp học theo mỗigiáo trìnhHS R Mỗi i h iê hỉ ó thể ở ột hò hHS R: Mỗi sinh viên chỉ có thể ở một phòng họctại một thời điểm.Yêu cầu: Kiểm tra W có ở dạng chuẩn 3NF hayYêu cầu: Kiểm tra W có ở dạng chuẩn 3NF hay

không? Nếu không W ở dạng chuẩn nào?

- 81 -

Ví dụ kiểm tra dạng chuẩn

Xác định tập K các khóa của W và tập N cácthuộc tính không khóa.

Nhận xét: Thuộc tính HS tham gia khóa vì chúngkhông xuất hiện ở vế phải. Kiểm tra HS có phải làgkhóa không

HS+=HSRCTG=U

Ta có khóa K={HS} là duy nhất, N={RCTG} là cácthuộc tính không khóathuộc tính không khóa- R là thuộc tính không khóa: HS HT R- Như vậy R phụ thuộc bắc cầu vào khóa HS

ầ- 82 -

thông qua cầu HT. Suy ra W không ở dạngchuẩn 3NF.

Ví dụ kiểm tra dạng chuẩn

Kiểm tra N=RCTG có phụ thuộc đầy đủ vào HShay không?

::

H C H H C HS C S S C S

+ +

+ +

⎧ → = ⇒ ⊄⎪⎨

→ = ⇒ ⊄⎪⎩⎪⎩

Vậy C phụ thuộc đầy đủ vào HS.Tương tự với RTG

Kết luận: W ở dạng chuẩn 2NF.

g ự

- 83 -

Ví dụ khác

Ví dụ 2: Cho lược đồ W =<R={MaSV, TenSV, MaMT, DiemThi};

F {M SV T SV M SV M MT Di thi}F={MaSV TenSV; MaSV,MaMT Diemthi}>Kiểm tra W có ở dạng chuẩn 3NF không?Kiểm tra W có ở dạng chuẩn 3NF không?

Ví dụ 3: Cho lược đồ quan hệC { C C }W = <R=ABC; F={AB C; BC A}>

Hỏi W có ở dạng chuẩn 3NF hay không?

- 84 -

Dạng chuẩn Boyce-Codd

Một lược đồ quan hệ R được gọi là ở dạng chuẩnBoyce-Codd (BCNF) nếu nó

Thỏ ã d h ẩ 3NF- Thỏa mãn dạng chuẩn 3NF- Không có các thuộc tính khóa phục thuộc

hàm vào thuộc tính không khóahàm vào thuộc tính không khóa

Ví dụ

- 85 -

Dạng chuẩn Boyce-Codd

Ví dụ:R (A1, A2, A3, A4, A5)Với á h th ộ hàVới các phụ thuộc hàm

- A1, A2 A3, A4, A5- A4 A2A4 A2

- 86 -

Dạng chuẩn Boyce-Codd

Nếu một lược đồ quan hệ không thỏa mãn điềukiện BCNF, thủ tục chuẩn hóa bao gồm

L i bỏ á th ộ tí h khó h th ộ hà- Loại bỏ các thuộc tính khóa phụ thuộc hàmvào thuộc tính không khóa ra khỏi quan hệ.

- Tách chúng thành một quan hệ riêng có khóaTách chúng thành một quan hệ riêng có khóachính là thuộc tính không khóa gây ra phụthuộc.

Ví dụ:R (A1, A2, A3, A4, A5)Với á h th ộ hàVới các phụ thuộc hàm

- A1, A2 A3, A4, A5- A4 A2

- 87 -

A4 A2Lược đồ được tách ra như sau:

- R1(A4, A2) - R2 (A1, A4, A3, A5)

Ví dụ về chuẩn hóa quan hệ

Cho lược đồ quan hệ ở dạng chuẩn 1,R = {A, B, C, D, E, F, G,H, I, J} có khóa chính là A, BVới tậ á PTHVới tập các PTH

A, B C, D, E, F, G, H, I, JA, B C, D, E, F, G, H, I, JA E, F, G, H, I, JF I, JD BD B

Do có phụ thuộc hàm A E, F, G, H, I, J mà A là mộtbộ phận của khóa chính nên quan hệ R vi phạmbộ phận của khóa chính nên quan hệ R vi phạm2NF.

- 88 -

Ví dụ về chuẩn hóa quan hệ

Ta tách R thành R1 (A, E, F, G, H, I, J) vàR2(A, B, C, D)T R1 d ó h th ộ hà F I J ê t óTrong R1, do có phụ thuộc hàm F I, J nên ta cóI, J phụ thuộc hàm bắc cầu vào khóa chính.R1 là quan hệ vi phạm 3NFR1 là quan hệ vi phạm 3NFTrong R2 ta có PTH D B trong đó B là một thuộctính khóa, R2 vi phạm BCNF

Tách R1 và R2 ta cóR11 (F I J)R11 (F, I, J)R12 (A, E, F, G, H)R21 (D, B)

- 89 -

R22 (A, D, C)

Tách kết nối không mất thông tin

Định nghĩa: Cho lược đồ quan hệ R = {A1, A2,A3,…,An}, R1, R2,…,Rn là các tập con của R vàhú là ột hé tá h ủ R tứ làchúng là một phép tách của R, tức là

, F là PTH trên R.1 2 ... kR R R R= ∪ ∪

Ta nói phép tách R thành các lược đồ conp=(R1,R2,…,Rk) không mất thông tin đối với F nếuới i hệ t ê R à F thỏ ã thìvới mọi quan hệ r trên R mà F thỏa mãn thì:

1 2. . ... . kr r R r R r R=

- 90 -

Ví dụ về tách kết nối ko mất t.tin

Cho lược đồ

α=<U={MaSV, TenSV, MaMT, TenMon, Diemthi};{ , , , , };F={MaSV TenSV; MaMT TenMon;

MaSV,MaMT Diemthi}>

Tách lược đồ α thành các lược đồ sauα1 =<U1={MaSV, TenSV}; F1={MaSV TenSV}>α1 U1 {MaSV, TenSV}; F1 {MaSV TenSV}α2 =<U2={MaMT, Tenmon}; F2={MaMT Tenmon}>α3 =<U3={MaSV, MaMT, Diemthi};

F {M SV M MT Di hi}F3={MaSV, MaMT Diemthi}>

- 91 -

Ví dụ (cont.)

Lấy quan hệ R là quan hệ KETQUA (MaSV, TenSV,MaMT, Tenmon, Diemthi), khi đó ta có

R KETQUA[M SV T SV] SINHVIENR1=KETQUA[MaSV, TenSV] = SINHVIEN α1R2=KETQUA[MaMT, Tenmon] = MONTHI α2R3=KETQUA[MaSV, MaMT, Diemthi]=KQUA α3

∈∈∈R3 KETQUA[MaSV, MaMT, Diemthi] KQUA α3

Khi cần ta khôi phục lại thông tin

KETQUA SINHVIEN MONTHI KQUA=

- 92 -

Ví dụ tách (không) tổn thất thông tin

Cho R={X,Y,Z} tập các thuộc tính vàGiả sử quan hệ gốc R và các quan hệ tách như

sau

Ta thấy

1 2R R R⊆

- 93 -

Ví dụ tách (không) tổn thất thông tinCho R {X Y Z} tập các th ộc tính àCho R={X,Y,Z} tập các thuộc tính vàGiả sử quan hệ gốc R và các quan hệ tách như

sau

Ta thấy 1 2R R R=

Nếu một phép tách không có tính chất nối không mất mátNếu một phép tách không có tính chất nối không mất mátthông tin thì chúng ta có thể nhận được các bộ phụ thêm(các bộ giả) sau khi áp dụng các phép chiếu và nối tựnhiên Nghĩa của từ mất mát ở đây là mất mát thông tin chứ

- 94 -

nhiên. Nghĩa của từ mất mát ở đây là mất mát thông tin chứkhông phải mất các bộ giá trị. Vì vậy với tính chất này tanên gọi chính xác hơn là tính chất nối không phụ thêm.

Kiểm tra tính tách kết nối

Thuật toán ChaseInput: Sơ đồ quan hệ R = {A1,A2,…,Ak} làl đồ hệ F là tậ á PTH hé tá hlược đồ quan hệ. F là tập các PTH; phép táchp={R1,R2,…,Rk}Output: Khẳng định phép tách kết nối khôngOutput: Khẳng định phép tách kết nối khôngmất thông tin không?

Thuật toán:ảXây dựng bảng

Xây dựng một bảng gồm n cột và m hàng, cộtj tương ứng với thuộc tính Aj hàng i tươngj tương ứng với thuộc tính Aj, hàng i tươngứng với RiỞ vị trí hàng i cột j, ta ký hiệu là aj nếu Aj

- 95 -

thuộc Ri, ngược lại ta ký hiệu là bij.Ta có bảng T như sau:

Kiểm tra tính tách kết nối

- 96 -

Kiểm tra tính tách kết nối

Bước lặp: Áp dụng các PTH trong F cho bảng vừaxây dựng

Xét hiề lầ ỗi PTH X Y th ộ F h đế khiXét nhiều lần mỗi PTH X Y thuộc F cho đến khikhông xét được nữa. Với mỗi PTH X Y màtrong bảng có giá trị giống nhau trên tập X thì tatrong bảng có giá trị giống nhau trên tập X thì tacho chúng bằng nhau trên tập Y với lưu ý là nếumột trong 2 ký hiệu là aj thì chọn aj, ngược lạilà bằ hú bằ ột t á ký hiê blàm bằng chúng bằng một trong các ký hiêu bijThuật toán dừng khi trong bảng có một dòngtoán là ký tự a hoặc cho đến khi không xét đượctoán là ký tự a hoặc cho đến khi không xét đượcnữa.

Kết luận: Nếu có một dòng toàn a thì phép tách

- 97 -

Kết luận: Nếu có một dòng toàn a thì phép táchkết nối đó không mất thông tin. Ngược lại phéptách có mất thông tin.

Ví dụ

R= {A,B,C,D,E,F}; R1={A,B,D,E}; R2={A,C,D,F};R3={B,C,E,F}; F={A B,F E}

Bước 1: Lập bảng

B ớc 2 Áp d ng A B s ra b aBước 2: Áp dụng A B, suy ra b22=a2

- 98 -

Ví dụ

Bước 3: Áp dụng F E, suy ra b25=a5

ấPhép tách không làm mất thông tin.

- 99 -

Ví dụ

F= {A B, C D, D EG}R1={A,B,C,D}, R2={D,E,G}

D EG: b15=a5, b16=a6;dòng đầu chứa toàn aiPhép tách không mất thông tin

- 100 -

Ví dụ

Cho lược đồ quan hệ R = {A,B,C,D,E}

Tá h R thà h á l đồTách R thành các lược đồ sauR1 = ADR2 = ABR2 ABR3 = BER4 = CDER5 AER5 = AE

Tập PTH F = {A C, B C, C D, DE C, CE A}Xác định phép tách trên có mất thông tin hayXác định phép tách trên có mất thông tin haykhông?

- 101 -

Lập bảng

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

A B C D EA B C D E

AD a1 b12 b13 a4 b15

AB a1 a2 b23(b13) b24(a4) b25

BE b31(a1) a2 b33(b13)(a3)

b34(a4) a5

CDE b41 b42 a3 a4 a5CDE b41 b42 a3 a4 a5

AE a1 b52 b53(b13)(a3)

b54(a4) a5

- 102 -

)

dòng 3 chứa toàn aiPhép tách không mất thông tin

Tách quan hệ thành các quan hệ BCNF với tính chất nối không mất thông tintính chất nối không mất thông tin

Input: Lược đồ quan hệ R và tập các PTH F trêncác thuộc tính R

1. Đặt D = {R}2 Khi có một LĐQH Q trong D không phải ở BCNF thực

các thuộc tính R

2. Khi có một LĐQH Q trong D không phải ở BCNF, thựchiện vòng lặp:

Với mỗi LDQH Q trong D không ở BCNF hãy tìmột PTH X Y t Q i h BCNF à th thế Qmột PTH X Y trong Q vi phạm BCNF và thay thế Q

trong D bằng hai lược đồ quan hệ (Q-Y) và (XUY).Quá trình lặp dừng khi không còn quan hệ nào trongQuá trình lặp dừng khi không còn quan hệ nào trongD vi phạm BCNF.Mỗi lần đi vào vòng lặp trong thuật toán trên, chúng

ta tách một quan hệ Q không phải BCNF thành hai- 103 -

ta tách một quan hệ Q không phải BCNF thành hailược đồ quan hệ. Kết thúc thuật toán, tất cả cácquan hệ trong D sẽ ở BCNF.

Tách quan hệ thành các quan hệ BCNF với tính chất nối không mất thông tin

Trong bước 2 của thuật toán trên, cần xác định

tính chất nối không mất thông tin

xem một LĐQH Q có ở BCNF hay không. Mộtphương pháp để làm điều đó là kiểm tra. Với mỗiPTH X Y trong Q ta tính X+PTH X Y trong Q, ta tính X .Nếu X+không chứa tất cả các thuộc tính trong Qthì X Y vi phạm BCNF bởi vì X không phải làgmột siêu khóa.

- 104 -

Ví dụ

Xét LĐQH R = {A, B, C, D, E, F}. Với các PTHA BCDEF, BC ADEF, B F, D E, D BL đồ hệ à ó 2 khó là A à BCLược đồ quan hệ này có 2 khóa là A và BC

Ta có B F vi phạm BCNF vì B+><R nên B không phảilà siêu khóa.R được tách thành: R1(B,F) với PTH B F,R2(A,B,C,D,E) với các PTH A BCDE, BC ADE,D E D BD E, D B.Xét R2: Do D E vi phạm BCNF (D là thuộc tính khôngkhóa), R2 được tách thành: R21(D,E) với PTH D E,R (ABCD) ới á PTH A BCD BC AD D BR22(ABCD) với các PTH A BCD, BC AD, D B.Xét R22: Do D B vi phạm BCNF (D không phải làthuộc tính khóa), R22 được tách thành: R221(D,B),

- 105 -

) 22 221( )R222(A,C,D) với PTH A CD (PTH BC AD bị mất)Tóm lại ta có phép tách D={R1,R2,R221,R222}

Kết luận…Nội dung chính của chương

Phụ thuộc hàm

Hệ diễ A tHệ suy diễn Armstrong

Thuật toán tìm bao đóng

Thuật toán tìm khóa

Các dạng chuẩnCác dạng chuẩn

Kiểm tra tách kết nối có làm mất thông tin?

- 106 -

-------

----

----

----

----

- 107 -

Recommended