Mô hình dữ liệu quan hệ – cấu trúc dữ liệu quan hệ

relational-data-structure

Cấu trúc dữ liệu quan hệ (relational data structure) dùng để lưu trữ các quan hệ. Hệ quản trị CSDL quan hệ cho phép người dùng nhìn thấy CSDL dưới dạng bảng dữ liệu. Tuy nhiên, sự nhận thức này chỉ áp dụng cho cấu trúc luận lý của CSDL, tức là chỉ áp dụng ở mức ngoài (external level) và mức ý niệm (conceptual level) trong kiến trúc CSDL ba lược đồ. Nhận thức này không được áp dụng cho cấu trúc vật lý của CSDL vì cấu trúc vật lý có thể được thực hiện bằng cách sử dụng nhiều cấu trúc lưu trữ khác nhau.

Cơ sở dữ liệu quan hệ

Cơ sở dữ liệu quan hệ (relational database) là CSDL mà dữ liệu được lưu trữ trong các quan hệ (bảng). CSDL quan hệ bao gồm nhiều quan hệ.

Cấu trúc của một quan hệ bao gồm các phần đặc tả các miền trị của các thuộc tính và các giá trị cho phép của chúng, bậc của quan hệ được gọi là phần ẩn tàng (intension) của quan hệ và rất ít khi bị thay đổi trừ khi thay đổi ngữ nghĩa của quan hệ. Tập hợp các bộ của một quan hệ được gọi là phần tường minh (extension) hoặc tình trạng (state) của quan hệ và thường bị thay đổi theo thời gian.

Để hiểu rõ hơn, chúng ta sẽ tìm hiểu rõ hơn một số khái niệm bên dưới.

Quan hệ

Quan hệ (relation) là một bảng dữ liệu hai chiều (two-dimensional table of data). Mỗi quan hệ (bảng) bao gồm các cột được đặt tên và nhiều hàng. Các quan hệ được dùng để lưu trữ thông tin về các đối tượng được biểu diễn trong CSDL.

Thuộc tính

Thuộc tính (attribute) của quan hệ là một cột (column) của một bảng. Thứ tự xuất hiện của các thuộc tính trong một quan hệ là không quan trọng và quan hệ vẫn không bị thay đổi.

Miền trị

Miền trị (domain) là một tập hợp các giá trị cho phép của một hoặc nhiều thuộc tính. Thông thường, miền trị là một tập con của một kiểu dữ liệu (data type). Miền trị là một đặc điểm mạnh của mô hình dữ liệu quan hệ. Mọi thuộc tính trong CSDL quan hệ phải được định nghĩa trên một miền trị.

Khái niệm miền trị là quan trọng, vì dựa vào tập giá trị của một miền trị mà chúng ta có thể biết được ý nghĩa của thuộc tính tương ứng và ngăn cấm các tác vụ không được phép thực hiện trên thuộc tính này vì bị vi phạm ràng buộc miền trị (domain constraint).

Miền trị của thuộc tính A được ký hiệu là dom(A)

Bộ

Bộ (tuple) của một quan hệ là một hàng (row) của một bảng. Các phần tử của một quan hệ là các bộ hoặc các hàng của một bảng. Thứ tự xuất hiện của các bộ trong một quan hệ là không quan trọng.

Bậc

Bậc (degree) của một quan hệ là số lượng các thuộc tính của quan hệ. Quan hệ có một thuộc tính được gọi là quan hệ nhất phân (unary relation), quan hệ có hai thuộc tính được gọi là quan hệ nhị phân (binary relation)…quan hệ có n thuộc tính gọi là quan hệ n-phân (n-ary relation)

Lượng số

Lượng số (cardinality) của một quan hệ là số lượng các bộ của quan hệ. Lượng số của quan hệ sẽ bị thay đổi khi thêm vào hoặc xóa bỏ các bộ của quan hệ. Lượng số của quan hệ được xác định từ thể hiện của quan hệ tại một thời điểm.

Minh họa về cấu trúc dữ liệu quan hệ

Để hiểu rõ các khái niệm trong cấu trúc dữ liệu quan hệ, chúng ta hãy xem ví dụ bên dưới.