Mô Hình Dữ Liệu Quan Hệ: Khái Niệm, Thuộc Tính và Cách Chuyển Đổi Từ ERD

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ô 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)MaSV là khóa ngoại tham chiếu đến khóa chính MaSV 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:

  1. 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ính MaSV, TenSV, Lop sẽ được chuyển thành quan hệ SINH_VIEN (MaSV, TenSV, Lop), trong đó MaSV là khóa chính.

  2. 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_VIENTAI_KHOAN, ta có thể thêm MaSV vào quan hệ TAI_KHOAN hoặc thêm một khóa ngoại vào bảng SINH_VIEN trỏ đến TAI_KHOAN.

  3. 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 LOPSINH_VIEN, ta thêm MaLop (khóa chính của LOP) vào quan hệ SINH_VIEN. Quan hệ sẽ trở thành SINH_VIEN (MaSV, TenSV, MaLop).

Ví dụ về mô hình ERD đơn giản.

  1. 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_VIENMON_HOC, ta tạo quan hệ KET_QUA (MaSV, MaMH, Diem), trong đó MaSVMaMH là khóa chính.

  2. 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.

  3. 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 đó MaSVSoDienThoai 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_HANGSAN_PHAM (N-N) có thuộc tính SoLuong.

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.