logo xDuLieu.com

Trang trướcChuẩn hóa cơ sở dữ liệuTrang sau

Khái quát về chuẩn hóa

 

Để cho cơ sở dữ liệu hoạt động hiệu quả, không gặp nhiều phiền toái khi thực hiện các thao tác, không bị hỏng hóc, các cơ sở dữ liệu cần tuân thủ một số tiêu chí, ràng buộc nhất định. Trong số đó, quan trọng hơn cả là các tiêu chí liên quan đến tính chuẩn (normality) của dữ liệu.

Dữ liệu được xem là chuẩn khi không chứa dữ liệu dư thừa, trùng chập dưới mọi hình thức. Khi đó ta có thể loại bỏ các điểm bất cập xẩy ra khi cập nhật, thêm bớt dữ liệu.

Tùy thuộc yêu cầu đặt ra mà hiện nay đã có 7 dạng chuẩn (normal form) được đề xuất, từ dạng chuẩn 1 (1NF) đến dạng chuẩn 6 (6NF) và dạng chuẩn Boyce-Codd (BCNF). Mức độ ràng buộc tăng dần từ dạng chuẩn 1 đến dạng chuẩn 6, còn dạng chuẩn Boyce-Codd nằm ở giữa dạng chuẩn 3 và dạng chuẩn 4. Dạng chuẩn thứ n là dạng chuẩn thứ (n-1) và thêm một số ràng buộc nữa.

Tuy nhiên ta thấy trong thực tế có 90% trường hợp thuộc dạng chuẩn 3 và dạng này được xem như “tiêu chuẩn vàng” (golden standard) của cơ sở dữ liệu. Dạng chuẩn 6 được Christopher Date đề xuất liên quan đến các thuộc tính về thời gian chỉ mới được giới nghiên cứu xem xét.

Quá trình chuẩn hóa cơ sở dữ liệu được thực hiện qua nhiều bước, bắt đầu từ dạng chuẩn thấp tiến dần đến những dạng chuẩn cao hơn.


Dạng chuẩn 1

 

Một quan hệ được xem là dạng chuẩn 1 khi đáp ứng được các điều kiện sau:

  • Tất cả các thuộc tính đều là thuộc tính đơn.
  • Có khóa chính.
  • Tất cả các giá trị trong một thuộc tính phải có cùng kiểu dữ liệu.

Như vậy, nếu cơ sở dữ liệu được thiết kế theo mô hình quan hệ, thì các quan hệ của nó đạt dạng chuẩn 1.


Dạng chuẩn 2

 

Phụ thuộc hàm

Thuộc tính B được gọi là phụ thuộc hàm vào thuộc tính A nếu giá trị của B có thể suy ra từ giá trị của A, nghĩa là ta có thể viết như trong Toán: B = f(A)). Khi ấy A được gọi là định tố (determinant) của B.

Trong trường hợp khóa chính thuộc loại kết hợp, ta có một trường hợp đặc biệt của phụ thuộc hàm được gọi là phụ thuộc một phần (partial dependency). Đó là sự phụ thuộc hàm của thuộc tính không khóa vào một phần của khóa chính.

Dạng chuẩn 2

Một quan hệ được xem là đạt dạng chuẩn 2 khi đáp ứng các điều kiện sau:

  • Đã đạt dạng chuẩn 1
  • Mỗi thuộc tính không khóa phụ thuộc hàm vào toàn bộ khóa chính.

Như vậy nếu quan hệ đã đạt dạng chuẩn 1 và khóa chính thuộc loại đơn thì nó đạt dạng chuẩn 2. Ngoài ra nếu quan hệ chỉ chứa khóa chính thì nó cũng đạt dạng chuẩn 2.


Dạng chuẩn 3

 

Phụ thuộc bắc cầu

Nếu thuộc tính B phụ thuộc hàm vào thuộc tính không khóa A thì phụ thuộc này được gọi là phụ truộc bắc cầu (transitive dependency).

Dạng chuẩn 3

Một quan hệ được xem là đạt dạng chuẩn 3 khi đáp ứng các điều kiện sau:

  • Đã đạt dạng chuẩn 2
  • Không có phụ thuộc bắc cầu nào trong quan hệ, nghĩa là các thuộc tính không khóa chỉ phụ thuộc vào khóa chính.

Dạng chuẩn Boyce-Codd

 

Dạng chuẩn Boyce-Codd được xem xét khi khóa chính thuộc loại kết hợp và được xem là chặt chẽ và gắt gao hơn dạng chuẩn 3. Quan hệ được xem là đạt dạng chuẩn này khi:

  • Đã đạt dạng chuẩn 3
  • Không có thuộc tính nào của khóa chính phụ thuộc hàm vào một thuộc tính không khóa. Nói cách khác, không có thuộc tính không khóa nào là định tố.

Dạng chuẩn 4

 

Dạng chuẩn 4 được đặt ra khi trong một quan hệ chứa nhiều hơn 1 thuộc tính mà về bản chất là đa trị. Khi đó, có thể xẩy ra sự phụ thuộc giữa một vài giá trị của thuộc tính đa trị này với một vài giá trị của thuộc tính đa trị khác. Khi đó, ta xem là không đạt dạng chuẩn 4. Biện pháp là ta tạo ra các quan hệ chỉ chứa một thuộc tính có bản chất là đa trị thôi.


Phi chuẩn hóa

 

Khi chúng ta chuẩn hóa cơ sở dữ liệu, ta thường phải tạo những quan hệ có ít thuộc tính, nhưng điều này làm cho số quan hệ tăng lên. Dạng chuẩn càng cao, số thuộc tính trong mỗi quan hệ càng ít, số quan hệ càng nhiều. Khi thao tác dữ liệu, như truy vấn chẳng hạn, ta lại phải tìm cách móc nối, liên kết các quan hệ này lại để có được kết quả như yêu cầu. Điều này làm quá trình viết mã lệnh cho các chương trình phức tạp hơn, thời gian thực thi các yêu cầu của người dùng tăng lên.

Vì thế, trong thực tế, ta cần phải xem xét để tạo sự cân bằng giữa mức độ chuẩn hóa với mức độ phức tạp của chương trình và thời gian thực thi các thao tác. Do đó ta vẫn có thể tạo ra một số quan hệ phi chuẩn để có sự cân bằng trên.

Một số hướng để phi chuẩn hóa (denormalization) cơ sở dữ liệu là:

  • Kết hợp một số quan hệ để có những quan hệ chứa nhiều thuộc tính hơn.
  • Chấp nhận một số thuộc tính tạo dữ liệu trùng chập.
  • Chấp nhận một số thuộc tính thuộc loại suy dẫn.


Trang trướcVề đầu chươngTrang sau


Trang web này được cập nhật lần cuối ngày 25/11/2018