Định nghĩa các dạng chuẩn

Một phần của tài liệu Thiết kế và xây dựng cơ sở dữ liệu truyền thanh tại đài tiếng nói việt nam (Trang 31 - 39)

2.5.2.1. Dạng chuẩn 1 (First Nornal Form_1NF)

a. Định nghĩa

Một quan hệ ở dạng chuẩn 1 nếu các giá trị của tất cả thuộc tính trong quan hệ là nguyên tử ( tức là chỉ có 1 giá trị tại một thời điểm).

b. Nhận xét:

Quan hệở dạng chuẩn 1 có tồn tại sự dư thừa dữ liệu.

2.5.2.2. Dạng chuẩn 2 ( Second Nornal Form_2NF)

a. Định nghĩa

Một quan hệở dạng chuẩn 2 nếu: - Quan hệđó ở dạng chuẩn 1.

- Tất cả các thuộc tính không phải là khóa phụ thuộc đầy đủ vào khóa. b. Nhận xét

- Quan hệở dạng chuẩn 2 có sự dư thừa thông tin

- Dạng chuẩn 2 có thể bị vi phạm khi quan hệ có khóa gồm hơn một thuộc tính.

a. Định nghĩa

Một quan hệở dạng chuẩn 3 nếu : - Quan hệở dạng chuẩn 2

- Không có chứa các phụ thuộc hàm, phụ thuộc bắc cầu vào khóa

- Phụ thuộc hàm phụ thuộc bắc cầu: Phụ thuộc hàm Y→ Z là phụ thuộc hàm bắc cầu nếu tồn tại hai phụ thuộc hàm Y→X và X→Z.

b. Nhận xét:

- Trong một cơ sở dữ liệu tốt, các quan hệ nên được chuyển về dạng chuẩn 3.

- Tuy nhiên, dữ liệu vẫn có khả năng dư thừa khi quan hệ có hai tập khóa dự tuyển gối lẫn nhau, hoặc quan hệ có thuộc tính không khóa xác định một thuộc tính khóa.

2.5.2.4. Dạng chuẩn Boyce_Codd(Boyce-Codd Normal Form)

Cần nhấn mạnh là bản thân các quan hệ 1NF và 2NF không thực sự quan trong, chúng chỉ là các điểm trung gian trên đường dẫn tới 3NF và 4NF.

Cho đến nay chúng ta đã thiết kế các quan hệ của CSDL sao cho chúng không còn các phụ thuộc hàm không đầy đủ vào khóa chính cũng như không còn phụ thuộc hàm bắc cầu vào khóa chính vì các dạng phụ thuộc hàm này dẫn đến các dị thường trong các phép toán lưu trữ.

Tuy nhiên những định nghĩa này không xem xét các trường hợp nếu như các phụ thuộc hàm này tồn tại trên các khóa ứng cử nếu có.

Boyce và Codd đã xem xét các phụ thuộc hàm của cả các khóa ứng cử trong quan hệ và đã đưa ra một định nghĩa mà được gọi là dạng chuẩn Boyce_Codd (Boyce-Codd Normal Form –BCNF).

- Chúng ta sẽ gọi một thuộc tính (có thể là thuộc tính ghét) mà một thuộc tính khác nào đó là phụ thuộc hàm đầy đủ vào nó là một thuộc tính quyết định (determinant)

- Quan hệ đã được chuẩn hóa R được gọi là ở dạng chuẩn BCNF nếu mọi thuộc tính quyết định đều là khóa ứng cử (candidate key).

Xét các trường hợp khác nhau để thấy rõ tác dụng của định nghĩa mới BCNF a. Trường hợp 1:

• Quan hệ không phải 3NF thì vẫn không là BCNF

• Đối với quan hệ chỉ có một khóa ứng cử thì các định nghĩa 3NF và BCNF là tương đương

b. Trường hợp 2:

• Quan hệ là 3NF theo cả 2 định nghĩa vì có hai khóa ứng cử không phủ nhau ( nonoverlapping)

• Hai khóa ứng cử là tập phỉ nếu mỗi khóa gồm hơn một thuộc tính và có thuộc tính chung. (adsbygoogle = window.adsbygoogle || []).push({});

c. Trường hợp 3:

Quan hệ là 3NF theo định nghĩa cũ nhưng không là BCNF vì khóa ứng cử là tập phủ.

d. Trường hợp 4

Quan hệ là 3NF theo định nghĩa cũ và cũng là BCNF mặc dù có khóa ứng cử phủ nhau.

Như vậy, định nghĩa mới về 3NF (BCNF) đã hạn chế được một số trường hợp xuất hiện trong định nghĩa cũ.

2.5.2.5. Dạng chuẩn thứ tư

Một quan hệđã ở dạng chuẩn thứ ba nhưng vẫn có thể có các tính chất không mong muốn nào đó.

Phụ thuộc đa trị (multivalued dependency – MVD):

Cho R là một quan hệ với A, B và C là các tập con bất kỳ của các thuộc tính R.

Chúng ta nói rằng B là phụ thuộc đa trị vào A (ký hiệu là A→> B và đọc là “A xác định đa trị B” hay đơn giản là “A mũi tên kép B”) nếu và chỉ nếu tập các giá

trị của B (B-values) mà phù hợp với cặp các giá trịđã cho của A và C (A-value, C- value) trong R chỉ phụ thuộc vào giá trị của A (A-value) và độc lập với giá trị của C (C- value).

Vấn đề tồn tại với các quan hệ 3NF là một số tường hợp chúng gồm các phụ thuộc đa trị nhưng lại không phải là các phụ thuộc hàm.

Dạng chuẩn thứ tưđược định nghĩa như sau:

Quan hệđã được chuẩn hóa R được gọi là ở dạng chuẩn thứ tư (4NF) nếu và chỉ nếu mỗi khi tồn tại một phụ thuộc đa trị trong R của thuộc tính B vào thuộc tính A thì tất cả các thuộc tính của R cũng đều phụ thuộc hàm vào A.

Mục tiêu chủ yếu của quá trình trên là giảm dần sự dư thừa và do vậy khắc phục được những vấn đề dị thường khi cập nhật dữ liệu.

2.5.2.6. Dạng chuẩn thứ năm

a. Giới thiệu

Định nghĩa của dạng chuẩn thứ tư đưa ra một ứng dụng của dạng phụ thuộc mới, đó là phụ thuộc đa trị (MultiValued Dependency –MVD).

MVD là tổng quát hóa của phụ thuộc hàm FD.

Tương tự như vậy, định nghĩa của dạng chuẩn thứ năm đưa ra một ứng dụng cảu dạng phụ thuộc mới, được gọi là phụ thuộc kết nối (Joint Dependency –JD) JD là tổng quát hỏa của MVD cũng như MVD là tổng quát hóa của FD.

b. Phụ thuộc kết nối và dạng chuẩn thứ năm

Đến nay, chúng ta đã ngầm giả thiết là thao tác cần thiết cứng hoặc là thao tác có thể trong quá trình phân rã là thay thế một quan hệ ( theo cách thức không mất mát thông tin) bằng hai ánh xạ của nó.

Giả thiết này được thực hiện thành công cho đến dạng chuẩn 4NF.

Tuy nhiên lại tồn tại các quan hệ mà không thể phân rã không mất mát thông tin thành hai ánh xạ nhưng lại có thể phân raz không mất mát thông tin thành ba hay hơn nữa các ánh xạ.

Điều này có nghĩa các quan hệ đó có thể phân rã không mất mát thông tin thành n ánh xạ nhưng không thể thành bất kỳ một số ánh xạ nào nhỏ hơn n.

Một quan hệ mà có thể phân rã không mất mát thành hai ánh xạ được gọi là “2-decomposable”.

Định nghĩa của phụ thuộc kết nối(Joint Dependency)

Cho R là một quan hệ và A,B,…,Z là các tập con bất kỳ của các tập thuộc tính của R. Ta nói rằng R thỏa mãn điều kiện cảu phụ thuộc kết nối JD mà được ký hiệu *(A,B,…,Z) nếu và chỉ nếu R bằng kết nối cảu các ánh xạ của nó trên A,B,…Z).

Định lý của Fagin đã được trình bày ở mục trước về việc quan hệ R{A,B,C} có thể phân rã không mất mát thông tin thành các ánh xạ của nó theo {A,B} và {A,C} khi và chỉ khi tồn tại các phụ thuộc đa trị MVDA ->>B và A->>C trong R có thể phát biểu lại như sau:

R{A,B,C} thỏa mãn điều kiện JD * (A,B,C) nếu và chỉ nếu nó thỏa mãn phụ thuộc đa trị MVD A->>B\C (adsbygoogle = window.adsbygoogle || []).push({});

Vì định lý này có thể coi như định nghĩa của phụ thuộc đa trị nên có thể suy ra là phụ thuộc đa trị MVD là trường hợp đặc của phụ thuộc kết nối JD hoặc JD là sự tổng quát hóa của MVD.

Hơn nữa có thể suy trực tiếp từ định nghĩa của JD là JD là dạng phụ thuộc tổng quát nhất có thể có. Có nghĩa là không còn tồn tại một dạng phụ thuộc cao hơn nào sao cho JD chỉ đơn thuần là một trường hợp riêng của dạng chuẩn cao hơn này vì cho đến nay, chúng ta đã hạn chế sự chú ý tới các sự phụ thuộc liên quan đến các thực thểđược phân rã bằng phép ánh xạ và kết hợp lại bằng phép kết nối.

Tuy nhiên, nếu chúng ta cho phép sử dụng cả các phép toán phân rã và kết hợp khác thì có thể xuất hiện cả các dạng phụ thuộc khác.

Định nghĩa dạng chuẩn thứ năm:

- Quan hệ R được gọi là ở dạng chuẩn thứ 5 (5NF)- còn gọi là dạng chuẩn ánh xạ -kết nối (Projection – Joint Normal Form – PJ/NF) - nếu và chỉ

nếu mọi phụ thuộc kết nối trong R đều được tạo ra bởi các khóa ứng cử của R.

Thực tế, Fagin đã chỉ ra là bất kỳ MVD nào nhận được bởi khóa ứng cử thì nhất định cũng là FD trong đó, chính khóa ứng cửđó là thuộc tính quyết định.

- Fagin đồng thời cũng chỉ ra là bất kỳ một quan hệđã cho nào cũng đều có thể phân rã không mất mát thông tin thành tập tương đương các quan hệở dạng 5NF.

- Có nghĩa là luôn có thể nhận được 5NF.

Trong trường hợp chung, Fagin đã đưa ra giải thuật trong đó với phụ thuộc kết nối JD và tập khóa ứng cử cho trước, có thể thử xem phụ thuộc kết nối JD đó có được tạo bởi các khóa ứng cửđó không.

Như vậy cho trước một quan hệ R, chúng ta có thể kết luận quan hệ đó ở dạng chuẩn 5NF hay không nếu ta biết được tất cả các khóa ứng cử và tất cả các phụ thuộc kết nối JD trong R.

Tuy nhiên phát hiện ra tất cả các phụ thuộc kết nối JD là điều khó khăn. Nghĩa là, trong khi tương đối dễ dàng nhận ra các phụ thuộc hàm FD và phụ thuộc đa trị MVD ta lại không thể nói như vậy đối với các phụ thuộc kết nối JD – các JD mà không phải là MVD và không phải FD – vì có thể ý nghĩa trực giác của các phụ thuộc kết nối là không hiển nhiên.

Do đó quá trình xác định khi nào quan hệđã cho ở dạng 4NF nhưng chưa ở dạng 5NF và như vậy có thể phân rã trước vẫn còn chưa rõ ràng.

c. Kết luận

• Cần lưu ý là từ định nghĩa suy ra dạng chuẩn 5NF là dạng chuẩn tốt nhất về phương diện ánh xạ và kết nối (mà còn có tên gọi khác là dạng chuẩn ánh xạ - kết nối, projection – joint normal form).

• Có nghĩa là dạng chuẩn 5NF được đảm bảo không còn các dị thường mà có thể hạn chế bằng cách tạo ánh xạ.

Đương nhiên điều này không có nghĩa quan hệ này không còn tất cả các dị thường có thể có.

Điều này chỉ có nghĩa là không còn các dị thường mà có thể loại bỏ bằng cách tạo ánh xạ

• Nếu quan hệở dạng 5NF, các phụ thuộc kết nối duy nhất là các phụ thuộc được tạo ra bởi các khóa ứng cử và như vậy, các phân rã hợp lệ duy nhất đều dựa trên các khóa ứng cử này.

Mỗi ánh xạ trong việc phân rã như vậy được tạo bởi một hoặc hơn nữa các khóa ứng cử cùng với các thuộc tính phụ khác.

d. Các bước chuyển mô hình dữ liệu quan hệ thành các quan hệ ở dạng chuẩn thứ 5

Bước 1: Chuyển một quan hệ từ dạng chưa chuẩn hóa thành một tập các quan hệ tương đương ở dạng chuẩn hóa 1NF:

Có hai phương pháp chuyển một quan hệ từ dạng chưa chuẩn hóa thành một tập các quan hệ tương đương ở dạng chuẩn hóa 1NF:

• Loại bỏ các nhóm lặp lại bằng cách đưa dữ liệu thích hợp vào các cột trống của các hàng chứa dữ liệu lặp lại. Nói một cách khác, chúng ta điền vào các ô trống bằng cách lặp lại dữ liệu chưa được lặp lại. Cách này thường được gọi là “làm phẳng” (“flattening”) bảng đã cho. Kết quả chúng ta nhận được một bảng mà có thể gọi là một quan hệ tương đương với bảng ban đầu nhưng chỉ chứa các giá trị nguyên tố (giá trị đơn) ở các ô cắt nhau của mỗi hàng và mỗi cột và do đó là ở dạng 1NF. Với phương pháp này, sự dư thừa đã được đưa vào quan hệ kết quả và sau này sự dư thừa này sẽđược loại bỏ trong qua trình chuẩn hóa.

• Trong cách thứ hai, ta chỉ định một hoặc một nhóm các thuộc tính làm khóa chính cho bảng chưa chuẩn hóa sau đó loại bỏ các nhóm lặp lại bằng cách đặt dữ liệu lặp lại cùng với bản copy của khóa chính vào một quan hệ tách biệt. Nhận diện khóa chính cho các quan hệ mới nhận được. Đôi khi bảng chưa chuẩn hóa có thể chứa hơn một nhóm lặp lại hay các nhóm lặp lại lồng nhau. Trong các trường hợp như vậy, cách tiếp cận này

được ứng dụng lặp đi lặp lại cho đến khi nào không còn các nhóm lặp lại nữa.

Cả hai cách tiếp cận đều đúng, tuy nhiên với cách tiếp cận thứ hai ngay từ đầu sẽ tạo ra những quan hệ ít nhất là ở dạng chuẩn thứ nhất (1NF) với ít sự dư thừa hơn.

Bước 2: Tạo các ánh xạ của quan hệ gốc 1NF để hạn chế mọi phụ thuộc hàm không đầy đủ vào khóa chính. Điều này sẽ tạo ra một một tập các quan hệ 2NF. Thủ tục để chuyển quan hệ 1NF mà chưa phải là 2NF sang tập các ánh xạ tương đương ở dạng 2NF:

- Từ quan hệ ban đầu, đỗi với mỗi thuộc tính cảu khóa chính, ta tạo một quan hệ tách biệt.

- Tạo các quan hệ tách biệt mới với tất cả các kết hợp cảu các thuộc tính của khóa chính có nghĩa là lần lượt kết hợp cảu hai, ba… thuộc tính cho đến khi tạo được quan hệ với toàn bộ khóa chính gốc. Chỉđịnh thuộc tính hoặc kết hợp các thuộc tính này làm khóa chính cho các quen hệ mới. - Tìm sự phụ thuộc hàm đầy đủ của từng thuộc tính trong các thuộc tính (adsbygoogle = window.adsbygoogle || []).push({});

còn lại vào các khóa chính đã tìm ra và đặt nó vào quan hệ tương ứng với khóa chính này. Khi đã xét hết các thuộc tính còn lại trong quan hệ gốc thì ta bỏ đi các quan hệ mà chỉ có các thuộc tính khóa chứ không có các thuộc tính khác. Các quan hệ đã tạo ra chính là các quan hệ 2NF tương đương với quan hệ ban đầu.

Bước 3: Tạo các ánh xạ của các quan hệ 2NF này để hạn chế mọi phụ thuộc hàm bắc cầu của các thuộc tính không khóa vào khóa chính.

Để chuyển thành 3NF từ quan hệ 2NF ban đầu, chuyển tất cả các thuộc tính không khóa mà phụ thuộc hàm vào các thuộc tính không khóa khác cùng bản copy thuộc tính quyết định thành một quan hệ mới và bản copy thuộc tính quyết định sẽ được chỉđịnh làm khóa chính của quan hệ mới.

Lưu ý: trường hợp quan hệ đã ở dạng 3NF nhưng có các khóa ứng cử phủ nhau nên chưa thể khẳng định là ở dạng chuẩn BCNF.

Nếu tập các thuộc tính quyết định và tập các khóa ứng cử không phủ nhau thì phải copy thuộc tính quyết định mà không phải khóa ứng cử cùng thuộc tính phụ thuộc hàm vào nó ra một quan hệ mới.

Bước 4: Tạo các ánh xạ của các quan hệ 3NF này để hạn chế mọi phụ thuộc đa trị mà không phải là các phụ thuộc hàm. Cuối cùng ta sẽ nhận được một tập các quan hẹ 4NF.

Bước 5: Từ tập các quan hệ ở dạng 4NF mà chưa ở dạng 5NF, tách các quan hệ mà không có có mọi phụ thuộc kết nối trong đó đều được tạo ra bởi các khóa ứng cử thành tập tương đương các ánh xạ đều có mọi phụ thuộc kết nối trong mọi ánh xạđều được tạo ra bởi các khóa ứng cử.

Hình 2.4 : Các cấp chuẩn hóa quan hệ

Một phần của tài liệu Thiết kế và xây dựng cơ sở dữ liệu truyền thanh tại đài tiếng nói việt nam (Trang 31 - 39)