Các dạng chuẩn cơ bản trong thiết kế CSDL 1NF, 2NF, 3NF

Trong lý thuyết thiết kế csdl, với những bài toán phức tạp. làm thế nào để chúng ta thiết kế cấu trúc các bảng đầy đủ, các trường nằm đúng ở các bảng không thừa không thiếu để. Thiết kế cơ sở dữ liệu tốt sẽ loại bỏ những dị thường khi thao tác cơ sở dữ liệu, các dị thường đó là:

– Dư thừa dữ liệu (Redundancy)

– Dị thường khi cập nhật dữ liệu (Update Anomalie)

– Dị thường khi thêm dữ liệu (Insertion Anomalie)

– Dị thường khi xóa dữ liệu (Deletion Anomalie)

Thiết kế csdl dựa trên những lý thuyết: phụ thuộc hàm, khóa, các dạng chuẩn, … Dưới đây là định nghĩa của các dạng chuẩn cơ bản:

– Dạng chuẩn 1 (1NF): Một bảng có dạng chuẩn 1NF nếu và chỉ nếu mỗi hàng có cùng một số lượng các cột (nghĩa là không có cột lặp).

– Dạng chuẩn 2 (2NF): Một bảng có dạng 2NF nếu và chỉ nếu bảng này có dạng chuẩn 1NF và mỗi cột không phải là thành phần của khoá sẽ phụ thuộc hàm vào toàn bộ khoá.

Có nghĩa rằng, các cột không phải thành phần của khóa phụ thuộc vào TẤT CẢ CÁC CỘT tạo nên khóa, không được phụ thuộc vào một trường hoặc một phần của khóa.

Một cách nhận biết dạng chuẩn 2 là tìm những bảng nào có KHÓA KÉP (COMPOSITE KEY), khóa chính của bảng đó được tạo nên từ 2 hoặc nhiều cột.

– Dạng chuẩn 3(3NF): Một bảng có dạng 3NF nếu và chỉ nếu bảng thuộc 2NF và mỗi cột không phải là thành phần của khoá chỉ phụ thuộc vào khoá (nghĩa là các cột không phải là khóa thì độc lập lẫn nhau)

Khi thiết kế, các bảng sau cùng đảm bảo các tính chất sau:

  • Một bảng chỉ mô tả một thông tin
  • Một bảng có một khóa chính
  • Không có trường tính toán (Điểm trung bình = trung bình cộng điểm các môn, có thể tính toán và suy ra từ các cột điểm khác -> vậy nên không có cột Điểm trung bình)
  • Không có các nhóm cột có giá trị lặp lại
  • Giá trị trong một trường là đơn trị (không chia tách giá trị đó ra được)

Các dạng chuẩn cao hơn sẽ trình bày trong bài tiếp theo.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s