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

2.7 — 5. Cơ sở dữ liệu là gì

Mục tiêu bài học

  • Nắm được ý chính của bài và mối liên hệ với module.
  • Áp dụng được kiến thức vào bối cảnh CRM/.NET backend.
  • Sẵn sàng chuyển sang bài kế tiếp với nền tảng chắc chắn.

Nội dung bài học

2.7.1 — Relational Database so với NoSQL

Đặc điểmRelational (SQL)NoSQL
Cấu trúcBảng, hàng, cột (schema cố định)Document, key-value, graph
Ví dụSQL Server, PostgreSQL, MySQLMongoDB, Redis, Elasticsearch
Thích hợpDữ liệu có quan hệ phức tạpDữ liệu linh hoạt, scale ngang
QuerySQLAPI riêng của từng DB
ACIDCó (đảm bảo toàn vẹn)Tùy loại

Khóa học này dùng SQL Server — phổ biến nhất trong hệ sinh thái .NET doanh nghiệp.

2.7.2 — Cấu trúc Relational Database

Database: CrmDb

├── Table: Customers
│ ├── Id (int, PRIMARY KEY)
│ ├── Name (nvarchar)
│ ├── Email (nvarchar, UNIQUE)
│ └── CreatedAt (datetime)

├── Table: Orders
│ ├── Id (int, PRIMARY KEY)
│ ├── CustomerId (int, FOREIGN KEY → Customers.Id)
│ ├── Amount (decimal)
│ └── Status (nvarchar)

└── Table: Contacts
├── Id (int, PRIMARY KEY)
├── CustomerId (int, FOREIGN KEY → Customers.Id)
└── Phone (nvarchar)

2.7.3 — SQL Cơ bản

-- Lấy tất cả khách hàng
SELECT Id, Name, Email FROM Customers;

-- Lọc khách hàng VIP (ví dụ: orders > 10 triệu)
SELECT c.Name, SUM(o.Amount) AS TotalRevenue
FROM Customers c
JOIN Orders o ON c.Id = o.CustomerId
GROUP BY c.Name
HAVING SUM(o.Amount) > 10000000;

-- Thêm khách hàng mới
INSERT INTO Customers (Name, Email, CreatedAt)
VALUES (N'Nguyen Van A', 'a@example.com', GETDATE());

-- Cập nhật email
UPDATE Customers SET Email = 'new@example.com' WHERE Id = 42;

-- Xóa khách hàng
DELETE FROM Customers WHERE Id = 42;

Trong CRM: Toàn bộ thông tin khách hàng, đơn hàng, lịch sử tương tác đều lưu trong SQL Server. Entity Framework Core (sẽ học ở Module 9) giúp bạn viết C# thay vì SQL thuần, nhưng hiểu SQL là bắt buộc để debug và tối ưu.


Bài tập áp dụng

  1. Tóm tắt bài học bằng ngôn ngữ của bạn.
  2. Liên hệ nội dung với một tình huống thực tế trong dự án.
  3. Đề xuất một cải tiến cụ thể sau khi học bài này.

Tự kiểm tra

  • Bạn có thể giải thích lại nội dung chính trong 2 phút không?
  • Bạn có ví dụ áp dụng thực tế chưa?
  • Bạn biết bước tiếp theo cần học/triển khai là gì không?

Kết luận

Hoàn thành bài này giúp bạn có góc nhìn đầy đủ hơn trước khi đi tiếp trong module.

Điều hướng