Viêc xây dựng hệ thống quản lý thông tin bằng máy tính phục vụ cho
công tác quản lý việc bán thuốc cho cửa hàng thuốc tân dược là một bài toán
thực tế và đươc áp dụng trong phạm vi rộng rãi. Đề tài này chỉ mang tính cục
bố tuy nhiên hệ thống đã xây dựng và giải quyết được vấn đề của bài toán
quản lý việc bán thuốc cho cửa hàng thuốc tân dược.
Từ hệ thống căn bán này nếu được đầu tư về măt thời gian, công sức thì
có thể phát triển thành chương trình tốt hơn so với yêu cầu thực tế và hệ thống
mới chắc chắn sẽ giải quyết được vấn đề vướng mắc của công việc quản lý
thuốc
Qua thời gian học hỏi nghiên cứu cách thiết kế một chương trình ứng
dụng thực tế hiện nay bằng máy tính đến nay em đã hoàn thành đề tài “quản
lý việc bán thuốc cho cửa hàng thuốc tân dược”. Mặc dù chương trình chưa
được hoàn hảo, song quá trình làm việc và tìm hiểu em đã học hỏi được nhiều
điều bổ ích về phương pháp xây dựng một chương trình ứng dụng trong tin
học. Biết được cách tổ dữ liệu chức sao cho hợp lý, phù hợp với yêu cầu của
đề tài.
39 trang |
Chia sẻ: tuandn | Lượt xem: 3645 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Phân tích cơ sở dữ liệu quản lý cho cửa hàng thuốc tân dược, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TRêng ®¹i häc §HDL ph¬ng ®«ng §å ¸n häc kú 6
Gi¸o viªn híng dÉn : TS- Lª Huy ThËp SV: Hoµng §øc V¬ng 1
PHẦN I. CƠ SỞ DỮ LIỆU
CHƯƠNG 1: KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU
1.1. Khái niệm cơ bản về hệ quản trị cơ sở dữ liệu.
Từ trước đến nay trong giới tin học người ta thường nhắc về định nghĩa
cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu là gì? Cơ sở dữ liệu bao gồm các
thông tin được lưu trữ trong máy theo một quy định nào đó. Phần chương
trình để có thể xử lý, thay đổi dữ liệu được gọi là hệ quan trị dữ liệu nó có
nhiệm vụ rất quan trọng là một bộ diễn dịch với ngôn ngữ bậc cao nhằm giúp
người sử dụng có thể dùng được hệ thống mà không cần quan tâm đến thuật
toán chi tiết hoặc biểu diễn dữ liệu trong máy.
1.2. Kiến trúc một hệ cơ sở dữ liệu
Một cơ sở dữ liệu được phân làm nhiều mức khác nhau. Ta có thể phân
thành một cơ sở dữ liệu đơn giản và một hệ phần mềm QTCSDL.
Phần CSDL vật lý: Là các tệp dữ liệu theo một cấu trúc nào đó được lưu
trên các thiết bị nhớ thứ cấp (như đĩa từ, băng từ…).
Phần CSDL mức khái niệm: Là một sự biểu diễn trừu tượng của CSDL
vật lý.
Các khung nhìn: Là cách nhìn, là quan niệm của từng người sử dụng đối
với CSDL mức khái niệm. Sự khác nhau giữa khung nhìn và mức khái niệm
thực chất là không lớn.
User 1
User 2
Khung nhìn 1
Khung nhìn 1
User n Khung nhìn 1
CSDL mức
khái niệm
(logic)
CSDL mức
vật lý
Hình 1- Sơ đồ kiến trúc một hệ CSDL
TRêng ®¹i häc §HDL ph¬ng ®«ng §å ¸n häc kú 6
Gi¸o viªn híng dÉn : TS- Lª Huy ThËp SV: Hoµng §øc V¬ng 2
Thể hiện (instance).
Khi CSDL đã được thiết kế, người ta thường quan tâm đến “bộ khung”
hay còn gọi là “mẫu” của CSDL. Dữ liệu hiện có trong CSDL gọi là thể hiện
của CSDL, khi dữ liệu thay đổi trong một chu kỳ thời gian nào đó thì “bộ
khung” của CSDL vẫn không thay đổi.
Lược đồ (Scheme).
Thường “bộ khung” nêu trên bao gồm một số danh mục, hoặc chỉ tiêu
hoặc một số kiểu của các thực thể trong CSDL. Giữa các thực thể có thể có
mối quan hệ nào đó với nhau. Người ta sử dụng thuật ngữ “lược đồ” để thay
thế cho khái niệm “bộ khung”.
Lược đồ khái niệm là bộ khung của CSDL khái niệm, còn lược đồ vật lý
dùng cho bộ khung của CSDL mức vật lý, khung nhìn được gọi là lược đồ
con.
Cơ sở dữ liệu vật lý.
Mức thấp nhất của kiến trúc một hệ thống CSDL vật lý, CSDL vật lý có
thể được xem là tổ chức ở nhiều mức khác nhau như bản ghi (record) và tệp
(file).
Lược đồ khái niệm và mô hình dữ liệu.
Lược đồ khái niệm là sự biểu diễn thế giới thực bằng một loạt ngông ngữ
phù hợp. QTCSDL cung cấp ngôn ngữ định nghĩa dữ liệu để xác định lược đồ
khái niệm. Đây là ngôn ngữ bậc cao có khả năng mô tả lược đồ dữ liệu bằng
cách biểu diễn của mô hình dữ liệu.
Hiện có nhiều loại mô hình dữ liệu. Ba loại mô hình cơ bản đang được
sử dụng là:
1. Mô hình phân cấp (hierachical model): Mô hình dữ liệu là một cây,
trong đó các nút biểu diễn các tập thực thể, giữa nút con và nút cha được liên
hệ theo một mối quan hệ xác định.
2. Mô hình dưới (Network model): Mô hình được biểu diễn là một đồ t
hị có hướng.
TRêng ®¹i häc §HDL ph¬ng ®«ng §å ¸n häc kú 6
Gi¸o viªn híng dÉn : TS- Lª Huy ThËp SV: Hoµng §øc V¬ng 3
3. Mô hình quan hệ (Relational model): Mô hình này dựa trên cơ sở khái
niệm lý thuyết tập hợp các quan hệ, tức là tập các k – bộ với k cố định.
Tính độc lập dữ liệu.
Tính độc lập dữ liệu là tính bất biến các hệ ứng dụng với các thay đổi
trong cấu trúc truy nhập và chiến lược truy nhập.
CHƯƠNG 2: MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ.
2.1. Các khái niệm cơ bản.
Khái niệm toán học của mô hình quan hệ là quan hệ hiểu theo nghĩa lý t
huyết tập hợp: Là tập con của tích Đề – Các của các miền. Miền (domain) là
một tập các giá trị.
Ví dụ: Tập các số nguyên, tập các xâu ký tự tạo thành tên người trong
tiếng anh có độ dài không quá 30 ký tự, tập hai só {0,1} là một miền…
Gọi D1, D2…, Dn là n miền. Tích Đề – Các của n miền là D1 x D2x…x
Dn là tập tất cả n – bộ (n – tuples v1, v2…, vn) sao cho viDi với i = 1…n, v.v
Ví dụ: n = 2, D1 = {0,1}, D2 = {a, b, c} khi đó.
D1x D2 = {(0,a), (0,b), (0,c), (1,a),(1,b), (1,c)}.
Quan hệ: Quan hệ là một tập hợp con của tích Đề – Các của một hoặc
nhiều miền. Như vậy mối quan hệ có thể là vô hạn. Người ta giả thiết rằng,
mối quan hệ là một tập hữu hạn.
Mỗi hàng của quan hệ gọi là bộ. Quan hệ là tập con của tích Đề – Các D1
x D2 x…xDn gọi là quan hệ n – ngôi. Khi đó mỗi bộ của quan hệ có n thành
phần (n cột). Các cột của quan hệ gọi là thuộc tính (attributes). Vậy người ta
định nghĩa quan hệ như sau:
Định nghĩa 2.1:
Gọi R = {A1,…An} là một tập hữu hạn các thuộc tính, mỗi thuộc tính Ai
với i=1 có miền giá trị tương ứng là dom (AI). Quan hệ trên tập thuộc tính
R=(A1,…An) là tập con của tích Đề Các.
rdom (A1)x…xdom (A2).
TRêng ®¹i häc §HDL ph¬ng ®«ng §å ¸n häc kú 6
Gi¸o viªn híng dÉn : TS- Lª Huy ThËp SV: Hoµng §øc V¬ng 4
Khi đó ký hiệu là rđ hoặc r(A1,…,An).
Ví dụ: Quan hệ NHAN _ VIEN bao gồm các thuộc tính HO_TEN,
NAM_SINH, NOI_LAM_VIEC và LUONG là quan hệ 4 ngôi.
NHAN_VIEN (Ho_ten Nam_sinh Noi_lam_viec Luong)
T1 Le Van A 1960 Vien CNTT 425
T2 Hoang Thi B 1970 Truong DHBK 390
T3 Le Van son 1945 Vien CNTT 425
T1= (Le Van A, 1960, Vien CNTT, 425) là một quan hệ NHAN_ VIEN
2.2: Khoá
Khoá (key) của một quan hệ r trên tập thuộc tính R = (A1,…,An) là tập
con K {A1,..,An} thoả mãn các tính chất sau đây:
Với hai bộ {t1,t2 r đều tồn tại một thuộc tính AK sao cho T1 (A) t2
(A).
Nói một cách khác, không tồn tại hai bộ mà có giá trị bằng nhau trên mọi
thuộc tính của K. Điều kiện này có thể viết t1 (K) t2 (K). Do đó mỗi bộ giá
trị của K là xác định duy nhất.
Trong lược đồ quan hệ có thể có rất nhiều khoá. Việc tìm tất cả các khoá
của lược đồ quan hệ là rất khó khăn.
Để có thể định nghĩa khoá ta cần lưu ý rằng, nếu K’ là khoá của quan hệ
r (A1,…, An) vì K’ K R, thì K cũng là khoá của r, nghĩa là bất kỳ t1, t2 r
từ t1 (K’) t2 (K’) luôn có t1 (K) t2 (K).
Định nghĩa 2.2:
Khoá của quan hệ r trên tập thuôc tính R= { A1,…,An}là tập con KR
sao cho bất kỳ bộ khác nhau t1,t2r luôn thoả t1 (K) t2 (K) bất kỳ tập con
thực sự K’ K nào đó đều không có tính đó. Tập K là siêu khoá của quan hệ
r nếu K là khoá của quan hệ r.
TRêng ®¹i häc §HDL ph¬ng ®«ng §å ¸n häc kú 6
Gi¸o viªn híng dÉn : TS- Lª Huy ThËp SV: Hoµng §øc V¬ng 5
Ví dụ: Quan hệ HANG _HOA.
HANG HOA (MSMH TEN _ HANG SO _ LUONG)
10101 Sắt phi 6 1000
10102 Sắt phi 8 2000
20001 Xi măng 1000
Trong đó mã số mặt hàng (MSMH) là khoá. Mỗi giá trị MSMH đều xác
định duy nhất một mặt hàng trong quan hệ HANG _ HOA.
2.3. Các phép tính trên CSDL quan hệ
a/ Phép chèn
Phép chen thêm một bộ vào quan hệ R= {A1,…,An} có dạng r=r t
INSERT (r; A1 = d1, A2= d2,…,An = dn)
Trong đó Ai với i =1,…, n là tên các thuộc tính d1 dom (Ai) là các giá
trị thuộc miền giá trị tương ứng của thuộc tính A1.
Ví dụ: Thêm một bộ t4 = Vũ Văn Tần, 1960, trường ĐHBK, 425) vào
quan hệ NHAN _ VIEN.
INSERT(NHAN _ VIEN; HO_TEN = Vu Tan, NAM_ SINH = 1960,
NOI _ LAM – VIEC = truong ĐHBK, LUONG = 425)
Nếu xem thứ tự các trường là cố định, khi đó có thể biểu diễn phép chèn
dưới dạng tường minh như sau:
INSERT (r; d1, d2,…, dn)
Mục đích của phép chèn là thêm một bộ phận vào một quan hệ nhất định
kết quả của phép tính có thể gây nên một số sai sót với những lý do sau đây:
1. Bộ mới được thêm vào là không phù hợp với lược đồ quan hệ cho
trước.
2. Một số giá trị của một số thuộc tính nằm ngoài miền giá trị của thuộc
tính đó.
3. Giá trị khoá của bộ mới có thể là giá trị đã cho trong quan hệ đang
lưu trữ.
Do vậy, tuỳ từng hệ cụ thể có những cách khắc phục riêng.
TRêng ®¹i häc §HDL ph¬ng ®«ng §å ¸n häc kú 6
Gi¸o viªn híng dÉn : TS- Lª Huy ThËp SV: Hoµng §øc V¬ng 6
b/ Phép loại bỏ (del)
Phép loại bỏ (del) là phép xoá một bộ ra khỏi quan hệ cho trước. Phép
loại bỏ có dạng như sau:
r = r – t
DEL (r;A1= d1, A2= d2,…,An) hoặc DEL (r,d1, d2,…dn)
Ví dụ: Cần loại bỏ bộ t1 khỏi quan hệ NHAN _ VIEN
DEL (NHAN _VIEN; Le Van A, 1960, Vien CNTT, 425)
Tuy nhiên không phải lúc nào phép loại bỏ cũng cần đầy đủ thông tin về
cả bộ cần loại. Nếu có giá trị về bộ đó tại các thuộc tính khoá K= {B1,B2,…,
B1} khi đó phép loại bỏ chỉ cần viết:
DEL (r; B1 = e1, B2 = e2,…, B1= e1)
Ví dụ: Cần loại bỏ sắt phi 6 ra khỏi quan hệ HANG _ HOA, khi đó chỉ
cần viết:
DEL (HANG _ HOA; MSSMH = 10101).
c/ Phép thay đổi (CH)
Gọi tập (C1,…Cp) {A1,..An} là tập các thuộc tính mà tại đó các giá trị
của bộ cần thay đổi, khi đó phép thay đổi có dạng:
R = r \ t U t’
CH(r;A1d1…,A2 = D2,…,An = Dn; C1 = e1, C2 = e2,…,Cp = ep).
Nếu K = {B1,…Bm} là khoá của quan hệ khi đó cần viết:
CH(r; B1 = d1, B2 = d2,…,Bm= dm, C1= e1, C2 = e2,…,Cp = ep).
Ví dụ: Cần thay đổi số lượng của sắt phi 8 trong quan hệ HANG_HOA
còn 150 tấn. Khi đó phép thay đổi có dạng:
CH (HANG _ HOA; MSMH = 10102; SOLUONg = 150).
Phép thay đổi là phép tính thuận lợi, hay dùng. Cũng có thể không dùng
phép thay đổi mà dùng tổ hợp của phép loại bỏ và phép chèn một bộ mới. Do
vậy những sai sót của phép thay đổi cũng sẽ xảy ra tương tự như phép chèn và
phép loại bỏ.
TRêng ®¹i häc §HDL ph¬ng ®«ng §å ¸n häc kú 6
Gi¸o viªn híng dÉn : TS- Lª Huy ThËp SV: Hoµng §øc V¬ng 7
TRêng ®¹i häc §HDL ph¬ng ®«ng §å ¸n häc kú 6
Gi¸o viªn híng dÉn : TS- Lª Huy ThËp SV: Hoµng §øc V¬ng 8
CHƯƠNG 3: LÝ THUYẾT CƠ SỞ DỮ LIỆU QUAN HỆ
3.1. Phụ thuộc hàm.
Khái niệm về phụ thuộc hàm (trong một quan hệ) là một quan niệm có
tầm quan trọng hết sức đối với việc thiết kế mô hình dữ liệu. Năm 1970 EF
Codd đã mô tả phụ thuộc hàm trong mô hình dữ liệu quan hệ, nhằm giải quyết
việc phân rã không tổn thất thông tin. Sau đây là khái niệm một cách hình
thức.
Định nghĩa 3.1:
Cho R(U) là một lược đồ quan hệ với U = {A1,…An} là tập thuộc tính X
và Y là tập con của U.
Nói rằng XY (X xác định hàm Y hay 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 bất kỳ hai bộ t1, t2 r mà t1[X]
= t2[X] thì t1[Y] = t2[Y].
Phụ thuộc hàm ký hiệu là FD.
Chú ý: Phụ thuộc hàm chỉ xét các phụ thuộc hàm thoả mãn cho mọi
quan hệ trên lược đồ tương ứng của nó. Không thể xem xét một phụ thuộc
hàm thoả một quan hệ r đặc biệt (ví dụ quan hệ rỗng) của lược đồ R rồi sau đó
quy nạp rằng phụ thuộc đó là thoả trên R.
Ví dụ: Trong quan hệ S của hãng cung ứng, một trong số các thuộc tính
SNAME, STATUS, CITY đều phụ thuộc vào thuộc tính S#. Mỗi giá trị S#
tồn tại vừa đúng một giá trị tương ứng đối với từng thuộc tính SNAME,
STATUS và CITY. Khi đó có thể viết:
S# SNAME, S# STATUS, S# CITY.
3.1.1. Hệ tiên đề cho phụ thuộc hàm.
Gọi F là tập tất cả các phụ thuộc hàm đối với lược đồ quan hệ R (U) và
X Y là một phụ thuộc hàm, X, Y U. Nói rằng X Y được suy diễn logic
từ F nếu mối quan hệ r trên R (U) đều thoả các phụ thuộc hàm của F thì cũng
thoả X Y.
TRêng ®¹i häc §HDL ph¬ng ®«ng §å ¸n häc kú 6
Gi¸o viªn híng dÉn : TS- Lª Huy ThËp SV: Hoµng §øc V¬ng 9
Chẳng hạn F = {A B, BC] thì A C suy ra từ F. Gọi F+ là bao đóng
của F, tức là tất cả các phụ thuộc hàm được suy diễn logic từ F. Nếu F = F+ thì
F là họ đầy đủ của các phụ thuộc hàm.
Để có thể xác định khoá của một lược đồ quan hệ và các suy diễn logic
giữa các phụ thuộc hàm cần thiết phải tính được F+ từ F. Do đó đòi hỏi phải
có các hệ tiền đề. Tập các quy tắc của hệ tiền đề được Armstrong đưa ra và
được gọi là hệ tiên đề Armstrong.
Gọi R(U) là lược đồ quan hệ U = {A1…,An} là tập các thuộc tính X, Y,
Z, W R. Hệ tiên đề Armstrong bao gồm:
1. Phản xạ: Nếu Y X thì XY.
2. Tăng trưởng: Nếu Z U và XY thì XZ YZ trong đó ký hiệu XZ
là hợp của hai tập X và Y thay cho ký hiệu X Y.
3. Bắc cầu: Nếu X Y và Y Z thì X Z.
* Bổ đề 3.1.
Hệ tiên đề Armstrong là đúng. Có nghĩa F là tập các phụ thuộc hàm
đúng trên quan hệ r. Nếu X Y là một phụ thuộc hàm được suy diễn từ F nhờ
hệ tiên đề Armstrong thì XY là đúng trên quan hệ r.
* Bổ đề 3.2.
a. Luật hợp: Nếu X Y và X Z thì X YZ.
b. Luật tựa bắc cầu: Nếu X Y và WYZ thì XW ZX.
c. Luật tách: Nếu X Y và X Y thì X Z.
3.1.2. Sơ đồ quan hệ.
Chúng ta gọi là sơ đồ quan hệ (SDQH)s là một cặp , ở đây R là
tập hợp các thuộc tính và F là tập các phụ thuộc hàm trên R. Ký hiệu F+ là tập
tất cả các phụ thuộc hàm dẫn xuất từ F bằng việc áp dụng các quy tắc trong hệ
tiên đề Armstrong.
Đặt A+ = {a: A{a}F+. A+ được gọi là bao đóng của A trên s.
Có thể thấy rằng A BF+ nếu và chỉ nếu B A+.
TRêng ®¹i häc §HDL ph¬ng ®«ng §å ¸n häc kú 6
Gi¸o viªn híng dÉn : TS- Lª Huy ThËp SV: Hoµng §øc V¬ng 10
Tương tự chúng ta có thể đặt Ar
+ = {a: A{a}}. Ar+ được gọi là bao
đóng của A trên r. Theo định nghĩa trên chúng ta thấy nếu s= là sơ đồ
quan hệ thì có quan hệ r trên R sao cho Fr = F+. Quan hệ r như vậy chúng ta
gọi là quan hệ Armstrong của s.
Thuật toán tính bao đóng.
Việc tính toán bao đóng F+ của tập các phụ thuộc hàm trong trường hợp
tổng quát là rất khó khăn và tốn kém thời gian bởi vì các tập phụ thuộc hàm
thuộc F+ rất lớn cho dù F có thể là nhỏ. Chẳng hạn F = {A B1,
AB2,…ABn}. F+ khi đó cũng được tính cả những phụ thuộc hàm A B
với Y {B1,…,Bn}. Như vậy sẽ có 2n tập con Y. Nhưng việc tính X+, bao
đóng của tập thuộc tính X lại không khó. Theo bổ đề 3.3 việc kiểm tra (X
Y) F+ không khó hơn việc tính X+. Tính bao đóng X+ sẽ được thể hiện
qua bao đóng sau:
Thuật toán: Tính bao đóng của tập các thuộc tính đối với một tập các phụ
thuộc hàm.
Vào: Tập U hữu hạn các thuộc tính, Tập các phụ thuộc hàm F trên U và
X U
Ra: X+, bao đóng của X đối với F
Phương pháp: Tính liên tiếp các thuộc tính X0,…, Xn theo quy tắc
1. X0 = X
2. Xi+1= X1 A sao cho (Y Z) F, AZ,YXi
Vì rằng X= X0 …U, U là hữu hạn cho nên sẽ tồn tại một chỉ số i nào
đó mà Xi = X i+1 khi đó X+= Xi
3.1.3: Phủ của tập các phụ thuộc hàm
Gọi F là G là tập các phụ thuộc hàm. Nói rằng F và G là tương đương
nếu F+ = G+. Nếu Fvà G là tương đương đôi khi còn nói F phủ G ( và G phủ
F). Nếu tồn tại một phụ thuộc hàm Y Z mà thuộc F mà không thuộc G+ thì
chắc chắn F+ G+.
TRêng ®¹i häc §HDL ph¬ng ®«ng §å ¸n häc kú 6
Gi¸o viªn híng dÉn : TS- Lª Huy ThËp SV: Hoµng §øc V¬ng 11
Nếu mỗi phụ thuộc hàm F cũng thuộc G+ thì mỗi phụ thuộc hàm V W
thuộc F+ cũng thuộc G+
Để kiểm tra mỗi phụ thuộc G là phụ thuộc F+ quá trình làm hoàn toàn
tương tự. Do đó F và G là tương đương khi và chỉ khi mỗi phụ thuộc hàm F là
thuộc G+ và mỗi phụ thuộc G là thuộc F+.
Bổ đề 3.4
Mỗi các phụ thuộc hàm F đều được phủ bằng tập các phụ thuộc hàm G
mà vế phải các phụ thuộc hàm đó không quá một thuộc tính
Định lý 3.2
Mỗi tập phụ thuộc hàm F đều tương đương với một tập F+ tối thiểu.
3.2: Phép tách các lược đồ quan hệ
Phép tách lược đồ quan hệ R{A1,…,An} là việc thay thế lược đồ quan hệ
R bằng các tập lược đồ {R1,…,Rk }, trong đó Ri R,i=1,…, k và R= R1
R2…Rk.
Ở đây không đòi hỏi các lược đồ Ri phải là phân biệt. Mục tiêu của phép
tách chủ yếu là loại bỏ các dị thường dữ liệu gây ra.
Ví dụ: Cho lược đồ quan hệ giươì cung cấp.
S(SMANE,AĐ,PRO,PRICE)
Và giả sử có các phụ thuộc hàm: SNAME ADD; SNAME, PRO
PRICE
Lược đồ S có thể được thay bằng hai lược đồ khác.
S1(SNAME,ADD) và S2 (SNAME,PRO, PRICE)
Kết nối không mất mát thông tin.
Nếu R là lược đồ quan hệ được tách thành các lược đồ con R1,R2,…, Rk
và D là tập các phụ thuộc dữ liệu, nói rằng phép tách là - kết nối không mất
mát thông tin đối với D nếu với mỗi quan hệ r trên R thoả D:
R = R1 (r)* R2 (r)*… *Rk (r) tức là r được tạo nên từ phép kết nối
tự nhiên của các hình chiếu của nó trên các Ri,i = 1,…, K
Sau đây là một số tính chất của kết nối không mất mát thông tin.
TRêng ®¹i häc §HDL ph¬ng ®«ng §å ¸n häc kú 6
Gi¸o viªn híng dÉn : TS- Lª Huy ThËp SV: Hoµng §øc V¬ng 12
Tập các lược đồ:
P= (R1,…,Rk) được thay thế cho lược đồ R. Gọi mp là ánh xạ xác định
nhờ mp (r) = * Ri (r), có nghĩa là mp (r) là kết nối của các phép chiếu của r
trên các lược đồ con trong p. Điều kiện để kết nối không mất mát thông tin
đối với D được biểu diễn như sau:
Với mọi r thoả D, r = mp (r)
Bổ đề 3.5
Gọi R là lược đồ quan hệ p = (R1,…, Rk) là phép tách của R,r là quan hệ
trên R và ri = (r) thì:
a. r mp (r)
b. Nếu s=mp (r) thì Ri (s) ri
c. mp (mp r))= mp (r)
Trong trường hợp tách một lược đồ thành hai lược đồ con ta sẽ có định
lý sau:
Định lý:
Nếu = (R1,R2) là một phép tách của R và F là tập phụ thuộc hàm thì là
tách không mất mát thông tin đối với F khi và chỉ khi R1 R2 R1 R2
hoặc R1 R2 R2 R1
3.3: Chuẩn hoá lược đồ quan hệ
Chuẩn hoá là quan hệ trong đó mỗi miền của thuộc tính chỉ chứa những
giá trị nguyên tố tức là không phân nhỏ được nữa và do đó giá trị trong quan
hệ cũng là nguyên tố.
Chuẩn hoá là quan hệ trong đó mỗi miền của thuộc tính chỉ chứa những
giá trị nguyên tố tức là không phân nhỏ được nữa và do đó mỗi giá trị trong
quan hệ cũng là nguyên tố.
Quan hệ có chứa các miền giá trị là không nguyên tố gọi là quan hệ
chuẩn hoá. Mỗi quan hệ chuẩn hoá có thể thành một hoặc nhiều quan hệ
chuẩn hoá khác và không làm mất mát thông tin.
TRêng ®¹i häc §HDL ph¬ng ®«ng §å ¸n häc kú 6
Gi¸o viªn híng dÉn : TS- Lª Huy ThËp SV: Hoµng §øc V¬ng 13
Ví dụ:
Trước Chưa chuẩn hoá
S# PRO
P# QTY
1 100 1
200 2
300 3
2 100 4
200 2
400 5
3 500 1
Hình – 2: Quan hệ không chuẩn hoá
Sau Đã chuẩn hoá
S# P# QTY
1 100 1
1 200 2
1 300 1
2 100 4
2 200 2
3 400 5
3 500 1
Hình – 3: Quan hệ chuẩn hoá
TRêng ®¹i häc §HDL ph¬ng ®«ng §å ¸n häc kú 6
Gi¸o viªn híng dÉn : TS- Lª Huy ThËp SV: Hoµng §øc V¬ng 14
Trước khi mô tả chi tiết cac dạng chuẩn hoá cần thiết đưa ra một khái
niệm sau đây.
Cho một lược đồ quan hệ R trên tập thuộc tính U= {A1,…,}. Thuộc tính
A U được gọi là thuộc tính khoá nếu A là thành phụ thuộc môt khoá nào đó
của R, ngược lại A được gọi là thuộc tính không khoá.
Định nghĩa:
Cho lược đồ quan hệ R(U) trên tập thuộc tính U= {A1,…, Ak). X và Y là
hai tập thuộc tính khác nhau X U và Y U.
Y là phụ thuộc hàm đầy đủ vào X nếu Y là phụ thuộc hàm vào X những
không phụ vào bất kỳ một tập họp con thực sự nào của X.
Trong lý thuyết ban đầu Codd đưa ra có ba dạng chuẩn của quan hệ:
Dạng không chuẩn hoá
Dạng chuẩn thứ nhất (First Normal Form, viết tắt là 1NF)
Dạng chuẩn thứ hai (2NF)
Dạng chuẩn thứ ba (3NF)
3.3.1: Dạng chuẩn 1NF (First Normal Form)
Dạng chuẩn 1NF chỉ áp dụng cho file dữ liệu chứ không áp dụng
cho sơ đồ quan hệ hay nói cách khác chỉ liên quan đến dữ liệu chứ
không liên quan đến cấu trúc. Cụ thể là:
Định nghĩa 1NF:
TRêng ®¹i häc §HDL ph¬ng ®«ng §å ¸n häc kú 6
Gi¸o viªn híng dÉn : TS- Lª Huy ThËp SV: Hoµng §øc V¬ng 15
Một lược đồ quan hệ R được gọi là dạng chuẩm một (1NF) nếu và
chỉ nếu toàn bộ các miền có mặt trong R đều chỉ chứa các giá trị
nguyên tố.
Định nghĩa này cho bất kỳ quan hệ chuẩn hoá nào cũng ở 1NF.
3.3.2: Dạng chuẩn thứ 2 (2NF)
Định nghĩa 2NF:
Lược đồ quan hệ R ở dạng chuẩn thứ hai nếu nó ở dạng chuẩn thứ
nhất và nếu mỗi thuộc tính không khoá của R là phụ thuộc hàm đầy đủ
vào khoá chính.
Như vậy dạng chuẩn hai đòi hỏi một lược đồ quan hệ R trước tiên
phải là dạng chuẩn 1NF và mọi thuộc tính thứ cấp đều phụ thuộc hàm
hoàn toàn vào bất kỳ một khoá tối tiểu nào, như vậy tính chất của dạng
chuẩn hai phụ thuộc vào 3 yếu tố;
1. Khoá tối tiểu
2. thuộc tính thứ cấp
3. Phụ thuộc hàm hoàn toàn
3.3.3: Dạng chuẩn thứ 3 (3NF)
Định nghĩa phụ thuộc bắc cầu
Để trình bày 3NF của các quan hệ, ở đây chúng ta đưa thêm vào
khái niệm về phụ thuộc bắc cầu
Cho một lược đồ quan hệ R(U); X là một tập con các thuộc tính
X U,A là một thuộc tính thuộc U. A được gọi là phụ thuộc bắc cầu
X trên R nếu tồn tại một tập con Y của R sao cho X Y, Y A
nhưngY X (khô