Là một bảng không có khóa chính được chuẩn hóa?


9

Trong một bài giảng, giảng viên của tôi chỉ cho chúng tôi một cái bàn không có khóa chính. Khi được hỏi, anh ta nói rằng trong 3NF khi bạn loại bỏ các phụ thuộc bắc cầu thì sẽ có một bảng không có khóa chính.

Tuy nhiên, không có khóa chính ngụ ý không có phụ thuộc chức năng - nhưng 3NF là loại bỏ các phụ thuộc bắc cầu và tôi được dạy rằng mỗi bảng cần có một khóa chính để chuẩn hóa vì tất cả đều phụ thuộc vào chức năng.

Tôi biết hoàn toàn có thể tạo một bảng mà không có khóa chính, nhưng cơ sở dữ liệu đó có được coi là chuẩn hóa nếu bảng đó tồn tại không?

Tôi nên nói thêm, bảng không có bất kỳ khóa duy nhất nào của Pháp, không chính, không tổng hợp, không có ngoại lệ.

Bảng hiển thị có ba thuộc tính không có thuộc tính nào được gắn nhãn là chính hoặc duy nhất. Tôi hỏi nếu đó là một sai lầm và anh ấy nói không sao cả. Tôi đã đặt câu hỏi về nhận xét này vì không có thông tin nào trong bảng có thể được xác định duy nhất và anh ta tuyên bố rằng nó ổn như thế này. Điều này đi ngược lại với những gì tôi được dạy về bình thường hóa.

Câu trả lời:


15

Nếu một mối quan hệ không có bất kỳ khóa ứng cử viên nào (và khóa chính chỉ là một trong các khóa ứng viên), thì nó có thể có các hàng trùng lặp, vì vậy thực tế nó không phải là một mối quan hệ! (vì quan hệ luôn được thiết lập).

Trong trường hợp đó, sẽ đúng hơn nếu gọi nó là bảng chứ không phải quan hệ, như bạn đã làm trong câu hỏi của mình và lưu ý rằng một số RDBMS có hiệu lực có thể quản lý các mối quan hệ, cho phép các bảng mà không có bất kỳ ràng buộc nào về tính duy nhất, ngay cả trong trường hợp này là rất không phổ biến và tạo ra vấn đề (dị thường) khi hoạt động trên dữ liệu.

Nhưng trong trường hợp này, nói về các hình thức bình thường là không phù hợp: tất cả các lý thuyết chuẩn hóa đều dựa trên giả định cơ bản rằng các đối tượng quan tâm là quan hệ , không phải là nhiều vấn đề. Trong thực tế, lý thuyết này dựa trên Giả định quan hệ phổ quát (phần nào được thảo luận), giả định rằng tất cả các mối quan hệ của cơ sở dữ liệu là một tập hợp con của một phép chiếu của mối quan hệ đó, có chứa tất cả các thuộc tính trong mọi quan hệ. Và đối tượng đó thực tế là một mối quan hệ (tức là một tập hợp), không phải là một tập hợp.

Thực tế là, khi nói về dữ liệu của Mô hình dữ liệu quan hệ, đôi khi chúng ta trao đổi hai thuật ngữ, bảng và quan hệ, không có nghĩa là chúng thực sự là từ đồng nghĩa và sự khác biệt này là cơ bản khi chúng ta nói về lý thuyết chuẩn hóa. Hãy nhớ rằng trong các cuốn sách, khi một số hình thức bình thường được giới thiệu, nó luôn được nói như sau:

Một mối quan hệ ở dạng xxx bình thường nếu ...


Không phải là một đẳng cấu đa hình cho một tập hợp mà bạn thêm một countthuộc tính bổ sung cho các phần tử?
Barmar

3
@Barmar có, nhưng sau đó bạn thêm khóa ứng viên và tất cả các phụ thuộc chức năng có liên quan, do đó, từ quan điểm lý thuyết chuẩn hóa, bạn đang ở trong một trường hợp hoàn toàn khác.
Renzo

1
Khi mọi người thực hiện các hoạt động quan hệ trên các bảng không liên quan, họ mong đợi kết quả quan hệ. Khi họ không nhận được chúng, chúng xuất hiện bất thường.
Walter Mitty

0

3NF đề cập đến một bảng tuân thủ 3 Quy tắc chuẩn hóa dữ liệu đầu tiên.

  1. Loại bỏ các nhóm lặp lại
  2. Loại bỏ dữ liệu dư thừa
  3. Loại bỏ các cột không phụ thuộc vào khóa

Quy tắc thứ ba yêu cầu một chìa khóa. Bạn nói đúng, bảng giảng viên không phải là 3NF.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.