CHƯƠNG 6 XÂY DỰNG MÔ HÌNH LOGIC DỮ LIỆU
II. C HUYểN ĐổI MÔ HÌNH E−A Về MÔ HÌNH QUAN Hệ
Dưới đây trình bày chín qui tắc chuyển đổi một sơ đồ E-A thành một lược đồ quan hệ.
Trước khi chuyển đổi, sơ đồ E-A đã phải được thiết kế đúng và đầy đủ, không dư thừa các kết hợp, các kiểu đặc tính khóa và các bản số đều hữu hạn. Sơ đồ E-A chỉ chứa các kết hợp nhị nguyên mà ít nhất một trong hai bản số cực đại phải bằng 1. Người ta nói sơ đồ E-A đã được chuẩn hóa.
Từ nói sơ đồ E-A đã được chuẩn hóa, xây dựng lược đồ quan hệ bằng cách đặt tương ứng mỗi kiểu thực thể thành một sơ đồ của quan hệ. Thực tiễn cho thấy những người phân tích thiết kế hệ thống có kinh nghiệm có khả năng xây dựng được các mô hình ý niệm dữ liệu để chuyển thành các cơ sở dữ liệu ở dạng 3 NF.
a) Qui tắc 1
Kiểm tra các kiểu đặc tính đều có kiểu đơn. Thay thế các kiểu đặc tính đa trị thành một kiểu thực thể và một kiểu kết hợp. Khi ca có thể đưa vào một kiểu đặc tính khóa cho kiểu thực thể mới và xác định lại các bản số của kết hợp mới này.
Trong kiểu thực thể NHÂNVIÊN, đặc tính TuổiConNV là một danh sách tuổi của các con của nhân viên. Thay thế đặc tính này bởi kiểu thực thể CONNV. CONNV sẽ có các đặc tính TuổiConNV và NVConThứ (con thứ mấy). Khóa của CONNV là NVConThứ được xác định từ MãNV của NHÂNVIÊN và NVConThứ của nhân viên này.
b) Qui tắc 2
Kiểm tra các kiểu đặc tính sơ cấp. Thay thế các kiểu đặc tính tổ hợp (aggregate) bởi các đặc tính mới là những thành phần đã tổ hợp thành kiểu đặc tính này.
Ví dụ kiểu đặc tính Địa chỉ thường được thay thế bởi danh sách các kiểu thuộc tính Phố (xã), Quận (huyện), ThànhPhố (tỉnh), QuốcGia.
c) Qui tắc 3
Kiểm tra các kiểu thực thể có các kiểu đặc tính khóa đơn. Đưa vào các dữ liệu đồng nghĩa (synonymous) cho các khóa tổ hợp. Ví dụ trong qui tắc 1, thay thế khóa tổ hợp mã NVConThứ thứ bởi dữ liệu đồng nghĩa MãConNV.
NHÂNVIÊN MãNV TuổiConNV
NHÂNVIÊN MãNV
CONNV NVConThứ TuổiConNV (a)
0−n CóCon 1−1
(b)
Ví dụ :
Thay thế kiểu kết hợp Mổ bởi kiểu thực thể mới MỔ và 4 kiểu kết hợp mới cùng các bản số tương ứng được tạo thành như sau :
BÁCSỸ MãBS TênBS
PHÒNGMỔ PhòngSố
NGÀYMỔ NgàyGhiSổ Mổ
ThờiGianMổ BỆNHNHÂN
MãBN TênBN
0−n 1−n
1−1 1−2 1−1 1−1
1−n 0−n BÁCSỸ
MãBS TênBS
PHÒNGMỔ PhòngSố
NGÀYMỔ NgàyGhiSổ BỆNHNHÂN
MãBN TênBN
MỔ MãCaMổ ThờiGianMổ MổTại
BịMổ ThựcHiện
XảyRa
e) Qui tắc 5
Đưa kết hợp không phân cấp (n:m) về kết hợp phân cấp (1:n) : Thay thế các kiểu kết hợp có bản số (*−n) và (*−n), nghĩa là quan hệ n:m, bởi một kiểu thực thể và hai kiểu kết hợp. Tạo khóa mới cho kiểu thực thể mới và xác định các bản số của hai kiểu kết hợp mới này.
Một trong hai bản số cực đại phải là 1, nghĩa là kiểu kết hợp phải tương ứng với một PTH giữa các khóa và hai thực thể.
Trong ví dụ ở qui tắc 4, kết hợp TIẾN HÀNH phải được thay thế bởi một kiểu thực thể và hai kiểu kết hợp.
f) Qui tắc 6
Trong trường hợp giữa hai kiểu thực thể có nhiều kiểu kết hợp, thêm vào trong các kiểu thực thể được tạo ra ở qui tắc 5, một kiểu thuộc tính là ghép của các khóa của các kiểu thực thể liên quan.
Ví dụ : trong ví dụ hình 52 chương 4, giữa hai kiểu thực thể CÁNHÂN và CĂNHỘ có các kiểu kết hợp SỡHữu, Thuê và ỞTại. Riêng kiểu kết hợp ỞTại là không phân cấp. Áp dụng hai qui tắc 5 và 6 để nhận được sơ đồ như sau :
Trong mô hình dữ liệu, chủ sở hữu và người thuê nhà (CÁNHÂN) đều đồng nghĩa với số chứng minh nhân dân (SốCMND).
g) Qui tắc 7
Vẽ đồ thị phụ thuộc hàm nối các khóa của các kiểu thực thể và tìm kiếm các PTH bắc cầu 1−2 1−n
ThựcHiện
BÁCSỸ MãBS TênBS MỔ
MãCaMổ ThờiGianMổ
BÁCSỸ MãBS TênBS MỔ
MãCaMổ ThờiGianMổ
THỰCHIỆN MãSốTH
1−2 1−1 1−1 1−n (a)
(b)
0−n 0−n CÁNHÂN
SốCMND HọTên
SỡHữu
Thuê 0−n
0−n
1−1
1−1 0−1
1−1
CĂNHỘ NghiệpChủSố
ĐịaChỉ
ỞTẠI CưTrúSố SốCMND NghiệpChủSố
Tạo một lược đồ quan hệ cho mỗi một kiểu thực thể. Khóa của quan hệ là khóa của kiểu thực thể. Các thuộc tính của quan hệ tương ứng với các kiểu đặc tính của kiểu thực thể.
Như vậy, ví dụ cho ở qui tắc 6 cho ta các lược đồ quan hệ sau : CÁNHÂN (SốCMND, HọTên, ...)
CĂNHỘ (NghiệpChủSố, ĐịaChỉ, ...)
ỞTẠI (CưTrúSố, SốCMND, NghiệpChủSố, ...) i) Qui tắc 9
Loại bỏ các khóa đơn đồng nghĩa được tạo ra từ các kiểu khóa tổ hợp và kiểm tra quan hệ nhận được ở dạng 2 NF và 3 NF. Sử dụng phương pháp phân chia nếu cần cho những quan hệ như ở dạng chuẩn 2 NF và 3 NF, sau đó sữa đổi lại mô hình E-A.