Mô hình dữ liệu quan hệ (Relational Data Model) là một phương pháp tổ chức dữ liệu phổ biến, sử dụng các quan hệ (Relation) để biểu diễn thông tin và mối liên kết giữa chúng. Trong mô hình này, mỗi quan hệ được thể hiện dưới dạng bảng, bao gồm các thuộc tính (Attribute) và các bộ (Tuple). Bài viết này sẽ trình bày chi tiết về mô hình dữ liệu quan hệ, các khái niệm khóa (Key) quan trọng, quy tắc chuyển đổi từ mô hình thực thể kết hợp (ERD) sang mô hình quan hệ, cùng với các bài tập thực hành để bạn nắm vững kiến thức.
Mục Lục
Mô Hình Dữ Liệu Quan Hệ: Các Thành Phần Cơ Bản
Mô hình dữ liệu quan hệ bao gồm các thành phần chính sau:
- Quan hệ (Relation): Một tập hợp các thuộc tính, thường được biểu diễn bằng một bảng. Ví dụ:
SINH_VIEN (MaSV, TenSV, Lop)
. - Thuộc tính (Attribute): Một cột trong bảng, biểu diễn một đặc tính của thực thể. Ví dụ:
MaSV
,TenSV
,Lop
là các thuộc tính của quan hệSINH_VIEN
. - Bộ (Tuple): Một hàng trong bảng, biểu diễn một thể hiện cụ thể của thực thể. Ví dụ:
(SV001, Nguyen Van A, CNTT1)
là một bộ trong quan hệSINH_VIEN
.
Quy ước đặt tên trong mô hình quan hệ thường sử dụng chữ in hoa cho tên quan hệ (ví dụ: SINH_VIEN
, LOP
, MON_HOC
).
Khái Niệm Khóa (Key) Trong Mô Hình Dữ Liệu Quan Hệ
Khóa đóng vai trò quan trọng trong việc đảm bảo tính toàn vẹn và nhất quán của dữ liệu trong mô hình quan hệ. Có hai loại khóa chính:
- Khóa chính (Primary Key): Một thuộc tính hoặc tập hợp các thuộc tính xác định duy nhất mỗi bộ trong một quan hệ. Một quan hệ chỉ có một khóa chính. Ví dụ:
MaSV
là khóa chính của quan hệSINH_VIEN
vì mỗi sinh viên có một mã số duy nhất. - Khóa ngoại (Foreign Key): Một thuộc tính trong một quan hệ tham chiếu đến khóa chính của một quan hệ khác. Khóa ngoại thiết lập mối liên kết giữa hai quan hệ. Ví dụ: Nếu quan hệ
KET_QUA (MaSV, MaMH, Diem)
cóMaSV
là khóa ngoại tham chiếu đến khóa chínhMaSV
của quan hệSINH_VIEN
, thì ta biết kết quả học tập này thuộc về sinh viên nào. Tên thuộc tính của khóa ngoại và khóa chính có thể khác nhau.
Ảnh minh họa mối quan hệ giữa các thực thể trong mô hình dữ liệu quan hệ.
Chuyển Đổi Từ Mô Hình ERD Sang Mô Hình Dữ Liệu Quan Hệ
Mô hình ERD (Entity-Relationship Diagram) là một công cụ trực quan để mô tả cấu trúc dữ liệu. Để chuyển đổi từ ERD sang mô hình quan hệ, ta thực hiện các bước sau:
-
Tập thực thể (Entity Set): Mỗi thực thể trong ERD được chuyển thành một quan hệ. Các thuộc tính của thực thể trở thành các thuộc tính của quan hệ. Thuộc tính khóa của thực thể trở thành khóa chính của quan hệ. Ví dụ: Thực thể
SINH_VIEN
với các thuộc tínhMaSV
,TenSV
,Lop
sẽ được chuyển thành quan hệSINH_VIEN (MaSV, TenSV, Lop)
, trong đóMaSV
là khóa chính. -
Mối quan hệ 1-1 (One-to-One Relationship): Chọn một trong hai quan hệ và thêm khóa chính của quan hệ còn lại làm khóa ngoại. Ví dụ: Nếu có mối quan hệ 1-1 giữa
SINH_VIEN
vàTAI_KHOAN
, ta có thể thêmMaSV
vào quan hệTAI_KHOAN
hoặc thêm một khóa ngoại vào bảngSINH_VIEN
trỏ đếnTAI_KHOAN
. -
Mối quan hệ 1-N (One-to-Many Relationship): Thêm khóa chính của quan hệ “một” làm khóa ngoại vào quan hệ “nhiều”. Ví dụ: Nếu có mối quan hệ 1-N giữa
LOP
vàSINH_VIEN
, ta thêmMaLop
(khóa chính củaLOP
) vào quan hệSINH_VIEN
. Quan hệ sẽ trở thànhSINH_VIEN (MaSV, TenSV, MaLop)
.
Ví dụ về mô hình ERD đơn giản.
-
Mối quan hệ N-N (Many-to-Many Relationship): Tạo một quan hệ mới, có khóa chính là tổ hợp của khóa chính của hai quan hệ ban đầu. Các thuộc tính của mối quan hệ (nếu có) trở thành thuộc tính của quan hệ mới. Ví dụ: Nếu có mối quan hệ N-N giữa
SINH_VIEN
vàMON_HOC
, ta tạo quan hệKET_QUA (MaSV, MaMH, Diem)
, trong đóMaSV
vàMaMH
là khóa chính. -
Mối quan hệ 3 ngôi (Ternary Relationship): Tạo một quan hệ mới với khóa chính là tổ hợp của khóa chính của ba thực thể tham gia mối quan hệ. Các thuộc tính của mối quan hệ (nếu có) trở thành thuộc tính của quan hệ mới.
-
Thuộc tính đa trị (Multivalued Attribute): Tạo một quan hệ mới, có khóa chính là tổ hợp của thuộc tính đa trị và khóa chính của thực thể. Ví dụ: Nếu
SINH_VIEN
có thuộc tính đa trịSoDienThoai
, ta tạo quan hệSDT_SINH_VIEN (MaSV, SoDienThoai)
, trong đóMaSV
vàSoDienThoai
là khóa chính. Thuộc tính đa trị sẽ biến mất khỏi thực thể cũ.
Thuộc tính khóa trong cơ sở dữ liệu quan hệ.
Bài Tập Thực Hành
Để củng cố kiến thức, hãy thử sức với các bài tập sau:
Bài 1: Cho mô hình ERD sau:
KHACH_HANG (MaKH, TenKH, DiaChi)
SAN_PHAM (MaSP, TenSP, DonGia)
- Mối quan hệ “Mua” giữa
KHACH_HANG
vàSAN_PHAM
(N-N) có thuộc tínhSoLuong
.
Chuyển đổi ERD này sang mô hình dữ liệu quan hệ.
Bài 2: Dựa vào mô tả nghiệp vụ bán hàng sau, hãy thiết kế mô hình dữ liệu quan hệ:
- Một hóa đơn bán hàng có thông tin về số hóa đơn, ngày lập.
- Mỗi hóa đơn được lập cho một khách hàng (có mã khách hàng, tên khách hàng, địa chỉ).
- Mỗi hóa đơn bao gồm nhiều sản phẩm (có mã sản phẩm, tên sản phẩm, đơn vị tính, đơn giá, số lượng).
Bài 3: Thiết kế mô hình dữ liệu quan hệ cho hệ thống quản lý thư viện, với các thông tin sau:
- Phiếu mượn sách có số phiếu, ngày mượn.
- Mỗi phiếu mượn được lập cho một sinh viên (có mã sinh viên, tên sinh viên, mã lớp).
- Mỗi phiếu mượn bao gồm nhiều sách (có mã sách, tên sách, nhà xuất bản, ghi chú).
Kết Luận
Mô hình dữ liệu quan hệ là một công cụ mạnh mẽ để tổ chức và quản lý dữ liệu. Việc hiểu rõ các khái niệm cơ bản, quy tắc chuyển đổi từ ERD, và thực hành với các bài tập sẽ giúp bạn xây dựng các hệ thống cơ sở dữ liệu hiệu quả và đáp ứng được yêu cầu nghiệp vụ. Nắm vững mô hình dữ liệu quan hệ là một kỹ năng quan trọng đối với bất kỳ ai làm việc trong lĩnh vực công nghệ thông tin.