MinAI - Về trang chủ
Quiz
13/1330 phút
Đang tải...

Quiz tổng hợp

Kiểm tra kiến thức toàn khóa học Database Design & Administration

0

🎯 Mục tiêu bài Quiz

TB5 min

Kiểm tra kiến thức của bạn qua các câu hỏi trắc nghiệm và bài tập thực hành!

✅ 18 câu hỏi trắc nghiệm (6 phần)

✅ 3 bài tập thực hành

✅ Yêu cầu: Hoàn thành bài 1-12

Thời gian: 30 phút | Độ khó: Tổng hợp | Đạt yêu cầu: ≥ 13/18 câu đúng

PhầnChủ đềSố câu
1ERD và Thiết kế CSDL3
2Chuẩn hóa và Khóa3
3Index và Hiệu năng3
4Stored Procedures và Views3
5Transaction và Bảo mật3
6Data Warehouse và Nâng cao3
7Bài tập thực hành3

Quy tắc:

  • Mỗi câu hỏi trắc nghiệm có 4 đáp án, chỉ 1 đáp án đúng.
  • Đọc kỹ câu hỏi và giải thích sau khi trả lời để củng cố kiến thức.
  • Phần bài tập thực hành yêu cầu viết SQL hoặc phân tích thiết kế.
1

Phần 1: ERD & Thiết kế CSDL

TB5 min
2

Phần 2: Chuẩn hóa & Khóa

TB5 min
3

Phần 3: Index & Hiệu năng

TB5 min
4

Phần 4: Stored Procedures & Views

TB5 min
5

Phần 5: Transaction & Bảo mật

TB5 min
6

Phần 6: Data Warehouse & Nâng cao

TB5 min
7

Phần 7: Bài tập thực hành

TB5 min

Bài tập 1: Thiết kế ERD và tạo bảng

Thiết kế ERD và viết câu lệnh SQL tạo bảng cho hệ thống Quản lý Thư viện gồm các thực thể: Sách, Độc giả, Phiếu mượn. Yêu cầu:

  • Xác định đúng các entity, attribute, và relationship.
  • Định nghĩa Primary Key, Foreign Key, và các ràng buộc (NOT NULL, CHECK, DEFAULT).
  • Thể hiện quan hệ N-M giữa Sách và Độc giả thông qua bảng Phiếu mượn.
Đáp án
SQL
1CREATE TABLE Sach (
2 MaSach INT PRIMARY KEY,
3 TenSach NVARCHAR(200) NOT NULL,
4 TacGia NVARCHAR(100),
5 NhaXuatBan NVARCHAR(100),
6 NamXuatBan INT CHECK (NamXuatBan > 1900),
7 SoLuongTon INT DEFAULT 0 CHECK (SoLuongTon >= 0)
8);
9
10CREATE TABLE DocGia (
11 MaDocGia INT PRIMARY KEY,
12 HoTen NVARCHAR(100) NOT NULL,
13 Email VARCHAR(100) UNIQUE,
14 SoDienThoai VARCHAR(15),
15 NgayDangKy DATE DEFAULT GETDATE()
16);
17
18CREATE TABLE PhieuMuon (
19 MaPhieu INT PRIMARY KEY,
20 MaDocGia INT NOT NULL,
21 MaSach INT NOT NULL,
22 NgayMuon DATE NOT NULL DEFAULT GETDATE(),
23 NgayTraDuKien DATE NOT NULL,
24 NgayTraThucTe DATE,
25 TrangThai NVARCHAR(20) DEFAULT N'Đang mượn'
26 CHECK (TrangThai IN (N'Đang mượn', N'Đã trả', N'Quá hạn')),
27 FOREIGN KEY (MaDocGia) REFERENCES DocGia(MaDocGia),
28 FOREIGN KEY (MaSach) REFERENCES Sach(MaSach)
29);

Bài tập 2: Chuẩn hóa dữ liệu

Cho bảng chưa chuẩn hóa sau:

MaDHNgayDHMaKHTenKHDiaChiKHMaSPTenSPDonGiaSoLuong
DH012025-01-15KH01Nguyễn Văn AHCMSP01Laptop150000002
DH012025-01-15KH01Nguyễn Văn AHCMSP02Chuột2000003
DH022025-01-16KH02Trần Thị BHNSP01Laptop150000001

Yêu cầu: Chuẩn hóa bảng trên lên 3NF và viết câu lệnh SQL tạo các bảng đã chuẩn hóa.

Đáp án

Tách thành 4 bảng:

SQL
1-- Bảng KhachHang (loại bỏ phụ thuộc bắc cầu)
2CREATE TABLE KhachHang (
3 MaKH VARCHAR(10) PRIMARY KEY,
4 TenKH NVARCHAR(100) NOT NULL,
5 DiaChiKH NVARCHAR(200)
6);
7
8-- Bảng SanPham (loại bỏ phụ thuộc bắc cầu)
9CREATE TABLE SanPham (
10 MaSP VARCHAR(10) PRIMARY KEY,
11 TenSP NVARCHAR(100) NOT NULL,
12 DonGia DECIMAL(15,2) CHECK (DonGia > 0)
13);
14
15-- Bảng DonHang (loại bỏ phụ thuộc một phần)
16CREATE TABLE DonHang (
17 MaDH VARCHAR(10) PRIMARY KEY,
18 NgayDH DATE NOT NULL,
19 MaKH VARCHAR(10) NOT NULL,
20 FOREIGN KEY (MaKH) REFERENCES KhachHang(MaKH)
21);
22
23-- Bảng ChiTietDonHang (bảng trung gian)
24CREATE TABLE ChiTietDonHang (
25 MaDH VARCHAR(10),
26 MaSP VARCHAR(10),
27 SoLuong INT CHECK (SoLuong > 0),
28 PRIMARY KEY (MaDH, MaSP),
29 FOREIGN KEY (MaDH) REFERENCES DonHang(MaDH),
30 FOREIGN KEY (MaSP) REFERENCES SanPham(MaSP)
31);

Bài tập 3: Stored Procedure và Transaction

Viết Stored Procedure cho thao tác Mượn sách với yêu cầu:

  • Kiểm tra sách còn trong kho (SoLuongTon > 0).
  • Tạo phiếu mượn mới trong bảng PhieuMuon.
  • Giảm SoLuongTon trong bảng Sach đi 1.
  • Sử dụng Transaction để đảm bảo tính toàn vẹn dữ liệu (nếu bất kỳ bước nào thất bại, ROLLBACK toàn bộ).
Đáp án
SQL
1CREATE PROCEDURE sp_MuonSach
2 @MaDocGia INT,
3 @MaSach INT,
4 @NgayTraDuKien DATE
5AS
6BEGIN
7 SET NOCOUNT ON;
8 BEGIN TRY
9 BEGIN TRANSACTION;
10
11 -- Kiểm tra sách còn trong kho
12 DECLARE @SoLuong INT;
13 SELECT @SoLuong = SoLuongTon
14 FROM Sach WHERE MaSach = @MaSach;
15
16 IF @SoLuong IS NULL
17 BEGIN
18 RAISERROR(N'Mã sách không tồn tại.', 16, 1);
19 RETURN;
20 END
21
22 IF @SoLuong <= 0
23 BEGIN
24 RAISERROR(N'Sách đã hết, không thể mượn.', 16, 1);
25 RETURN;
26 END
27
28 -- Tạo phiếu mượn
29 INSERT INTO PhieuMuon (MaDocGia, MaSach, NgayMuon, NgayTraDuKien, TrangThai)
30 VALUES (@MaDocGia, @MaSach, GETDATE(), @NgayTraDuKien, N'Đang mượn');
31
32 -- Giảm số lượng tồn
33 UPDATE Sach
34 SET SoLuongTon = SoLuongTon - 1
35 WHERE MaSach = @MaSach;
36
37 COMMIT TRANSACTION;
38 PRINT N'Mượn sách thành công!';
39 END TRY
40 BEGIN CATCH
41 IF @@TRANCOUNT > 0
42 ROLLBACK TRANSACTION;
43 THROW;
44 END CATCH
45END;
8

📊 Đánh giá kết quả

TB5 min

Phần trắc nghiệm (18 câu)

Số câu đúngĐánh giá
16-18🌟 Xuất sắc! Bạn nắm vững kiến thức
13-15👍 Tốt! Cần ôn lại một số chủ đề
10-12📚 Cần học thêm, xem lại các bài
dưới 10🔄 Nên học lại từ đầu

Phần bài tập thực hành (3 bài)

Tiêu chíĐiểm tối đaMô tả
Bài 1: Thiết kế ERD10Xác định đúng entity/attribute (3đ), relationship và cardinality (3đ), SQL tạo bảng với đầy đủ constraints (4đ)
Bài 2: Chuẩn hóa10Nhận diện đúng vi phạm NF (3đ), tách bảng đúng 3NF (4đ), SQL tạo bảng với PK/FK chính xác (3đ)
Bài 3: Stored Procedure10Logic kiểm tra hợp lệ (3đ), sử dụng Transaction đúng (3đ), xử lý lỗi với TRY-CATCH (2đ), code rõ ràng và chạy được (2đ)

Tổng kết

Thành phầnTỷ trọng
Trắc nghiệm (18 câu)60%
Bài tập thực hành (3 bài)40%
9

🎓 Hoàn thành khóa học!

TB5 min

Tóm tắt kiến thức đã kiểm tra

  1. ERD và Thiết kế CSDL: Entity, Attribute, Relationship, Cardinality
  2. Chuẩn hóa và Khóa: 1NF, 2NF, 3NF, BCNF, Primary/Foreign/Composite/Candidate Key
  3. Index và Hiệu năng: B-tree, Hash, Clustered, Non-clustered Index
  4. Stored Procedures và Views: Function vs Procedure, View vs Materialized View, Trigger
  5. Transaction và Bảo mật: ACID, Concurrency Control, Dirty Read, Roles và Privileges
  6. Data Warehouse và Nâng cao: Star/Snowflake Schema, Constraints, Query Optimization

🎉 Tuyệt vời! Bạn đã hoàn thành Quiz tổng hợp khóa học Database Design & Administration!

Tiếp theo: Xem lại các câu trả lời sai, đọc kỹ phần giải thích, và thực hành viết SQL trên môi trường thực tế!

Chúc mừng!

Bạn đã hoàn thành khóa học Database Design & Administration!

Kiến thức thiết kế CSDL này sẽ là nền tảng quan trọng cho:

  • 🗄️ Database Administration
  • 📊 Data Analysis
  • 🏗️ System Architecture
  • 🔧 Backend Development

Next steps:

  • Thực hành viết SQL trên SQL Server, PostgreSQL, MySQL
  • Áp dụng kiến thức vào các dự án thực tế
  • Làm mini project của khóa học