1. Trang chủ
  2. » Công Nghệ Thông Tin

Public cuối kì cơ sở dữ liệu k15 21 22

78 6 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

Tiêu đề Cơ sở dữ liệu BHT đoàn khoa MMT&TT – Training cuối kỳ 1 kỳ I
Tác giả Vũ Minh Đức, Trần Đặng Hồng Loan
Trường học Trường Đại học Công Nghiệp Thành Phố Hồ Chí Minh
Chuyên ngành Cơ sở dữ liệu
Thể loại Báo cáo môn học
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 78
Dung lượng 2,17 MB

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

Nội dung

Truy vấn có gom nhómSELECT , FROM WHERE GROUP BY HAVING - Các hàm kết hợp: COUNT, MIN, MAX, SUM, AVG - Sau khi gom nhóm: mỗi nhóm các bộ sẽ có cùng giá trị tại các thuộc tính gom nh

Trang 2

Ràng buộc toàn vẹn

Ngôn ngữ truy vấn

NỘI DUNG CHÍNH

Phụ thuộc hàm Dạng chuẩn

Trang 3

NGÔN NGỮ TRUY VẤN 1

Trang 5

1 Toán tử cơ bản

- Toán tử so sánh: =, >, >=, <=, <>

- Toán tử logic: AND, OR, NOT

- Phép toán: +, -, * , /

- Toán tử khác: BETWEEN AND; IS NULL, IS NOT NULL;

LIKE (_ , %); IN, NOT IN; EXISTS, NOT EXISTS; SOME, ANY, ALL

Trang 6

[HAVING <điều kiện>]

[ORDER BY <tên cột> ASC | DESC]

Trang 7

3 Truy vấn cơ bản

Tên các cột cầnhiển thị trong kếtquả truy vấn

Tên các bảngliên quan đếntruy vấn

Biểu thức điều kiện

Trang 8

4 Truy vấn có kết bảng

SELECT <danh sách cột>

FROM <bảng A> [INNER] JOIN <bảng B>

ON <bảng A>.<khóa ngoại> = <bảng B>.<khóa chính>

[WHERE <điều kiện> ]

Trang 9

Câu 1.2b:

SELECT K.MAKB, B.MABN, HOTEN

FROM KHAMBENH K JOIN BENHNHAN B

ON K.MABN = B.MABN

WHERE YEAR(B.NGSINH) > 2020 AND K.BENH = ‘Tim mạch’

Cho biết thông tin(MAKB, MABN, HOTEN) của những bệnh nhân sinh sau năm 2020

có khám bệnh chính là ‘Tim mạch’

BENHNHAN(MABN, HOTEN, NGSINH, CMND, DIACHI, DOITUONG, SLPT)

KHAMBENH(MAKB, MABN, BENH, BENHKT, BATDAU, KETHUC, KETLUAN, TAIKHAM)

Trang 10

5 Truy vấn có sắp xếp

SELECT <danh sách cột>

FROM <danh sách bảng>

WHERE <điều kiện>

ORDER BY <danh sách cột> [ASC | DESC ]

Lưu ý:

- ASC : tăng và DESC : giảm

- Khi sau mệnh đề ORDER BY chỉ có danh sách cột thì mặc định sẽ sắp

xếp ASC (tăng dần)

Trang 11

=> Sắp xếp tăng dần theo

DOANHSO, nếu có cùng

DOANHSO sẽ sắp xếp tăng

dần theo NGDK

Trang 12

Cho biết thông tin bệnh nhân (HOTEN, CMND) thuộc đối tượng ‘BHYT’

hoặc có địa chỉ ở ‘Đồng Nai’ Kết quả được sắp xếp theo số lần phẫu thuật

giảm dần

BENHNHAN(MABN, HOTEN, NGSINH, CMND, DIACHI, DOITUONG, SLPT)

Trang 13

6 Truy vấn có gom nhóm

SELECT <danh sách cột>, <hàm kết hợp>

FROM <danh sách bảng>

WHERE <điều kiện>

GROUP BY <danh sách cột gom nhóm>

HAVING <điều kiện gom nhóm>

- Các hàm kết hợp: COUNT, MIN, MAX, SUM, AVG

- Sau khi gom nhóm: mỗi nhóm các bộ sẽ có cùng giá trị tại các thuộc

tính gom nhóm

- Sử dụng HAVING để kiểm tra một số điều kiện nào đó và sau khi gom

nhóm, điều kiện gom nhóm mới được thực thi

Trang 14

6 Truy vấn có gom nhóm

SELECT NV.MANV, NV.HOTEN, COUNT(*) AS TongSoHD

FROM HOADON HD, NHANVIEN NV

WHERE HD.MANV = NV.MANV

GROUP BY NV.MANV, NV.HOTEN HAVING COUNT(*) <= 2

Ví dụ: In ra thông tin nhân viên có số lượng hóa đơn đã lập ít hơn 2:

Trang 15

Câu 1.2c: (HK1 2020-2021)

SELECT B.MABN, HOTEN, COUNT(K.MAKB) AS SL

FROM BENHNHAN B JOIN KHAMBENH K

BENHNHAN(MABN, HOTEN, NGSINH, CMND, DIACHI, DOITUONG, SLPT)

KHAMBENH(MAKB, MABN, BENH, BENHKT, BATDAU, KETHUC, KETLUAN, TAIKHAM)

Trang 17

7 Truy vấn lồng

* Mệnh đề WHERE của câu truy vấn cha

- <biểu thức> <so sánh tập hợp> <truy vấn con>

- So sánh tập hợp thường đi cùng với một số toán tử: IN, NOT IN;

ALL; ANY hoặc SOME

- Kiểm tra sự tồn tại: + EXISTS + NOT EXISTS

* Lồng phân cấp: Mệnh đề WHERE của truy vấn con không tham

chiếu đến thuộc tính của các quan hệ trong mệnh đề FROM ở truy

vấn cha => Khi thực hiện, câu truy vấn con sẽ được thực hiện trước

* Lồng tương quan: Mệnh đề WHERE của truy vấn con tham chiếu ít

nhất một thuộc tính của các quan hệ trong mệnh đề FROM ở truy

vấn cha => Khi thực hiện, câu truy vấn con sẽ được thực hiện nhiều

lần, mỗi lần tương ứng với một bộ của truy vấn cha

Trang 19

Câu 1.2d: (HK1 2020-2021)

SELECT MABS, HOTEN

FROM BACSI

WHERE CHUYEMON = ‘Tai–Mũi–Họng’ AND

MABS NOT EXISTS ( SELECT B.MABS

FROM BACSI B JOIN PHUTRACH P

ON B.MABS = P.MABS

WHERE B.CHUYEMON = ‘Tai–Mũi–Họng’ AND

YEAR(P.BATDAUPT) = 2020 )

Cho biết thông tin những bác sĩ (MABS, HOTEN) có chuyên môn

‘Tai-Mũi-Họng’ chưa được phụ trách khám bệnh trong năm 2020 (BATDAUPT)

BACSI(MABS, HOTEN, NAMSINH, CHUYENMON, KHOA, BENHVIEN)

PHUTRACH(MABS, MAKB, BATDAUPT, KETTHUCPT)

Trang 20

8 Phép toán tập hợp

SELECT <danh sách cột 1>

FROM <danh sách bảng>

WHERE <điều kiện 1>

UNION (hội) |INTERSECT (giao) |EXCEPT (trừ)

SELECT <danh sách cột 2>

FROM <danh sách bảng>

WHERE <điều kiện 2>

Lưu ý: Để sử dụng các phép hội giao trừ thì 2 quan hệ phải khả hợp,

tức: <danh sách cột 1> = <danh sách cột 2>

=> Kết quả trả về làtập hợp

• Loại bỏ các bộtrùng nhau

• Để giữ lại các bộtrùng nhau: UNION ALL; INTERSECT ALL; EXCEPT ALL

Trang 22

SELECT MANV, HOTEN

FROM NHANVIEN JOIN HOADON

ON NHANVIEN.MANV = HOADON.MANV

WHERE HOADON.NGHD = ‘1/10/2020’

Trang 23

=> R:S là tập các giá trị ai trong R sao cho không

có giá trị bi nào trong S làm cho bộ (ai , bi ) không tồn tại trong R

Trang 24

FROM R R2 WHERE R2.D=S.D AND

R2.E=S.E AND R1.A=R2.A AND R1.B=R2.B AND R1.C=R2.C ))

Trang 25

FROM CTHD CT WHERE CT.MASP = SP.MASP AND

CT.SOHD = HD.SOHD)

)VD: Tìm trị giá hóa đơn đã mua tất cả các sản phẩm

Trang 26

BENHNHAN(MABN, HOTEN, NGSINH, CMND, DIACHI, DOITUONG, SLPT)

KHAMBENH(MAKH, MABN, BENH, BENHKT, BATDAU, KETHUC, KETLUAN, TAIKHAM)

PHAUTHUAT(MAPT, MAKB, BOPHANPT, LOAIPT, KETQUA)

BACSI(MABS, HOTEN, NAMSINH, CHUYENMON, KHOA, BENHVIEN)

PHUTRACH(MABS, MAKB, BATDAUPT, KETTHUCPT)

Câu 1.2e:

Cho biết (MABS, HOTEN) của những bác sĩ chuyên môn ‘Hồi sức – Cấp

cứu’ tham gia tất cả các mã khám bệnh của bệnh nhân ‘Nguyễn Văn A’

Trang 27

SELECT DISTINCT B.MABS, HOTEN

FROM BACSI B

WHERE B.CHUYENMON = ‘Hồi sức – Cấp cứu’

AND NOT EXISTS ( SELECT *

FROM BENHNHAN BN

WHERE BN.HOTEN = ‘Nguyễn Văn A’

AND NOT EXISTS ( SELECT *

FROM PHUTRACH P, KHAMBENH K

WHERE B.MABS = P.MABS AND

P.MAKB = K.MAKB AND K.MABN = BN.MABN) )

Câu 1.2e:

Cho biết (MABS, HOTEN) của những bác sĩ chuyên môn ‘Hồi sức – Cấp

cứu’ tham gia tất cả các mã khám bệnh của bệnh nhân ‘Nguyễn Văn A’

Trang 28

#Một số chú ý

- Các từ khóa sử dụng với SELECT: DISTINCT loại bỏ dòng trùng, * lấy hết

các cột, COUNT(*) đếm số hạng

- Mệnh đề TOP n [WITH TIES] : lấy theo thứ tự từ trên xuống dưới n dòng,

từ khóa WITH TIES để lấy cả những giá trị cùng hạng

Trang 29

ORDER BY SUM (P.BATDAUPT) DESC

Cho biết thông tin bác sĩ (MABS, HOTEN) có số lần phụ trách khám bệnh

nhiều nhất

BACSI(MABS, HOTEN, NAMSINH, CHUYENMON, KHOA, BENHVIEN)

PHUTRACH(MABS, MAKB, BATDAUPT, KETTHUCPT)

Trang 30

RÀNG BUỘC TOÀN VẸN 2

Trang 31

1 Khái niệm

Ràng buộc toàn vẹn là các quy định, điều kiện từ ứng dụng thực tế, các điều kiện

này là bất biến

=> Đảm bảo cơ sở dữ liệu thoả ràng buộc toàn vẹn sau mỗi thao tác làm thay đổi

tình trạng của cơ sở dữ liệu

MỤC TIÊU:

Bảo đảm tính kết dính của các thành phần cấu tạo nên

CSDL

Bảo đảm tính nhất quán của dữ liệu

Bảo đảm CSDL luôn biểu diễn đúng ngữ nghĩa thực tế

Trang 32

hệ đó thì RBTV có khả năng

bị vi phạm

Nội dung

Phát biểu bằng ngôn ngữ tự nhiên hoặc bằng ngôn ngữ hình thức(ngôn ngữ tân từ, đại số quan hệ, mã giả, )

Là bảng 2 chiều, xác định thao tác ảnh hưởng và thao tác không ảnh hưởng lên các QH nằm trong bối cảnh

Trang 33

- Dấu -(*): không vi phạm do thao tác

không thực hiện được

Trang 34

Liên thuộc tính, liên quan hệ

Do thuộc tính tổng hợp

Liên bộ, liên quan hệTham chiếu

Liên bộLiên thuộc tínhMiền giá trị

Trang 35

3.1.1 RBTV miền giá trị

Trang 36

3.1.2 RBTV liên thuộc tính

Là ràng buộc giữa các thuộc tính với nhau trên 1 bộ của quan hệ

Xét lược đồ quan hệ:

DEAN(MADA, TENDA, DIADIEM_DA, NGBD_DK, NGKT_DK)

Ví dụ: Với mọi đề án, ngày bắt đầu dự kiến (NGBD_DK) phải nhỏ hơn ngày

kết thúc dự kiến (NGKT_DK)

Bối cảnh: DEAN

Nội dung: ∀ d ∈ DEAN: d.NGBD_DK < d.NGKT_DK

Bảng tầm ảnh hưởng:

Trang 37

SINHVIEN(MSSV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP)

Ví dụ: Tất cả các sinh viên phải có mã số phân biệt với nhau

Bối cảnh: SINHVIEN

Nội dung: ∀ s1, s2 ∈ SINHVIEN: s1 ≠ s2 => s1.MSSV ≠ s2.MSSV

Bảng tầm ảnh hưởng:

Trang 38

NHANVIEN(MANV, HO, TEN, NGSINH, PHAI, MA_NQL, MAPH, LUONG)

Ví dụ: Mỗi trưởng phòng phải là 1 nhân viên trong công ty

Bối cảnh: NHANVIEN, PHONGBAN

Nội dung: ∀ p ∈ PHONGBAN, ∃ n ∈ NHANVIEN: p.TRGPH = n.MANV

Bảng tầm ảnh hưởng:

Trang 39

3.2.3 RBTV liên thuộc tính, liên QH

Ràng buộc giữa các thuộc tính trên những quan hệ khác nhau

Xét lược đồ quan hệ:

DATHANG(MaDH, MaKH, NgayDH)

GIAOHANG(MaGH, MaDH, NgayGH)

Ví dụ: Ngày giao hàng không được trước ngày đặt hàng

Bối cảnh: DATHANG, GIAOHANG

Nội dung: ∀ gh ∈ GIAOHANG,

∃ dh ∈ DATHANG: dh.MaDH = gh.MaDH ∧ dh.NgayDH <= gh.NgayGH

Bảng tầm ảnh hưởng:

Trang 40

3.2.2 RBTV liên bộ, liên quan hệ

Ràng buộc xảy ra giữa các bộ trên nhiều quan hệ khác nhau

Xét lược đồ quan hệ:

HOADON(SoHD, NgayHD, MaKH, TriGia)

CTIETHD(SoHD, MatHang, SoLuong)

Ví dụ: Mỗi hoá đơn phải bán ít nhất một mặt hàng

Bối cảnh: HOADON, CTIETHD

Nội dung: ∀ hd ∈ HOADON, ∃ ct ∈ CTIETHD: hd.SoHD= ct.SoHD

Bảng tầm ảnh hưởng:

Trang 41

3.2.4 RBTV do thuộc tính tổng hợp

Ràng buộc giữa các thuộc tính, các bộ trên những quan hệ khác nhau

Thuộc tính tổng hợp là thuộc tính được tính toán từ giá trị của các thuộc tính

khác, các bộ khác

Xét lược đồ quan hệ:

SANPHAM(Masp,Tensp, Nuocsx, Gia)

KHACHHANG(Makh, Hoten, Doanhso)

HOADON(Sohd, Nghd, Makh, SLMH, Trigia)

CTHD(Sohd, Masp, SL, Gia)

Ví dụ: Trị giá của một hoá đơn bằng tổng thành tiền của các chi

tiết thuộc hoá đơn đó

Trang 42

3.2.4 RBTV do thuộc tính tổng hợp

HOADON(Sohd, Ngayhd, Makh, SLMH, Trigia)

CTHD(Sohd, Masp, SL, Gia)

Bối cảnh: HOADON, CTHD

Nội dung: ∀ h ∈ HOADON,

h.Trigia = Ʃ(ct ∈ CTHD: ct.SoHD = h.SoHD) (ct.SL * ct.Gia)

Bảng tầm ảnh hưởng:

Trang 43

Câu 1: (HK1 2017 – 2018)

Trang 44

Câu 1.1: (HK1 2017 – 2018)

Câu 1: Cho lược đồ cơ sở dữ liệu “Quản lí thẻ tài khoản” có cấu trúc như

sau:

KhachHang(MaKH, HoTen, NgaySinh, DiaChi, SoDT, CMND)

LoaiTaiKhoan(MaLTK, TenLTK, MoTa)

TaiKhoan(SoTK, MaKH, MaLTK, NgayMo, SoDu, LaiSuat, TrangThai)

LoaiGiaoDich(MaLGD, TenLGD, MoTa)

GiaoDich(MaGD, SoTK, MaLGD, NgayGD, SoTien, NoiDung)

1.1 Hãy phát biểu chặt chẽ ràng buộc toàn vẹn (bao gồm bối

cảnh, nội dung, bảng tầm ảnh hưởng):

Khách hàng chỉ được mở tài khoản (SoTK) khi khách hàng có

tuổi từ 14 trở lên

Trang 46

PHỤ THUỘC HÀM DẠNG CHUẨN

3

Trang 47

Dạng chuẩn 2Dạng chuẩn 1

KhoáBao đóng

Hệ luật dẫn Amstrong

Thuật toán tìm khoá

Trang 48

nếu và chỉ nếu r1[X] = r2[X] => r1[Y] = r2[Y], tức là với mỗi giá trị

của X trong R chỉ tương đương với 1 giá trị của Y

X -> Y là 1 phụ thuộc hàm, hay Y phụ thuộc X

Trang 49

Phụ thuộc hàm

Hệ luật dẫn Amstrong:

Với X, Y, Z, W ⊆ U Phụ thuộc hàm có các tính chất sau:

F1) Tính phản xạ: Nếu Y ⊆ X thì X → Y

VD: Mahv, Hoten → Hoten

F2) Tính tăng trưởng: {X→Y} thì XZ → YZ

VD: CMND → Hoten => CMND, Diachi → Hoten, Diachi

F3) Tính bắc cầu: {X→Y, Y→Z} thì X→Z

VD: Manv → Maph

Maph → Tenph => Manv → Tenph

Trang 50

F5) Tính phân rã: {X→YZ} thì {X→Y,X→Z}

Manv → Hoten, Gioitinh

=> {Manv → Hoten, Manv → Gioitinh}

F6) Tính tựa bắt cầu: {X→Y, YZ→W} thì XZ→W

Masv → Malop

Malop, Mamh → Magv

=> Manv → Hoten, Gioitinh

=> Masv, Mamh → Magv

Trang 52

Phụ thuộc hàm

Hệ luật dẫn Amstrong

Ví dụ:

Cho Q={ABCDEGH} và tập phụ thuộc:

F={ A→C, AB→DG, BC→AH, BG→DE, AG→E, CG→H }

BC→DG có thuộc F+ không?

Rối quá!

Không phải khi nào cũng dễ dàng có thể dùng tiên đề Armstrong để tìm được chuỗi suy diễn này khi Q lớn và F

có quá nhiều giả thiết gây rối

⇒ Sử dụng bao đóng tập thuộc tính sẽ đơn giản hơn rất nhiều để giải quyết vấn đề trên

Trang 53

Phụ thuộc hàm

Bao đóng của tập phụ thuộc hàm F, ký hiệu F+ là tập tất cả các

phụ thuộc hàm được suy ra từ F

Thuật toán tìm bao đóng của tập thuộc tính

Bao đóng của tập thuộc tính X đối với tập phụ

thuộc hàm F, ký hiệu là X+

F là tập tất cả các thuộc tính A có thể suy dẫn từ X nhờ tập bao

đóng của các phụ thuộc hàm F+

X+

F = { A ∈ Q+ | X → A ∈ F+ }

Bao đóng

Trang 54

Phụ thuộc hàm

Bao đóng

Thuật toán tìm bao đóng của tập thuộc tính

Trang 56

Phụ thuộc hàm

Cho tập thuộc tính Q, tập phụ thuộc hàm F trên Q và một phụ

thuộc hàm X → Y trên Q Câu hỏi đặt ra rằng X → Y ∈ F+ hay

không?

Dựa vào tính chất X → Y ∈ F+ ⇔ Y ⊆ X+F

Ta tìm bao đóng X+

FNếu Y ⊆ X+

F thì X → Y ∈ F+

ngược lại X → Y không thuộc F+

Từ ví dụ 2 tìm bao đóng của tập thuộc tính AC Cho biết AC → E

Trang 58

Phụ thuộc hàm

Khoá

Định nghĩa

Cho lược đồ quan hệ Q(A1, A2, …, An), Q+ là tập

thuộc tính của quan hệ Q, F là tập phụ thuộc hàm

trên Q, K là tập con của Q+ Khi đó K gọi là một

khóa của Q nếu:

(i) K+

F = Q+

(ii) Không tồn tại K’⊂ K sao K’+

F = Q+

Thuộc tính A được gọi là thuộc tính khóa nếu A∈ K,

trong đó K là khóa của Q Ngược lại thuộc tính A

được gọi là thuộc tính không khóa

K’ được gọi là siêu khóa nếu K ⊆ K’

Trang 59

Phụ thuộc hàm

Khoá

Thuật toán tìm khoá

Tập thuộc tính nguồn, ký hiệu là N, là tập chứa

những thuộc tính chỉ xuất hiện ở vế trái của

mọi phụ thuộc hàm

Tập thuộc tính trung gian, ký hiệu là TG, là tập

chứa những thuộc tính vừa xuất hiện ở vế

trái, vừa xuất hiện ở vế phải trong các phụ

thuộc hàm

Trang 60

F = Q+thì chỉ có 1 khoá là N, ngược lại qua bước 2.

(ghi chú Q+ là tập các thuộc tính của quan hệ)

Bước 2: Tính tập trung gian TG

Tính tập tất cả các tập con Xi của tập TG

Bước 3: Tìm tập S chứa mọi siêu khóa Si:

Với mỗi Xi , nếu (N ∪ Xi)+

F= Q+ thì Si=(N∪ Xi)Nếu: (N ∪ Xi)+

F= Q+ khi đó N ∪ Xilà một khóa Do vậy loại bỏcác trường hợp Xj: Xi ⊂ Xj

VD: Xi =AB, Xj =ABC Ta thấy Xi ⊂ Xj, nếu Xi là khóa thì không cần

xét trường hợp Xj nữa

Trang 61

Phụ thuộc hàm

Khoá

Thuật toán tìm khoá

Ví dụ 1: Cho lược đồ quan hệ Q(A, B, C, D, E) và tập phụ thuộc

hàm: F = { B → E, AB → CD, BC → A } Tìm mọi khóa của Q

Trang 62

Phụ thuộc hàm

Khoá

Thuật toán tìm khoá

Ví dụ 2: Cho lược đồ quan hệ Q(A, B, C, D) và tập phụ thuộc

hàm: F = { A → BCD, CD → AB } Tìm mọi khóa của Q

N = { }, N+

F ≠ Q+

TG = {A, C, D}, tập các tập con trung gian là Xi = {A, C, D, AC, AD, CD, ACD}

Kết luận: Các khoá của Q là A, CD

Trang 63

Các dạng chuẩn

Dạng chuẩn 1 (1NF)

Lược đồ Q ở dạng chuẩn 1 nếu mọi thuộc tính đều mang giá trị

nguyên tố

Giá trị nguyên tố là giá trị không phân nhỏ được nữa

Các thuộc tính đa trị (multi-valued), thuộc tính đa

hợp(composite) không là nguyên tố

Ví dụ: Thuộc tính ĐiaChỉ : Số 12 Đường Võ Văn Ngân Phường

Linh Trung Quận Thủ Đức không là nguyên tố

ĐịaChỉ → (SốNhà, Đường, Phường, Quận)

Trang 64

Các dạng chuẩn

Dạng chuẩn 1 (1NF)

HOADON(MaHD, MaKH, NgayHD, CtietMua, SoTien)

CtietMua không là nguyên tố nên lược đồ quan hệ HOADON

không đạt Dạng chuẩn 1

Trang 65

Kiểm tra dạng chuẩn 2

Bước 1: Tìm mọi khóa của Q

Bước 2: Với mỗi khóa K, tìm bao đóng của tập tất cả các tập con

thực sự Si của K

Bước 3: Nếu tồn tại bao đóng Si+ chứa thuộc tính không khóa thì

Q không đạt dạng chuẩn 2, ngược lại Q đạt dạng chuẩn 2

Trang 66

Các dạng chuẩn

Dạng chuẩn 2 (2NF)

Ví dụ:

Cho Q1 (A, B, C, D), F={A→B, B→DC}

Hỏi Q có đạt dạng chuẩn 2 hay không?

Lược đồ chỉ có một khóa là A, khoá này chỉ có duy nhất 1 thuộc

tính, nên mọi thuộc tính đều phụ thuộc đầy đủ vào khóa Do vậy

Q1 đạt dạng chuẩn 2

Ví dụ:

Cho Q2 (A, B, C, D), F={AB → D, C → D}

Lược đồ có khóa là ABC, ngoài ra còn có C⊂ABC mà C → D,

trong đó D là thuộc tính không khóa (nghĩa là thuộc tính D không

phụ thuộc đầy đủ vào khóa) Do vậy Q2 không đạt dạng chuẩn 2

Trang 67

Kiểm tra dạng chuẩn 3

Bước 1: Tìm mọi khóa của Q

Bước 2: Phân rã vế phải của mọi phụ thuộc hàm trong F để tập F trở thành

tập phụ thuộc hàm có vế phải một thuộc tính

Bước 3: Nếu mọi phụ thuộc hàm X → A ∈ F, mà A ∉ X đều thỏa

(1) X là siêu khóa (vế trái chứa một khóa), hoặc

(2) A là thuộc tính khóa (vế phải là tập con của khóa) thì Q đạt dạng chuẩn

3, ngược lại Q không đạt dạng chuẩn 3

Trang 68

Các dạng chuẩn

Dạng chuẩn 3 (3NF)

Ví dụ:

Cho Q (A, B, C, D), F={AB → D, C → D}

Bước 1: Q có một khóa là ABC

Bước 2: Mọi phụ thuộc hàm trong F đều đã có vế phải một thuộc tính

Bước 3: Với AB → D, nhận thấy rằng D ∉ AB có

• Vế trái (AB) không phải là siêu khóa

• Hơn nữa vế phải (D) không là thuộc tính khóa

Vậy Q không đạt dạng chuẩn 3

Ngày đăng: 26/07/2023, 21:54

TỪ KHÓA LIÊN QUAN

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

w