You are on page 1of 3

Câu 1: 1) Lập mô hình miền cho bài toán, thể hiện bằng biểu đồ lớp

(class diagram)
Hãy viết đoạn văn mô tả biểu đồ lớp này

Mô tả:
-Class LopHocPhan: Đây là lớp chứa thông tin về các lớp học phần.
Mỗi lớp học phần có các thuộc tính bao gồm mã lớp, tên lớp, học kỳ,
năm học
-Class DiemDanhL: lớp này đại diện cho việc điểm danh trong lớp học
phần. Nó bao gồm các thông tin như ngày điểm danh, mã điểm danh,
tiết học, mã lớp học phần.
-Class SinhVien: đại diện cho thông tin về sinh viên, bao gồm mã
sinh viên và tên sinh viên.
-Class ChiTietDiemDanh: chứa thông tin chi tiết về việc điểm danh
của từng sinh viên trong một lượt điểm danh cụ thể.

2) Lập lược đồ cơ sở dữ liệu tương ứng với biểu đồ lớp ở câu 1)


CREATE TABLE lop_hoc_phan (
ma_lop_hoc_phan VARCHAR(20) NOT NULL,
ten_lop_hoc_phan VARCHAR(100) NOT NULL,
hoc_ky INT NOT NULL,
nam_hoc INT NOT NULL,
PRIMARY KEY (ma_lop_hoc_phan) );
CREATE TABLE sinh_vien (
ma_sv VARCHAR(20) NOT NULL,
ten_sv VARCHAR(100) NOT NULL,
PRIMARY KEY (ma_sv) );
CREATE TABLE diem_danh (
ma_diem_danh INT NOT NULL AUTO_INCREMENT,
ngay_diem_danh DATE NOT NULL,
tiet_hoc INT NOT NULL,
ma_lop_hoc_phan VARCHAR(20) NOT NULL,
PRIMARY KEY (ma_diem_danh),
FOREIGN KEY (ma_lop_hoc_phan) REFERENCES lop_hoc_phan(ma_lop_hoc_phan)
);
CREATE TABLE chi_tiet_diem_danh (
ma_chi_tiet_diem_danh INT NOT NULL AUTO_INCREMENT,
ma_diem_danh INT NOT NULL,
ma_sv VARCHAR(20) NOT NULL,
trang_thai VARCHAR(20) NOT NULL,
PRIMARY KEY (ma_chi_tiet_diem_danh),
FOREIGN KEY (ma_diem_danh) REFERENCES diem_danh (ma_diem_danh),
FOREIGN KEY (ma_sv) REFERENCES sinh_vien (ma_sv) );

3) Thử viết các truy vấn tương ứng với cơ sở dữ liệu được thiết kế ở
câu 2),

a) Tạo mới một lớp học phần

SQL
INSERT INTO lop_hoc_phan (ten_lop_hoc_phan, hoc_ky, nam_hoc)
VALUES (N'Phân tích & Thiết kế các HTTT - Nhóm 7', 1, 2023);

INSERT INTO sinh_vien (ma_sv, ten_sv)


VALUES ('T1020082', N'Nguyễn Thị Hoa'),
('T1020038', N'Trần Văn Nam'),
('T1020088', N'Lê Thị Hồng');

INSERT INTO lop_hoc_phan_sinh_vien (ma_lop_hoc_phan, ma_sv,


ngay_dang_ky)
VALUES (N'Phân tích & Thiết kế các HTTT - Nhóm 7', 'T1020082',
'2023-08-15'),
(N'Phân tích & Thiết kế các HTTT - Nhóm 7', 'T1020038',
'2023-08-14'),
(N'Phân tích & Thiết kế các HTTT - Nhóm 7', 'T1020088',
'2023-08-15');

b) Bổ sung một sinh viên vào lớp học phần

SQL
INSERT INTO sinh_vien (ma_sv, ten_sv)
VALUES ('T1020099', N'Nguyễn Văn Trung');
INSERT INTO lop_hoc_phan_sinh_vien (ma_lop_hoc_phan, ma_sv,
ngay_dang_ky)
VALUES (N'Phân tích & Thiết kế các HTTT - Nhóm 7', 'T1020099',
'2023-09-15');

c) Xoá một sinh viên khỏi lớp học phần

SQL
DELETE FROM lop_hoc_phan_sinh_vien
WHERE ma_lop_hoc_phan = N'Phân tích & Thiết kế các HTTT - Nhóm
7'
AND ma_sv = 'T1020038';

d) Tạo thông tin để điểm danh cho lớp "Mẫu thiết kế - Nhóm 5"

SQL
INSERT INTO diem_danh (ngay_diem_danh, tiet_hoc,
ma_lop_hoc_phan)
VALUES ('2023-09-14', 3, N'Mẫu thiết kế - Nhóm 5');

e) Đánh vắng sinh viên "Nguyễn Văn Trung" trong lượt điểm danh
ở câu 3d)

SQL
UPDATE chi_tiet_diem_danh
SET trang_thai = 'Vắng có phép'
WHERE ma_diem_danh = (
SELECT ma_diem_danh
FROM diem_danh
WHERE ngay_diem_danh = '2023-09-14'
AND tiet_hoc = 3
AND ma_lop_hoc_phan = N'Mẫu thiết kế - Nhóm 5'
)
AND ma_sv = 'T1020099';

You might also like