Tải bản đầy đủ (.doc) (58 trang)

Chuẩn hóa cơ sở dữ liệu

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 (196.76 KB, 58 trang )

Chơng 3: chuẩn hoá
3.1. Giới thiệu
Theo các lý do đ đã ợc nêu trong chơng 2, trong mô hình quan hệ, chỉ
cho phép các quan hệ đ đã ợc chuẩn hoá
Trong phần 2.3, thông qua ví dụ chúng ta đ biết một quan hệ chã a
chuẩn hoá chuyển thành một quan hệ chuẩn hoá tơng đơng nh thế nào
Đặc biệt, chúng ta sẽ biết một quan hệ đ cho, mặc dù nếu đ đã ã ợc
chuẩn hoá vẫn có thể có những thuộc tính không mong muốn nào đó
và chúng ta sẽ biết cách chuyển quan hệ nh vậy thành dạng tốt hơn
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
84
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
85
Các quan hệ tổng quát (đ chuẩn hoá và chưa chuẩn hoá)ã
Các quan hệ 1NF (các quan hệ đ chuẩn hoá)ã
Các quan hệ 2NF
Các quan hệ 3NF, BCNF
Các quan hệ 4NF
Hình 3.1. Các mức của chuẩn hoá
Codd là ngời đầu tiên đ định nghĩa ba mức chuẩn hoá mà ông gọi làã
dạng chuẩn thứ nhất, thứ hai và thứ ba
Tóm lại:
Tất cả các quan hệ đ đã ợc chuẩn hoá đều ở dạng chuẩn thứ
nhất (1NF: First Normal Form)
Một số quan hệ 1NF cũng ở dạng chuẩn thứ hai (2NF: Second
Normal Form)
một số quan hệ 2NF cũng ở dạng chuẩn thứ ba (3NF: Third
Normal Form)
Sau đó, Fagin đ định nghĩa dạng chuẩn thứ bốn (4NF: Fourth Normalã


Form) với tính chất một số quan hệ 3NF cũng ở dạng chuẩn thứ bốn
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
86
Hình 3.1 cho ta thấy, "dạng chuẩn mong muốn hơn" mà đ đã ợc lu ý đến
trong chơng trớc là dạng chuẩn thứ bốn
Nh vậy, mục đích của chơng này là:
minh hoạ các u điểm của dạng chuẩn thứ ba, BCNF
cho biết làm thế nào để chuyển một quan hệ cha ở dạng chuẩn
thứ ba, BCNF thành một tập hợp các quan hệ tơng đơng ở dạng
chuẩn 3NF, BCNF
3.2. Phụ thuộc hàm
Phụ thuộc hàm (Funtional dependency - FD) trong một quan hệ là khái
niệm rất quan trọng, đặc biệt đối với ngời quản trị hệ thống khi thiết kế
mô hình dữ liệu
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
87
Định nghĩa:
Cho trớc một quan hệ R, chúng ta nói rằng, thuộc tính Y
của R là phụ thuộc hàm vào thuộc tính X của R nếu và chỉ
nếu mỗi giá trị của X trong R đợc kết hợp với đúng một giá
trị của Y trong R tại bất kỳ thời điểm nào
Lu ý là, một giá trị của X có thể xuất hiện trong nhiều bộ khác nhau của
R nhng nếu Y là phụ thuộc hàm vào X thì định nghĩa trên nói với chúng
ta là các bộ khác nhau đó phải chứa cùng một giá trị của Y
Ví dụ:
Trong quan hệ S của mô hình dữ liệu h ng-cung-cấp-và-mặt-ã
hàng có các thuộc tính SNAME, STATUS và CITY đều là phụ
thuộc hàm vào thuộc tính S# vì:

===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
88
nếu cho trớc một giá trị của S# thì sẽ có đúng một giá
trị tơng ứng của từng thuộc tính SNAME, STATUS và
CITY
Chúng ta có thể biểu thị các phụ thuộc hàm này bằng sơ đồ nh trên
hình 3.2.
Hình 3.2. Các phụ thuộc hàm trong quan hệ S
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
89
SNAME
STATUSS#
CITY
Sự nhận biết các phụ thuộc hàm là một phần rất quan trọng để hiểu ý
nghĩa hoặc ngữ nghĩa của dữ liệu
Ví dụ:
CITY là phụ thuộc hàm vào S# có nghĩa là mỗi một h ng cungã
cấp chỉ đặt địa chỉ ở đúng một thành phố
Nói một cách khác, chúng ta áp đặt lên thực tế điều kiện là
CSDL biểu thị:
mỗi h ng cung cấp chỉ đặt trụ sở ở đúng một thành phốã
Vì đây là một phần ngữ nghĩa của tình huống này nên sự áp đặt này
cần phải đợc thể hiện trong mô hình dữ liệu
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
90
Cách thức để đảm bảo điều này đợc thể hiện là chỉ định điều kiện áp
đặt này trong định nghĩa mô hình dữ liệu (nghĩa là, trong lợc đồ khái

niệm) sao cho hệ quản trị CSDL có thể thi hành nó
Cách thức để chỉ định điều kiện áp đặt trong lợc đồ khái niệm là khai
báo sự phụ thuộc hàm
Sau này chúng ta sẽ thấy các khái niệm về chuẩn hoá sẽ cho ta các
cách khai báo đơn giản các phụ thuộc hàm nh vậy.
Sự phụ thuộc hàm có thể mở rộng để bao trùm cả trờng hợp mà X hoặc
Y hoặc cả hai là các thuộc tính ghép (composit attributes)
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
91
• VÝ dô:
 Trong quan hÖ SP cña m« h×nh d÷ liÖu h ng-cung-cÊp-vµ-mÆt-·
hµng, thuéc tÝnh QTY lµ phô thuéc hµm vµo thuéc tÝnh ghÐp
(S#, P#)
♦Chóng ta cã thÓ biÓu diÔn t×nh huèng nµy nh trong h×nh
3.3.
H×nh 3.3. Phô thuéc hµm trong quan hÖ SP
===============================================================================
"C¬ së d÷ liÖu". PGS.TS. NguyÔn ViÖt H¬ng. Khoa §T-VT. §HBK-HN. 11/2004
92
S#
P#
QTY
Theo lý thuyết quan hệ, ta có thể định nghĩa phụ thuộc hàm nh sau:
Cho R(U) là một lợc đồ quan hệ với U = {A
1
, ..., A
n
} là
tập thuộc tính. X và Y là tập con của U.

Nói rằng X

Y (đọc là X xác định hàm Y hoặc Y phụ
thuộc hàm vào X) nếu r là một quan hệ xác định trên
R(U) sao cho đối với bất kỳ hai bộ t
1
, t
2


r mà
t
1
[X] = t
2
[X] thì t
1
[Y] = t
2
[Y]
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
93
Phụ thuộc hàm đầy đủ (fully functionally dependent):
Thuộc tính Y đợc gọi là phụ thuộc hàm đầy đủ vào
thuộc tính X nếu nó là phụ thuộc hàm vào X và
không phụ thuộc hàm vào bất kỳ một tập con nào
của các thuộc tính của X (X phải là thuộc tính ghép)
Ví dụ:
Trong quan hệ S: thuộc tính CITY là phụ thuộc hàm vào thuộc

tính ghép (S#, STATUS)
Tuy nhiên, nó không phụ thuộc hàm đầy đủ vào thuộc tính
ghép này vì đồng thời nó cũng phụ thuộc hàm vào riêng S#
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
94
Sau đây chúng ta sẽ nói "phụ thuộc hàm" với ý nghĩa phụ
thuộc hàm đẩy đủ trừ khi có giải thích tờng minh
Cho đến giờ, tất cả các ví dụ mà chúng ta xét (trong quan hệ S, P và
SP) đều có các tính chất phụ thuộc hàm vào khoá chính
Tuy nhiên không phải trờng hợp này cũng nh vậy
Một quan hệ mà các phụ thuộc hàm đều là phụ thuộc hàm vào
khóa chính nh vậy phải ít nhất là ở dạng chuẩn thứ ba, mặc dầu
không nhất thiết là ở dạng chuẩn thứ bốn
Nhng nh sau này chúng ta sẽ thấy, không phải tất cả các quan hệ đ ởã
dạng chuẩn thứ ba đều tuân theo mẫu chuẩn đơn giản này
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
95
3.3. Các dạng chuẩn thứ nhất, thứ hai và thứ ba
Để thuận tiện, mục này sẽ làm việc với ba dạng chuẩn đầu tiên, còn
dạng chuẩn BCNF sẽ đợc nghiên cứu sâu hơn trong mục 3.4
Tuy nhiên, để có thể có đợc ý niệm về mục đích nghiên cứu các dạng
chuẩn, mục này sẽ đa ra định nghĩa về dạng chuẩn thứ bốn một cách
theo cảm giác cho dễ hiểu
Sau đó, mục này và các mục sau sẽ nghiên cứu quá trình chuyển một
quan hệ bất kỳ thành một tập tơng đơng các quan hệ ở dạng chuẩn thứ
BCNF
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004

96
Quan hệ R đợc gọi là ở dạng chuẩn thứ bốn (4NF) nếu và
chỉ nếu tại mọi thời điểm, mỗi bộ của R gồm giá trị khoá
chính (dùng để nhận dạng duy nhất một thực thể nào đó)
và một tập các giá trị của các thuộc tính độc lập với nhau
để mô tả thực thể
Hai thuộc tính đợc gọi là độc lập với nhau nếu không thuộc
tính nào là phụ thuộc hàm vào thuộc tính kia; các thuộc
tính này có thể là các thuộc tính ghép
Ví dụ:
Quan hệ S là ở dạng chuẩn thứ bốn
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
97
Các quan hệ P và SP cũng trong dạng chuẩn thứ bốn
Nói chung, các thực thể đợc nhận dạng duy nhất bởi các giá trị khoá
chính là các thực thể cơ sở đợc ghi nhận bởi dữ liệu trong CSDL
Quan hệ R đợc gọi là ở dạng chuẩn thứ nhất (1NF) nếu và
chỉ nếu tất cả các miền đều chỉ chứa các giá trị nguyên tố.
Định nghĩa này chỉ đơn thuần cho ta biết là bất kỳ quan hệ đ chuẩnã
hoá nào cũng ở dạng chuẩn thứ nhất
Một quan hệ chỉ ở dạng chuẩn thứ nhất (nghĩa là một quan hệ 1NF mà
không là 2NF, do đó cũng không là 3NF hoặc BCNF) có cấu trúc không
mong muốn do một số lý do
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
98
Để minh hoạ điểm này, giả thiết:
Thông tin liên quan đến h ng cung cấp và số lã ợng đặt hàng thay
vì chia thành hai quan hệ tách biệt nhau (S và P), sẽ kết hợp lại

thành một quan hệ
FIRST (S#, STATUS, CITY, P#, QTY)
Các thuộc tính ở đây có ý nghĩa thông thờng của chúng
Tuy nhiên, để thuận tiện cho ví dụ, thêm một điều kiện:
STATUS là phụ thuộc hàm vào CITY
Ngoài ra, chúng ta cũng bỏ qua thuộc tính SNAME cho đơn
giản
Khoá chính của quan hệ FIRST là (S#, P#)
Hình 3.4. là sơ đồ phụ thuộc hàm của quan hệ FIRST này
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
99
Lu ý, sơ đồ này phức tạp hơn sơ đồ cho 4NF.
Hình 3.4. Các phụ thuộc hàm trong quan hệ FIRST
Từ hình 3.4 chúng ta thấy:
a. Các thuộc tính STATUS và CITY là không phụ thuộc hàm hoàn
toàn vào khoá chính (S#, P#)
b. Các thuộc tính STATUS và CITY là không độc lập với nhau
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
100
STATUS
CITY
S#
P#
QTY
Chính hai điều kiện này làm cho sơ đồ các phụ thuộc hàm của quan hệ
FIRST trên hình 3.4 phức tạp hơn sơ đồ các phụ thuộc hàm của các
quan hệ 4NF là S và SP trên hình 3.2 và 3.3
Và chính chúng làm nảy sinh các vấn đề khó khăn cho các phép toán

cơ sở mà ta sẽ xét sau đây
Để minh hoạ các vấn đề này, chúng ta xem xét một bảng dữ liệu mẫu
của quan hệ FIRST trên hình 3.5
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
101
S# STATUS CITY P# QTY
S1 20 London P1 300
S1 20 London P2 200
S1 20 London P3 400
S1 20 London P4 200
S1 20 London P5 100
S1 20 London P6 100
S2 10 Paris P1 300
S2 10 Paris P2 400
S3 10 Paris P2 200
S4 20 London P2 200
S4 20 London P4 300
Hình 3.5. Bảng dữ liệu mẫu của quan hệ FIRST
Quan hệ FIRST có các dị thờng trong các phép toán lu trữ giống nh các
dị thờng đ thấy trong mô hình phân cấp đ đã ã ợc mô tả trong chơng 1
Các vấn đề xuất hiện với ba phép toán cơ bản đợc thể hiện nh sau:
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
102
i. Chèn (Insert):
Chúng ta không thể đa thêm dữ liệu về địa chỉ thành phố của
một h ng cung cấp nào đó vào quan hệ FIRST cho đến khi h ngã ã
này thực sự cung cấp ít nhất một mặt hàng nào đó
Lý do vì:

Trớc khi h ng S5 cung cấp một mặt hàng nào đó thìã
chúng ta vẫn cha có khoá chính tơng ứng với h ng S5ã
này
Cần nhớ lại trong mục 2.2 chúng ta đ chỉ rõ là khôngã
một thành phần nào trong khoá chính đợc rỗng
Còn trong quan hệ FIRST, các giá trị khoá chính bao
gồm số hiệu h ng cung cấp và số hiệu mặt hàngã
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
103
ii. Xoá (Delete):
Nếu chúng ta xoá đi một bộ duy nhất của một h ng cung cấpã
nào đó trong quan hệ FIRST, chúng ta sẽ huỷ mất không chỉ số
lợng hàng liên kết h ng cung cấp này với một mặt hàng nào đóã
mà cả thông tin về địa chỉ thành phố của h ng cung cấp nàyã
Ví dụ:
Nếu trong quan hệ FIRST, xoá đi bộ (S3, P2), sẽ mất
thông tin về địa chỉ ở Paris của S3
Nh trong mục 1.3.2 về mô hình phân cấp, các vấn đề về
chèn và xoá thực sự là hai mặt của một đồng tiền
iii. Thay đổi (Update):
Địa chỉ thành phố của một h ng cung cấp nào đó (Ví dụ h ng S1)ã ã
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
104
trong quan hệ FIRST có thể xuất hiện nhiều lần
Sự d thừa dữ liệu này gây nên các vấn đề trong phép toán thay
đổi
Ví dụ:
Nếu h ng cung cấp S1 chuyển từ London đếnã

Amsterdam, chúng ta sẽ hoặc gặp phải bàI toán tìm
kiếm hoặc dữ liệu không nhất quán
SECOND SP
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
105
STATUS
CITY
S#
S#
P#
QTY
Hình 3.6. Các phụ thuộc hàm trong quan hệ SECOND và SP
Để giải quyết các vấn đề trên, chúng ta thay thế quan hệ FIRST bằng
hai quan hệ
SECOND (S#, STATUS, CITY)
SP (S#, P#, QTY)
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
106
Hình 3.6 chỉ ra các sơ đồ phụ thuộc hàm của hai quan hệ này
Hình 3.7 cho thấy bảng dữ liệu mẫu tơng ứng với các giá trị của hình
3.5
Quan hệ SP bây giờ thực tế giống hệt nh đ cho trên hình 2.5ã
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
SECOND S# STATUS CITY
S1 20 London
S2 10 Paris
S3 10 Paris

S4 20 London
S5 30 Athens
107
SP S# P# QTY
S1 P1 300
S1 P2 200
S1 P3 400
S1 P4 200
S1 P5 100
S1 P6 100
S2 P1 300
S2 P2 400
S3 P3 200
S4 P2 200
S4 P4 300
S4 P5 400
Hình 3.7. Bảng dữ liệu mẫu của các quan hệ SECOND và SP
Cấu trúc đ đã ợc sửa lại trên hình 3.7 này đ giải quyết đã ợc tất cả các vấn
đề về các phép tóan lu trữ liên quan đến sự kết hợp của S# và CITY:
i. Chèn (Insert):
Thậm chí hiện tại S5 không cung cấp bất kỳ một mặt hàng nào,
===============================================================================
"Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004
108

×