• Để góp phần hoàn chỉnh thêm về mô hình dữ liệu dạng khối và việc sử dụng khóa trong mô hình dữ liệu tôi mạnh dạn chọn đề tài “Một số tính chất mở rộng của khóa trong mô hình dữ liệu kh
Trang 1NGUYỄN VĂN HÂN
MỘT SÓ TÍNH CHẤT MỞ RỘNG CỦA KHÓA TRONG MÔ HÌNH DỮ LIÊU DANG KHỐI
• •
LUẬN VĂN THẠC SĨ MÁY TÍNH
Bộ GIÁO DỤC VÀ ĐÀO TẠO • • • TRƯỜNG ĐẠI HỌC sư PHẠM
HÀ NỘI 2
•
HÀ NỘI, 2014
Trang 2• Người hướng dẫn khoa học: PGS.TS Trịnh Đình Thắng
HÀ NỘI, 2014
Trang 3• Luận văn tốt nghiệp cao học được hoàn thành tại Đại học Sư phạm
Hà Nội 2 Có được luận văn tốt nghiệp này, tác giả xin bày tỏ lòng biết ơn sâu sắctới trường Đại học Sư phạm Hà Nội 2, Phòng Sau đại học, đặc biệt là PGS.TSTrịnh Đình Thắng đã trực tiếp hướng dẫn, dìu dắt, giúp đỡ tác giả với những chỉdẫn khoa học quý giá trong suốt quá trình triển khai, nghiên cứu và hoàn thành đềtài “Những tính chất mở rộng của khóa trong mô hình dữ liệu dạng khối”
• Xin chân thành cám ơn các Thầy Cô giáo - Các nhà khoa học đãtrực tiếp giảng dạy truyền đạt những kiến thức chuyên ngành khoa học máy tínhcho bản thân tác giả trong những năm qua
• Tác giả rất mong nhận được sự đóng góp, phê bình của quý thầy
Cô, các nhà khoa học, đọc giả và các bạn đồng nghiệp
• Xin chân trọng cảm ơn!
• Học viên
• Nguyễn Văn Hân
• Tôi xin cam đoan đây là kết quả nghiên cứu của tôi dưới sự hướngdẫn khoa học của PGS TS Trịnh Đình Thắng, các số liệu, kết quả nêu trong luậnvăn là trung thực và chưa từng được công bố trong bất kỳ công trình nào khác
• Học viên
Trang 4• DANH MỤC CÁC KÝ HIỆU, CHỮ CÁI VIẾT TẮT
• • y
• Trong luận án này dùng thống nhất các kí hiệu và các
chữ viết tắt sau: Kí hiệu ý nghĩa
• XY XuY (hợp của 2 tập thuộc tính X YỚi Y)
• ABC [A, B, C] (tập thuộc tính gồm 3 phần tử A, B, C)
• Dom(A) Miền giá trị của thuộc tính A
• r hoặc r(R) Khối r trên lược đồ khối R
• x(i)= (x, Ai) Các thuộc tính chỉ số của lược đồ khối (xeid, i= 1 n id(i) ={x(i) xeid }Tập các thuộc tính chỉ số của lược đồ khối
Trang 5• DANH MUC CÁC HÌNH VẼ
•
•
Trang 6• I MỞ ĐẦU
1 Lý do chọn đề tài
• Những năm gần đây, việc nghiên cứu tìm ra các mô hình mới đáp ứngcác ứng dụng phức tạp, các cơ sở dữ liệu có cấu trúc tuyến tính và phi tuyến tính đượccác nhà nghiên cứu trong và ngoài nước quan tâm Một trong những mô hình mới này
là mô hình dữ liệu dạng khối Mô hình dữ liệu này có thể xem là một mở rộng của môhình dữ liệu quan hệ
• Trong quản lý cơ sở dữ liệu(CSDL), khóa là yếu tố liên kết giữa các(CSDL) với nhau Nhờ có khóa mà hệ quản trị ( CSDL) có thể quản lý tốt được chấtlượng dữ liệu
• Để góp phần hoàn chỉnh thêm về mô hình dữ liệu dạng khối và việc sử
dụng khóa trong mô hình dữ liệu tôi mạnh dạn chọn đề tài “Một số tính chất mở rộng
của khóa trong mô hình dữ liệu khối” cho luận văn của mình.
3 Nhiệm vụ nghiên cứu
- Nghiên cứu lý thuyết về mô hình cơ sở dữ liệu dạng khối Cụ thể là các tínhchất mở rộng của khóa trong mô hình khối, Đặc trưng của các thuộc tính mởrộng của khóa trong mô hình dữ liệu dạng khối
4 Đối tượng và phạm vỉ nghiên cứu
• *ĐỐỈ tượng nghiên cứu
- Một số tính chất mở rộng của khóa trong cơ sở dữ liệu cụ thể là đặc trưng củacác thuộc tính mở rộng của khóa trong mô hình dữ liệu dạng khối
• *Phạm vi nghiên cứu
Trang 7- Một số tính chất mở rộng của khóa trong mô hình dữ liệu dạng khối.
5 Phương pháp nghiền cứu
- Phương pháp tổng hợp phân tích các vấn đề có liên quan đến đề tài
- Phương pháp lý luận
- Phương pháp chứng minh
6 Dự kiến đóng góp mới của đề tài
- Nêu lên được các tính chất mở rộng của khóa trong mô hình dữ liệu dạng
khối
7 Cấu trúc của luận văn.
- Tương ứng với nhiệm vụ nghiên cứu đặt ra, ngoài phần mở đầu và phần kết luận, nội dung của luận văn được triển khai trong 3 chương
• Chương 1: Các mô hình dữ liệu quan hệ và một số tính chất về khóa
• Chương 2: Mô hình dữ liệu dạng khối
• Chương 3: Một số tính chất mở rộng của khóa trong mô hình dữ liệu dạng khối
• Sau cùng là Phụ lục và Tài liệu tham khảo
MỘT SỐ TÍNH CHẤT VỀ KHÓA
1.1 Giới thiệu về mô hình dữ liệu quan hệ
• Mô hình dữ liệu quan hệ (Ralational Data Model) gọi tắt là mô hìnhquan hệ, do EF.Codd đề xuất năm 1970 Nền tảng lý thuyết của nó là khái niệm lýthuyết tập hợp trên các quan hệ, tức là tập của các bộ giá trị
• Mô hình dữ liệu quan hệ là mô hình được nghiên cứu nhiều nhất, vàthực tiễn đã cho thấy rằng nó có cơ sở lý thuyết vững chắc nhất Mô hình dữ liệu nàycùng Yới mô hình thực thể kết hợp đang được sử dụng rộng rãi trong việc phân tích
và thiết kế CSDL hiện nay Các vấn đề của cơ sở dữ liệu được trình bày trong [4], [5],[7] [8] [9]
Trang 8• Sau đây là các khái niệm của mô hình dữ liệu quan hệ.
1.2 Thuộc tính và miền thuộc tính [4], [5]
nó được gọi là thuộc tính đơn hay thuộc tính nguyên tố, nếu thuộc tính có kiểu dữ liệu
có cấu trúc thì ta nói rằng nó không phải là thuộc tính nguyên tố Miền giá trị
• Thông thường mỗi thuộc tính chỉ chọn lấy giá trị trong một tập con củakiểu dữ liệu và tập hợp con đó được gọi là miền giá trị của thuộc tính Ký hiệu DOM(tên thuộc tính)
• Ví dụ , tập các ký tự số có chiều dài chính xác là 7, là miền của thuộctính số điện thoại Tích Đe các của các miền Dom(Ai), Dom(A2) Dom(An ), kí hiệuDom(Ai) = DA được biểu diễn như sau:
• D(Ai) X D(A2) X X D(An)
• Chẳng hạn thuộc tính NỮ có miền giá trị là {nam,nữ}, thuộc tính màu
da có miền giá trị là {da trắng, da vàng, da đen, da đỏ}, thuộc tính điểm thi là các sốthuộc tập [0; 1 ; 2; ,10]
• Lưu ý rằng nếu không lưu ý đến ngữ nghĩa thì tên của các thuộc tínhthường được ký hiệu bằng các chữ cái in hoa đầu tiên trong bảng chữ cái la tinh:A,B,C,D, Những chữ cái in hoa X,Y,Z,W, thường dùng thay cho một nhóm nhiềuthuộc tính Đôi khi còn dùng các ký hiệu chữ cái với các chỉ số АьА2,-'Лп để chỉ cácthuộc tính trong trường hợp tổng quát hay muốn đề cập đến số lượng các thuộc tính.Tên thuộc tính phải được đặt một cách gợi nhớ, không nên đặt tên thuộc tính quá dài(vì như thế sẽ làm cho việc viết các câu lệnh truy vấn trở nên Yất vả hơn), nhưng
Trang 9cũng không nên đặt tên thuộc tính quá ngắn (vì nó sẽ không cho thấy ngữ nghĩa củathuộc tính), đặc biệt không đặt trùng tên hai thuộc tính mang ngữ nghĩa khác nhauthuộc hai đối tượng khác nhau.
1.3 Quan hệ và lược đồ quan hệ [4], [7]
• Định nghĩa 1.2
• Cho u = {Ab A2, A n } là một tập hữu hạn không rỗng các thuộctính Mỗi thuộc tính Ai (i = 1,2, n) có miền giá trị là Dom(Ai) Khi đó r là một tập các
bộ {hb h2, hm} được gọi là quan hệ trên R với hj (j=l, 2, m) là một hàm:
•hj = и —> u D A , sao cho hj(Ai) e DAi(i=l, 2,
• Aị eU
• Ta có thể xem một quan hệ như một bảng mà trong đó mỗi hàng (phầntử) là một bộ và mỗi cột tương ứng với một thuộc tính Biểu diễn quan hệ r thả nhbảng như sau:
•
- Định nghĩa này là quan trọng, toàn bộ cơ sở dữ liệu dựa trên định nghĩa này,
nó là hạt nhân của cơ sở dữ liệu quan hệ
- Vì hi, h2, , hm là các thành phần trong tập họp quan hệ trong r, cho nên các fíle
đó là khác nhau, vì vậy không chấp nhận có hai bản ghi trùng nhau trong mộtfíle dữ liệu
• Ví dụ: Để lưu dữ thông tin về các mặt hàng, người ta sử dụng bảng sau:
• hJẠĩ) • hm(A2) • • hm(An)
• Bảng 1.1: Bảng ví dụ quan hệ r
Trang 10• Mã
hàng • hàng Tên • săcMàu • lượng Trọng • Tỉnh
• Chúng ta có thể quy định kích thước cho các thuộc tính (các trường) như sau:
• MẶTHÀNG = { Mã hàng, Tên hàng, Màu sắc, Trọng lượng, Tỉnh}
• Ở đây DMã hàng là tập các xâu ký tự độ dài không quá 5 Diên hàng là tập các xâu
ký tự độ dài không quá 30 DMàu sắc là tập các xâu ký tự độ dài không quá 15 Dirọng lượng là tập các xâu ký tự độ dài không quá 10 Dxình là tập các xâu ký tự độ dài không quá 20
• Khi đó chúng ta có các quan hệ r = {hi, h2, h3,114}, ở đây đối YỚi bản ghi thứ
• nhất (dòng thứ nhất) chúng ta có
Trang 11• Giả sử r = { hb h2, , hm} là một quan hệ, s = < R, F > là một sơ đồ quan
• hệ, trong đó R = {ab a2, , an} là tập các thuộc tính, F là tập tất cả các phụ
• thuộc hàm trên R Gọi Y là một họ f trên R và A ç R Khi ấy A là một khoá
• của r ( tương ứr» Ц một khoá của s, một khóa
của Y) nếu: f
• A—> R ( A -> R e F+, (A, R) eY) r
• Nghĩa là A phải thoả mãn các tính chất sau đây:
• Với bất kỳ hai bộ hb h2 e r đều tồn tại một thuộc tính a e A sao cho h,(a) Ф
h2(a) Nói cách khác, không tồn tại hai bộ mà có giá trị bằng nhau trên mọi tập thuộc
tính của A Điều kiện này có thể viết ti(A) Ф t2(A) Do vậy, mỗi giá trị của A xác định
là duy nhất Khi biết giá trị thuộc tính trong A sẽ biết được các giá trị của thuộc tínhkhác
• Theo định nghĩa của Codd: Nếu có hai dòng bằng nhau trên các giá trịcủa khoá A thì sẽ kéo theo bằng nhau trên tất cả các cột còn lại Như vậy sẽ có hai cộtbằng nhau, điều này không thể có được và nếu có thì đấy là dữ liệu nhầm lẫn
• Chúng ta gọi A ( A ç R) là một khoá của r ( tương ứng của s, của Y)
Trang 12• Khóa đóng một vai trò rất quan trọng YÌ nhờ có nó người ta mới tìmkiếm được (tìm kiếm bản ghi ) Phép toán tìm kiếm bản ghi trong file dữ liệu là phéptoán quan trọng nhất YÌ chỉ sau khi tìm kiếm song thì người ta mới tiến hành loại bỏbản ghi ấy hoặc bổ sung một bản ghi mới vào trước hoặc sau bản ghi mà ta đã tìmđược.
• Dù rằng dễ thấy A có thể chính bằng R nhưng người ta vẫn phải đi tìmkhóa tối tiểu, tức là khóa nhỏ nhất mà không thể nhỏ hơn được nữa để việc so sánhcác giá trị khóa YỚi nhau trong quá trình tìm kiếm bản ghi là nhanh nhất
• Một sơ đồ quan hệ có thể có nhiều khóa
1.5 Phu thuôc hàm.
• •
• Khái niệm về phụ thuộc hàm trong một quan hệ là rất quan trọng trongviệc thiết kế mô hình dữ liệu Năm 1970 E.F Codd đã đề cập 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 Địnhnghĩa về khái niệm này được phát biểu như sau:
• Định nghĩa 1.4
• Cho R = { ab a2, , an } là tập các thuộc tính, r = { hi, h2, , hm } là một quan hệ trên R, và А, в ç R ( А, в là tập cột hay tập thuộc tính ) Khi đó ta nói A xác định hàm cho в hay в phụ thuộc hàm vào A trong r ( ký pháp А —» В ) nếu:
• ( V hi, hj e r) (( Va e А ) ( hi(a) = hj(a)) => ( Vb € в ) ( hi(b) = hj(b) ))
Trang 13- Với định nghĩa này dễ thấy rằng trong các file dữ liệu cột, mã số hoặc số thứ tựkhông thể bằng nhau.
• { SBD } -> { HOTEN, DIACHI, TINH, KHUVUC }
• Khái niệm phụ thuộc hàm miêu tả một loại ràng buộc ( phụ thuộc dữliệu) xẩy ra tự nhiên nhất giữa các tập thuộc tính
• Phụ thuộc hàm trên tập các thuộc tính R là một dãy các ký tự có dạng A
—» B, ở đây A, B ^ R Ta nói phụ thuộc hàm A —> B đúng trong r nếu A —* B Tanói răng r tìioã mãn A —> B
• Dễ thấy Fr là tập tất cả các phụ thuộc hàm đúng trong r
1.5.1 Các tính chất của phụ thuộc hàm
• Cho lược đồ quan hệ R xác định trên tập thuộc tính u = {Al, A2, An}, cho X, Y, z, w, u thì ta có một số tính chất cơ bản của lớp các phụ thuộc hàm như sau:
1, Tính phản xạ
•Nếu YcX thìX —» Y
2, Tính mở rộng hai vế
Trang 14• Hệ quả (Tính đầy đủ cuả hệ tiên đề Armstrong)
• Armstrong đã chỉ ra rằng, nếu Y là một họ f tuỳ ý thì tồn tại quan hệ
r sao cho Fr = Y
Trang 15• Có ứiể ứiấy rằng Ĩ1 và r2 khác nhau nhưng Fri = Fr2.
• Như vậy là tương quan giữa các lớp quan hệ với các lớp họ phụ thuộc hàm được thể hiện bằng hình vẽ sau:
Trang 16• Một hàm L : P(R) —» P(R), ( P(R) là tập các tập con của R ) được gọi là hàm đóng trên R nếu với mọi A,B € P(R):
- AçL(A)
- Nếu A ç В thì L(A) ç L(B)
- L (L(A)) = L (A)
• Định lý 1.1
•Neu F là một họ f và chúng ta đặt Lp(A) = { a: a eR: (A,{a}) eF}
• Thì LF là một hàm đóng Ngược lại nếu L là một hàm đóng thì tồn tại duy nhất một họ f F trên R sao cho L = LF F được chỉ ra theo cách sau:
• F = {(A, В): A,BçR,Bç L(A)}
•Như vậy, chúng ta thấy có sự tương ứng 1-1 giữa lớp các hàm đóng và lớp các họ f Sự tương ứng này được minh hoạ bằng hình vẽ sau:
•
1.7 Lược đồ quan hệ.
• Định nghĩa 1.7
•Cho trước R = {ab a2, , a^} là tập các thuộc tính
Khi đó s là một sơ đồ quan hệ, s = < R, F > rAị —> Bi A2
—> B2
• F= {
•
Trang 17) và Ai -» Bi là phụ thuộc hàm
•Ví dụ: Cho sơ đồ quan hệ s = < R, F >, với R = {ab a2, a3, a4 } г {aj
-» {a3, a4} cột 1 xác định hàm với cột 3 cột 4 F = J {a2} -» {a3 }
1.8.2 Bao đóng của tập thuộc
Trang 187, X —» Y « Y+c=X+
8, X —> x+ và x+ —> X
1.8.3 Bài toán thành viên và thuật toán tìm bao đóng của tập thuộc tính
• Bài toán thành viên:
• Nói rằng X —» Y là thành viên của F nếu X —» Y € F+ Một vấn đềquan trọng khi nghiên cứu lý thuyết CSDL là khi cho trước tập các phụ thuộc hàm F
và một phụ thuộc hàm X —» Y, là làm sao để biết X —> Ye F+? Bài toán này đượcgọi là bài toán hàm thành viên
• Để trả lời câu hỏi này ta có thể tính F+ rồi xác định xem X —> Y cóthuộc F+ hay không Việc tính F+ là một công việc đòi hỏi thời gian và công sức Tuynhiên, thay YÌ tính F+ chứng ta có thể dùng tính chất 6 của bao đóng của tập thuộctính để xác định X —> Y có là thành viên của F hay không Đó là:
• X —» Y e F+ <=> Y c= x+ Thật vậy: X -» Y => tồn tại k sao cho
Y = A k c u Ai= x + Y c x + => x + = Y u (X + - Y) => X -> Y u (X + - Y) => X —
> Y
• Từ đó, ta có thuật toán sau:
• Thuật toán 2.1: Xác định xem một phụ thuộc hàm X —> Y có tồn tại hay
không?
• Đầu vào: U,F,X,YcU Đầu ra: Kết
luận sự tồn tại của X —» Y Phương pháp
• Bước 1: Tìm bao đóng của tập thuộc tính X: X+F
Bước 2: Kiểm tra YcX+ nếu đúng thì X —» Y e F+
• Ngược lại, X —» Y Ể F+
• Bước 3: Kết luận Thuật toán 2.2: Tìm
bao đóng của tập thuộc tỉnh Đầu vào: u, F, X
Trang 19• Ta sẽ chứng minh Xi Ç x+ bằng phương pháp quy nạp.
• Bước 0: Theo tính chất phản xạ của luật dẫn thì X —» X, vậy ta có Xo
= X => X -> Xo Cho nên Xo Ç x+
• Bước quy nạp: Giả sử X —> Xị.1 (1) ta cần chứng minh X —> Thật vậy, theo thuật toán tìm bao đóng ta có fj = Xj -» Yj để Xị.1 =2 Xj và Xi = Xi_i u
Trang 20• Bước 2: x2 = Xi u {E} YÌ có AB —» DE thỏa mãn điều kiện
• Bước 3: x3 = x2 u {H} vì có E —> H thỏa mãn điều kiện
• Bước 4: X4 = x 3=ABDEH
• Do đó, tất cả các phụ thuộc hàm có thể xác định từ AB:
•( AB —» D, AB —» E, AB —» H, AB -> AB)
• Vậy (AB)+ F = ABDEH
1.9 Khoá của lược đồ quan hệ.
• Theo định nghĩa đã được trình bày trong phần 1.3 thì khóa là một hoặcmột tập thuộc tính xác định duy nhất trong quan hệ Thông thường trong một lược đồquan hệ có thể tồn tại nhiều khóa Trong số đó, sẽ có một khóa được lựa chọn làmkhóa chính Trong phần này, đưa ra một số vấn đề liên quan đến khóa thông qua phụthuộc hàm
• Định nghĩa 1.10
• Cho s = < u , F > là một lược đồ quan hệ , и là tập các thuộc tính khácrỗng và F là tập các phụ thuộc hàm Cho tập con bất kỳ к ->u Ta nói rằng К là khoá(Key) của lược đồ quan hệ s khi và chỉ khi nó thỏa mãn 2 điều kiện sau:
a) ( К —> U) G F+
b) Không tồn tại z ç К sao cho (Z —> и ) G F+
• Điều kiện (a) và (b) khẳng định các thuộc tính không khoá phụ thuộcđày đủ vào khóa Từ định nghĩa trên có thể suy ra rằng к là khóa của lược đồ quan hệkhi và chỉ khi nó thỏa mãn 2 điều kiện:
a) K+ = u
b) (К- A)+ ф и, V A,K.
• Điều này có nghĩa là mỗi một giá trị của khoá xác định duy nhất giá trịcủa các thuộc tính không khoá Giá trị khoá khác nhau thì giá trị các bộ có chứa giá trịkhoá cũng khác nhau Nếu loại bỏ một phần thông tin về khóa thì thông tin của cácthuộc tính còn lại không thể xác định được Như vậy khoá là tập các thuộc tính sao
Trang 21cho bao đóng của nó là nhỏ nhất Nghĩa là nếu thêm hoặc loại bỏ các phần tử củakhoá sẽ là dư thừa hay thiếu thông tin.
1.9.1 Các tính chất của khóa trong lược đồ quan hệ [8] [9].
• Các tính chất đơn
giản Cho LĐQH (U,F) Khi
đó
1 К çU là một khoá khi và chỉ khi и phụ thuộc đầy đủ vào K
2 Hai khoá khác nhau của một LĐQH không bao nhau
3 Mọi LĐQH đều có ít nhất một khoá
• Đ ị n h 1 ý 1.3
• ( Đặc trưng của các thuộc tính khóa )
• Cho К là một khóa của LĐQH а = (U,F) Khi đó với mọi tập con X của к ta có:
• x + nK = X.
• Chứng minh
• Vì X cX + vàXçK nên XcX + nK Ta cần chứng minh X +n к Œ X Giả sử А
e X + nK và A gX Ta xét tập M = K\A Dễ thấy XçM Ta có, theo tính chất đồngbiến của bao đóng, Ae X + ç M + Từ đây suy ra к с M +, do đó, theo tính chất lũy đẳngcủa bao đóng và tính chất khóa của к ta có, u= K+ çM ++= M +, tức là M là bộ phậnthực sự của khóa к lại đồng thời là siêu khóa, trái với định nghĩa khóa Vậy Ae X
• Đ ị n h lý 1.4
• (Công thức tính giao các khóa)
• Cho LĐQH а = (U,F) với n thuộc tính trong и và m PTH trong F Gọi Uj làgiao các khóa của a Khi đó có thể xác định giao các khóa bằng một thuật toán tuyếntính theo mn qua công thức:
Trang 22giả thiết rằng mọi PTH trong F đều có dạng L—»R, LnR = 0, tức là giả thiết rằng tậpPTH F được cho dưới dạng thu gọn tự nhiên Do giả thiết này ta có R\L=R.
•Dễ nhận thấy, theo công thức tính Ui trong định lý, Ui là tập các thuộc tínhkhông có mặt trong vế phải của mọi PTH trong F, do đó chúng phải có mặt trong mọikhóa Giả sử A là một thuộc tính có trong vế phải của PTH L—>AR' nào đó của F Tachứng minh A sẽ không xuất hiện trong một khóa K nào đấy của a Thật vậy, xét tập
X = Ư\A Dễ thấy X 3L và X += XAR' = ư và do đó X là siêu khóa Từ siêu khóa Xkhông chứa A ta lấy ra được một khóa K không chứa A
1.9.2 Thuật toán tìm khóa của một quan hệ, giao của các khóa.
• Input: r = {hl5 h2, , hm} là một quan hệ trên tập các thuộc tính R (R = {ai,
• &2V» Sn})
• Output: K là một khoá tối tiểu của
r Phương pháp:
• Bước 1: Từ r = {hl5 h2, , hm}, tính Er = {Eỹ : 1< i < j < m } là hệ bằng
nhau Bước 2: Từ Er tính Mr là hệ bằng nhau cực đại
•Mr = {B : có Ejj để Ejj = B và không có Es t:B(X Est ( Ejj, Egt e Er)}
• Bước 3: Lần lượt tính các tập thuộc tỉnh Ko, K i , , Kn theo quy tắc:
Trang 23của hãng cung cấp shmh: số hiệu của mặt hàng được cung cấp
sluong: Số lượng hàng cung cấp trong chuyển hàng E34 = { shh }
• Bước 2: TínhMr = {{ shh, sluong },{ ngay, shmh }}
• Bước 3: Ko = R = { ngay, shh, shmh, sluong }
• Vậy khoá tối tiểu của quan hệ chuyen hang: K={shmh, sluong }
* Thuật toán xác định giao các khóa trong LĐQH
Algorithm Keylntersec Format: KeyIntersec(U,F)
Trang 241.10 Dạng chuẩn của các hệ khóa [5] [9].
• Định nghĩa 1.11 ( Định nghĩa về Sperner).
• Giả sử r là một quan hệ, s = <R,F> là một sơ đồ quan hệ, Y là một họ ftrên R, và AçR Khi đó A là một khóa của r (tương ứng là một khóa của s,
• một khóa của Y) nếu A—>R (A-»ReF+’ (A,R)eY) Chúng ta gọi A là một
• r
• khóa của r (tương ứng của s, của Y) nếu
- A là một khóa của r (s, Y),
- Bất kỳ một tập con thực sự của A không là khóa của r (s, Y)
- Chúng ta ký pháp Kr (Ks, Ky) tương ứng là tập tất cả các khóa của r
Trang 25• Trong bảng trên mã số mặt hàng (MH) là khoá Mỗi giá trị MH đều xácđịnh duy nhất một loại mặt hàng trong quan hệ BAN HANG Ký hiệu Kr, Ks, Ky là tập tất cả các khoá tối tiểu của r (s, Y)
• Nếu ta có: K ={Kb K2, , Kn}
• ở đây, Kị (i = 1, , t) là các tập con của R, nếu có tính chất sau:
• + Ki không bao giờ nằm trong Kj ( Kị <ịz Kj ) thì K được gọi là một hệ
• Bây giờ chúng ta cho điều kiện cần và đủ để một hệ Spemer bất kỳ là
• Cho K là một hệ Spemer trên R Đặt Kp= [a&R\3A&K\a&A } và
Kn=R-• Kp.Kp(Kn) được gọi là tập các thuộc tính cơ bản (thứ cấp) của K
• Cho trước sơ đồ quan hệ s = <R,F>, chúng ta nói rằng phụ thuộc hàm A-^BeF là thừa nếu hoặc A=B hoặc có C-»DeF sao cho CcA và BcD
• Bây giờ ta giả thiết К là 2NF Ký pháp K'1 là tập các phản khóa của K
Từ К, K'1 ta xây dựng sơ đồ quan hệ sau:
• Đối với mỗi AcR ta có BeK"1 sao cho AeB Đặt с = n { в eK'1:
Trang 26• А e в } Ta lập А^с Ký pháp T là tập tất cả các phụ thuộc hàm như thế
• Đặt F = { E->R:EeK }u(T-Q), ở đây Q = { X->YeT: X->Y là phụ
• thuộc hàm thừa } Từ định lý và định nghĩa của hệ Spemer ta thu được Ks =
• Rõ ràng, với mỗi Sơ đồ quan hệ bất kỳ Si =(R,Fi) sao cho Ksl=K và AçR ta có
A+ slçA + s ở đây A + Sl={ a:A-> { a } eF^ } Chúng ta đã chứng
• minh rằng [9] Kn là giao của phản khóa Trên cơ sở việc xây dựng S=<R,F>
và phù hợp với định nghãi của hệ Spemer 2NF ta có Kn=^.
• Dễ thấy Sơ đồ quan hệ 3NF là 2NF và nếu tập các thuộc tính thứ cấp là rỗngthì Sơ đồ quan hệ này 3NF Do đó từ định lý ta có hệ quả sau
• Cho К là hệ Spemer trên R Khi đó к là 3NF nếu và chỉ nếu Kn=
Ф
Định nghĩa 1.13
• Cho К là hệ Spemer trên R Ta nói к là đơn nhất к xác định duy nhất Sơ
đồ quan hệ s = <R,F>, theo nghĩa đối với mọi Sơ đề quan hệ s’= <R,F’>mà Ks>= Кthì ta có F+=F’+
• Từ định nghĩa hệ Spemer BCNF và định nghĩa (1.7.4) ta có
• Mênh đề 1.1
• К là BCNF nếu và chỉ nếu к là đơn nhất
• Như đã biết [5] đối YỚi hệ Spemer cho trước к tồn tại Sơ đồ quan hệ s (
• tương ứng quan hệ r) sao cho Ks=K(tương ứng Kr=K) Ta nói s ( tương ứng r)
là đơn nhất nếu Ks ( tương ứng Kr) xác định duy nhất s ( tương ứng r) Có nghĩa là
KJS( tương ứng Kr) là đơn nhất
• Bây giờ ta cho một điều kiện cần và đủ để một Sơ đồ quan hệ là đơn
• Định Lý 1.7
Trang 27• Cho s= (R,F) là Sơ đồ quan hệ trên R Khi đó s là đơn nhất nếu và chỉnếu đối với mọi a e A, A e K_1 s: A-a= n| Be K _1 s:(A-a) с: в }
• Tồn tại thuật toán đa thức xác định tập các khóa tối thiểu của một quan
hệ cho trước là BCNF hay không
cơ sở dữ liệu dạng khối được xây dựng và mô tả trong [1], [2], [3],
[4] , [5], [8], [9], [10], [11], [12], [13] Mô hình này giúp biểu diễn thế giới thựctrong quá trình vận động một cách tự nhiên hơn
Trang 282.1 Khối, lược đồ khối
• Khái niệm toán học làm nền tảng cho mô hình cơ sở dữ liệu dạng khối(gọi tắt là mô hình khối) là các khối hiểu theo nghĩa của lý thuyết tập hợp Khối đượcđịnh nghĩa như sau:
• Định nghĩa 2.1.
• Gọi R = ( id; Ab A2, , An ) là một bộ hữu hạn các phần tử, trong đó id
là tập chỉ số hữu hạn khác rỗng, Ai ( i=l, n ) là các thuộc tính Mỗi thuộc tính Aj
( i=l, и ) có miền giá trị tương ứng là dom(Ai ) Một khối r trên tập R, kí hiệu r(R)
gồm một số hữu hạn phàn tử mà mỗi phần tử là một họ các ánh xạ từ tập chỉ số id đếncác miền trị của các thuộc tính Ai, (i=l,и) Nói một cách khác : t e r(R) <=> t = {t‘ : id
đồ theo dõi số lượng hàng được bán theo từng chủng loại Tivi Sony tại từng cửa hàng(trên cơ sở bán hàng ra hàng ngày)
• Căn cứ vào các biểu đồ theo dõi của mỗi loại mặt hàng tại các cửa hàng này
mà công ty điều chỉnh số lượng hàng phân cho mỗi cửa hàng phù hợp hơn
• Để đáp ứng yêu cầu trên công ty đã tiến hành xây dựng khối dữ liệu với têngọi BANHANG cụ thể như sau:
• Chọn R = (id; Al, A2, A3, A4, A5), trong đó:
Trang 29• id = {1/1/2014,2/1/2014, ,31/5/2014}, và các thuộc tính là AI = mach (mã
• cửa hàng), A2 = 21 inch ( Tivi Sony 21 inch), A2 = 32 inch ( Tivi Sony 32inch), A3 = 42 inch ( Tivi Sony 42 inch)
• Với khối BANHANG ở trên ta thấy:
• Trên cơ sở số liệu thu được có thể rút ra nhận xét rằng trong 2 ngày 1 và
• 2/1/2014 thì CHI bán được lượng Tivi Sony 21inch nhiều hơn so với cửa
• CH2 và CH3 Tương tự ta thấy CH3 bán được nhiều Tivi Sony 42 inch hơn
Trang 30• ^I incn 32 inch 37 inch 42
lý nhân viên trong một cơ
quan như sau:
•Cho lược đồ khối R = (
id; Ai, A 2 A 3 , A4 ), trong đó: id
Trang 31và các thuộc tính là Ai = ma (mã), A 2 = ten
• (tên), A 3 = luong
(lương), A4 = trinhdo (trình độ).
• Với khối NV(R) ở hình 2.1, ta thấy nó gồm 3 phần tử:
ti, t 2 , t 3
•
ma ten luon g trin h_d o
Trang 33• -Tên của cán bộ t2 vào
Trang 34• Ví dụ 2.2: Với khối
NV(R) đã cho ởtrên, R = (id; Ab A2 A3, A4)
• trong đó : id = {1/2009,2/2009, 3/2009, , 12/2009}
•A! = ma, A2 = ten,
Trang 35A3 = luong, A4 = trinhdo
• Neu X = 2/2009 € id thìlát cắt r(R2/2009) có dạng nhưsau :
Trang 36•
Trang 37• Mệnh đề 2.1 [4]
• Cho R = (id; Al,
A2, , An), r(R) là một khối
trên R Với mỗi xe id thì lát cắt
• Cho R = (id; Al,
A2, , An), r(R) là một khối trên
R, khi đó tồn tại một họ quan hệ
duy nhất biểu diễn họ {r(Rx)}xeid
các lát cắt của khối r(R) Ngược
Trang 38lại không đúng, nghĩa là với một
họ quan hệ cho trước biểu diễn
họ các lát cắt của một khối nào
đó thì khối tìm được không duy
nhất
• Chứng minh:
- Với khối r(R) cho trướcthì họ quan hệ phải tìmchính là họ {r(Rx)}xeid cáclát cắt của khối r(R)
- Điều ngược lại khôngđúng, để khẳng định taxét trường hợp sau : Giả
sử ta có một họ gồm 2
quan hệ {ĩi(A,B,C),r2(A,B,C)} :
• Khi đó ta có chẳng hạn các khối sau đây nhận
họ hai quan hệ {rb r2} nói trên là họ các lát cắt của nó :
Trang 39diễn lát cắt
• Như vậy sự tồntại của khối có họ các lát cắt
là họ các quan hệ {ĩj , r2} nói trên là không duy nhất
2.3 Khóa của khối [5].
•
Cho R = ( id ; Ab
A2, ,An), r là một khối trên
R Với mỗi X e id, t e r(R), t
= ( t1, t2,
t“), ta kí hiệu t(x;Aj), ( i
=l n), là giá trị của
• phần tà ở thuộc tính Ai tạichỉ số X.
• Để thuận lợi cho việc trình bày, ta đặt Xi = (x; Ai), X
e id và như vậy: t(x(i) ) = t( x; Aj) = t1 (x), ( i = 1 n ) Từ đó, ta
kí hiệu :
• id® = { X® I X e id } ,
Trang 40như vậy id® = {(x; Aj ) I X e
id}
• Với X® ÇZ id(i)thì ta kí hiệu : t(X® ) = {t(y )| y(i)
e Xй }
• Giả sử ti , t2 e r(R)với ti = { t1! : id —> dom(Ai) } i=i n, t2 = {х\ : id -> dom(Ai) }i=1 n,
• khi đó ta định nghĩa khóa của khối r(R) như sau :
• Định nghĩa 2.3 [5], [13]
• Khóa của khối rtrên lược đồ khối R = ( id; AbA2, , An ) là một tập К = { x(il),
x(i2), x(ih) }, trong đó x(ik) Ф 0, x(ik)
ÇZ id(ik) , (k = 1 h), thỏa mãnhai tính chất :
• a-Với bất kì
2 phần tử Í!
t 2 € r đều tồn tại một
x (ik) € к sao cho : -t!