Mô hình quan hệ là mô hình phổ biến nhất trong số các mô hình dữ liệu logic và nó là cơ sở của cơ sở dữ liệu SQL.
Mô hình quan hệ dựa trên hai khái niệm đơn giản:
- bảng
- quan hệ
Mô hình quan hệ có từ năm 1969 và là công trình nghiên cứu của Edgar F. Codd, một nhà khoa học máy tính người Anh. Mặc dù là những lập trình viên máy tính, chúng ta thường tò mò nhìn vào những thứ sáng bóng mới, nhưng một công nghệ có thể là trung tâm của mọi thứ về máy tính trong 50 năm chắc chắn đáng để nghiên cứu.
Thực tế là mô hình dựa trên các bảng làm cho nó rất trực quan để sử dụng, vì chúng ta đã quen với việc sử dụng các bảng để sắp xếp mọi thứ. Hãy nghĩ về một bảng tính Excel chẳng hạn.
Với cơ sở dữ liệu dựa trên SQL, như PostgreSQL, Oracle, MySQL, SQLite và MS SQL Server và nhiều cơ sở dữ liệu khác, dữ liệu được phân tích bằng Mô hình ER có thể được lập mô hình bằng mô hình quan hệ và gần như ngay lập tức được chuyển đổi thành định dạng cơ sở dữ liệu SQL, có thể được coi là một triển khai trong thế giới thực của mô hình quan hệ, nhưng chúng ta sẽ nói về điều này trong các bài viết khác.
Trong bài đăng này, tôi muốn nói về lý thuyết và các khái niệm mà mô hình quan hệ dựa trên, không được diễn đạt bằng thuật ngữ toán học mà là ý nghĩa của nó trong thực tế.
Nếu bạn là sinh viên, bạn có thể thấy rằng những gì tôi viết ở đây không phải là những gì được viết trong sách giáo khoa của bạn, nhưng có thể bạn có thể đọc nó dễ dàng hơn để nắm bắt các khái niệm chính thức hơn được thể hiện trong tài liệu học tập của bạn.
Bảng
Trong mô hình quan hệ, bảng là một tập hợp các mục.
Nó được tổ chức thành các hàng và cột:
Tên | Tuổi |
---|---|
Flavio | 36 |
Roger | 7 |
Syd | 6 |
Tuples
Mỗi mục nhập trong bảng được gọi là tuple . Bạn cũng có thể sử dụng các điều khoản ghi lại hoặc hàng .
Một bộ giá trị đại diện cho một hàng của bảng, như thế này:
Flavio | 36 |
Thuộc tính
Thuộc tính là một mục duy nhất trong bộ.
Trong ví dụ này:
Flavio | 36 |
“Flavio” là một thuộc tính. 36 là một thuộc tính khác.
Tuples là duy nhất
Mỗi bộ trong bảng là duy nhất.
Trong mô hình quan hệ, chúng ta không thể có dữ liệu trùng lặp, có nghĩa là mọi hàng trong bảng phải khác nhau ở ít nhất một thuộc tính.
Khóa quan hệ
Điều đảm bảo một tuple là duy nhất là khóa quan hệ .
Khóa là một thuộc tính phải nhận dạng duy nhất một bộ.
Nếu khóa quan hệ là một tập hợp các thuộc tính thì khóa đó phải không thừa . Điều này có nghĩa là nếu chúng tôi xóa một trong các thuộc tính của khóa, thì khóa không thể đảm bảo tính duy nhất của nó.
Nếu nhiều khóa có thể được xác định, một trong các khóa đó sẽ được xác định là khóa chính .
Ràng buộc về tính toàn vẹn của khóa
Chúng (các) thuộc tính khóa của bất kỳ bộ mã nào trong bảng phải không bao giờ được rỗng và phải không bao giờ lặp lại .
Với một khóa, chúng ta phải có thể trỏ đến một bộ / hàng cụ thể mà không bị mơ hồ.
Các ràng buộc về miền
Mọi thuộc tính đều có quy tắc về giá trị mà nó có thể giữ .
Ví dụ:nếu chúng tôi quyết định lưu trữ số, chúng tôi không thể lưu trữ chuỗi. Và chúng tôi có thể quyết định không lưu trữ các chuỗi dài hơn 10 ký tự cho tên.
Chúng tôi cũng có thể gọi đây là loại .
Ràng buộc về tính toàn vẹn của tham chiếu
Nếu một bảng chứa tham chiếu đến bảng phụ hoặc các bộ dữ liệu khác trong cùng một bảng, thì chúng ta phải tuân thủ các quy tắc ngăn tham chiếu bị phá vỡ.
Đặc biệt, chúng ta phải tránh vi phạm tham chiếu bằng cách:
- tránh xóa hoặc chỉnh sửa khóa chính của bản ghi mà chúng tôi trỏ đến, trong bảng khác.
- tránh chèn một bản ghi mới với một khóa không tồn tại để trỏ đến trong bảng khác.
- tránh thay đổi khóa của bản ghi mà chúng tôi trỏ đến mà không đảm bảo rằng khóa mới tồn tại trong bảng khác.
DBMS (Hệ thống quản lý cơ sở dữ liệu) sẽ triển khai các biện pháp để giúp chúng tôi triển khai tính toàn vẹn tham chiếu.