cơ sở dl

Màu nền
Font chữ
Font size
Chiều cao dòng

Câu 1: Định nghĩa mô hình cơ sở dữ liệu và phân loại

a. Khái niêm mô hình cơ sở dữ liệu: Một mô hình cơ sở dữ liệu là một tập hợp các khái niệm dùng để biểu diễn các cấu trúc của cơ sở dữ liệu. Cấu trúc của một cơ sở dữ liệu là các kiểu dữ liệu, các mối liên kết và các ràng buộc phải tuân theo trên các dữ liệu. Nhiều mô hình còn có thêm một tập hợp các phép toán cơ bản để đặc tả các thao tác trên cơ sở dữ liệu.

b. Các loại mô hình cơ sở dữ liệu.

  Các mô hình dữ liệu bậc cao hoặc mô hình dữ liệu mức quan niệm cung cấp các khái niệm gắn liền với cách cảm nhận dữ liệu của nhiều người sử dụng. Các mô hình này tập trung vào bản chất logic của biểu diễn dữ liệu, nó quan tâm đến cái được biểu diễn trong cơ sở dữ liệu chứ không phải cách biểu diễn dữ liệu.

  Các mô hình dữ liệu bậc thấp hoặc các mô hình dữ liệu vật lý cung cấp các khái niệm mô tả chi tiết về việc các dữ liệu được lưu trữ trong máy tính như thế nào. Các mô hình dữ liệu vật lý mô tả cách lưu trữ dữ liệu trong máy tính giới thiệu các thông tin như khuôn dạng bản ghi, sắp xếp bản ghi, đường truy cập,…. Các khái niệm do mô hình dữ liệu vật lý cung cấp nói chung có ý nghĩa đối với các chuyên gia máy tính chứ không có ý nghĩa mấy đối với người sử dụng thông thường.

   Ở giữa hai loại mô hình này là một lớp các mô hình dữ liệu thể hiện, chúng cung cấp những khái niệm mà người sử dụng có thể hiểu được và không xa với cách tổ chức dữ liệu bên trong máy tính. Người ta còn gọi loại mô hình dữ liệu này là loại mô hình dữ liệu mức logic . Các mô hình dữ liệu thể hiện che dấu một số chi tiết về việc lưu trữ dữ liệu nhưng có thể được cài đặt trực tiếp trên hệ thống máy tính.

Một mô hình dữ liệu bậc cao khác là mô hình dữ liệu hướng đối tượng. Nó sử dụng các khái niệm như lớp, thừa kế, phương thức, thông điệp, … Bạn đọc có thể tìm hiểu về mô hình này trong các tài liệu [1], [2].

  Các mô hình dữ liệu thể hiện là các mô hình được sử dựng thường xuyên nhất trong các hệ cơ sở dữ liệu thương mại. Ba mô hình nổi tiếng thuộc loại này là mô hình quan hệ, mô hình mạng và mô hình phân cấp. Các mô hình mạng và phân cấp ra đời trước và được sử dụng rộng rãi trong quá khứ (trước 1970). Vào đầu những năm 70, mô hình quan hệ ra đời. Do tính ưu việt của nó, mô hình quan hệ dần dần thay thế các mô hình mạng và phân cấp.

Câu 2: Trình bày Các ràng buộc trên các kiểu  liên kết ?

-  Ràng buộc tỷ số lực lượng: Tỷ số lược lượng cho một kiểu liên kết chỉ ra số các thể hiện liên kết mà một thực thể có thể tham gia. Có thể có các tỷ số lực lượng  1:1 , 1:N, và M:N.

- Một kiểu liên kết có tỷ số lực lượng 1: 1 giữa hai kiểu thực thể A và B có nghĩa là  trong kiểu liên kết đó, một thực thể của kiểu A chỉ liên kết với một thực thể của kiểu B và ngược lại, một thực thể của kiểu B chỉ liên kết với một thực thể của kiểu A.

  Một kiểu liên kết có tỷ số lực lượng 1:N có nghĩa là một thực thể của kiểu A có thể liên kết với nhiều thực thể của kiểu B nhưng một thực thể của kiểu B chỉ liên kết với một thực thể của kiểu A.

   Trong kiểu liên kết có tỷ số lực lượng M:N, mỗi thực thể của kiểu A có thể liên kết với nhiều thực thể của kiểu B và ngược lại, mỗi thực thể của kiểu B có thể liên kết với nhiều thực thể của kiểu A.

-  Các ràng buộc tham gia và sự phụ thuộc tồn tại: Ràng buộc tham gia chỉ ra rằng có phải sự tồn tại của một kiểu thực thể phụ thuộc vào một kiểu thực thể khác thông qua một kiểu liên kết hay không. Có hai kiểu ràng buộc tham gia: ràng buộc tham gia toàn bộ và ràng buộc tham gia bộ phận.

Câu 3: Liệt kê các phép toán đại số quan hệ và mục đích của mỗi phép toán ?

a. Các phép toán lý thuyết tập hợp:

- Phép hợp : Hợp của hai quan hệ R và S , được ký hiệu là R È S , cho kết quả là một quan hệ chứa tất cả các bộ có trong R hoặc ở trong S hoặc ở trong cả hai. Các bộ trùng lặp bị loại bỏ.

- Phép giao: Giao của hai quan hệ R và S , được ký hiệu là R Ç S , cho kết quả là một quan hệ chứa tất các các bộ có trong cả hai quan hệ R và S

 - Phép trừ quan hệ: Phép trừ quan hệ R và S , được ký hiệu là R - S, cho kết quả là một quan hệ chứa tất cả các bộ có trong R nhưng không có trong S.

- Tích Đề các của hai quan hệ: Tích Đề các còn gọi là tích hỗn hợp (cross product) hoặc là nối hỗn hợp (cross join), được ký hiệu là ´. Đó cùng là một phép toán hai ngôi nhưng những quan hệ mà nó áp dụng trên đó không cần phải là tương thích đồng nhất.

 b. Các phép toán trên cơ sở dữ liệu quan hệ:

- Phép chọn (SELECT)

  Phép chọn được sử dụng để chọn một tập hợp các bộ thoả mãn điều kiện chọn từ một quan hệ. Ta có thể xem phép chọn như một bộ lọc, nó chỉ giữ lại các bộ thoả mãn điều kiện đặt ra.

  Phép chọn được ký hiệu là

                                              s< điều kiện chọn>( R)

 trong đó ký hiệu s được dùng để ký hiêu phép chọn, còn điều kiện chon là một biểu thức lô gic được chỉ ra trên các thuộc tính của R.

- Phép chiếu (PROJECT)

  Nếu ta coi một quan hệ như một bảng thì phép chọn chọn một số hàng của bảng thoả mãn điều kiện chọn và bỏ qua các hàng không thoả mãn điều kiện chọn. Phép chiếu là phép toán chọn một số cột của bảng. Nếu chúng ta chỉ quan tâm đến một số thuộc tính của quan hệ, chúng ta dùng phép chiếu để chiếu lên các thuộc tính đó. Phép chiếu được ký hiệu là:

                                  p<danh sách các thuộc tính>( R)

 trong đó p là ký hiệu dùng để biểu diễn phép chiếu và <danh sách các thuộc tính> là một danh sách con các thuộc tính của quan hệ R.

- Phép đặt lại tên ( RENAME)

  Chúng ta có thể áp dụng nhiều phép toán quan hệ liên tiếp nhau. Trong trường hợp đó hoặc chúng ta có thể viết các phép toán như là một biểu thức đại số quan hệ đơn bằng cách xếp lồng các phép toán lại với nhau, hoặc chúng ta có thể áp dụng mỗi phép toán tại một thời điểm và tạo ra các quan hệ kết quả trung gian. Trong trường hợp tạo các quan hệ trung gian, ta phải đặt tên cho quan hệ đó.

- Phép nối (JOIN)

   Phép nối được ký hiệu là              và được dùng để kết hợp các bộ có liên hệ với nhau từ hai quan hệ thành một bộ. Phép toán này rất quan trọng đối với cơ sở dữ liệu quan hệ có nhiều bảng bởi vì nó cho phép ta xử lý các mối liên kết giữa các quan hệ. Dạng tổng quát của phép nối trên hai quan hệ R(A1, A2,…,An) và S(B1,B2,…, Bm) là

                                        R            S

                                       < Điều kiện nối> 

 Kết quả của phép nối là một quan hệ Q(A1,A2,…,An,B1,B2,…,Bm)  có n+m thuộc tính.

- Tập hợp đầy đủ các phép toán quan hệ

  Người ta đã chỉ rằng tập hợp các phép toán đại số quan hệ {s, p, È, -, ´} là một tập đầy đủ  nghĩa là mọi phép toán đại số quan hệ khác có thể được biểu diễn thông qua các phép toán của tập hợp này.

c. Các phép toán quan hệ bổ sung:

- Các hàm nhóm và các phép nhóm

   Các hàm hay áp dụng để thu thập các giá trị số là hàm Tổng (SUM), Trungbình (AVERAGE), Tính giá trị lớn nhất (MAX), Giá trị bé nhất ( MIN). Hàm  Đếm ( COUNT) được sử dụng để đếm các bộ giá trị.

Chúng ta có thể định nghĩa một phép toán nhóm như sau:

                                                < các thuộc tính nhóm> Á< danh sách các hàm nhóm>(R)

 trong đó Á là ký hiệu phép toán hàm nhóm, <các thuộc tính nhóm> là một danh sách các thuộc tính của quan hệ được chỉ ra trong R, <danh sách các hàm nhóm> là danh sách các cặp (<hàm>(<thuộc tính>)). Trong các cặp như vậy, <hàm> là một trong các hàm cho phép như SUM, AVERAGE, MAX, MIN, COUNT,  và <thuộc tính> là một thuộc tính của quan hệ được chỉ ra trong R.

- Các phép toán khép kín đệ quy

 Phép toán này được áp dụng cho mối liên kết đệ quy giữa các bộ cùng kiểu.Với các phép toán này chúng ta phải sử dụng kỹ thuật lặp.

- Các phép toán nối ngoài (outer join)  hợp ngoài ( outer union)

Một tập hợp các phép toán gọi là nối ngoài có thể được sử dụng khi chúng ta muốn giữ các bộ trong R hoặc S hoặc trong cả hai quan hệ trong kết quả của phép nối dù chúng có những bộ liên kết trong quan hệ kia hay không. Có ba phép nối ngoài gọi là nối ngoài trái (left outer join), nối ngoài phải (right outer join )và nối ngoài đầy đủ (full outer join), được ký hiệu tương ứng là:

                          Nối ngoài trái  Nối ngoài phải   Nối ngoài đầy đủ

   Phép nối ngoài trái giữ lại mọi bộ trong quan hệ bên trái R trong phép nối. Phép toán hợp ngoài được mở rộng để lấy hợp của các bộ từ các quan hệ nếu các bộ không tương thích đồng nhất. Phép toán này chỉ lấy hợp của các quan hệ mà chúng chỉ tương thích bộ phận, nghĩa là chỉ một vài thuộc tính của chúng là tương thích phép hợp

Câu 4: Tương thích hợp là gì? Vì sao các phép toán HỢP, GIAO, TRỪ đòi hỏi rằng các quan hệ tham gia vào phép toán phải tương thích hợp ?

- Các phép toán này là các phép toán hai ngôi, nghĩa là mỗi phép toán được áp dụng cho hai tập hợp. Khi áp dụng các phép toán này cho cơ sở dữ liệu quan hệ, hai quan hệ tham gia vào một trong các phép toán trên phải có kiểu của các bộ như nhau, hay nói cách khác, chúng phải có cùng một cấu trúc. Điều kiện này được gọi là tương thích đồng nhất. Hai quan hệ R(A1,A2,…, An) và  S(B1, B2, …,Bn) được gọi là tương thích đồng nhất nếu chúng có cùng cấp n và dom(Ai) = dom(Bi) với  1<= i <= n. Điều đó có nghĩa là hai quan hệ có cùng số các thuộc tính và mỗi cặp thuộc tính tương ứng có cùng miền giá trị.

- Các phép toán hợp, giao, trừ đòi hỏi rằng các quan hệ tham gia vào phép toán phải tương thích hợp vì khi tham gia vào phép toán chúng so sánh các thuộc tính với nhau theo yêu cầu bài toán.Do vậy giá trị các cặp thuộc tính phải tương ưng với miền giá trị thì mới so sánh được.Vd như ta lấy 2 hay nhiều điểm trong cùng hệ tọa độ Decac OXY để thực hiện các phép toán trên mà không thể lấy các điểm trong 2 hệ tọa độ OXY và OXYZ thực hiên các phép toán trên được.

Câu 5: Nêu các bước chuyển từ mô hình ER sang mô hình quan hệ ?

Thuật toán chuyển đổi được thực hiện theo các bước sau (dựa trên CSDL “CÔNG TY”) :

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.

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ệ R 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ó.

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 chuyển đổi mối liên kết 1:1 nữa nhập hai 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 tham gia toàn bộ vào liên kết và không tam gia vào các liên kết khác.

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 các quan hệ S và T biểu diễn kiểu thực thể tham gia và liên kết, S tương ứng với kiểu thực thể phía N, T tương ứng với kiểu thực thể ở phía 1 của kiểu liên kết. Đưa khoá chính của quan hệ T 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.

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.

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 R. 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ó.

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 tham chiếu đến quan hệ E  tương ứng với kiểu thực thể E.

Câu 6: Trình bày các nguyên tắc đối với việc thiết kế lược đồ quan hệ. Hãy minh họa việc vi phạm các nguyên tắc đó sẽ có hại như thế nào ?

a. Ngữ nghĩa của các thuộc tính quan hệ?

- Nguyên tắc 1: Thiết kế một lược đồ quan hệ sao cho dễ giải thích ý nghĩa của nó. Đừng tổ hợp các thuộc tính từ nhiều kiểu thực thể và kiểu liên kết vào một quan hệ đơn. Một cách trực quan, nếu một lược đồ quan hệ tương ứng với một kiểu thực thể hoặc một kiểu liên kết thì ý nghĩa trở nên rõ ràng. Ngược lại, một quan hệ tương ứng với một hỗn hợp các thực thể và liên kết thì ý nghĩa trở nên không rõ ràng.

b. Thông tin dư thừa trong các bộ và sự dị thường cập nhật

- Dị thường Xóa: Gây ra việc mất thông tin khi xóa.

Dị thường Sửa đổi: Gây ra việc sửa đổi hàng loạt khi ta muốn sửa đổi một giá trị trong một bộ nào đó.

Nguyên tắc 2: Thiết kế các lược đồ quan hệ cơ sở sao cho không sinh ra những dị thường cập nhật trong các quan hệ. Nếu có xuất hiện những dị thường cập nhật thì phải ghi chép lại một cách rõ ràng và phải đảm bảo rằng các chương trình cập nhật dữ liệu sẽ thực hiện một cách đúng đắn

c. Các giá trị không xác định trong các bộ

'1'      

Các ví dụ bi vi phạm:

Câu 7: Khi nào thì hai tập phụ thuộc hàm là tương đương? Làm thế nào để kiểm tra tính tương đương của chúng

Một tập hợp các phụ thuộc hàm E được phủ bởi một tập các phụ thuộc hàm F - hoặc  F phủ E - nếu mỗi một phụ thuộc hàm trong E đều ở trong F+, điều đó có nghĩa là mỗi phụ thuộc hàm trong E có thể suy diễn được từ F. Hai tập phụ thuộc hàm E và F là tương đương  nếu E+ = F+ . Như vậy tương đương có nghĩa là mỗi phụ thuộc hàm trong E có thể suy diễn được từ F và mỗi phụ thuộc hàm trong F có thể suy diễn được từ E.

Cho hai tập phụ thuộc hàm E và F. Để chứng minh hai tập phụ thuộc hàm này  tương đương , ta phải chứng minh các phụ thuộc hàm của E đều suy ra được từ F và ngược lại các phụ thuộc hàm của F đều suy ra được từ E. Để chứng minh phụ thuộc hàm X®Y suy ra được từ tập phụ thuộc hàm F chúng ta có thể thực hiện theo hai cách:

a. Áp dụng các quy tắc suy diễn để biến đổi các phụ thuộc hàm trong F cho đến khi nhận được X ® Y.

b. Áp dụng bổ đề 5.1, tính X+ ( bao đóng của tập thuộc tính ở vế trái). Nếu X+ÊY thì X ®Y suy ra được từ F

Câu 8: thiểu các phụ thuộc hàm là gì? Có phải mỗi tập phụ thuộc hàm có một tập tối thiểu tương đương hay không

- Một tập phụ thuộc hàm là tối thiểu nếu nó thoả mãn các điều kiện sau đây:

1.Vế phải của các phụ thuộc hàm trong F chỉ có một thuộc tính

2. Chúng ta không thể thay thế bất kỳ một phụ thuộc hàm X ®A trong F bằng phụ thuộc hàm Y®A, trong đó Y là tập con đúng của X mà vẫn còn là một tập phụ thuộc hàm tương đương với F.

3. Chúng ta không thể bỏ đi bất kỳ phụ thuộc hàm nào ra khỏi F mà vẫn có một tập phụ thuộc hàm tương đương với F

Một phủ tối thiểu của một tập phụ thuộc hàm F là một tập tối thiểu các phụ thuộc hàm Fmin tương đương với F

Chúng ta luôn luôn có thể tìm được ít nhất là một phủ tối thiểu G cho một tập các phụ thuộc hàm F bất kỳ theo thuật toán 4.3 sau đây:

    Thuật toán 4.3 ( Tìm phủ tối thiểu G cho F).

1. Đặt G := F;

2. Thay thế mỗi phụ thuộc hàm X ®{A1, A2, ..., An} trong G bằng n phụ thuộc   hàm  X ® A1,  X ® A2, … ,  X ® An

3.Với mỗi phụ thuộc hàm X ® A trong G và với mỗi thuộc tính B là một phần tử của X. Nếu ( G - (X ® A)) È (( X - {B}) ® A) là tương đương với G thì thay thế  X®A bằng (X-{B})®A ở trong G

4.Với mỗi phụ thuộc hàm  X®A còn lại trong G

        nếu ( G - { X ® A }) là tương đương với G thì loại bỏ  X ® A ra khỏi G.

II. Phần bài tập:

Bài 1a)  Cho lược đồ quan hệ R và tập phụ thuộc hàm

          F = {AB® E, AG® I, BE®I, E ®G, GI ®H}  trên R .

       Chứng minh rằng AB® GH

Ta có: AB®E, E®G.=>AB®G(1),=>AB®BE. Ta lại có: BE®I,=>AB®I(2)

Từ(1) và (2): =>AB®GI, mà GI®H ,=>AB®H(3).

Từ (1) và (3): =>AB®GH (đfcm)

     b) Cho lược đồ quan hệ R và tập phụ thuộc hàm

            F = {AB ®C, B ®D, CD® E, CE ®GH, G® A}     

          Chứng minh rằng : AB® E, AB ®G  

- CM AB®E: Ta có: B®D, =>AB®AD, =>AB®D(1)

Ta lạicó:AB ®C(2), từ ( 1) và (2)=>AB®CD. Theo gt CD®E, =>AB®E(đfcm

- CM AB®G: Theo gt CE®GH, =>CE®G(1)

- Theo CM trên: AB®E, mà AB®C(gt), => AB®CE(2).

Từ (10 và (2): =>AB®G(đfcm)

 Bài 2:Cho lược đồ quan hệ R(A,B,C,D,E,F,G,H,I,J) và tập phụ thuộc hàm sau đây:

       F1 ={AB ® C, A ® DE, B ®  F,  F ® GH, D® IJ}

  a) Khóa của quan hệ là gì?. Hãy tách quan hệ thành 2NF, sau đó thành 3NF.

Bước 1: Xác định TN, TG, TĐ

TN= { A, B}, TG={ D, F}, TĐ= {C, E, G, H, I, J}

Bước 2: Tập TG≠ф

Bước 3: Gọi tập Xi là tập con của tập TG, bao gồm cả tập rỗng.

Xi

TNXi

(TNXi)+

Siêu khóa

Khóa

ф

AB

ABCDEF

D

ABD

ABCDEFIJ

F

ABF

ABCDEFGH

DF

ABDF

ABCDEFGHIJ

ABDF

ABDF

Vậy lược đồ có 1 khóa: ABDF.

- Lược đồ quan hệ trên ở dạng chuẩn 1

- Áp dung chuẩn 2, 3 ta tách được như sau:

R1= { D, I, J} (BCNF), R2= {A, B, D, F, C, E, G, H}(1NF), R21= {A, D, E}(2NF), R22= {A, B, D, F, C, G, H}(1NF), R221= {F, G, H}(BCNF), R222= { A, B, D, F, C}

  b) Cho tập phụ thuộc hàm sau: G1= { AB ® C, BD ® EF, AD®  GH, A ® I  , H ®  J }

 Khóa của quan hệ là gì?. Hãy tách quan hệ thành 2NF, sau đó thành 3NF.

Bước 1: Xác định TN, TG, TĐ

TN= { A, B, D}, TG={ H}, TĐ= {C, E, F, G, I, J}

Bước 2: Tập TG≠ф

Bước 3: Gọi tập Xi là tập con của tập TG, bao gồm cả tập rỗng.

Xi

TNXi

(TNXi)+

Siêu khóa

Khóa

ф

ABD

ABD

H

ABDH

ABCDEFGHIJ

ABDH

ABDH

Vậy lược đồ có 1 khóa: ABDH.

- Lược đồ quan hệ trên ở dạng chuẩn 1 R(A,B,C,D,E,F,G,H,I,J)

- Áp dung chuẩn 2, 3 ta tách được như sau:

Bài 3:Cho quan hệ với lược đồ như sau:

 HOÁĐƠN(MãsốHĐ, MãsốKH, TênKH, ĐịachỉKH, MãsốH, TênH, Giáđơnvị, SốlượngH)

   trong đó HĐ là Hoá đơn, KH là khách hàng, H là hàng). Biết rằng trong mỗi hoá đơn có thể có nhiều Hàng.

a.      Hãy xác định các phụ thuộc hàm giữa các thuộc tính.

MãsốH® TênH, Giáđơnvị, SốlượngH

MãsốKH® TênKH, ĐịachỉKH

MãsốHĐ® MãsốKH, MãsốH, Giáđơnvị, SốlượngH

b.      Xác định khoá của quan hệ.

Ta có TN= {MãsốHĐ}, TG= {MãsốKH, MãsốH}

Ta có:Xi= ф=> TNXi= { MãsốHĐ}, (TNXi)+= {MãsốH, Giáđơnvị, SốlượngH, MãsốKH, MãsốHĐ}

Xi= MãsốH=> TNXi= { MãsốHĐ, MãsốH },(TNXi)+= {MãsốH, TênH, Giáđơnvị, SốlượngH, MãsốKH, MãsốHĐ}

Xi= MãsốKH=> TNXi= { MãsốHĐ, MãsốKH },(TNXi)+= {MãsốH, ĐịachỉKH , Giáđơnvị, SốlượngH, MãsốKH, TênKH, MãsốHĐ}

Xi= MãsốKH, MãsốH => TNXi= { MãsốHĐ, MãsốKH, MãsốH },( TNXi)+= {MãsốH, Giáđơnvị, SốlượngH, MãsốKH, TênKH, ĐịachỉKH, MãsốHĐ, TênH }

=>Khóa của quan hệ trên là: MãsốHĐ,  MãsốKH,  MãsốH

c.      Nếu quan hệ chưa phải ở BCNF, hãy tách quan hệ để có một tập quan hệ ở BCNF

HÓAĐƠN1{MãsốKH, TênKH, ĐịachỉKH} (BCNF)

HÓAĐƠN2{  MãsốKH, MãsốH, Giáđơnvị, SốlượngH, MãsốHĐ, TênH} (1NF)

HÓAĐƠN2.1{MãsốH, TênH, Giáđơnvị, SốlượngH} (BCNF)

HÓAĐƠN2.2{MãsốHĐ, MãsốKH, MãsốH} (BCNF)

Kết luận: Theo chuẩn BCNFta có các quan hệ sau:

HÓAĐƠN1{MãsốKH, TênKH, ĐịachỉKH} (BCNF)

HÓAĐƠN2.1{MãsốH, TênH, Giáđơnvị, SốlượngH} (BCNF)

HÓAĐƠN2.2{MãsốHĐ, MãsốKH, MãsốH} (BCNF)

Bạn đang đọc truyện trên: Truyen2U.Pro