Chuyển tới nội dung chính

Bài 1: Giới Thiệu Cơ Sở Dữ Liệu

Giai đoạn 1 – Nhập Môn · Mục tiêu: Hiểu cơ sở dữ liệu (CSDL) là gì, tại sao cần dùng, và cài đặt được môi trường thực hành.


1. Cơ Sở Dữ Liệu là gì?

Cơ Sở Dữ Liệu (Database) là tập hợp dữ liệu có tổ chức, được lưu trữ và quản lý trên máy tính để có thể truy xuất, cập nhật và quản lý một cách hiệu quả.

Ví dụ thực tế

Hệ thốngDữ liệu lưu trữ
Trường họcDanh sách học sinh, điểm thi, lịch học
Bệnh việnHồ sơ bệnh nhân, lịch khám, đơn thuốc
Cửa hàngSản phẩm, đơn hàng, khách hàng, doanh thu
Ngân hàngTài khoản, giao dịch, lãi suất

Tại sao không dùng Excel?

Tiêu chíExcelCơ Sở Dữ Liệu
Số dòng dữ liệuGiới hạn ~1 triệu dòngHàng tỷ dòng
Nhiều người truy cậpKhó, dễ xung độtHỗ trợ hàng nghìn người cùng lúc
Bảo mậtYếu (mật khẩu file)Mạnh (phân quyền chi tiết)
Truy vấn phức tạpHạn chếRất mạnh với SQL
Tự động hoáVBA (phức tạp)Trigger, Stored Procedure

2. Hệ Quản Trị Cơ Sở Dữ Liệu (DBMS)

DBMS (Database Management System) là phần mềm giúp tạo, quản lý và truy vấn cơ sở dữ liệu.

Các DBMS phổ biến

DBMSĐặc điểmSử dụng phổ biến
MySQLMiễn phí, mã nguồn mở, phổ biến nhấtWebsite, ứng dụng web
PostgreSQLMạnh, hỗ trợ nhiều tính năng nâng caoHệ thống lớn, phân tích dữ liệu
SQL ServerCủa Microsoft, tích hợp tốt với .NETDoanh nghiệp, hệ thống Windows
SQLiteNhẹ, không cần cài đặt serverỨng dụng di động, nhúng
OracleMạnh nhất, dành cho enterpriseNgân hàng, viễn thông

:::info Trong khoá học này Chúng ta sẽ sử dụng MySQL vì miễn phí, dễ cài đặt, và được sử dụng rộng rãi nhất. Cú pháp SQL cơ bản giống nhau trên hầu hết các DBMS. :::


3. SQL là gì?

SQL (Structured Query Language) là ngôn ngữ tiêu chuẩn để giao tiếp với cơ sở dữ liệu.

Các nhóm lệnh SQL

NhómTên đầy đủChức năngLệnh chính
DDLData Definition LanguageĐịnh nghĩa cấu trúcCREATE, ALTER, DROP
DMLData Manipulation LanguageThao tác dữ liệuINSERT, UPDATE, DELETE
DQLData Query LanguageTruy vấn dữ liệuSELECT
DCLData Control LanguagePhân quyềnGRANT, REVOKE

Ví dụ SQL đầu tiên

-- Lấy tất cả học sinh từ bảng HocSinh
SELECT * FROM HocSinh;

-- Lấy học sinh có điểm >= 8
SELECT HoTen, DiemTB FROM HocSinh WHERE DiemTB >= 8;

4. Các khái niệm cơ bản

4.1. Bảng (Table)

Dữ liệu trong CSDL quan hệ được tổ chức thành bảng (table), giống bảng tính Excel:

MaHSHoTenLopDiemTB
HS001Nguyễn Văn An10A18.5
HS002Trần Thị Bình10A27.2
HS003Lê Minh Châu10A19.1
  • Dòng (Row/Record): Mỗi dòng là một bản ghi (1 học sinh).
  • Cột (Column/Field): Mỗi cột là một thuộc tính (MaHS, HoTen, ...).

4.2. Khoá chính (Primary Key)

Khoá chính là cột (hoặc nhóm cột) có giá trị duy nhất cho mỗi dòng, dùng để phân biệt các bản ghi.

  • Ví dụ: MaHS là khoá chính → không có 2 học sinh cùng mã.
  • Khoá chính không được NULL (trống).

4.3. Khoá ngoại (Foreign Key)

Khoá ngoại là cột trong bảng này tham chiếu đến khoá chính của bảng khác, tạo mối quan hệ giữa các bảng.

Bảng Lop:

MaLopTenLopGVCN
10A1Lớp 10A1Cô Hoa
10A2Lớp 10A2Thầy Nam

Bảng HocSinh:

MaHSHoTenMaLop
HS001Nguyễn Văn An10A1
HS002Trần Thị Bình10A2

→ Cột MaLop trong bảng HocSinh là khoá ngoại, tham chiếu đến MaLop trong bảng Lop.


5. Cài đặt môi trường thực hành

Cách 1: Cài MySQL + MySQL Workbench (Khuyến nghị)

  1. Tải MySQL Community Server từ https://dev.mysql.com/downloads/mysql/.
  2. Tải MySQL Workbench từ https://dev.mysql.com/downloads/workbench/.
  3. Cài đặt theo hướng dẫn, đặt mật khẩu cho tài khoản root.
  4. Mở MySQL Workbench → Kết nối đến localhost:3306.

Cách 2: Dùng XAMPP (Đơn giản hơn)

  1. Tải XAMPP từ https://www.apachefriends.org/.
  2. Cài đặt → Mở XAMPP Control Panel.
  3. Bấm Start ở dòng MySQLApache.
  4. Mở trình duyệt → truy cập http://localhost/phpmyadmin.

Cách 3: Thực hành online (Không cần cài đặt)

:::tip Mẹo cho người mới Nếu bạn chưa muốn cài phần mềm, hãy dùng Cách 3 để bắt đầu thực hành ngay lập tức. Khi quen rồi hãy cài MySQL Workbench để làm việc chuyên nghiệp hơn. :::


Bài tập thực hành

Bài 1: Trắc nghiệm ôn tập

  1. CSDL quan hệ tổ chức dữ liệu dưới dạng gì?

    • A. File văn bản
    • B. Bảng (Table)
    • C. Hình ảnh
    • D. Thư mục
  2. Khoá chính (Primary Key) có đặc điểm gì?

    • A. Có thể trùng lặp
    • B. Có thể để trống (NULL)
    • C. Giá trị duy nhất và không NULL
    • D. Chỉ chứa số
  3. SQL thuộc nhóm ngôn ngữ nào?

    • A. Ngôn ngữ lập trình hướng đối tượng
    • B. Ngôn ngữ truy vấn dữ liệu
    • C. Ngôn ngữ đánh dấu
    • D. Ngôn ngữ máy

Bài 2: Thực hành

  1. Cài đặt môi trường MySQL (chọn 1 trong 3 cách trên).
  2. Mở giao diện quản trị và thử chạy lệnh: SELECT 1 + 1; → Kết quả phải ra 2.
  3. Liệt kê 3 hệ thống thực tế mà bạn nghĩ cần dùng CSDL và mô tả dữ liệu cần lưu.

Quay lại: Roadmap · Bài tiếp: Bài 2 – Tạo & Quản Lý CSDL