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>
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>
Dạng chuẩn 3
Dạng chuẩn 2
Dạng chuẩn 1
CSDL đạt chuẩn
<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
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.
Đư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
Đư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
Đư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>
Dạng chuẩn 2
Đư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
Đư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
<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
Dạng chuẩn 3
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ư
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
<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={ABC, CDE, EG}
b. Q(ABCDEGH); F={A BC, D E, H G}
c. Q(ABCDEG); F={AB C, C B, ABD E,
<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 }
<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>+