Tải bản đầy đủ (.ppt) (23 trang)

3NF

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 (619.5 KB, 23 trang )

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

<b>CHUẨN HÓA LƯỢC ĐỒ </b>


<b>CƠ SỞ DỮ LiỆU</b>



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

<b>Thuật ngữ</b>



Thuộc tính khơng khóa – Non key


Là thuộc tính mà nó khơng là thành viên trong
các khóa, hay nó khơng tồn tại trong các khóa.
Ngựợc lại gọi là thuộc tính khóa


VD: Lược đồ quan hệ Q(<b>ABC</b>D<b>E</b>G)
Giả sử Q có khóa là AB, CE


<sub>Thì những thuộc tính D, G được gọi là thuộc </sub>


tính <i>khơng khóa</i>


<sub>Những thuộc tính A, B, C, E gọi là thuộc tính </sub>


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

Dạng chuẩn 3
Dạng chuẩn 2
Dạng chuẩn 1
CSDL đạt chuẩn


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

<b>Nội dung</b>



Bài tập dạng chuẩn



<b>1</b>




Bài tập về nhà (nhóm)



<b>2</b>



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

<b>Cho lược đồ quan hệ HOCSINH được thể </b>
<b>hiện dưới đây. Hãy chuẩn hóa lược đồ quan </b>
<b>hệ này.</b>


<b>Mahs</b> <b>Hoten</b> <b>Malop</b> <b>Tenlop</b> <b>Điemthi</b>


H1 Tien L1 TH01 M1 9


H1 Tien L1 TH01 M2 7


H1 Tien L1 TH01 M3 8


H2 Truc L1 TH01 M1 9


H2 Truc L1 TH01 M2 8


H3 Hien L2 TH02 M1 5


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

Dạng chuẩn 1


NF1 giải quyết 2 vấn đề:


1. Tính ngun tố: khơng có phần tử lặp.


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

Đưa về dạng chuẩn 1(NF1)



<b>1</b>


<b>Mahs</b> <b>Hoten</b> <b>Malop</b> <b>Tenlop</b> <b>Điemthi</b>


H1 Tien L1 TH01 M1 9


H1 Tien L1 TH01 M2 7


H1 Tien L1 TH01 M3 8


H2 Truc L1 TH01 M1 9


H2 Truc L1 TH01 M2 8


H3 Hien L2 TH02 M1 5


<b>HOCSINH</b>


Lược đồ quan hệ HOCSINH không ở dạng chuẩn 1 vì
thuộc tính <i>Diemthi</i> là thuộc tính phức hợp


Có phải dạng
chuẩn 1?
Làm sao để
đưa về dạng


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

Đưa về dạng chuẩn 1(NF1)


<b>1</b>



<b>HOCSINH</b>


Lược đồ quan hệ <i>R</i> ở <i>dạng chuẩn 1 (1NF)</i> vì các
thuộc tính của <i>R</i> khơng là thuộc tính đa trị, khơng là
thuộc tính phức hợp


Thêm thuộc
tính mơn học


<b>Mahs</b> <b>Hoten</b> <b>Malop</b> <b>Tenlop</b> <b>Monhoc</b> <b>Điem</b>


H1 Tien L1 TH01 M1 9


H1 Tien L1 TH01 M2 7


H1 Tien L1 TH01 M3 8


H2 Truc L1 TH01 M1 9


H2 Truc L1 TH01 M2 8


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

Đưa về dạng chuẩn 1(NF1)


<b>1</b> <sub>thường ở </sub>Các bất


NF1:


 <sub>Thêm vào:</sub>


• Khơng thể thêm thơng tin của học sinh mới có mã là <i>H4</i>, tên là <i>Thành</i>, thuộc



lớp có mã là <i>L1 </i>nếu học sinh này chưa đăng ký mơn học nào cả.


 <sub>Cập nhật:</sub>


• Sửa tên của học sinh có tên là <i>Tiến</i> với tên mới là <i>Thành</i> sẽ phải sửa tất cả
các hàng của sinh viên này.


 <sub>Xóa bỏ:</sub>


• Xóa thơng tin của học sinh <i>H3</i> đăng ký môn học <i>M1</i> sẽ làm mất thông tin của


học sinh này


 <b>Nguyên nhân: Tồn tại thuộc tính khơng khóa phụ thuộc </b>


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

Dạng chuẩn 2


Khơng có phụ thuộc hàm


khơng đầy đủ vào khóa



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

Đưa về dạng chuẩn 2(NF2)


<b>2</b>


<b>Mahs</b> <b>Hoten</b> <b>Malop</b> <b>Tenlop</b> <b>Monhoc</b> <b>Diem</b>


H1 Tien L1 TH01 M1 9


H1 Tien L1 TH01 M2 7



H1 Tien L1 TH01 M3 8


H2 Truc L1 TH01 M1 9


H2 Truc L1 TH01 M2 8


H3 Hien L2 TH02 M1 5


HOCSINH


Khóa: {Mahs, Monhoc}
Các phụ thuộc hàm:


Mahs → {Hoten, Malop}
Malop → Tenlop


{Malop, Monhoc} → Diem


Lược đồ quan hệ <i>R</i> khơng ở NF2 vì thuộc tính khơng khóa <i>Hoten</i>


phụ thuộc hàm riêng phần vào khóa <i>{Mahs, Monhoc}</i>


Có phải dạng
chuẩn 2?


Làm sao đưa
về dạng chuẩn


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

Đưa về dạng chuẩn 2(NF2)



<b>2</b>


R<sub>1</sub> R<sub>2</sub>


Khóa của R<sub>1</sub>: Mahs


Khóa của R<sub>2</sub>: {Mahs, Monhoc}
R (Mahs, Monhoc, Hoten, Malop, Tenlop, Diem)


R<sub>1</sub> (Mahs, Hoten, Malop, Tenlop)


R<sub>2</sub> (Mahs, Monhoc, Diem)


Lược đồ quan hệ <i>R<sub>1</sub> và R<sub>2</sub> đều ở </i>2NF vì thuộc tính khơng khóa đều phụ thuộc hàm đầy đủ
vào khóa


<b>Mahs Hoten Malop Tenlop</b>


H1 Tien L1 TH01
H2 Truc L1 TH01
H3 Hien L2 TH02


<b>Mahs Monhoc Diem</b>


H1 M1 9


H1 M2 7


H1 M3 8



H2 M1 9


H2 M2 8


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

<b>Dạng chuẩn 2</b>
<b>2</b>


R<sub>1</sub> R<sub>2</sub>


<b>Mahs Hoten Malop Tenlop</b>


H1 Tien L1 TH01
H2 Truc L1 TH01
H3 Hien L2 TH02


<b>Mahs Monhoc Diem</b>


H1 M1 9


H1 M2 7


H1 M3 8


H2 M1 9


H2 M2 8


H3 M1 5



<b>Thêm vào:</b>


<b>Không thể thêm thông tin của lớp ‘L3’ có tên ‘TH03’ nếu chưa có học sinh nào học </b>
<b>lớp này.</b>


<b>Cập nhật:</b>


<b>Sửa tên của lớp có mã ‘L1’ với tên mới ‘TH_01’ sẽ phải sửa tất cả các hàng của lớp </b>
<b>này.</b>


<b>Xóa bỏ:</b>


<b>Xóa thơng tin của học sinh ‘</b><i><b>H3’</b></i><b> sẽ làm mất thông tin của lớp ‘L2’</b>


<b>Nguyên nhân:</b>


Vấn đề
tồn tại


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

Dạng chuẩn 3


Khơng tồn tại phụ thuộc


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



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

R<sub>1</sub>


<b>Lược đồ quan hệ </b><i><b>R</b><b><sub>1</sub></b></i><b> không ở 3NF vì thuộc tính khơng khóa Tenlop phụ </b>


<b>thuộc bắc cầu vào khóa </b><i><b>{Mahs}</b></i>



<b>Mahs → Malop</b> <b>Malop → Tenlop</b>


<b>Tenlop ∉ {Mahs, Malop}</b>


<b>Mahs Hoten Malop Tenlop</b>


H1 Tien L1 TH01
H2 Truc L1 TH01
H3 Hien L2 TH02


Đưa về dạng
chuẩn 3 như


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

R<sub>11</sub> R<sub>12</sub>


Khóa của R<sub>11</sub>: Malop Khóa của R<sub>2</sub>: Mahs


R<sub>1</sub> (Mahs, Hoten, Malop, Tenlop)
R<sub>11</sub> (Malop, Tenlop)


R<sub>12</sub> (Mahs, Hoten, Malop)


Lược đồ quan hệ <i>R<sub>11</sub> và R<sub>12</sub> đều ở </i>3NF vì thuộc tính khơng khóa đều khơng phụ
thuộc bắc cầu vào khóa


<b>Malop Tenlop</b>


L1 TH01
L2 TH02



<b>Mahs</b> <b>Hoten</b> <b>Malop</b>


H1 Tien L1
H2 Truc L1
H3 Hien L2


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

<b>Bài 1: Cho biết dạng chuẩn của các lược độ quan hệ sau:</b>


a. Q(ABCDEG); F={ABC, CDE, EG}


b. Q(ABCDEGH); F={A  BC, D E, H G}


c. Q(ABCDEG); F={AB  C, C  B, ABD  E,


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

<b>Câu 2</b>



<sub>Cho lược đồ csdl: KEHOACH(NGAY, GIO, </sub>


MONHOC, GIAOVIEN) và các phụ thuộc hàm


F = { NGAY, GIO, PHONG  MONHOC


MONHOC, NGAY  GIAOVIEN


NGAY, GIO, PHONG  GIAOVIEN


MONHOC  GIAOVIEN }


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

<b>NỘI DUNG ƠN TẬP KiỂM TRA 1 TiẾT</b>



<sub>Bài tốn tìm bao đóng của tập thuộc tính</sub>
<sub>Bài tốn tìm F</sub>+


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

<!--links-->

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×