12 quy tắc của Codd
Tiến sĩ Edgar F. Codd, sau khi nghiên cứu sâu rộng về Mô hình quan hệ của hệ thống cơ sở dữ liệu, đã đưa ra mười hai quy tắc của riêng mình, theo ông, một cơ sở dữ liệu phải tuân theo để được coi là một cơ sở dữ liệu quan hệ thực sự.
Các quy tắc này có thể được áp dụng trên bất kỳ hệ thống cơ sở dữ liệu nào quản lý dữ liệu được lưu trữ chỉ sử dụng các khả năng quan hệ của nó. Đây là quy tắc nền tảng, đóng vai trò là cơ sở cho tất cả các quy tắc khác.
Quy tắc 1: Quy tắc thông tin
Dữ liệu được lưu trữ trong cơ sở dữ liệu, có thể là dữ liệu người dùng hoặc siêu dữ liệu, phải là một giá trị của một số ô bảng. Mọi thứ trong cơ sở dữ liệu phải được lưu trữ dưới dạng bảng.
Quy tắc 2: Quy tắc truy cập được đảm bảo
Mọi phần tử dữ liệu (giá trị) đều được đảm bảo có thể truy cập một cách hợp lý với sự kết hợp của tên bảng, khóa chính (giá trị hàng) và tên thuộc tính (giá trị cột). Không có phương tiện nào khác, chẳng hạn như con trỏ, có thể được sử dụng để truy cập dữ liệu.
Quy tắc 3: Xử lý có hệ thống các giá trị NULL
Các giá trị NULL trong cơ sở dữ liệu phải được xử lý thống nhất và có hệ thống. Đây là một quy tắc rất quan trọng vì NULL có thể được hiểu là một trong những điều sau đây - dữ liệu bị thiếu, dữ liệu không được biết hoặc dữ liệu không áp dụng được.
Quy tắc 4: Danh mục Trực tuyến Hoạt động
Mô tả cấu trúc của toàn bộ cơ sở dữ liệu phải được lưu trữ trong một danh mục trực tuyến, được gọi là data dictionary, có thể được truy cập bởi người dùng được ủy quyền. Người dùng có thể sử dụng cùng một ngôn ngữ truy vấn để truy cập vào danh mục mà họ sử dụng để truy cập chính cơ sở dữ liệu.
Quy tắc 5: Quy tắc ngôn ngữ phụ dữ liệu toàn diện
Cơ sở dữ liệu chỉ có thể được truy cập bằng ngôn ngữ có cú pháp tuyến tính hỗ trợ định nghĩa dữ liệu, thao tác dữ liệu và hoạt động quản lý giao dịch. Ngôn ngữ này có thể được sử dụng trực tiếp hoặc bằng một số ứng dụng. Nếu cơ sở dữ liệu cho phép truy cập vào dữ liệu mà không cần bất kỳ sự trợ giúp nào của ngôn ngữ này thì đó được coi là vi phạm.
Quy tắc 6: Xem quy tắc cập nhật
Tất cả các khung nhìn của cơ sở dữ liệu, về mặt lý thuyết có thể được cập nhật, hệ thống cũng phải cập nhật được.
Quy tắc 7: Quy tắc Chèn, Cập nhật và Xóa Cấp cao
Cơ sở dữ liệu phải hỗ trợ chèn, cập nhật và xóa ở mức cao. Điều này không được giới hạn ở một hàng duy nhất, nghĩa là nó cũng phải hỗ trợ các phép toán liên hợp, giao nhau và trừ để mang lại tập hợp các bản ghi dữ liệu.
Quy tắc 8: Độc lập dữ liệu vật lý
Dữ liệu được lưu trữ trong cơ sở dữ liệu phải độc lập với các ứng dụng truy cập vào cơ sở dữ liệu. Bất kỳ thay đổi nào trong cấu trúc vật lý của cơ sở dữ liệu không được có bất kỳ tác động nào đến cách dữ liệu đang được các ứng dụng bên ngoài truy cập.
Quy tắc 9: Độc lập dữ liệu logic
Dữ liệu logic trong cơ sở dữ liệu phải độc lập với chế độ xem của người dùng (ứng dụng). Mọi thay đổi trong dữ liệu logic không được ảnh hưởng đến các ứng dụng đang sử dụng nó. Ví dụ: nếu hai bảng được hợp nhất hoặc một bảng được tách thành hai bảng khác nhau, sẽ không có tác động hoặc thay đổi đối với ứng dụng người dùng. Đây là một trong những quy tắc khó áp dụng nhất.
Quy tắc 10: Độc lập liêm chính
Cơ sở dữ liệu phải độc lập với ứng dụng sử dụng nó. Tất cả các ràng buộc toàn vẹn của nó có thể được sửa đổi độc lập mà không cần bất kỳ thay đổi nào trong ứng dụng. Quy tắc này làm cho một cơ sở dữ liệu độc lập với ứng dụng front-end và giao diện của nó.
Quy tắc 11: Độc lập phân phối
Người dùng cuối phải không thể thấy rằng dữ liệu được phân phối qua các vị trí khác nhau. Người dùng sẽ luôn có ấn tượng rằng dữ liệu chỉ được đặt tại một trang web. Quy tắc này đã được coi là nền tảng của hệ thống cơ sở dữ liệu phân tán.
Quy tắc 12: Quy tắc không lật đổ
Nếu một hệ thống có một giao diện cung cấp quyền truy cập vào các bản ghi mức thấp, thì giao diện đó phải không thể lật đổ hệ thống và bỏ qua các ràng buộc về bảo mật và tính toàn vẹn.