Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> SQL

12 Quy tắc của Codd cho cơ sở dữ liệu quan hệ


Edgar F Codd là nhà khoa học máy tính đã phát minh ra mô hình quan hệ cho quản trị cơ sở dữ liệu. Ông cũng được ghi nhận đã đặt nền móng cho cơ sở dữ liệu quan hệ cũng như hệ quản trị cơ sở dữ liệu quan hệ (RDBMS).

12 quy tắc của Codd định nghĩa các đặc điểm yêu cầu bởi một hệ quản trị cơ sở dữ liệu để được coi là quan hệ, tức là một RDBMS.

Quy tắc 0: Quy tắc nền tảng (Foundation rule)

Để một hệ thống đủ điều kiện là RDBMS, nó phải quản lý dữ liệu của mình bằng khả năng quan hệ của nó.

Quy tắc 1: Quy tắc thông tin (Information rule)

Tất cả thông tin (bao gồm siêu dữ liệu) được biểu diễn trong bảng bằng hàng và cột. Hàng và cột phải hoàn toàn không có thứ tự.

Quy tắc 2: Quy tắc truy cập đảm bảo (Guaranteed access rule)

Tất cả giá trị trong cơ sở dữ liệu phải có thể truy cập bằng tổ hợp tên bảng, khóa chính và tên cột. (Khả năng truy cập dữ liệu trực tiếp bằng con trỏ là không hợp lệ theo quy tắc này).

Quy tắc 3: Xử lý hệ thống giá trị NULL (Systematic treatment of Null values)

Giá trị NULL được hỗ trợ đầy đủ trong cơ sở dữ liệu để biểu diễn sự vắng mặt dữ liệu hoặc dữ liệu không hợp lệ theo cách hệ thống. Giá trị NULL độc lập với kiểu dữ liệu và bất kỳ thao tác nào trên chúng phải trả về NULL.

Quy tắc 4: Danh mục trực tuyến động (Dynamic Online Catalog)

Danh mục là mô tả hoàn chỉnh của cơ sở dữ liệu. Nó được lưu trữ trực tuyến và cung cấp thông tin bổ sung về cơ sở dữ liệu. Ngôn ngữ truy vấn dùng trên cơ sở dữ liệu cũng được dùng trên danh mục.

Quy tắc 5: Ngôn ngữ mạnh mẽ và có cấu trúc tốt (Powerful and Well-Structured Language)

Một cơ sở dữ liệu quan hệ có thể hỗ trợ nhiều ngôn ngữ. Tuy nhiên phải có ít nhất một ngôn ngữ cung cấp mọi loại truy cập dữ liệu, thao tác dữ liệu, v.v. SQL là một ngôn ngữ như vậy.

Quy tắc 6: Quy tắc cập nhật View (View Updation rule)

Tất cả các view có thể cập nhật về mặt lý thuyết cũng phải có thể cập nhật bởi hệ thống.

Quy tắc 7: Chèn, Cập nhật, Xóa chất lượng cao (Quality Insertion, Update, Deletion)

Phải có khả năng chèn, xóa và cập nhật dưới dạng một toán tử đơn (single operand). Tiện ích này phải có ở mọi cấp độ quan hệ.

Quy tắc 8: Độc lập dữ liệu vật lý (Physical Data Independence)

Các thay đổi vật lý của hệ thống, như thay đổi không gian lưu trữ, thay đổi phương pháp truy cập, v.v., không nên ảnh hưởng đến chương trình ứng dụng và các hoạt động khác của hệ thống.

Quy tắc 9: Độc lập dữ liệu logic (Logical Data Independence)

Góc nhìn của người dùng về cơ sở dữ liệu quan hệ phải nhất quán ngay cả khi có thay đổi cấu trúc logic. Quy tắc này khá khó thỏa mãn.

Quy tắc 10: Độc lập toàn vẹn (Integrity Independence)

Các ràng buộc toàn vẹn đặc thù cho cơ sở dữ liệu quan hệ nên được định nghĩa trong ngôn ngữ của cơ sở dữ liệu đó và lưu trữ trong danh mục. Quy tắc này có nghĩa là RDBMS không phụ thuộc vào front-end.

Quy tắc 11: Độc lập phân tán (Distribution Independence)

Dù dữ liệu trong cơ sở dữ liệu được phân tán qua nhiều vị trí, người dùng cuối phải thấy cơ sở dữ liệu như một thực thể thống nhất. Ngoài ra, cơ sở dữ liệu phải hoạt động hoàn hảo ngay cả khi phân tán qua mạng.

Quy tắc 12: Quy tắc không phá hoại (Nonsubversion Rule)

Nếu truy cập cấp thấp được phép cho cơ sở dữ liệu quan hệ, nó không được phép phá vỡ các ràng buộc toàn vẹn và bỏ qua bảo mật để thay đổi dữ liệu.