Bình thường hóa hoàn toàn được sử dụng trong thế giới thực ... và hy vọng bạn biết rằng 3NF chỉ là thứ ba trong số ... bây giờ là gì, 8? Nhưng 3NF nên là một mục tiêu dễ dàng.
Tuy nhiên ... tôi sẽ mạo hiểm nói rằng không thể có một công cụ như vậy.
Chuẩn hóa, về mặt kỹ thuật, là một thuộc tính của mỗi bảng. Trong một cơ sở dữ liệu nhất định, các bảng khác nhau có thể có mức độ chuẩn hóa khác nhau.
Mỗi bảng đại diện cho sự thật ... sự thật về các trường hợp của một loại điều nhất định (người, tài khoản, đơn đặt hàng, giao hàng, mặt hàng, địa điểm) bao gồm, đôi khi, khóa ngoại dẫn bạn đến các loại sự thật khác về điều đó.
Chuẩn hóa phải liên quan đến cách các sự kiện chính xác và hiệu quả được thể hiện trong các bảng cũng như khả năng thiết kế của bảng để ngăn chặn các mẫu dữ liệu mơ hồ và dư thừa.
Do đó, một sự hiểu biết về các sự kiện thực tế là bắt buộc ... nằm ngoài phạm vi của các công cụ tự động.
Q: Is a table with { student, subject, instructor } in 3NF?
A: What are students, subjects and instructors?
Trong một thế giới nơi tất cả các giáo viên dạy tất cả các môn học và mỗi sinh viên có thể tham gia bất kỳ sự kết hợp nào nhưng không quá một khóa học cho mỗi môn học từ mỗi người hướng dẫn, bảng này thực sự có thể được cho là trong 3NF. Trong thế giới thực, việc đưa ra yêu cầu 3NF cho bảng này là vô lý.
Để hiểu rằng điều đó không có trong 3NF đòi hỏi sự hiểu biết về bản chất của các sự kiện mà nó đại diện. Trong thực tế của chúng tôi, bảng này sẽ không phải là 3NF vì (trong số các lý do khác) chủ đề và người hướng dẫn được liên kết với nhau theo những cách không liên quan đến sinh viên. Nếu chúng ta có các khóa học mà người hướng dẫn dạy các môn học được lưu trữ ở nơi khác trong cơ sở dữ liệu của chúng ta, tại sao chúng ta sẽ sao chép cả hai giá trị ở đây thay vì khóa ngoại từ bảng khác cho biết rằng học sinh đã đăng ký khóa học? Nếu người hướng dẫn được thay thế, chúng tôi phải thay đổi nhiều hồ sơ ở nhiều nơi.
Cơ sở dữ liệu càng được chuẩn hóa, thì nó càng phù hợp với thế giới thực và với chính nó, và càng khó khăn hơn cho các sự kiện của cơ sở dữ liệu là vô tình không đúng sự thật. Thiết kế cơ sở dữ liệu là một nghệ thuật, nhưng nó chắc chắn là một khoa học.
Mặc dù tôi không trực tiếp nhìn thấy mọi thứ anh ấy viết, tôi sẽ giới thiệu cuốn sách của Chris Date, Thiết kế cơ sở dữ liệu và Lý thuyết quan hệ: Các hình thức bình thường và Tất cả những gì Jazz đi sâu vào chi tiết về lý thuyết cơ bản của mô hình quan hệ.