Database Concepts có một đặc điểm lạ: lý thuyết nghe rất trừu tượng (thực thể, quan hệ, phụ thuộc hàm) nhưng đề assignment lại rất đời (thiết kế database cho phòng khám, thư viện, cửa hàng). Khoảng cách giữa hai thứ đó là chỗ sinh viên rụng điểm. Bài này thu hẹp khoảng cách đó.

ISYS1055 dạy gì và vì sao nó quan trọng?

Đây là môn nền tảng dữ liệu của sinh viên IT RMIT, xoay quanh ba khối chính: mô hình hóa dữ liệu bằng ER diagram, mô hình quan hệ và chuẩn hóa (normalization), và SQL. Gần như mọi môn dữ liệu về sau đứng trên vai môn này, nên học chắc ở đây là khoản đầu tư có lãi kép.

Cấu trúc assessment thay đổi theo kỳ (các kỳ trước thường có bài thiết kế database và bài SQL). Đối chiếu course guide trên Canvas của đúng kỳ bạn học trước khi tin bất kỳ mô tả nào, kể cả bài này.

Cấu trúc đánh giá (tính tới 2026): các kỳ gần đây môn thường trộn ba nhóm điểm: bài kiểm tra hoặc quiz theo tuần (nắm lý thuyết), assignment/task cá nhân hoặc nhóm (phần nặng điểm nhất, chính là thứ bài này hướng dẫn), và bài đánh giá cuối kỳ. Kỳ 2026 của bạn dùng đúng cấu hình nào, trọng số bao nhiêu: mở course guide trên Canvas để đối chiếu trước khi phân bổ thời gian.

Vẽ ERD từ đề bài: quy trình 4 bước

  1. Gạch chân danh từ trong đề. "Bệnh nhân đặt lịch khám với bác sĩ" cho bạn hai thực thể (Patient, Doctor) và một quan hệ (đặt lịch). Danh từ lặp lại nhiều lần gần như chắc chắn là entity.
  2. Xác định cardinality bằng câu hỏi hai chiều. Một bệnh nhân đặt được mấy lịch? Một lịch thuộc mấy bệnh nhân? Hỏi cả hai chiều cho từng quan hệ, đáp án chính là 1-1, 1-N hay M-N.
  3. Quan hệ M-N kèm dữ liệu riêng thì tách. Lịch khám có ngày giờ và triệu chứng, nghĩa là nó xứng đáng là một thực thể (hoặc associative entity) thay vì chỉ một đường nối.
  4. Soát lại bằng đề bài. Đọc lại từng câu trong đề và hỏi: sơ đồ của mình lưu được thông tin này chưa? Câu nào không lưu được là lỗ hổng thiết kế.

Chuẩn hóa: hiểu thay vì học vẹt

Ba mức chuẩn hóa đầu có thể nhớ bằng một câu hỏi duy nhất cho mỗi mức:

  • 1NF: mỗi ô trong bảng có đúng một giá trị chưa? (Không có cột "danh sách số điện thoại".)
  • 2NF: có cột nào chỉ phụ thuộc một nửa khóa chính ghép không? Có thì tách.
  • 3NF: có cột nào phụ thuộc vào một cột thường (không phải khóa) không? Có thì tách.

Trong bài làm, ăn điểm không nằm ở kết quả cuối mà ở việc chỉ ra phụ thuộc hàm nào vi phạm và vì sao. Viết rõ "cột X phụ thuộc Y, Y không phải khóa, vi phạm 3NF, tách thành bảng Z" là đúng ngôn ngữ người chấm muốn thấy.

SQL: luyện kiểu tích lũy

SQL không khó, nhưng không luyện thì đọc hiểu được mà viết không ra. Cách luyện hiệu quả: mỗi tuần lấy đúng schema của lab, tự đặt 5 câu hỏi bằng tiếng Việt ("khách nào mua nhiều nhất tháng 3?") rồi dịch sang SQL. Bẫy kinh điển của người mới: quên GROUP BY khi dùng hàm gộp, JOIN thiếu điều kiện thành tích Descartes, và dùng WHERE thay vì HAVING cho điều kiện trên nhóm.

Assignment thiết kế database thường yêu cầu nộp kèm phần giải thích thiết kế bằng văn xuôi; nếu bạn viết phần giải thích chưa gọn, nguyên tắc trong bài phát triển luận điểm chặt chẽ áp dụng được y nguyên: mỗi quyết định thiết kế một đoạn, nêu quyết định, lý do, đánh đổi. Còn nếu muốn người ngoài soi lại ERD trước khi nộp, tụi mình nhận review theo rubric, chi tiết ở bảng báo giá.

Câu hỏi thường gặp

ISYS1055 có cần biết lập trình trước không?

Không. Môn này song song với Programming 1 và không yêu cầu code ngoài SQL. Tư duy logic và sự cẩn thận khi đọc đề quan trọng hơn kỹ năng lập trình.

Vẽ ERD bằng công cụ gì?

Dùng công cụ môn học chỉ định trong lab (các kỳ trước thường có công cụ vẽ được yêu cầu rõ). Nếu được tự chọn, draw.io là lựa chọn miễn phí phổ biến. Quan trọng là ký hiệu nhất quán theo đúng convention môn dạy, không trộn chuẩn từ nguồn ngoài.

Học SQL ở đâu ngoài lecture?

Làm hết bài lab trước, vì đề assignment bám sát phong cách lab. Sau đó mới luyện thêm ở các trang bài tập SQL tương tác nếu còn thời gian.

Cần hỗ trợ 1-1 cho môn này? Xem bảng giá và quy trình nhận hỗ trợ của 7 Writing Service.