Tải bản đầy đủ (.pptx) (45 trang)

Bai 16 Chuan Hoa Luoc Do Quan He

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.48 MB, 45 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>BÀI 16:</b>



<b>CHUẨN HOÁ LƯỢC ĐỒ QUAN HỆ</b>



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

<b>NỘI DUNG :</b>



<b> </b>


<b> Một số khái niệm liên quan</b>
<b> Các dạng chuẩn</b>


<b> Dạng chuẩn 1 (1NF- Fist normal form)</b>


<b> Dạng chuẩn 2 (2NF- Second normal form)</b>
<b> Dạng chuẩn 3 (3NF- Third normal form)</b>


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

<b>NỘI DUNG CHI TIẾT :</b>



<b> </b>


<b> Một số khái niệm liên quan</b>
<b> Các dạng chuẩn</b>


<b> Dạng chuẩn 1 (1NF- Fist normal form)</b>


<b> Dạng chuẩn 2 (2NF- Second normal form)</b>
<b> Dạng chuẩn 3 (3NF- Third normal form)</b>


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

<b>16.1. MỘT SỐ KHÁI NIỆM LIÊN QUAN</b>



<b> </b>

<b>Chuẩn hóa: </b>


<b> Là quá trình tách một lược đồ quan hệ thành một tập các </b>
<b>lược đồ con, sao cho quá trình tách là không mất thông tin </b>
<b>và các lược đồ con là tối ưu hơn lược đồ ban đầu theo nghĩa: </b>
<b>hạn chế dư thừa dữ liệu, thuận lợi cho các quá trình tạo lập, </b>
<b>cập nhật và các thao tác tìm kiếm khác. </b>


<b> Định nghĩa về thuộc tính khóa: </b>


<b> Cho lược đồ quan hệ α=(U, F), thuộc tính A</b><b>U được gọi là </b>


<b>thuộc tính khóa nếu như A thuộc một trong các khóa nào đó, </b>
<b>ngược lại A được gọi là thuộc tính khơng khóa.</b>


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

<b>16.1. MỘT SỐ KHÁI NIỆM LIÊN QUAN</b>



<b> </b>

<b>Định nghĩa phụ thuộc hàm đầy đủ: </b>



<b>Cho lược đồ quan hệ α=(U, F), X, Y, Y</b>

<b>U tập thuộc </b>



<b>tính Y được gọi là phụ thuộc hàm đầy đủ vào tập thuộc </b>


<b>tính X nếu như Y phụ thuộc hàm vào X nhưng không </b>


<b>phụ thuộc hàm vào bất kỳ một tập con thực sự nào của </b>


<b>x tức là:</b>



<b> - X→ Y </b>

<b>( Y phụ thuộc hàm vào X)</b>


<b> - </b>

<b> X’</b>

<b> X thì X’</b>

<b>→ Y </b>

<b>(mọi tập con thực sự của X đều</b>


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

<b>16.1. MỘT SỐ KHÁI NIỆM LIÊN QUAN</b>




<b>Định nghĩa phụ thuộc hàm bắc cầu: </b>



<b> Cho lược đồ quan hệ α=(U, F), X</b>

<b>U, A</b>

<b>U, thuộc tính </b>



<b>A được gọi là phụ thuộc hàm bắc cầu vào tập thuộc tính </b>


<b>X nếu như Y </b>

<b>X để:</b>



<b> - X → Y</b>


<b> - Y → A</b>


<b> - Y</b>

<b>→ X</b>



<b> - </b>

<b>A </b>

<b> XY</b>



<b> Nêú X </b>

<b>→ </b>

<b>Y và Y không phụ thuộc bắc cầu vào X thì Y </b>


<b>phụ thuộc hàm trực tiếp vào X</b>



</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

<b>NỘI DUNG CHI TIẾT :</b>



<b> </b>


<b> Một số khái niệm liên quan</b>


<b> Các dạng chuẩn</b>


<b> Dạng chuẩn 1 (1NF- Fist normal form)</b>


<b> Dạng chuẩn 2 (2NF- Second normal form)</b>
<b> Dạng chuẩn 3 (3NF- Third normal form)</b>



</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

<b>16.2. CÁC DẠNG CHUẨN</b>


<b> Sự cần thiết chuẩn hóa dữ liệu: </b>


•<b> Mục tiêu: là triệt tiêu mức cao nhất khả năng xuất hiện các dị thường </b>


<b>thông tin khi thực hiện các phép lưu trữ.</b>


•<b> Chẩn hóa: khảo sát danh sách các thuộc tính và áp dụng các tập quy tắc </b>


<b>phân tích vào danh sách đó, biến đổi thành nhiều tập nhỏ hơn sao cho:</b>
<b> Tối thiểu việc lặp lại.</b>


<b> Tránh dị thường thông tin.</b>


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

<b>16.2. CÁC DẠNG CHUẨN</b>



<b>Q trình chuẩn hóa: </b>


<b> Là q trình tách lược đồ quan hệ về một nhóm tương </b>


<b>đương các lược đồ quan hệ chiếu sao cho khi kết nối tự nhiên </b>
<b>không làm tổn thất thông tin và bảo toàn được các phụ thuộc </b>
<b>hàm.</b>


<b>Cơ sở chuẩn hóa:</b>


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

<b>16.2. CÁC DẠNG CHUẨN</b>



<b>Ví dụ:</b>



<b>Lược đồ quan hệ QLCAP( TC#, GTR, MC#, N#, NXS)</b>


<b>Trong đó: TC# : Mã tuyến cáp GTR : Giá trị của cáp</b>
<b> NSX : Nước sản xuất MC# : Mã cáp </b>


<b> N# : Mã nước sản xuất </b>
<b>Ngữ nghĩa dữ liệu như sau:</b>


<b>Trong một tuyến cáp, giá trị của một loại cáp được xác định </b>
<b>duy nhất.</b>


</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

<b>16.2. CÁC DẠNG CHUẨN</b>



<b>Hình 16.1: Sơ đồ các phụ thuộc hàm trong lược đồ </b>
<b>quan hệ QLCAP</b>


<b>GTR</b>


<b>GTR</b>



<b>MC#</b>


<b>MC#</b>


<b>TC#</b>


<b>TC#</b>



<b>NSX</b>


<b>NSX</b>



<b>N#</b>


<b>N#</b>




</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

<b>16.2. CÁC DẠNG CHUẨN</b>



<b>TC#</b> <b>GTR</b> <b>MC#</b> <b>N#</b> <b>NSX</b>


T01 200 C01 HAQ Hàn Quốc
T01 250 C02 HAQ Hàn Quốc
T01 220 C03 VTC Việt Nam
T02 500 C01 HAQ Hàn Quốc
T02 400 C04 JAN Nhật Bản


T03 100 C05 RUS Nga


T04 400 C06 CHN Trung Quốc
T04 450 C03 VTN Việt Nam


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

<b>NỘI DUNG CHI TIẾT :</b>



<b> </b>


<b> Một số khái niệm liên quan</b>
<b> Các dạng chuẩn</b>


<b> Dạng chuẩn 1 (1NF- Fist normal form)</b>


<b> Dạng chuẩn 2 (2NF- Second normal form)</b>
<b> Dạng chuẩn 3 (3NF- Third normal form)</b>


</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

<b>16.2.1. DẠNG CHUẨN 1</b>



<b> (1NF-FIST NORMAL FORM) </b>




<b>Định nghĩa:</b>


<b>Một lược đồ quan hệ α=(U, F) được gọi là ở dạng chuẩn một ( 1NF) </b>
<b>nếu và chỉ nếu tất cả miền giá trị của các thuộc tính của R đều ngun </b>
<b>tố (khơng thể phân chia được)</b>


<b>Ví dụ:</b>


</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

<b>16.2.1. DẠNG CHUẨN 1</b>



<b> (1NF-FIST NORMAL FORM) </b>



<b>Ví dụ:</b>



<b>Bảng 16.2: Một ví dụ quan hệ không 1NF.</b>


<b>S#</b> <b>PRO</b>


P# QTY


S1 100 1


200 1


300 2


S2 100 2


200 2



S3 300 3


</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

<b>NỘI DUNG CHI TIẾT :</b>



<b> </b>


<b> Một số khái niệm liên quan</b>


<b> Các dạng chuẩn</b>


<b> Dạng chuẩn 1 (1NF- Fist normal form)</b>


<b> Dạng chuẩn 2 (2NF- Second normal form)</b>


<b> Dạng chuẩn 3 (3NF- Third normal form)</b>


</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

<b>16.2.2. DẠNG CHUẨN 2</b>



<b> (2NF-SECOND NORMAL FORM) </b>



<b>Trước khi nghiên cứu dạng chuẩn thứ 2, ta xét ví dụ sau đây:</b>
<b>Xét CSDL gồm 2 lược đồ quan hệ THI (MONTHI, </b>


<b>GIAOVIEN) và SINHVIEN ( MONTHI, MSSV, TEN, </b>


<b>TUOI, DCHI, DIEM) phản ánh thông tin về kết quả thi của </b>
<b>một đơn vị nào đó. </b>
<b>Trong quan hệ THI thì MONTHI là khóa và trong quan hệ </b>
<b>SINHVIEN thì MONTHI và MSSV là khóa. </b>


<b>Ở quan hệ thứ hai dễ nhận thấy rằng MONTHI, MSSV, </b>


</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

<b>16.2.2. DẠNG CHUẨN 2</b>



<b> (2NF-SECOND NORMAL FORM) </b>



<b>Xét các hiện hành của 2 lược đồ quan hệ THI và SINHVIEN </b>
<b>như sau:</b>


<b>THI</b>


<b>MONTHI</b> <b>GIAOVIEN</b>


<b>Tốn</b> <b>T.Trợ</b>


<b>Lý </b> <b>T.Cơng</b>


</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

<b>16.2.2. DẠNG CHUẨN 2</b>



<b> (2NF-SECOND NORMAL FORM) </b>


<b>SINHVIEN</b>


<b>MONTHI MSSV TEN</b> <b>TUOI</b> <b>DCHI</b> <b>DIEM</b>


Toán 11 Lan 20 HN 8.0


Toán 12 Hue 21 HY 7.5


Hóa 11 Lan 20 HN 7.0



Hóa 12 Hue 21 HY 6.0


Lý 11 Lan 20 HN 5.0


</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

<b>16.2.2. DẠNG CHUẨN 2</b>



<b> (2NF-SECOND NORMAL FORM) </b>



<b>Trong quá trình cập nhật, truy suất dữ liệu xuất hiện các vấn </b>
<b>đề sau:</b>


<b> Dư thừa dữ liệu</b>
<b> Phép thay đổi</b>
<b> Phép chèn</b>


</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>

<b>16.2.2. DẠNG CHUẨN 2</b>



<b> (2NF-SECOND NORMAL FORM) </b>


<b>Định nghĩa:</b>


<b> Cho lược đồ quan hệ α=(U, F), lược đồ α được gọi là ở dạng </b>
<b>chuẩn 2( ký hiệu là 2 NF) nếu như lược đồ ở dạng chuẩn 1 </b>
<b>NF và các thuộc tình khơng khóa của α là phụ thuộc đầy đủ </b>
<b>vào khóa chính.</b>


<b>Thuật tốn kiểm tra lược đồ có ở dạng chuẩn 2NF </b>


<b>hay không?</b>



<b>Input: Lược đồ quan hệ α =( U, F)</b>



</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>

<b>16.2.2. DẠNG CHUẨN 2</b>



<b> (2NF-SECOND NORMAL FORM) </b>


<b>Thuật toán 1:</b>


<b>Thuật toán kiểm tra dạng chuẩn 2NF</b>


<b>Vào: Lược đồ quan hệ Q, tập phụ thuộc hàm F</b>


<b>Ra: Khẳng định Q cóa đạt dạng chuẩn 2NF hay khơng</b>
<b>Bước 1: Tìm tất cả các khóa của Q</b>


<b>Bước 2: Với tất cả các khóa K, tìm bao đóng của tất cả các </b>
<b>tập con thật sự S của K.</b>


<b>Bước 3: Nếu có bao đóng S+ chứa thuộc tính khơng khóa thì </b>


</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>

<b>16.2.2. DẠNG CHUẨN 2</b>



<b> (2NF-SECOND NORMAL FORM) </b>



<b>Ví dụ:</b>


<b>Cho lược đồ quan hệ Q(A, B, C, D) và tập phụ thuộc hàm: </b>


<b>F={AB→C, B→D, BC→A } . Hỏi Q có đạt chuẩn 2NF hay không?</b>
<b>Giải:</b>


<b>I</b><b> =Q \ </b><b> ( Ri -Li )=ABCD \ (C</b><b>D</b><b>A)=B. I</b> <b>Q</b>



<b>N={</b><b> ( Ri -Li ) sao cho Li</b> <b>I</b><b> }=D</b>


<b>N’=(I</b><b> N)+ \ I</b><b> =(BD)+ \ B = D (N’</b><b> N</b><b> )</b>


<b>N’’=</b><b> Ri - </b><b> Li =ACD \ ABC=D</b>


<b>N</b><b>=N</b><b>N’</b><b>N’’=D</b>


<b>B=Q \ N</b><b> \ I</b><b>=ABCD \ D \ B=AC</b>


</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>

<b>16.2.2. DẠNG CHUẨN 2</b>



<b> (2NF-SECOND NORMAL FORM) </b>


<b>I</b><b> ={ B}, B={AC}</b>


<b>Khóa là K =AB và K =BC. Ta thấy B</b>  <b> K , B→D, D là thuộc </b>


<b>tính khơng khóa => thuộc tính khơng khóa khơng phụ thuộc </b>
<b>đầy đủ vào khóa .</b>


<b>=> Q không đạt chuẩn 2NF.</b>


<b>X</b> <b>(I</b><sub></sub> <b> X )</b> <b>(I</b><sub></sub> <b> X )</b> <b>+</b> <b>Siêu khóa</b> <b>Khóa</b>


<b>B</b> <b>BD</b>


<b>A</b> <b>AB</b> <b>ABCD</b> <b>AB</b> <b>AB</b>


<b>C</b> <b>BC</b> <b>ABCD</b> <b>ABCD</b> <b>BC</b>



</div>
<span class='text_page_counter'>(25)</span><div class='page_container' data-page=25>

<b>16.2.2. DẠNG CHUẨN 2</b>



<b> (2NF-SECOND NORMAL FORM) </b>


<b>Thuật Tốn 2:</b>


<b>Bước 1: Tìm tất cả các khóa của lược đồ α, từ tất cả các khóa </b>
<b>này ta suy ra các thuộc tính khơng khóa của lược đồ α. Ký </b>
<b>hiệu tập thuộc tính khơng khóa này là NK.</b>


<b>Bước 2: Với mỗi khóa Ki, ký hiệu họ của các tập con thực sự </b>


<b>của Ki là{ S1, S2, …, Ski }, ký hiệu Q={ Q1, Q2, …, Qn } là </b>
<b>họ tất cả các tập con thực sự của khóa Ki.</b>


<b>Bước 3: Tìm bao đóng Q+ ={ Q1+,Q2+, …, Qn+ }</b>


<b>Bước 4: Nếu Q+ </b><sub></sub><b> NK=</b><sub></sub><b> với mọi i=1…n thì lược đồ </b> <b>α ở dạng </b>


<b>chuẩn 2NF ngược lại tồn tại Q+ </b><sub></sub><b> NK</b><sub></sub><b> thì lược đồ α khơng </b>


</div>
<span class='text_page_counter'>(26)</span><div class='page_container' data-page=26>

<b>NỘI DUNG CHI TIẾT :</b>



<b> </b>


<b> Một số khái niệm liên quan</b>
<b> Các dạng chuẩn</b>


<b> Dạng chuẩn 1 (1NF- Fist normal form)</b>


<b> Dạng chuẩn 2 (2NF- Second normal form)</b>



<b> Dạng chuẩn 3 (3NF- Third normal form)</b>


</div>
<span class='text_page_counter'>(27)</span><div class='page_container' data-page=27>

<b>16.2.3. DẠNG CHUẨN 3</b>



<b> (3NF-THIRD NORMAL FORM) </b>


<b>Định nghĩa 1: </b>


<b> Cho lược đồ quan hệ α= ( U, F), lược đồ α được gọi là ở </b>
<b>dạng chuẩn 3 ( ký hiệu là 3 NF), nếu như lược đồ ở dạng </b>


<b>chuản 2NF và các thuộc tính khơng khóa của α là khơng phụ </b>
<b>thuộc hàm bắc cầu vào khóa chính.</b>


<b>Định nghĩa 2: </b>


<b> Cho lược đồ quan hệ α =( U, F), lược đồ α được gọi là ở </b>
<b>dạng chuẩn 3, ký hiệu là 3NF, nếu như mọi phụ thuộc hàm </b>
<b>X→ A </b><b> F+ với A </b><sub></sub><b> X thì:</b>


<b> - Hoặc X là siêu khóa.</b>


</div>
<span class='text_page_counter'>(28)</span><div class='page_container' data-page=28>

<b>16.2.3. DẠNG CHUẨN 3</b>



<b> (3NF-THIRD NORMAL FORM) </b>



<b>Nhận xét: </b>


<b> Lược đồ quan hệ α =( U, F), với F là tập các phụ thuộc hàm </b>
<b>có vế phải chỉ gồm một thuộc tính. Khi đó lược đồ α ở dạng </b>


<b>chuẩn 3NF khi và chỉ khi mọi phụ thuộc hàm X→A</b><b> F với </b>


<b>A </b><b> X đều có :</b>


<b> - Hoặc X là siêu khóa.</b>


</div>
<span class='text_page_counter'>(29)</span><div class='page_container' data-page=29>

<b>16.2.3. DẠNG CHUẨN 3</b>



<b> (3NF-THIRD NORMAL FORM) </b>



<b>Thuật toán kiểm tra lược đồ có ở dạng chuẩn 3NF hay </b>
<b>khơng?</b>


<b> Từ định nghĩa về dạng chuẩn 3NF trên ta có thuật tốn </b>
<b>kiểm tra xem một lược đồ có ở dạng chuẩn 3NF hay không </b>
<b>như sau:</b>


<b>Input: Lược đồ quan hệ α =( U, F)</b>


</div>
<span class='text_page_counter'>(30)</span><div class='page_container' data-page=30>

<b>16.2.3. DẠNG CHUẨN 3</b>



<b> (3NF-THIRD NORMAL FORM) </b>


<b>Thuật toán 1:</b>


<b>Thuật toán kiểm tra dạng chuẩn BCNF</b>


<b>Vào: Lược đồ quan hệ Q, tập phụ thuộc hàm F</b>


<b>Ra: Khẳng định Q có đạt dạng chuẩn 3NF hay khơng</b>
<b>Bước 1: Tìm tất cả khóa của Q.</b>



<b>Bước 2: Từ F tạo tập phụ thuộc hàm tương đương FItt có vế </b>


<b>phải một thuộc tính.</b>


<b>Bước 3: Nếu mọi phụ thuộc hàm X→ A</b><b> FItt với A </b><b> X đều </b>


</div>
<span class='text_page_counter'>(31)</span><div class='page_container' data-page=31>

<b>16.2.3. DẠNG CHUẨN 3</b>



<b> (3NF-THIRD NORMAL FORM) </b>


<b>Ví dụ:</b>


<b>Cho lược đồ quan hệ Q(A, B, C, D) F={ AB→C; </b>
<b>D→B; C→ABD } Hỏi lược đồ có ở dạng </b>
<b>chuẩn 3NF?</b>


<b>Giải:</b>


<b>I</b><b> =Q \ </b><b> ( Ri -Li )=ABCD \ ABCD= </b><b> , I</b> <b>Q</b>


<b>N={</b><b> ( Ri -Li ) sao cho Li</b> <b>I</b><b> }= </b>


<b>N’=(I</b><b> N)+ \ I</b><b> = </b><b> (N’</b><b> N</b><b> )</b>


<b>N’’=</b><b> Ri - </b><b> Li =ABCD \ ABCD= </b>
<b>N</b><b>=N</b><b>N’</b><b>N’’= </b>


<b>B=Q \ N</b><b> \ I</b><b>=ABCD \ </b><b> \ =ABCD</b>


</div>
<span class='text_page_counter'>(32)</span><div class='page_container' data-page=32>

<b>16.2.3. DẠNG CHUẨN 3</b>




<b> (3NF-THIRD NORMAL FORM) </b>



<b>K1= { AB };K2= { AD }; </b>


<b>K3= { C } là khóa</b>


<b>=> mọi phụ thuộc hàm </b>


<b>X→A</b><b>F đều có A là </b>


<b>thuộc tính khóa. </b>


<b>Vậy Q đạt chuẩn 3NF.</b>


<b>X</b> <b>(I</b><sub></sub> <b> X )</b> <b>(I</b><sub></sub> <b> X )</b> <b>+</b> <b>Siêu khóa</b> <b>Khóa</b>


A A A


B B B


C C ABCD C C


D D BD


AB AB ABCD AB AB
AC AC ABCD AC


AD AD ABCD AD AD
BC BC ABCD BC



BD BD BD


</div>
<span class='text_page_counter'>(33)</span><div class='page_container' data-page=33>

<b>16.2.3. DẠNG CHUẨN 3</b>



<b> (3NF-THIRD NORMAL FORM) </b>



<b>Thuật tốn 2:</b>


<b>Bước 1: Tìm tất cả khóa của lược đồ α.</b>


<b>Bước 2: Từ F tìm tập phụ thuộc hàm tương đương F’, mà vế </b>
<b>phải của các phụ thuộc hàm trong F’ chỉ có một thuộc tính.</b>
<b>Bước 3: Nếu mọi phụ thuộc hàm X→A</b><b>F’ với A</b><b>X đều có </b>


</div>
<span class='text_page_counter'>(34)</span><div class='page_container' data-page=34>

<b>NỘI DUNG CHI TIẾT :</b>



<b> </b>


<b> Một số khái niệm liên quan</b>


<b> Các dạng chuẩn</b>


<b> Dạng chuẩn 1 (1NF- Fist normal form)</b>


<b> Dạng chuẩn 2 (2NF- Second normal form)</b>
<b> Dạng chuẩn 3 (3NF- Third normal form)</b>


<b> Dạng chuẩn BCNF (Boyce Codd normal form)</b>



</div>
<span class='text_page_counter'>(35)</span><div class='page_container' data-page=35>

<b>16.2.4. DẠNG CHUẨN BCNF</b>



<b> (BOYCE CODD NORMAL FORM) </b>



<b>Định nghĩa 1: </b>


<b> Cho lược đồ quan hệ α= ( U, F), lược đồ α được gọi là ở </b>


<b>dạng chuẩn Boyce Codd, ký hiệu là BCNF, nếu như lược đồ </b>
<b>ở dạng chuẩn 1NF và nếu X→A</b><b>F+ (A</b><sub></sub><b>X) thì X phải là siêu </b>
<b>khóa của lược đồ.</b>


<b>Định ngĩa 2: </b>


<b> Cho lược đồ quan hệ α= ( U, F), lược đồ α được gọi là ở </b>


<b>dạng chuẩn Boyce Codd, ký hiệu là BCNF, nếu như lược đồ </b>
<b>ở dạng chuẩn 1NF và nếu X→A</b><b>Flà phụ thuộc hàm không </b>


</div>
<span class='text_page_counter'>(36)</span><div class='page_container' data-page=36>

<b>16.2.4. DẠNG CHUẨN BCNF</b>



<b> (BOYCE CODD NORMAL FORM) </b>



<b>Thuật toán kiểm tra lược đồ ở dạng chuẩn BCNF hay </b>
<b>không?</b>


<b>Từ định nghĩa về dạng chuẩn BCNF trên ta có thuật tốn </b>


<b>kiểm tra xem một lược đồ có ở dạng chuẩn BCNF hay khơng </b>
<b>như sau:</b>



<b>Input: Lược đồ quan hệ α =( U, F)</b>


</div>
<span class='text_page_counter'>(37)</span><div class='page_container' data-page=37>

<b>16.2.4. DẠNG CHUẨN BCNF</b>



<b> (BOYCE CODD NORMAL FORM) </b>



<b>Thuật toán 1:</b>


<b>Thuật toán kiểm tra dạng chuẩn BCNF</b>


<b>Vào: Lược đồ quan hệ Q, tập phụ thuộc hàm F</b>


<b>Ra: Khẳng định Q có đạt dạng chuẩn 3NF hay khơng</b>
<b>Bước 1: Tìm tất cả khóa của Q.</b>


<b>Bước 2: Từ F tạo tập phụ thuộc hàm tương đương FItt có vế </b>
<b>phải một thuộc tính.</b>


</div>
<span class='text_page_counter'>(38)</span><div class='page_container' data-page=38>

<b>16.2.4. DẠNG CHUẨN BCNF</b>



<b> (BOYCE CODD NORMAL FORM) </b>


<b>Ví dụ:</b>


<b>Q (A, B, C, D, E, I) F={ACD→EBI; CE→AD }. </b>
<b>Hỏi Q có đạt chuẩn BCNF hay khơng?</b>


<b>Giải:</b>


<b>I</b><b> =Q \ </b><b> ( Ri -Li )=ABCDEI \ (EBI</b><b>AD)=C => I</b> <b>Q</b>



<b>N={</b><b> ( Ri -Li ) sao cho Li</b> <b>I</b><b> } = </b>


<b>N’=(I</b><b> N)+ \ I</b><b> = </b><b> (N’</b><b> N</b><b> )</b>


<b>N’’=</b><b> R<sub>i</sub> - </b><b> L<sub>i</sub> =ABDEI \ ACDE=BI</b>
<b>N</b><b>=N</b><b>N’</b><b>N’’=BI</b>


<b>B=Q \ N’ \ I</b><b>=ABCDEI \ BI \ C=ADE</b>


</div>
<span class='text_page_counter'>(39)</span><div class='page_container' data-page=39>

<b>16.2.4. DẠNG CHUẨN BCNF</b>



<b> (BOYCE CODD NORMAL FORM) </b>



<b>F =FItt={ ACD→E, ACD→B, ACD→I, CE→A, CE→D} </b>
<b>Mọi phụ thuộc hàm của FItt đều có vế trái là siêu khóa</b>


<b>X</b> <b>(I</b><sub></sub> <b> X )</b> <b>(I</b><sub></sub> <b> X )</b> <b>+</b> <b>Siêu khóa</b> <b>Khóa</b>


<b>C</b> <b>C</b>


<b>A</b> <b>AC</b> <b>AC</b>


<b>D</b> <b>CD</b> <b>CD</b>


<b>E</b> <b>CE</b> <b>ABCDEI</b> <b>CE</b> <b>CE</b>


<b>AD</b> <b>ACD</b> <b>ABCDEI</b> <b>ACD</b> <b>ACD</b>


<b>AE</b> <b>ACE</b> <b>ABCDEI</b> <b>ACE</b>



<b>DE</b> <b>CDE</b> <b>ABCDEI</b> <b>CDE</b>


</div>
<span class='text_page_counter'>(40)</span><div class='page_container' data-page=40>

<b>16.2.4. DẠNG CHUẨN BCNF</b>



<b> (BOYCE CODD NORMAL FORM) </b>



<b>Thuật tán 2:</b>


</div>
<span class='text_page_counter'>(41)</span><div class='page_container' data-page=41>

<b>NỘI DUNG CHI TIẾT :</b>



<b> </b>


<b> Một số khái niệm liên quan</b>


<b> Các dạng chuẩn</b>


<b> Dạng chuẩn 1 (1NF- Fist normal form)</b>


<b> Dạng chuẩn 2 (2NF- Second normal form)</b>
<b> Dạng chuẩn 3 (3NF- Third normal form)</b>


<b> Dạng chuẩn BCNF (Boyce Codd normal form)</b>
<b> Thuật toán tìm dạng chuẩn cao nhất của lược đồ</b>


</div>
<span class='text_page_counter'>(42)</span><div class='page_container' data-page=42>

<b>16.2. THUẬT TỐN TÌM DẠNG CHUẨN </b>


<b>CAO NHẤT CỦA LƯỢC ĐỒ</b>



<b>Cho lược đồ quan hệ α =( U, F), hãy tìm dạng chuẩn cao nhất </b>
<b>của lược đồ α.</b>



<b>Input: Lược đồ quan hệ α =( U, F) ( ở đây ta giả thiết rằng </b>
<b>lược đồ α đã được chuẩn hóa, tức là đã ở dạng chuẩn 1).</b>
<b>Output: Dạng chuẩn cao nhất của lược đồ α.</b>


<b>Thuật tốn:</b>


<b>Bước 1: Tìm tất cả các khóa của lược đồ α.</b>


</div>
<span class='text_page_counter'>(43)</span><div class='page_container' data-page=43>

<b>16.2. THUẬT TỐN TÌM DẠNG CHUẨN </b>


<b>CAO NHẤT CỦA LƯỢC ĐỒ</b>



<b>Thuật toán:</b>


<b>Bước 3: Sử dụng thuật toán kiểm tra lược đồ ở dạng chuẩn </b>
<b>3NF, nếu lược đồ ở dạng 3NF thì dừng thuật tốn và kết luận </b>
<b>dạng chuẩn cao nhất của lược đồ là 3NF, ngược lại thì </b>


<b>chuyển qua bước tiếp theo.</b>


</div>
<span class='text_page_counter'>(44)</span><div class='page_container' data-page=44>

<b>NỘI DUNG CHI TIẾT :</b>



<b> </b>


<b> Một số khái niệm liên quan</b>


<b> Các dạng chuẩn</b>


<b> Dạng chuẩn 1 (1NF- Fist normal form)</b>



<b> Dạng chuẩn 2 (2NF- Second normal form)</b>
<b> Dạng chuẩn 3 (3NF- Third normal form)</b>


<b> Dạng chuẩn BCNF (Boyce Codd normal form)</b>
<b> Thuật tốn tìm dạng chuẩn cao nhất của lược đồ</b>


</div>
<span class='text_page_counter'>(45)</span><div class='page_container' data-page=45>

<b>16.4. MỐI QUAN HỆ GIỮA CÁC DẠNG </b>


<b>CHUẨN</b>



<b>Định lý: Một lược đị ở dạng chuẩn cao khi thì cũng ở dạng </b>
<b>chuẩn thấp, tuy nhiên điều ngược lại có thể đúng, điều này </b>
<b>được mơt tả trong hình sau:</b>


</div>

<!--links-->

×