CHƯƠNG 4 PHÂN TÍCH Ý NIỆM DỮ LIỆU
III. C ÁC CÔNG Cụ BIểU DIễN PTH CHO MÔ HÌNH E−A
III.2. Ví dụ ứng dụng phụ thuộc hàm
III.2.2. Ma trận rút gọn các PTH
Một PTH được gọi là sơ cấp nếu nguồn là một dữ liệu sơ cấp, không phải dạng ghép (tổ hợp) của nhiều dữ liệu.
Giống ma trận đầy đủ các PTH, ma trận rút gọn được xây dựng từ các PTH sơ cấp.
b) PTH trực tiếp
Một PTH là trực tiếp nếu nó không là bắc cầu. Ma trận rút gọn chỉ chứa các PTH trực tiếp.
c) Ma trận rút gọn
Nguồn Trong ma trận rút gọn, các khoá và
Đích 12 13 14 15 16 23 A các số 1 được gạch chân để dễ phân biệt.
1 DSốNăm-1 1 Các dòng dữ liệu không là khoá chỉ có 2 DSốTháng 1 một số 1 duy nhất thể hiện các PTH 3 NgàyĐặtHg 1 sơ cấp và trực tiếp. Trường hợp dòng 2 4 NgàyCóHg 1 cho dữ liệu DSốTháng sẽ xét sau.
5 NgàyKThúc 1 Đối với các dòng tương ứng với 6 NgàyGiao 1 dữ liệu khoá, trừ một số 1 thể hiện 7 NgàyBán 1 tính phản xạ, các số 1 khác thể hiện các 8 HạnGiaoHg 1 kết hợp phân cấp (CIF).
9 ChỉDẫnHg 1 Chẳng hạn, dòng 14 cho MãKH, hai
10 TênTháng 1 số1 không gạch chân thể hiện hai CIF : 11 GiaTiền 1 một số 1 tương ứng với thực thể
12 SốHĐGiaoHg 1 1 1 ĐĐHÀNG có khoá là SốHĐĐặtHg :
13 SốHĐĐặtHg 1 1 SốHĐĐặtHg ⎯→ MãKH,
14 MãKH 1 1 1 1 một số 1 sẽ tương ứng với thực thể
15 NơiBánHg 1 1 NƠIBÁN có khoá là NơiBánHg :
16 Tháng 1 1 NơiBánHg ⎯→ MãKH
17 TênKH 1
18 GiáNơiBán 1
19 GiáĐơnVị 1 Chú ý :
20 SLĐặt 1 Trước hết cần nhớ rằng các đơn đặt 21 SLSX 1 hàng, cũng như các nơi bán, thường 22 SLBán 1 được yêu cầu giao hàng toàn bộ một lúc, 23 MãHàng 1 1 1 và, một giao hàng chỉ liên quan đến một 24 ĐịaChỉKH 1 đơn đặt hàng hoặc một nơi bán mà thôi.
25 SLBáoĐộng 1 Tuy nhiên, đơn đặt hàng hay nơi bán 26 SLCó 1 được ghi nhận rồi mà việc giao hàng 27 ĐiệnThKH 1 có thể chưa được thực thi.
A = 14 + 16 (MãKH + Tháng)
Các PTH giữa các khoá liên quan đến SốHĐGiaoHg, có hai vấn đề như sau :
PTH SốHĐĐặtHg ⎯→ SốHĐGiaoHg là một PTH không hoàn toàn, bởi vì biết một giá trị của SốHĐĐặtHg có thể kéo theo sự nhận biết nhiều giá trị của SốHĐGiaoHg. Nhưng chừng nào mà việc giao hàng ứng với một đơn đặt hàng chưa được ghi nhận thì chưa thể kéo theo sự nhận biết giá trị của SốHĐGiaoHg. Tương tự như vậy cho PTH : NơiBánHg ⎯→
SốHĐGiaoHg.
Hai PTH trên có tính tương hỗ qua lại. Nghĩa là ta có các PTH : SốHĐGiaoHg ⎯→ SốHĐĐặtHg và SốHĐGiaoHg ⎯→ NơiBánHg.
Đây là trường hợp đặc biệt. Hơn nữa, hai PTH này là sơ cấp vì biết được giá trị của SốHĐGiaoHg thì biết được hoặc một giá trị của SốHĐĐặtHg, hoặc một giá trị của NơiBánHg.
Như vậy, một giao hàng có thể chỉ ứng với một nơi bán, hoặc chỉ ứng với một đơn đặt hàng (loại trừ lẫn nhau).
Các PTH không sơ cấp xuất hiện trong ma trận các PTH là do không tồn tại những PTH có nguồn là dữ liệu sơ cấp.
Đó là trường hợp của DSốTháng. Không có PTH mà MãKH là nguồn vì với một khách hàng, có bao nhiêu tháng đã qua thì cũng có bấy nhiêu DSốTháng. Tương tự như vậy, đối với PTH có nguồn là Tháng, vì với một tháng đã cho, có bao nhiêu khách hàng hiện diện trong CSDL trong tháng thì cũng có bấy nhiêu DSốTháng.
Như vậy, để biết duy nhất một giá trị DSốTháng, cần biết MãKH và Tháng. Cấu trúc này được thể hiện bởi một bảng hai chiều, một chiều là các giá trị của MãKH, và chiều kia là các giá trị của Tháng. Ta có một kết hợp không phân cấp (hay ràng buộc toàn vẹn bội CIM) như sau :
MãKH, Tháng ⎯→ DSốTháng
Đây là những PTH vế trái ghép. Trong ma trận rút gọn các PTH, ta thêm một cột và một dòng cho PTH không sơ cấp. Thực ra thì chỉ cần thêm một cột, là cột A = 14 + 16, với số 1 ở dòng 2, dòng 14 và dòng 16. Sau khi xây dựng xong ma trận rút gọn các PTH theo cách này, các dữ liệu đều được đặt, hoặc trong một thực thể (chúng là đích của các PTH có nguồn là sơ cấp), hoặc trong một kết hợp không phân cấp (chúng là đích của các PTH có nguồn là do nhiều dữ liệu ghép lại).
Chú ý :
Mọi kết hợp không phân cấp (CIM) không mang dữ liệu, như trong ví dụ chúng ta vừa xét.
Vấn đề là không tồn tại những dữ liệu tách biệt khỏi những PTH sơ cấp. Chúng được biểu diễn như sau :
khoá-1, khoá-2 → 0 III.2.4.Kết luận
Mỗi thực thể được thể hiện bởi một khoá và các dữ liệu là thuộc tính của thực thể trong đó, khoá là nguồn, các dữ liệu là các đích của PTH (sơ cấp và trực tiếp). Ví dụ, tại cột 14, thực thể là KHHÀNG, khoá là MãKH, và các thuộc tính là DSốNăm-1, MãKH, TênKH và ĐịaChỉKH.
Hai kiểu kết hợp được xem xét như sau :
− Kết hợp phân cấp (kiểu CHA-CON, sẽ xét ở chương sau) với các PTH giữa các khoá.
Chẳng hạn, cột 14 có số 1 dòng 14 biểu diễn một kết hợp phân cấp giữa các thực thể ĐĐHÀNG và KHHÀNG. Một đơn đặt hàng chỉ liên quan đến một khách hàng nhưng một khách hàng lại có thể đặt nhiều đơn đặt hàng.
− Kết hợp không phân cấp (kiểu BẢNG, sẽ xét ở chương sau) với các PTH vế trái ghép.
Chẳng hạn, duy nhất trong ví dụ, cột 14+16, hai thực thể liên quan là KHHÀNG và THÁNG.
Kết hợp này có một dữ liệu là DSốTháng.