CƠ SỞ DỮ LIỆU QUAN HỆ SANG ĐỒ THỊ QUAN H Ệ

Một phần của tài liệu giáo trình thiết kế cơ sở dữ liệu phần 2 của trịnh minh tuấn (Trang 76)

- Hình IV.4 –Một đồ thị quan hệ–

CƠ SỞ DỮ LIỆU QUAN HỆ SANG ĐỒ THỊ QUAN H Ệ

HỆ

III.1. Mục tiêu

Ngoài 3 mục tiêuđãđược đề ra cho quá trình biến đổi từ cấu trúc quan niệm (ở dạng quan hệ) sang cấu trúc ở dạng lô gic, thuật toán sẽ được trình bày trong phần này còn nhắm thêm 2 mục tiêu khác:

ưu tiên cho khoá nào trong số các khoá của một quan hệ thuộc về lãnh vực cài đặt, và sẽ được cân nhắc ở giai đoạn thiết kế vật lý. Điều này giải thích bước thứ nhất của thuật toán.

-Làm nổi bật những tập thuộc tính chung của mỗi cặp quan hệ, vìđó là cơsở của phép kết.

III.2. Thuật toán Vào :

Một phân rã của Q dựa trên F : {Qi}ni=1, mỗi Qi có tập khoá (Ki)

Ra :

Đồ thị quan hệ tươngứng với .

Các bước :

B1: Biến đổi thành một phân rãđồng nhất d:

1.1. Với mọi cặp quan hệ con Qi, Qj, nếu KiKj, Ki, Kj

lần lượt là một khoá của Qi, Qj, thì gộp Qi, Qj lại thành một quan hệ con.

1.2. Với mỗi Qi , nếu Qi+ có chứa một khoá Kj của Qj, thì Qi+phải chứa tất cả các khoá của Qj.

B2: Tạo nút và quan hệ nút:

Mỗi quan hệ Qilà một nút Ni với QNi =Qi.

B3: Tạo nút bản lềvà quan hệ (nút) bản lề:

Mục đích làm nổi bật các thuộc tính chung của mỗi cặp quan hệ nút.

3.1.Qi, Qj, Qij+= Qi+Qj+. 3.2. Chừng nào Qij+<> thì:

- xác định tất cả khoá của Q [Qij+ ] ; KQij+ ký hiệu tập thuộc tính khoá của Q [Q +

thì tạo 1 nút bản lề Nb1với quan hệ Qb1 = Q [KQij+] Cuối nếu - Qij+:= Qij+- KQij+ Cuối chừng nào B4: Tạo cung:

Chú ý : chỉ tạo số cung tối thiểu xuất phát từ một nút. 4.1.

Nivới Qi, xácđịnh:

PTH (Ni) = {Njvới Qi+KQj+}

PTH_THỪA (Ni) = {NjPTH (Ni) sao cho :

NhPTH (Ni) với Qhsao cho KQh+KQj+}

LỒNG_KHOÁ(Ni)={Njvới Qjsao choKQi+KQj+} LỒNG_KHOÁ_THỪA(Ni)={NjLỒNG_KHOÁ(Ni) sao cho: NhLỒNG_ KHOÁ (Ni) với Qh sao cho: KQh+KQj+} Cung (Ni) = ( PTH (Ni) - PTH_THỪA (Ni) ) (LỒNG_ KHOÁ (Ni) - LỒNG_ KHOÁ_THỪA (Ni) ) Cuối  4.2. NiCung (Ni) thì

tạo 1 cung có hướng từ Ni Nj: cij Cuối 

B.5: Huỷ những nút bản lề thừa Ni sao cho :

- có một khoá duy nhất là Kk

- Không có thuộc tính nào khác ngoài khoá - Chỉ có một cung vào uất phát từ nút Ni (adsbygoogle = window.adsbygoogle || []).push({});

Thì : /* vai trò bản lề của Nkkhông còn cần thiết nữa*/ - Nhập Nkvào Ni

- huỷ cung cik

Cuối 

B.6: Min hoá các quan hệ nút: Ni với Qithì:

Nj Cung (Ni) với Qjthì:

Huỷ khỏi Qi+những thuộc tính khoá của Qj

mà không phải thuộc tính khoá của Qi. Cuối 

Cuối 

B.7: Tạo cung vô hướng : Nk sao cho :

- Qk+ = KQk+ (nghĩa là Qk không có thuộc tính không khoá)

- Chỉ có 2 cung ra khỏi Nk (không có cung vào, đến Ni, Nj với Qi, Qj sao cho KQk+ =KQi+  KQj+

thì

tạo 1 cung vô hướng nối Ni,Njvới Qij= Qk

huỷ nút Nk

huỷ 2 cung xuất phát từ Nk

VD 4.9:

Cho cấu trúc quan niệm nhưsau: 1. DDH (SODH, NGDH, TRIGIA)

2. Mathang (MAMH, TENMH, DONGIA) 3. ChitietDH (SODH, MAMH, SLDH )

Một phần của tài liệu giáo trình thiết kế cơ sở dữ liệu phần 2 của trịnh minh tuấn (Trang 76)