Phỏt hiện cỏc phụ thuộc bao hàm

Một phần của tài liệu Tìm hiểu các phụ thuộc bao hàm trong mô hình quan hệ và ứng dụng vào việc chuyển đổi sang mô hình EER (Trang 56 - 60)

Cỏc phụ thuộc bao hàm chứa phần lớn thụng tin cho việc xỏc định cỏc loại mối quan hệ. Tiến trỡnh trớch xuất phỏt hiện cỏc phụ thuộc bao hàm cú thể bằng cỏch tham chiếu đến cỏc quan hệ và cỏc thuộc tớnh được phõn loại, và từ chối những cỏi khụng hợp lệ bằng cỏch phõn tớch thể hiện dữ liệu.

Bảng 3.4. Phõn loại cỏc quan hệ và thuộc tớnh

Quan hệ Kiểu PKA DKA GKA FKA NKA

PERSON strong [SSN] - - - [name, address]

EMPLOYEE strong [SSN] - - -

[name, salary, hired-date]

MANAGER strong [SSN] - - [deptno]

[rank, promotion- date] CUSTOMER strong [SSN] - - - [custid, name, credit]

DEPARTMENT strong [DEPTNO] - - - [dept-name, location]

PRODUCT strong [PRODID] - - - [description ]

PRICE strong [PRODID] - - - [minprice, maxprice]

ORDER strong [ORDID] - - [prodid] [order-date, custid]

CARRIER strong [CARRIER-ID] - - - [name, address]

PROJECT weak [DEPTNO] [PROJNAME] - - [budget]

WORK-FOR regular [SSN, DEPTNO] - - - [start-date]

CAN-

PRODUCE regular

[DEPTNO,

PRODID] - - - [unit-cost]

Cỏc quy tắc heuristic tham chiếu được dựng bởi tiến trỡnh trớch xuất được miờu tả chi tiết như sau:

3.3.2.1. Heuristic cho việc đề xuất cỏc phụ thuộc bao hàm cú thể

Bước đầu tiờn để đưa ra cỏc phụ thuộc bao hàm cú thể. Để trỏnh đưa ra nhiều phụ thuộc khụng phự hợp, tiến trỡnh trớch xuất sử dụng heuristic chỉ để đưa ra cỏc phụ thuộc bao hàm giữa cỏc thuộc tớnh khúa của cỏc quan hệ. Heuristic được xỏc định như sau:

(1) Nếu: Hai quan hệ tập thực thể mạnh, A và B, cú cựng khúa, X:

Thỡ: Cú thể cú một phụ thuộc bao hàm giữa A.X và B.X; đú là A.X B.X, hoặc B.X A.X

Chứng minh: Sự tồn tại cỏc mối quan hệ cha/con giữa cỏc tập thực thể đưa đến phụ thuộc bao hàm này. Vỡ vậy, cỏc phụ thuộc bao hàm này được sử dụng để xỏc định cỏc mối quan hệ bao hàm.

 Xem xột cỏc quan hệ sau đõy:

PERSON: [SSN, name, address] (strong)

EMPLOYEE: [SSN, name, salary, hired-date] (strong) MANAGER: [SSN, rank, promotion-date, deptno] (strong) CUSTOMER: [SSN, custid, name, credit] (strong)

PRODUCT: [PRODID, description] (strong)

PRICE: [PRODID, minprice, maxprice] (strong)

 Cỏc cặp thuộc tớnh khúa sau đõy được xem xột: (PERSON. [SSN], EMPLOYEE.[SSN])

(PERSON. [SSN], MANAGER. [SSNI) (PERSON. [SSN], CUSTOMER. [SSN]) (EMPLOYEE. [SSN], MANAGER. [SSN]) (EMPLOYEE.[SSN], CUSTOMER. [SSN]) (MANAGER. [SSN], CUSTOMER. [SSN]) (PRODUCT. [PRODID], PRICE. [PRODID])

(2) Nếu: Khúa, X, của một quan hệ tập thực thể (mạnh hay yếu), A, xuất hiện như là khúa ngoài, x, của một quan hệ (tập thực thể hay mối quan hệ) khỏc, B;

Chứng minh: Trong Bảng 1, cỏc trường hợp mà cỏc mối quan hệ nhị nguyờn và cỏc mối quan hệ giữa tập thực thể và mối quan hệ được biểu diễn bởi khúa ngoài, dẫn đến cỏc phụ thuộc bao hàm này.

 Xem xột cỏc mối quan hệ sau:

MANAGER: [SSN, rank, promotion-date, deptno] (strong) DEPARTMENT: [DEPTNO, dept-name, location] (strong) SHIPMENT: [PACK#, ORDID, ship-date, carrier-id] (specific) CARRIER: [CARRIER-ID, name, address] (strong)

 Cỏc cặp thuộc tớnh sau đõy được xem xột:

(MANAGER.[deptno], DEPARTMENT. [DEPTNO]) (SHIPMENT. [carrier-id], CARRIER. [CARRIER-ID])

(3) Nếu: Cỏc thuộc tớnh khúa chớnh, X, của một quan hệ biểu diễn mối quan hệ (thụng thường hay chuyờn biệt) hay quan hệ tập thực thể yếu, S, xuất hiện như là khúa của một quan hệ tập thực thể, A;

Thỡ: Cú thể cú một phụ thuộc bao hàm giữa S.X và A.X, ký hiệu S.X A.X

Chứng minh: Việc biểu diễn cỏc mối quan hệ được thể hiện bởi cỏc quan hệ biểu diễn mối quan hệ hay tập thực thể yếu sẽ dẫn đến loại phụ thuộc bao hàm này. Cỏc phụ thuộc này được dựng để xỏc định tập thực thể chủ của cỏc tập thực thể yếu và cỏc tập thực thể tham gia vào mối quan hệ.

 Xem xột cỏc quan hệ sau đõy.

WORK-FOR: [SSN, DEPTNO, start-date] (regular)

PROJECT: [PROJNAME, DEPTNO, budget] (weak) EMPLOYEE: [SSN, name, salary, hired-date] (strong) MANAGER: [SSN, rank, promotion-date, deptno] (strong) DEPARTMENT: [DEPTNO, dept-name, location] (strong)

 Cỏc cặp thuộc tớnh khúa sau được xem xột: (WORK-FOR.[SSN], EMPLOYEE.[SSN]) (WORK-FOR.[SSN], MANAGER.[SSN])

(WORK-FOR.[DEPTNO], DEPARTMENT. [DEPTNO]) (PROJECT.[DEPTNO], DEPARTMENT. [DEPTNO])

Cỏc heuristic ở trờn khụng hiệu quả để phỏt hiện tất cả cỏc phụ thuộc bao hàm dựa vào khúa cú thể cú. Giả sử một khúa ứng viờn của quan hệ tập thực thể mạnh, mà

khụng được xỏc định trong việc phõn loại cỏc quan hệ, xuất hiện như là thuộc tớnh khụng khúa trong một quan hệ khỏc, thỡ một phụ thuộc bao hàm dựa vào khúa cú thể tồn tại. Vớ dụ, trong Hỡnh 3.1, thuộc tớnh “custid” trong CUSTOMER là một khúa ứng viờn và nú cũng xuất hiện như là một thuộc tớnh khụng khúa trong ORDER. Vỡ vậy, tiến trỡnh trớch xuất cho phộp người dựng chỉ ra cỏc phụ thuộc bao hàm thờm vào giữa cỏc thuộc tớnh khụng khúa. Vớ dụ, người dựng chỉ ra một phụ thuộc bao hàm ORDER.[custid] CUSTOMER.[custid]. Thuộc tớnh “custid” trong CUSTOMER phải được kiểm chứng như là một khúa ứng viờn bằng cỏch phõn tớch cỏc thể hiện dữ liệu.

3.3.2.2. Từ chối cỏc phụ thuộc bao hàm khụng hợp lệ

Mỗi phụ thuộc bao hàm được đề xuất là một đối tượng để phõn tớch sau này. Hai quy tắc được dựng để từ chối cỏc phụ thuộc bao hàm khụng hợp lệ. Xem (A.X, B.X) là một cặp thuộc tớnh. Value(A.X) ký hiệu cho tập cỏc giỏ trị của A.X, và Value(B.X) ký hiệu cho tập cỏc giỏ trị của B.X.

Nếu: Value(B.X) ≠ 0 và Value(B.X)  Value(A.X)

Thỡ: B.X A.X khụng thể bị từ chối

Nếu: Value(A.X) ≠ 0 và Value(A.X)  Value(B.X)

Thỡ: A.X B.X khụng thể bị từ chối

Chứng minh: Cỏc quy tắc này dựa trờn định nghĩa của phụ thuộc bao hàm Đối với mỗi phụ thuộc bao hàm được đề xuất, quy trỡnh trớch xuất phải so sỏnh cỏc tập giỏ trị xuất hiện trong A.X và B.X.

Vớ dụ, cỏc mối quan hệ EMPLOYEE và CUSTOMER cú thể cú cựng khúa chớnh, SSN. Điều này là khụng thể, tuy nhiờn, vỡ cú thể cú một tập hợp con mối quan hệ giữa EMPLOYEE.[SSN] và CUSTOMER.[SSN], nờn phụ thuộc bao hàm dự kiến giữa EMPLOYEE.[SSN] và CUSTOMER.[SSN] bị loại bỏ. Hóy xem xột một vớ dụ khỏc. Trong vớ dụ này, cú một phụ thuộc bao hàm được dự kiến giữa MANAGER.[SSN] và EMPLOYEE.[SSN]. Nếu tập giỏ trị của MANAGER.[SSN] là một kiểu con của tập giỏ trị EMPLOYEE.[SSN], khi đú, MANAGER.[SSN] EMPLOYEE.[SSN] khụng thể bị loại bỏ.

Nếu một thuộc tớnh khúa ngoài của một quan hệ khụng xuất hiện trong bất kỳ phụ thuộc bao hàm cú giỏ trị nào thỡ chỳng được phõn loại lại thành thuộc tớnh khụng khúa.

3.3.2.3. Loại bỏ cỏc phụ thuộc bao hàm dư thừa

Cỏc phụ thuộc bao hàm dư thừa cú thể được phỏt hiện bởi cỏc quy tắc tham chiếu của phụ thuộc bao hàm. Đú là

Nếu: A.X B.X và B.Y C.Y, và Y là tập con của X

Thỡ: Phụ thuộc bao hàm A.Y C.Y là dư thừa

Chứng minh: Cỏc quy tắc tham chiếu cho phụ thuộc bao hàm

Cú hai lý do để loại bỏ cỏc phụ thuộc bao hàm dư thừa. Thứ nhất, một phụ thuộc bao hàm dư thừa cú thể dẫn đến một mối quan hệ is-a dư thừa.

MANAGER. [SSN] EMPLOYEE. [SSN] EMPLOYEE. [SSN] PERSON. [SSN] MANAGER. [SSN] PERSON. [SSN]

Phụ thuộc bao hàm cuối cựng là thừa bởi vỡ nú cú thể được suy ra từ hai phụ thuộc bao hàm trờn. Nếu nú khụng được loại bỏ, thỡ một quan hệ is-a từ Manager đến Person sẽ được xỏc định. Quan hệ này rừ ràng là dư thừa vỡ đó tồn tại một quan hệ is-a từ Manager đến Employee và từ Employee đến Person.

Thứ hai, một phụ thuộc bao hàm dư thừa cú thể dẫn đến việc xỏc định sai tập thực thể tham gia vào mối quan hệ.

WORK-FOR. [DEPTNO] DEPARTMENT. [DEPTNO] WORK-FOR. [SSN] EMPLOYEE. [SSN]

EMPLOYEE. [SSN] PERSON. [SSN] WORK-FOR. [SSN] PERSON. [SSN]

Phụ thuộc bao hàm cuối cựng là dư thừa. Nếu nú được dựng để suy luận ra cỏc tập thực thể tham gia vào mối quan hệ, work-for, được xỏc định bằng WORK-FOR, thỡ tập thực thể person được xỏc định bằng PERSON trở thành một tập thực thể thành phần. Tuy nhiờn, person khụng nờn được suy luận ra như là một tập thực thể thành phần của work-for dựa trờn quan hệ is-a từ Employee đến Person và một quan hệ nhị nguyờn giữa Emloyee và Department.

Một phần của tài liệu Tìm hiểu các phụ thuộc bao hàm trong mô hình quan hệ và ứng dụng vào việc chuyển đổi sang mô hình EER (Trang 56 - 60)

Tải bản đầy đủ (PDF)

(79 trang)