Cách các null được định nghĩa trong SQL - là các giá trị không phải là giá trị không thể so sánh với các giá trị miền - có nghĩa là chúng vi phạm 1NF (và tất cả các dạng chuẩn cao hơn). Một quan hệ (cấu trúc toán học được đại diện bởi các bảng chuẩn hóa) phải có một giá trị duy nhất cho mỗi cột cho mỗi hàng. Null nghĩa là chúng ta không có giá trị và một cột nullable nghĩa là chúng ta có hai quan hệ trong một bảng - một quan hệ siêu kiểu bao gồm tất cả các cột ngoại trừ cột có thể null và một quan hệ kiểu con có cùng khóa chính và cột trước đó có thể null, cho mà chúng tôi chỉ có thể ghi lại các hàng mà thuộc tính đã biết. Mục đích của việc chuẩn hóa là đưa một tập dữ liệu thành các dữ liệu cơ bản mà không làm mất thông tin, vì vậy việc có hai quan hệ trong một bảng sẽ mâu thuẫn với mục tiêu và làm cho những thứ như đại số quan hệ / giải tích phức tạp hơn.
Các hình thức thông thường là các cấu trúc được xác định một cách hợp lý chính thức, không phải là các phương pháp công nghiệp tốt nhất có thể được điều chỉnh cho phù hợp với hoàn cảnh, vì vậy tôi không thấy có nhiều chỗ để tranh cãi. Liệu chúng ta có nên sử dụng chúng hay không và xử lý chúng như thế nào là một chủ đề thú vị hơn.
Mặc dù null vi phạm các biểu mẫu thông thường, điều đó không có nghĩa là bạn không thể sử dụng null trong cơ sở dữ liệu SQL của mình. Họ có rủi ro cũng như lợi ích. Tôi cũng sử dụng chúng, nhưng có cân nhắc.