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 ừọ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.
Trang 1TJíQit'tfntf đại hite (D'XfDJL filiiúinif dñntf § á,n háckú 6
tịiiĩtì íùĩn htiồntỊ dẫn í rĩcS- £ĩ 'dôuụ QhẠp cVO: 'Jôoàng, <ĩtóe ^Otitfn q1
PHÀN I Cơ SỞ DỮ LIÊUCHƯƠ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 đượclư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 ừọ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ệutrong 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ànhmộ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êncá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ậtlý
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ớiCSDL 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
Thể hiện (instance).
Khi CSDL đã được thiết kế, người ta thường quan tâm đến “bộ khung” hay
Trang 2TJfQit'tfntf đại Itẹe f Đ'XfDJL ỊiliiúiniỊ ĩtônụ § ả,n hãckú 6
Cịiíìtì íùĩn luiỒn tỊ dẫn í 7Ĩ<S- £ĩ '3ôuụ ^ĩhíịp cVO: 'dôoỉintỊ <ỉtóe ^Otitfn q2
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ủaCSDL, khi dữ liệu thay đổi trong một chu kỳ thời gian nào đó thì “bộ khung” củaCSDL 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ặcmộ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
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áiniệ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ểudiễ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ộtmố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 hi cóhướng
3 Mô hình quan hệ (Relational model): Mô hình này dựa ừên cơ sở kháiniệ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.
Trang 3Huèng đại họe ( Đ'3CfDJl phntínụ đông. § à,n hâckú6
tịiiìtì íùĩn luíồn tỊ dẫn. í 7Ĩ<S- Jlĩ 'Jöug ^ĩhíịp cVO: 'ĩôoàng <ỉtóe (ĩỉường 3
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 trongcấ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ý thuyết tập hợp: Là tập con của tích Đe - Các của các miền Miền (domain) là mộttậ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ếnganh có độ dài không quá 30 ký tự, tập hai só {0,1} là một miền
Gọi Di, Ơ2 , Dn là n miền Tích Đề - Các của n miền là Dl X D2X X D„ làtập tất cả n - bộ (n - tuples Vi, V2 , vn) sao cho VịeDi với i = 1 n, v.v
Mỗi hàng của quan hệ gọi là bộ Quan hệ là tập con của tích Đe - Các Di 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 (ncột) Các cột của quan hệ gọi là thuộc tính (attributes) Vậy người ta định nghĩaquan hệ như sau:
Trang 4r J(QtiònỊi đại họe ( Đ'3&Ĩ)ẨL phiirínỊi đồtiỊỊ § ả,n hãckú 6
Cịiíìtì íùĩn luiỒn tỊ dẫn í 7Ĩ<S- Ẩtê 'Jôuụ ^ĩhíịp cVO: 'Xoàng. <ỉtóe (ĩỉứiứnạ.4
Khi đó ký hiệu là rđ hoặc r(Ai, ,A„)
Yí 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
Ti= (Le Van A, 1960, Vien CNTT, 425) là một quan hệ NHAN_ VIEN
Trang 5^Jißtiiinq đại họe (Ịydí/DẨL phn'ríng điêng. § ả,n hâckú 6
Cịiíìt) íùĩn htiồntỊ dẫn í rĩcS- Ẩtê 'Jôug ÇJhâp cVO: Jôoàng <ĩtóe (ĩỉường 5
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= {Ai, ,An} có dạng r=r ut
INSERT (r; Al = di, A2= d2, ,An = ản)
Trong đó Ai với i =1n là tên các thuộc tính di e dom (Ai) là các giá trị thuộc miền giá trị tưomg ứng của thuộc tính Ai
Ví dụ: Thêm một bộ u = Vũ Văn Tần, 1960, trường ĐHBK, 425) vào quan hệ
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
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ỏ
Ví dụ: Quan hệ HANG HOA
Trang 6^Jißtiiinq đại họe ( Đ'3&Ĩ)ẨL phnđng điêng. § ả,n hâckú 6
tịiiĩtì íùĩn htiồntỊ dẫn í rĩcS- Ẩtê 'Jôug ÇJhâft, cVO: Jôoàng <ĩtóe (ĩỉường 6
có dạng như sau: r = r-t
DEL (r;Ai= di, A2= d2, An) hoặc DEL (r,di, d2, dj Yí dụ: càn loại bỏ bộ
ti 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= {BI,B2, , Bi} khi đóphép loại bỏ chỉ càn viết:
DEL (r; Bi = d, B2 = e2, , Bi= d)
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 (Cl, Cp) Ç {Al, 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\ tutCH(r;Aidi ,A2 = D2, ,An= Dn; Cl = d, c2 = e2, ,Cp = ep)
Neu K = {Bi, Bm} là khoá của quan hệ khi đó cần viết:
CH(r; Bl — di, B2 — d2, ,Bm= dm, c 1 — d, c2 — dj.-.jCp — 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épthay đổ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ữngsai 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ỏ
Trang 7Hưòng đại họe ( Đ'3CfDJl phntínụ đông. § à,n hãckú6
Cịiíìt) íùĩn luiỒn tỊ dẫn. í 7Ĩ<S- Jlĩ 'yôug ^ĩhíịp SfJ)i JCoàng <ỉtóe (ĩỉường 7
CHƯƠNG 3: LÝ THUYẾT cơ SỞ DỮ LIỆU QUAN HỆ
Nói rằng X—>Y (X xác định hàm Y hay Yphụ thuộc hàm vào X) nếu r là
t 2 [X]thìt 1 [Y] = t 2 [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ộtquan 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
Yí dụ: Trong quan hệ s của hãng cung ứng, một trong số các thuộc tínhSNAME, STATUS, CITY đều phụ thuộc vào thuộc tính s# Mỗi giá trị S# tồn tạivừ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# -»CTTY
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 CƯ Nói rằng X —»Y được suy diễn logic từ F nếumối quan hệ r ừên R (U) đều thoả các phụ thuộc hàm của F thì cũng thoả X —»Y.Chẳng hạn F = {A —»B, B—>C] thì A —»c suy ra từ F Gọi F+ là bao đóngcủ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
Trang 8^ßiiifng đại họe ( D'3&DJ¿ phtiđnụ đông. § ả,n hâckú 6
Cịiíìt) íùĩn htiồntỊ dẫn í rĩcS- Jlĩ 'Jôug ÇJhâft, S(Zf: Jôoàng <ĩtóe (ĩỉường8
Để có thể xác định khoá của một lược đồ quan hệ và các suy diễn logic giữacá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 = {Ai ,An} là tập các thuộc tính X, Y, z, w
cR Hệ tiên đề Armstrong bao gồm:
1. Phản xạ: Nếu YcX thì X->Y
2. Tăng trưởng: Nếu z czU và X—»Y 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 uY
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ênquan 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ì X—»Y 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à WY->Z 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 <R,F> , ở đây R là tập họpcá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} eF4" A+ được gọi là bao đóng của A trên s
Có thể thấy rằng A —»B eF* nếu và chỉ nếu B cA+
Tương tự chứng ta có thể đặt Ar+ = {a: A—>{a}} Ar+ được gọi là bao đóngcủa A ừên r Theo định nghĩa ừên chúng ta thấy nếu S=<R,F> là sơ đồ quan hệ thì cóquan hệ r trên R sao cho Fr = F4 " Quan hệ r như vậy chúng ta gọi là quan hệ
Armstrong của s
Trang 9rJfQu'tfnif đại họe ( Đ'3CfDJl phtiđnụ đông. § à,n hãckú 6
Cịiíìtì íùĩn htiồntỊ dẫn. í rĩcS- Ẩtê Uôuụ O'hgfL S^Oi 'dôoỉin tỊ <ỉtóe (ĩỉường 9
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ổngquá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ấtlớn cho dù F có thể là nhỏ Chẳng hạn F = {A —»Bi, A—»B2, A—»BnỊ F* khi đócíỉng được tính cả những phụ thuộc hàm A —»B với Y ç{Bi, ,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)e F4- 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
Yà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çURa: 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 Xo, , xn theo quy tắc
1 Xo=X
2 Xi+1= Xi u A sao cho 3 (Y-> Z) eF, AeZ,YeXi
Yì 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+i 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+
Trang 10ÇJfliiiông đại họe ( Đ'3CfDJl phtiđnụ đông. § à,n hâckú 6
tịiiĩtì íùĩn htiồntỊ dẫn í rĩcS- £ê 'Jôug ÇJhâft, cVO: 'Jôoàng <ĩtóe (ĩỉường 1 "I
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+
Đe 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+
Ở đây không đòi hỏi các lược đồ Rị 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—» PRICELược đồ s có thể được thay bằng hai lược đồ khác
Si(SNAME,ADD) và s2 (SNAME,PRO, PRICE)
Kết nối không mất mát thông tin
Neu R là lược đồ quan hệ được tách thành các lược đồ con RI,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 = IIRi (r)* IIR2 (r)* *IIRk (r) tức là r được tạo nên từ phép kết nối tự nhiêncủ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
Tập các lược đồ:
Trang 11'TĩíQtiòntỊ đại họe ( Đ'3CfDJl phtiđnụ đằng. § ả,n hãckú 6
Cịiíìtì íùĩn htiỒntỊ dẫn í rĩcS- £ê 'Jôuụ ^ĩhíịp cVO: 'dôoỉintỊ <ỉtóe (Dứ/ống11
p= (Ri, ,Rk) được thay thế cho lược đồ R Gọi mp là ánh xạ xác định nhờ mp
(r) = * IIRi (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 ừong 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ễnnhư sau:
Yới mọi r thoả D, r = mp (r)
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
Trang 12ĩj(Qtứ'ng đại họe (Đ'3CfDJl phtitínti đồ tụi § ả,n hãckú 6
Cịitìtì tùĩn htíồntỊ dẫn í (7<s~ Jlĩ 'Jôuụ ^ĩhtịp cVO: 7ôtừinạ lỉtóe (Dường, "12
Trang 13ÇJ(îhièng đựi họe Í&yt/DẨL phường, đ&ng § á,n hãckú6
Yídụ:
Trước
Trang 14tịiiĩtì íùĩn htiồntỊ dẫn í rĩcS- £ĩ 'dôuụ QhẠp cVO: 'Jôoàng, <ĩtóe ^Otitfn q14
ÇjffÎMfô'nq đại họe phnđnụ itôtuj § ả, n häc kú 6
Hình - 2: Quan hệ không chuẩn hoá
Chưa chuẩn hoá
Trang 15ÇJ(îhièng đựi họe Í&yt/DẨL phường, đ&ng § á,n hãckú6
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= {Ai, ,} Thuộc tính
AeU đượ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= {Ai, , Ak) X và Y là
hai tập thuộc tính khác nhau X ^ u và Y CƯ.
Y là phụ thuộc hàm đày đủ vào X nếu Y là phụ thuộc hàm vào X nhữngkhô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à INF)
_ái „ m
Dạng chuẩn thứ hai (2NF)
i
Dạng chuẩn thứ ba (3NF)
3.3.1: Dạng chuẩn INF (First Normal Form)
Dạng chuẩn INF 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 INF:
Trang 16ÇjffÎMfô'nq đại họe phnđnụ itôtuj § ả, n häc kú 6
tịiiĩtì íùĩn htiồntỊ dẫn í rĩcS- £ĩ 'dôuụ QhẠp cVO: 'Jôoàng, <ĩtóe ^Otitfn q16
Một lược đồ quan hệ R được gọi là dạng chuẩm một (INF) 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 ở INF
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 INF và mọi thuộc tính thứ cấp đều phụ thuộc hàm hoàn toànvà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áiniệ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 Xc 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 nhung Y —> X (không xác định hàm) với A Ể XY
Chúng ta có thể hiện tính bắc cầu qua sơ đồ:
◄ V
-r
Cịiíìt) íùĩn htiồntỊ dẫn í '7cS-Mĩ '7ôug { Qhập cVO: Jôeàng. <ĩtóe (Vtùfng,
Trang 17TJfQit'tfntf đụi họe (DT&DJL p lu Kin If itôntf § ả,n hãckú 6
Cịiíìt) íùĩn luiồntỊ dẫn í rĩcS- Jlĩ '3ôuụ Qhập. S^Oi JCoàng <ĩtóe ^Otitfn q 17
Trang 18'jíQiitínti itai hfíe (D'XfDJl phtftfntj ¿tony § á, n hác kú 6
(¡^iúfí olin htitfnti dan: 'c7cS- Jli Q'hAfi cVO: 'Júoang, <2tóe ^Otitín q 18
Qua sơ đồ có thể thấy rằng A có thể xác định hàm Y Trong trường hợp A —»
Y thì được gọi là tính bắc cầu chặt
R là không ở 3 NF, thậm chí không ở 2NF Giả sử X=SI, Y.A là thuộc tính
không khoá vì chỉ có một khoá là SI Yì X —» Y là Y A, nhưng lại có Y ^ X tức là
s—^ Y là không thoả Chú ý rằng trong trường hợp này
X—»Y và Y—» A không chỉ thoả trên R mà là nhưng phụ thuộc đã cho Điều
đó là đủ để nói rằng X —» A suy ra từ tập các phụ thuộc hàm
Như vậy A là phụ thuộc vào khoá bắc cầu vào khoá chính SI
Ví dụ: Cho lược đồ quan hệ R (CSZ) với các phụ thuộc hàm Cs—»z,
z->c.
Trong lược đồ mọi thuộc tính đều là thuộc tính khoá Do vậy R là ở 3 NF
Ví dụ: cho lược đồ R (SIDM) và các phụ thuộc hàm SI —» D, SD^ M
Ở đây chỉ có một khoá chính là SI Ro rằng R ở 2 Nf nhưng không phải ở3NF
3.3.4 Dạng Chuẩn Boye- Codd
Định nghĩa
Lược đồ quan hệ R với tập các phụ thuộc hàm được gọi là ở dạng chuẩn Boey
- Codd (Boey - Codd Normal Form, BCNF) nếu X—»A thoả trên R,A X thì X là môt khoá của R
Ví dụ: Cho lược đồ quan hệ R (CRS) với các phụ hàm CS->Z,Z—»c.
Nhìn vào ví dụ trên, chúng ta nhận thấy rõ ràng R không là ở BCNF mà là ở
3NF vì rằng Z-^> c nhưng không phải là khoá của R
Từ ví dụ này chúng ta thấy rằng một lược đồ quan hệ có thể có 3Nf nhưng
Trang 19Cịiíìtì íùĩn htiồntỊ dẫn í rĩcS- Jlĩ 'Jôug ÇJhâft, cVO: 'Jôoàng <ĩtóe (ĩỉường19
''ïiQtiônti đại họe ( D'3CfDJ¿ phtiđnụ đông. § à,n hãckú 6
không là BCNF Do đó mỗi lược đồ ở BCNF là 3NF Để khảng định một điều đóchúng ta có các định lý sau:
Định lý
Nếu một lược đồ quan hệ R với tập phụ thuộc hàm F là ở BCNF thì nó là ở3NF
3.4 Ngôn ngữ con dữ liệu DSL - ANPHA
Ngôn ngữ con dữ liệu SDL - ALPHA do E.F Codd đè xướng và được sử dụngkhá điển hình trong các hệ QTCSDL như INGRES, DAMAS, SQL
Để xác định ngôn ngữ, chứng ta xem rằng người sử dụng luôn cần một vùnglàm việc, vùng nay tạo thành miền liên lạc giữa người sử dụng và CSDL
Trong ngôn ngữ DSL- ALPHA người sử dụng được gả thiết là có chiếm một
Trong đó Ti,i= 1 n là tên các thuộc tính và p là tân từ
Biểu thức nhằm xác định quan hệ của những n - bộ dạng (vl, ,vn), vi dom (Ti),i=l, ,n sao cho bộ đó có thoả tân từ p
Danh sách < Tl, , Tn > gọi là danh sách đích, p còn gọi là biểu thức đánh giá.Các phép tính dùng trong biểu thức alpha gồm các phép so sánh{=,>,>=,<,<=,*} và các phép của đại số Boolean là and(và), or (hoặc) và not(không); và các dấu (,) để mô tả thứ tự thực hiện phép tính
Dé hiéu ró các cáu léch trong ngon ngü alpha chúng ta vi du mot cáu lenh tim kiém
GET W(NHAN_VIEN HO_TEN, NHAN _ VIEN LUONG): NHAN_ VIEN LUONG >500
Cau lenh DSL - ALPHA tuomg ducmg vói biéu thúc alpha { < NHAN VIEN HO_ TEN, NHAN _ VIEN LUONG>: NHAN _ VIEN>500}
Trang 20'jíQiitínti itai hfíe (D'XfDJl phtftfntj ¿tony § á, n hác kú 6
(¡^iúfí olin htitfnti dan: 'c7cS- Jli Q'hAfi cVO: 'Júoang, <2tóe ^Otitín q 20
Trong dó W la vüng lám viec, GET la ten lenh
Vi du ve ba mói quan he S,PS va P
Hinh ve: CSDL góm ba quan he S, PS va P
3.4.1 Phép tim kiém
A Phép tim kiém don gián
Tim so hiéu mat hang da cung úng
Trang 21''ïiQtiônti đại họe phnđnụ itôtuj § ả, n hãc kú 6
Cịiíìtì íùĩn htiồntỊ dẫn í rĩcS- £ĩ 'dôuụ QhẠp cVO: 'Jôoàng, <ĩtóe ^Otitfn q21
Kết quả
W(P#)
P1P2P3
Trong ví dụ trên có 6 giá trị nhưng trùng lặp nên chỉ có ba giá trị phân biệt được lưu trong vùng làm việc
B.Phép tìm kiếm t heo điều kiện.
Tìm số hiệu những hãng ở Paris có tình trạng lớn hơn 20
GETW (S.S#): S.CITY =’ PARIS’AS STATUS>20