Giới thiệu
Trong quá trình làm đồ án, đặc biệt là các đề tài thuộc lĩnh vực quản lý thông tin, xây dựng phần mềm, hoặc hệ thống cơ sở dữ liệu, việc tạo lược đồ quan hệ (hay Relational Schema) là bước không thể thiếu để xây dựng một hệ thống đúng logic và có khả năng triển khai thực tế. Tuy nhiên, nhiều sinh viên thường nhầm lẫn giữa sơ đồ ERD (Entity Relationship Diagram) và lược đồ quan hệ, hoặc không biết bắt đầu từ đâu khi xây dựng mô hình dữ liệu.
Bài viết này sẽ hướng dẫn bạn chi tiết từng bước, từ việc đọc yêu cầu đề tài, trích xuất thực thể – thuộc tính – mối quan hệ, đến khi chuyển thành bảng dữ liệu đúng chuẩn hóa và có thể triển khai trên MySQL, PostgreSQL hay bất kỳ RDBMS nào.
Phân biệt ERD và lược đồ quan hệ trong đồ án
Trước khi bắt tay vào thiết kế lược đồ quan hệ, sinh viên cần hiểu rõ sự khác biệt giữa hai loại sơ đồ:
-
Sơ đồ ERD: Là công cụ trực quan hóa các thực thể (Entity), thuộc tính (Attribute) và mối quan hệ (Relationship) trong hệ thống. ERD thường dùng để phân tích nghiệp vụ và mô hình hóa ban đầu.
-
Lược đồ quan hệ: Là kết quả của việc chuyển đổi sơ đồ ERD thành tập hợp các bảng (table) theo chuẩn cơ sở dữ liệu quan hệ. Đây là mô hình mà bạn sẽ dùng để tạo CSDL thực tế trên phần mềm như MySQL Workbench, SQL Server, hoặc SQLite.
Lược đồ quan hệ là cầu nối từ mô hình ERD sang code và hệ quản trị CSDL.
Bước 1: Đọc hiểu yêu cầu đề tài và xác định thực thể chính
Trước tiên, bạn cần đọc kỹ yêu cầu của đề tài. Ví dụ:
“Xây dựng hệ thống quản lý thư viện, cho phép người dùng mượn – trả sách, thêm mới đầu sách, theo dõi thông tin bạn đọc, và thống kê số lượt mượn theo tháng.”
Từ mô tả trên, chúng ta có thể rút ra các thực thể (Entity) cơ bản:
-
Độc giả (Reader)
-
Sách (Book)
-
Phiếu mượn (Loan Slip)
-
Thủ thư (Librarian)
Mỗi thực thể sẽ có những thuộc tính riêng. Ví dụ:
-
Độc giả: mã độc giả, tên, ngày sinh, địa chỉ
-
Sách: mã sách, tên sách, tác giả, thể loại, số lượng
Bước 2: Xác định mối quan hệ và thuộc tính liên kết
Sau khi liệt kê thực thể, tiếp theo bạn xác định mối quan hệ giữa chúng:
-
Một độc giả có thể mượn nhiều sách
-
Một sách có thể được nhiều độc giả mượn
-
Mỗi lần mượn cần tạo phiếu mượn, lưu ngày mượn và ngày trả
Từ đây, ta có:
-
Quan hệ nhiều-nhiều giữa
Độc giảvàSáchthông quaPhiếu mượn -
Quan hệ 1-nhiều giữa
Thủ thưvàPhiếu mượn(mỗi thủ thư lập nhiều phiếu)
Bước 3: Chuyển đổi ERD thành lược đồ quan hệ
Khi đã có sơ đồ ERD, bạn tiến hành chuyển thành lược đồ quan hệ bằng cách viết ra các bảng.
Ví dụ:
DOCGIA (
MaDG PRIMARY KEY,
TenDG,
NgaySinh,
DiaChi
)
SACH (
MaSach PRIMARY KEY,
TenSach,
TacGia,
TheLoai,
SoLuong
)
PHIEUMUON (
MaPM PRIMARY KEY,
MaDG FOREIGN KEY REFERENCES DOCGIA(MaDG),
MaSach FOREIGN KEY REFERENCES SACH(MaSach),
NgayMuon,
NgayTra,
MaThuThu
)
THUTHU (
MaThuThu PRIMARY KEY,
HoTen,
NgayTao
)
Mỗi bảng chính là 1 quan hệ trong lược đồ. Các khóa ngoại (Foreign Key) thể hiện liên kết giữa các thực thể.
Bước 4: Chuẩn hóa dữ liệu
Lược đồ quan hệ cần đảm bảo chuẩn hóa để tránh dư thừa dữ liệu và lỗi cập nhật.
Một số chuẩn phổ biến:
-
1NF: Mỗi ô dữ liệu chỉ chứa 1 giá trị đơn
-
2NF: Phụ thuộc đầy đủ vào khóa chính
-
3NF: Không có phụ thuộc bắc cầu (transitive dependency)
Ví dụ lỗi không chuẩn hóa:
DOCGIA (
MaDG,
TenDG,
SoLuongSachDangMuon -- ⚠ sai, vì đây là giá trị tính toán
)
Giải pháp: Chuyển sang bảng tách riêng hoặc truy vấn động qua JOIN
Bước 5: Kiểm tra logic và tính khả thi
Khi đã có lược đồ, bạn cần kiểm tra:
-
Các mối quan hệ đã đủ chưa?
-
Có thuộc tính nào thừa/lặp lại?
-
Có logic bị sai không? (ví dụ một phiếu mượn mà không có sách?)
Việc nhờ giáo viên hướng dẫn hoặc bạn bè phản biện lược đồ cũng rất hữu ích trong giai đoạn này.
Kết luận
Tạo lược đồ quan hệ không chỉ là bài tập bắt buộc mà còn là bước khởi đầu quan trọng trong bất kỳ hệ thống nào cần lưu trữ dữ liệu có tổ chức. Để xây dựng một hệ thống bền vững, bạn cần xác định đúng thực thể, hiểu rõ mối quan hệ, áp dụng chuẩn hóa và biết cách biểu diễn dữ liệu một cách hợp lý.
Khi bạn nắm vững quy trình từ phân tích yêu cầu → ERD → lược đồ quan hệ, bạn sẽ không chỉ làm tốt đồ án mà còn có nền tảng vững chắc để phát triển những hệ thống lớn hơn sau này.

