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ống | Dữ liệu lưu trữ |
|---|---|
| Trường học | Danh sách học sinh, điểm thi, lịch học |
| Bệnh viện | Hồ sơ bệnh nhân, lịch khám, đơn thuốc |
| Cửa hàng | Sản phẩm, đơn hàng, khách hàng, doanh thu |
| Ngân hàng | Tài khoản, giao dịch, lãi suất |
Tại sao không dùng Excel?
| Tiêu chí | Excel | Cơ Sở Dữ Liệu |
|---|---|---|
| Số dòng dữ liệu | Giới hạn ~1 triệu dòng | Hàng tỷ dòng |
| Nhiều người truy cập | Khó, dễ xung đột | Hỗ trợ hàng nghìn người cùng lúc |
| Bảo mật | Yếu (mật khẩu file) | Mạnh (phân quyền chi tiết) |
| Truy vấn phức tạp | Hạ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ểm | Sử dụng phổ biến |
|---|---|---|
| MySQL | Miễn phí, mã nguồn mở, phổ biến nhất | Website, ứng dụng web |
| PostgreSQL | Mạnh, hỗ trợ nhiều tính năng nâng cao | Hệ thống lớn, phân tích dữ liệu |
| SQL Server | Của Microsoft, tích hợp tốt với .NET | Doanh nghiệp, hệ thống Windows |
| SQLite | Nhẹ, không cần cài đặt server | Ứng dụng di động, nhúng |
| Oracle | Mạnh nhất, dành cho enterprise | Ngâ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óm | Tên đầy đủ | Chức năng | Lệnh chính |
|---|---|---|---|
| DDL | Data Definition Language | Định nghĩa cấu trúc | CREATE, ALTER, DROP |
| DML | Data Manipulation Language | Thao tác dữ liệu | INSERT, UPDATE, DELETE |
| DQL | Data Query Language | Truy vấn dữ liệu | SELECT |
| DCL | Data Control Language | Phân quyền | GRANT, 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:
| MaHS | HoTen | Lop | DiemTB |
|---|---|---|---|
| HS001 | Nguyễn Văn An | 10A1 | 8.5 |
| HS002 | Trần Thị Bình | 10A2 | 7.2 |
| HS003 | Lê Minh Châu | 10A1 | 9.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ụ:
MaHSlà 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:
| MaLop | TenLop | GVCN |
|---|---|---|
| 10A1 | Lớp 10A1 | Cô Hoa |
| 10A2 | Lớp 10A2 | Thầy Nam |
Bảng HocSinh:
| MaHS | HoTen | MaLop |
|---|---|---|
| HS001 | Nguyễn Văn An | 10A1 |
| HS002 | Trần Thị Bình | 10A2 |
→ 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ị)
- Tải MySQL Community Server từ https://dev.mysql.com/downloads/mysql/.
- Tải MySQL Workbench từ https://dev.mysql.com/downloads/workbench/.
- Cài đặt theo hướng dẫn, đặt mật khẩu cho tài khoản
root. - Mở MySQL Workbench → Kết nối đến
localhost:3306.
Cách 2: Dùng XAMPP (Đơn giản hơn)
- Tải XAMPP từ https://www.apachefriends.org/.
- Cài đặt → Mở XAMPP Control Panel.
- Bấm Start ở dòng MySQL và Apache.
- 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)
- DB Fiddle — Viết SQL trực tiếp trên trình duyệt.
- SQLiteOnline — Chạy SQL nhanh với SQLite.
- W3Schools SQL Editor — Có sẵn dữ liệu mẫu.
:::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
-
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
-
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ố
-
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
- Cài đặt môi trường MySQL (chọn 1 trong 3 cách trên).
- Mở giao diện quản trị và thử chạy lệnh:
SELECT 1 + 1;→ Kết quả phải ra2. - 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