Ban chỉ ĐẠo công nghệ thông tin của cơ quan đẢng giáo trình thiết kế, XÂy dựng và quản trị CƠ SỞ DỮ liệu hà NỘI, 2004



tải về 1.04 Mb.
trang15/29
Chuyển đổi dữ liệu07.07.2016
Kích1.04 Mb.
1   ...   11   12   13   14   15   16   17   18   ...   29

IV.CHUYỂN ĐỔI MÔ HÌNH THỰC THỂ-LIÊNKẾT THÀNH MÔ HÌNH QUAN HỆ


Như đã thảo luận ở chương II, bước tiếp theo sau việc xây dựng mô hình dữ liệu mức khái niệm, ta phải chuyển đổi mô hình đó thành một mô hình dữ liệu lô gic. Trong phần này chúng ta sẽ thảo luận về thuật toán chuyển đổi một mô hình ER thành ra mô hình quan hệ.

1.Các quy tắc chuyển đổi

Thuật toán chuyển đổi được thực hiện theo các bược sau:


Bước 1 : Với mỗi kiểu thực thể thông thường E trong lược đồ ER, hãy tạo một quan hệ R chứa mọi thuộc tính đơn của E. Với các thuộc tính phức hợp, chỉ lấy các thuộc tính thành phần đơn của nó. Chọn một trong các thuộc tính khoá của E làm khoá chính cho R. Nếu khoá được chọn của E là phức hợp (gồm nhiều thuộc tính) thì tập các thuộc tính đơn đó sẽ cùng nhau tạo nên khoá chính của R.

Ví dụ: Giả sử ta có kiểu thực thể ĐƠNVỊ với các thuộc tính là MãsốDV, TênDV, Địađiểm trong đó các thuộc tính khoá là MãsốDV, TênDV (do mỗi đơn vị có một tên duy nhất), và Địađiểm là một thuộc tính đa trị (do mỗi đơn vị có nhiề địa điểm). Khi đó kiểu thực thể ĐƠNVỊ được chuyển thành quan hệ ĐƠNVỊ với các thuộc tính MãsốDV, TênDV. Khoá chính của quan hệ là MãsốDV (chọn một trong hai thuộc tính khoá của kiểu thực thể)



Bước 2: Với mỗi kiểu thứ thể yếu W trong lược đồ ER cùng với kiểu thực thể chủ E, hãy tạo một quan hệ chứa tất các các thành phần đơn (hoặc các thành phần đơn của các thuộc tính phức hợp) của W như là các thuộc tính của R. Đưa các thuộc tính khoá chính của các quan hệ tương ứng với kiểu thực thể chủ làm khoá ngoài của R. Các thuộc tính này sẽ xác định kiểu liên kết của W. Khoá chính của R là một tổ hợp của khoá chính của các quan hệ tương ứng với kiểu thực thể chủ và khoá bộ phận của kiểu thực thể yếu W nếu có.

Ví dụ: Giả sử ta có kiểu liên kết NHÂNVIÊN PHỤTHUỘC trong đó NHÂNVIÊN là kiểu thực thể chủ với các thuộc tính MãsốNV, HọtênNV, NgàysinhNV, GiớitínhNV.Thuộc tính khoá của NHÂNVIÊN là MãsốNV.

PHỤTHUỘC là kiểu thực thể phụ thuộc (vào thực thể NHÂNVIÊN) với các thuộc tính là HọtênPT, NgàysinhPT, GiớitínhPT, Mốiquanhệ. Kiểu thực thể này không có thuộc tính khoá. Khi đó kiểu thực thể NHÂNVIÊN được chuyển thành quan hệ NHÂNVIÊN với các thuộc tính như trên. Kiểu thực thể PHỤTHUỘC được chuyển thành quan hệ PHỤTHUỘC với các thuộc tính

HọtênNV, HọtênPT, NgàysinhPT, GiớitínhPT, Mốiquanhệ. Quan hệ này có khoá ngoài là HọtênNV, khoá chính là HọtênNV, HọtênPT.



Bước 3: Với mỗi kiểu liên kết 1:1 R trong lược đồ ER, hãy xác định các quan hệ S và T tương ứng với các kiểu thực thể tham gia trong R. Hãy chọn một trong các quan hệ, chẳng hạn S, và đưa khoá chính của T vào làm khoá ngoài trong S. Tốt nhất là chọn S là một kiểu thực thể tham gia toàn bộ vào R. Đưa tất các các thuộc tính đơn (hoặc các thành phần đơn của các thuộc tính phức hợp) của kiểu liên kết 1:1 R vào làm các thuộc tính của S.

Chú ý: Có một cách chuyyển đổi mối liên kết 1:1 nữa nhập hia kiểu thực thể và mối liên kết thành một quan hệ. Cách này thường được áp dụng khi cả hai kiểu thực thể đều tam gia toàn bộ vào liên kết.

Ví dụ: Giả sử ta có kiểu liên kết NHÂNVIÊN ĐƠNVỊ, với các thuộc tính của các kiểu thực thể giống như ở trên. Kiểu liênkết là một kiểu liên kết 1:1, đồng thời sự tham gia của NHÂNVIÊN vào kiểu liên kết là bộ phận (không phải nhân viên nào cũng quản lý đơn vị), sự tham gia của ĐƠNVỊ là đầy đủ (một đơn vị luôn luôn phải có một người quản lý). Khi đó, kiểu thực thể NHÂNVIÊN sẽ được chuyển thành quan hệ NHÂNVIÊN với các thuộc tính của nó, còn kiểu thực thể ĐƠNVỊ sẽ được chuyển thành quan hệ ĐƠNVỊ với các thuộc tính của kiểu thực thể ĐƠNVỊ cộng thêm với thuộc tính MãsốNV và thuộc tính của kiểu liên kết , nếu có. Thuộc tính MãsốNV sẽ là khoá ngoài cho quan hệ ĐƠNVỊ

Bước 4: Với mỗi kiểu liên kết hai ngôi R kiểu 1:N, hãy xác định quan hệ S biểu diễn kiểu thực thể tham gia ở phía N của kiểu liên kết. Đưa khoá chính của quan hệ T biểu diễn kiểu thực thể tham gia vào R ở phía 1 vào làm khoá ngoài trong S. Làm như vậy là vì mỗi thực thể cụ thể của phía N được liên kết với nhiều nhất là một thực thể cụ thể của phía 1 của kiểu liên kết. Đưa các thuộc tính đơn (hoặc các thành phần đơn của các thuộc tính phức hợp) của kiểu liên kết 1:N vào làm các thuộc tính của S.

Ví dụ: Giả sử ta có kiểu liên kết NHÂNVIÊN ĐƠNVỊ, trong đó các kiểu thực thể NHÂNVIÊN, ĐƠNVỊ là các kiểu thực thể ở trên. Kiểu liên kết < làm việc cho> là kiểu liên kết N:1 (một nhân viên chỉ làm việc cho một đơn vị và mỗi đơn vị có nhiều nhân viên làm việc cho). Khi đó, Kiểu thực thể ĐƠNVỊ sẽ được chuyển thành quan hệ ĐƠNVỊ với các thuộc tính của kiểu thực thể ĐƠNVỊ còn kiểu thực thể NHÂNVIÊN sẽ được chuyển thành quan hệ NHÂNVIÊN với các thuộc tính của kiểu thực thể NHÂNVIÊN cộng thêm với thuộc tính MãsốDV (là khoá chính của quan hệ ĐƠNVỊ). Thuộc tính MãsốDV sẽ là thuộc tính khoá ngoài của quan hệ NHÂNVIÊN



Bước 5: Với mỗi kiểu liên kết N:M hai ngôi R, hãy tạo ra một quan hệ mới S để biểu diễn R. Đưa các khoá chính của các quan hệ biểu diễn các kiểu thực thể tham gia vào làm khoá ngoài của S. Tổ hợp các khoá chính đó sẽ tạo nên khoá chính của S. Đưa tất cả các thuộc tính đơn (hoặc các thành phần đơn của các thuộc tính phức hợp) của kiểu liên kết N:M vào làm các thuộc tính của S. Chú ý rằng ta không thể biểu diễn một kiểu liên kết N:M bằng một thuộc tính khoá ngoài đơn giản trong một trong các quan hệ tham gia (như đã làm với các kiểu liên kết 1:1 và 1:N) vì tỷ số lực lượng N:M.

Ví dụ: Giả sử ta có kiểu liên kết NHÂNVIÊN < làm việc với> Dựán. Kiểu thực thể NHÂNVIÊN có các thuộc tính như trên với thuộc tính khoá là MãsốNV. Kiểu thực thể Dựán có các thuộc tính là MãsốDA, TênDA, Địađiểm trong đó thuộc tính khoá là MãsốDA. Kiểu liên kết < làm việc với> là một kiểu liên kết N:M (một nhân viên có thể làm việc với nhiều dự án và mỗi dự án có nhiều nhân viên làm việc với).Kiểu liên kết này có một thuộc tính là Sốgiờ để lưu số giờ mà mỗi nhân viên làm việc cho một dự án. Khi đó kiểu liên kết < làm việc với> sẽ được chuyển thành một quan hệ có tên là NHÂNVIÊN_Dựán với các thuộc tính MãsốNV, MãsốDA, Sốgiờ trong đó hai thuộc tính MãsốNV, MãsốDA tạo thành khoá chính (phức hợp) cho quan hệ.



Bước 6: Với mỗi thuộc tính đa trị A, hãy tạo ra một quan hệ mới R. Quan hệ R này sẽ chứa một thuộc tính tương ứng với A cộng với thuộc tính khoá K của quan hệ biểu diễn kiểu thực thể hoặc kiểu liên kết có thuộc tính là A làm khoá ngoài của. Khoá chính của R là một tổ hợp của A và K. Nếu thuộc tính đa trị là phực hợp thì chúng ta chỉ đưa vào R các thành phần đơn của nó.

Ví dụ: Xét kiểu thực thể ĐƠNVỊ ở trên. Thuộc tính Địađiểm là một thuộc tính đa trị. khi chuyển thành mô hình quan hệ nó sẽ được chuyển thành một quan hệ có khoá chính là MãsốDV, Địa điểm và có thể có thêm một số thuộc tính khác lưu thông tin về địa điểm.



Bước 7: Với mỗi kiểu liên kết n ngôi R, trong đó n>2, hãy tạo ra một quan hệ S để biểu diễn R. Đưa các khoá chính của các quan hệ biểu diễn các kiểu thực thể tham gia vào làm khoá ngoài của S. Đưa tất cả các thuộc tính đơn (hoặc các thành phần đơn của các thuộc tính phức hợp) của kiểu liên kết n-ngôi vào làm thuộc tính của S. Khoá chính của S thường là một tổ hợp các khoá chính của các quan hệ biểu diễn các kiểu thực thể tham gia. Tuy nhiên, nếu ràng buộc lực lượng trên một kiểu thực thể E nào đó tham gia vào R là 1 thì khoá chính của S không được chứa thuộc tính khoá ngoài quy chiếu đến quan hệ E’ tương ứng với E.

Ví dụ: Giả sử chúng ta có kiểu liên kết Đại lý vậttư cho dựán

Đây là một kiểu liên kết cấp 3. Giả sử rằng kiểu thực thể ĐạIlý có thuộc tính khoá là MãsốDL, kiểu thực thể Vậttư có thuộc tính khoá là MãsốVT, kiểu thực thể Dự án có thuộc tính khoá là MãsốDA còn kiểu liên kết có thuộc tính là Sốlượng để lưu số lượng vật tư mà một đai lý cung cấp cho môt dự án. Khi đó kiểu liên kết sẽ được chuyển thành một quan hệ có tên là CUNGCÂP với các thuộc tính MãsốDL, MãsốVT, MãsốDA, Sốlượng và khoá chính gồm ba thuộc tính MãsốDL, MãsốVT, MãsốDA.

1   ...   11   12   13   14   15   16   17   18   ...   29


Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2016
được sử dụng cho việc quản lý

    Quê hương