GIỚI THIỆU BÀI TOÁN VÀ XÂY DỰNG MÔ HÌNH THỰC THỂ LIÊN KẾT
Phát biểu bài toán
Một hội đồng coi thi tuyển sinh đại học có nhiều địa điểm thi, mỗi điểm thi có một mã số điểm thi duy nhất (MADIEMTHI) để phân biệt với các điểm thi khác, các điểm thi được đánh số là 1, 2, 3, Mỗi điểm thi xác định địa chỉ điểm thi (DIACHIĐIEMTHI).
Mỗi thí sinh đăng ký dự thi sẽ được cấp một số báo danh (SOBD) duy nhất để phân biệt với các thí sinh khác Mỗi số báo danh xác định các thông tin: họ và tên (HOTEN), ngày sinh (NGAYSINH), mã ngành đăng ký dự thi (MANGANH) và số hiệu phòng thi (PHONGTHI) Mỗi thí sinh được bố trí thi tại một phòng thi duy nhất (PHONGTHI) và có một mã ngành đăng ký dự thi duy nhất (MANGANH). Mỗi ngành có một mã ngành (MANGANH) duy nhất để phân biệt với các ngành khác, mỗi mã ngành xác định tên ngành (TENNGANH), chẳng hạn mã ngành 524802 ứng với tên ngành là Công Nghệ Thông Tin, mã ngành 52140210 ứng với ngành Sư phạm tin học, …
Mỗi thí sinh đăng ký dự thi sẽ được cấp một số báo danh (SOBD) duy nhất để phân biệt với các thí sinh khác Mỗi số báo danh xác định các thông tin: họ và tên (HOTEN), ngày sinh (NGAYSINH), mã ngành đăng ký dự thi (MANGANH) và số hiệu phòng thi (PHONGTHI) Mỗi thí sinh được bố trí thi tại một phòng thi duy nhất (PHONGTHI) và có một mã ngành đăng ký dự thi duy nhất (MANGANH) Mỗi phòng thi có một số hiệu phòng thi (PHONGTHI) duy nhất để phân biệt với các phòng thi khác, trong một phòng thi có thể có các thí sinh của nhiều ngành thi khác nhau Mỗi phòng thi phải thuộc về một điểm thi duy nhất (MADIEMTHI). Mỗi phòng thi có 2 cán bộ coi thi trong phòng; ngoài ra một cán bộ giám sát có nhiệm vụ giám sát nhiều phòng thi Hội đồng thi giả sử có 1 trưởng điểm thi, 1 phó điểm thi, một số thư ký và một số phục vụ điểm thi.
Một cán bộ coi thi thuộc về một đơn vị nào đó (nếu là cán bộ từ một đơn vị ngoài trường thì ghi rõ tên của đơn vị đó: Ví dụ: Cán bộ coi thi A là giảng viên của trường THPT Trần Phú).
Xây dựng mô hình thực thể liên kết
1.2.1 Xác định các tập/kiểu thực thể và các thuộc tính tương ứng
THISINH: SOBD, HOTEN, NGAYSINH, PHONGTHI, MANGANH,GIOITINH
CANBO: MACB, HOTENCB, DONVI, MADIEMTHI, CHUCVU, SDT,GIOITINH, MAPHONGTHI
1.2.2 Xác định các liên kết và kiểu liên kết
Mối liên kết giữa tập thực thể phòng thi và tập thực thể thí sinh là mối liên kết 1-n bởi vì 1 phòng thi có nhiều thí sinh, còn 1 thí sinh chỉ ở 1 phòng thi.
Mối liên kết giữa tập thực thể ngành và tập thực thể thí sinh là mối liên kết 1- n vì trong 1 ngành có nhiều thí sinh đăng ký, còn 1 thí sinh chỉ có 1 mã ngành duy nhất.
Mối liên kết giữa tập thực thể điểm thi và tập thực thể phòng thi là mối liên kết 1-n vì 1 điểm thi có nhiều phòng thi, còn 1 phòng thi chỉ thuộc 1 điểm thi duy nhất.
Mối liên kết giữa tập thực thể phòng thi và tập thực thể cán bộ là mối liên kết n-n bởi vì 1 phòng thi có nhiều cán bộ, còn 1 cán bộ có thể được phân công ở nhiều phòng thi.
Mối liên kết giữa tập thực thể điểm thi và tập thực thể cán bộ là mối liên kết 1 – n bởi vì một điểm thi có nhiều cán bộ, còn một cán bộ chỉ thuộc 1 điểm thi duy nhất.
XÂY DỰNG CƠ SỞ DỮ LIỆU
Xây dựng mô hình cơ sở dữ liệu quan hệ
2.1.1 Áp dụng lần lượt các quy tắc biến đổi mô hình thực thể liên kết về mô hình CSDL quan hệ
Chuyển kiểu thực thể mạnh
R2.THISINH (SOBD, HOTEN, NGAYSINH, GIOITINH MANGANH, PHONGTHI)
R5.CANBO (MACB, HOTENCB, GIOITINH, MADIEMTHI, PHONGTHI, SDT, CHUCVU, DONVI)
Chuyển kiểu thực thể mạnh 1-n
Thêm MADIEMTHI vào bảng PHONGTHI làm thuộc tính khoá
Thêm PHONGTHI vào bảng THISINH làm thuộc tính khoá
=> R2.THISINH (SOBD, HOTEN, NGAYSINH, MANGANH, PHONGTHI) Thêm MANGANH vào bảng THISINH làm thuộc tính khoá
=> R2.THISINH (SOBD, HOTEN, NGAYSINH, GIOITINH, MANGANH, PHONGTHI)
Thêm MADIEMTHI vào bảng CANBO làm thuộc tính khoá
=> R5.CANBO (MACB, HOTENCB, GIOITINH, MADIEMTHI,
Xét liên kết PHONGTHI và CANBO
Liên kết nhiều sinh ra liên kết mới: PCCOITHI (MACB, PHONGTHI)
2.1.2 Chốt lại cơ sở dữ liệu cuối cùng của bài toán.
Cơ sở dữ liệu của bài toán:
THISINH (SOBD, HOTEN, NGAYSINH, MANGANH, PHONGTHI) NGANH (MANGANH, TENNGANH)
CANBO (MACB, HOTENCB, GIOITINH, MADIEMTHI, PHONGTHI, SDT, CHUCVU, DONVI)
2.1.3 Xác định các ràng buộc bài toán a) RBTV liên bộ: “Mỗi điểm thi có một mã điểm thi duy nhất”
Hình thức: t1, t2∀ (thuộc) DIEMTHI (t1 ≠ t2 => t1.MaĐT≠ t2.MaĐT) Bảng tầm ảnh hưởng:
DIEMTHI +(MaĐT) - +*(MaĐT) b) RBTV liên bộ: “Mỗi ngành có một mã ngành duy nhất”
Hình thức: n1, n2 (thuộc)∀ NGANH (n1 ≠ n2 => n1.MANGANH≠ n2.MANGANH)
NGANH +(MANGANH) - +*(MANGANH) c) RBTV tham chiếu: “Mỗi thí sinh tham gia dự thi phải đăng kí ngành học nào đó”
Hình thức: ∀ h (thuộc) THISINH, ∃ k (thuộc) NGANH
NGANH - -(*) +(MANGANH) d) RBTV liên bộ: “Tất cả các thí sinh phải có số báo danh để phân biệt với nhau”
Hình thức: t1, t2 (thuộc) ∀ THISINH (t1 ≠ t2 => t1.SOBD ≠ t2.SOBD)
THISINH +(SOBD) -(*) - e) RBTV liên thuô ‘c tính: “Giới Tính của thí sinh ch’ nhâ ‘n giá trị Nam hoă ‘c Nữ.”
Hình thức: x∀ Thí sinh: x = “Nam” => x ≠ “Nữ”.∃
THISINH + +(GIOITINH) - f) RBTV tham chiếu: “Mỗi thí sinh được bố trí thi tại một phòng thi duy nhất”
Hình thức: ∀ t (thuộc) THISINH, ∃ p (thuộc) PHONGTHI (t.PHONGTHI=p.PHONGTHI)
PHONGTHI - +(PHONGTHI) + g) RBTV liên bộ: “Mỗi phòng thi có một số hiệu phòng thi duy nhất”
Hình thức: n1, n2 (thuộc)∀ PHONGTHI (n1 ≠ n2 => n1.PHONGTHI ≠ n2.PHONGTHI) h) RBTV tham chiếu: “Mỗi phòng thi phải thuộc về một điểm thi duy nhất”
Hình thức: ∀ m (thuộc) PHONGTHI, ∃ s (thuộc) DIEMTHI (m.MADIEMTHI=s.MADIEMTHI)
DIEMTHI - +(MADIEMTHI) + i) “Mỗi phòng thi có 2 cán bộ coi thi trong phòng”
Hình thức: t PCCOITHI (COUNT(t.PHONGTHI) = 2)∀
2.2 Chuẩn hóa cơ sở dữ liệu bài toán
Từ mô hình quan hệ ta suy ra các phụ thuộc hàm:
THISINH (SOBD, HOTEN, NGAYSINH, GIOITINH, MANGANH, PHONGTHI)
CANBO (MACB, HOTENCB, GIOITINH, MADIEMTHI,
=> Từ các phụ thuộc hàm trên ta thấy:
Mọi thuộc tính đều là nguyên tố, giá trị các thuộc tính trên bộ là đơn trị, không có thuộc tính nào có giá trị được tính toán từ một số thuộc tính khác
Lược đồ quan hệ trên đã ở dạng chuẩn 1NF
Mọi thuộc tính không khóa của quan hệ đều phụ thuộc hàm đầy đủ vào khóa chính
Lược đồ quan hệ trên đã ở dạng chuẩn 2NF
Mọi thuộc tính không khóa của quan hệ đều không phụ thuộc bắc cầu vào bất kì khóa chính của quan hệ
Lược đồ quan hệ trên đã ở dạng chuẩn 3NF
2.3 Thiết kế vâ ‘t l– của cơ sở dữ liệu
1 Trường THPT Lý Tự Trọng 23 Trung Yên - Trung Hòa - Cầu Giấy
2 Trường THPT Uông Bí 61 Hồ Tùng Mậu - Mai Dịch - Cầu Giấy
HoTen NgaySinh GioiTinh PhongThi MaNganh
1 Lương Tấn Đạt 05/12/2004 Nam 11 MCV1
2 Phạm Trung Thông 06/10/2004 Nam 21 MCV5
3 Phạm Gia Khánh 31/10/2003 Nam 12 MCV3
4 Nguyễn Xuân Phương 15/09/2004 Nam 22 MCV4
5 Mai Tài An 05/11/2004 Nam 12 MCV5
6 Lê Văn Đỗ 20/5/2004 Nam 21 MCV5
7 Trịnh Xuân Anh 01/01/2004 Nữ 22 MCV3
8 Trần Ngọc Anh 22/03/2003 Nữ 11 MCV3
9 Hà Vân Anh 17/02/2004 Nam 21 MCV1
10 Lê Khang Ánh 18/06/2004 Nam 22 MCV2
11 Trần Minh Quân 12/09/2004 Nam 12 MCV1
12 Nguyễn Phương Thảo 31/08/2004 Nữ 11 MCV5
13 Lê Thanh Vân 08/12/2003 Nữ 22 MCV3
14 Bùi Thị Thu Phương 17/02/2004 Nữ 11 MCV4
15 Lê Diễm Quỳnh 20/12/2004 Nữ 21 MCV4
MCV1 Công nghệ thông tin
MCV3 Kỹ thuật công nghiệp
MCV4 Thiết kế đồ hoạ
MaCB HoTen GioiTinh NgaySinh SDT MaDiem
Nam 08/06/1995 0398765421 1 Trưởng điểm thi THPT Cầu Giấy
Nữ 10/06/1995 0398765423 1 Thư kí HEC-THPT
221 Thanh Hoa Nữ 12/06/1995 0398765425 2 Phó THPT Cầu Giấy điểm thi
231 Bắc Đại 0398765426 2 Thư kí THPT Xuân
Nam 14/06/1995 điểm thi THPT Cầu Giấy
THPT Chuyên Chu Văn An
Hoàng Nam 18/06/1995 0398765431 1 Cán bộ coi thi
Giang Nữ 19/06/1995 0398765432 1 Cán bộ coi thi
Vinh Nữ 20/06/1995 0398765433 1 Cán bộ coi thi
Bình Nam 21/06/1995 0398765434 1 Cán bộ coi thi
Long An Nam 22/06/1995 0398765435 2 Cán bộ coi thi
Diệu Linh Nữ 24/06/1995 0398765437 2 Cán bộ coi thi THPT Trần Phú
264 Nguyễn Nữ 25/06/19 0398765438 2 Cán bộ HEC-THPT
Thị Lý 95 coi thi Giáo Dục
KHAI THÁC CƠ SỞ DỮ LIỆU
Truy vấn khai thác cơ sở dữ liệu
drop table if exists DIEMTHI;
INSERT INTO DIEMTHI(MADIEMTHI,TENDIEMTHI, DIACHI)
('1', N'Trường THPT Lý Tự Trọng', N'23 Trung Yên - Trung Hoà - Cầu Giấy'),
('2', N'Trường THPT Uông Bí', N'61 Hồ Tùng Mậu - Mai Dịch - Cầu Giấy'); drop table if exists THISINH;
INSERT INTO THISINH(SBD, HOTEN, NGAYSINH, GIOITINH, PHONGTHI, MANGANH)
('1', N'Lương Tấn Đạt', '2004-12-05', 'NAM', '11', 'MCV1'),
('2', N'Phạm Trung Thông', '2004-10-06', 'NAM', '21', 'MCV5'),
('3', N'Phạm Gia Khánh', '2003-10-31', 'NAM', '12', 'MCV3'),
('4', N'Nguyễn Xuân Phương', '2004-9-15', 'NAM', '22', 'MCV4'),
('5', N'Mai Tài An', '2004-11-05', 'NAM', '12', 'MCV5'), ('6', N'Lê Văn Đỗ', '2004-05-20', 'NAM', '21', 'MCV5'),
('7', N'Trịnh Xuân Anh', '2004-01-01', 'NU', '22', 'MCV3'), ('8', N'Trần Ngọc Anh', '2003-03-22', 'NU', '11', 'MCV3'), ('9', N'Hà Vân Anh', '2004-02-17', 'NU', '21', 'MCV1'),
('10', N'Lê Khang Ánh', '2004-06-18', 'NAM', '22', 'MCV2'), ('11', N'Trần Minh Quân', '2004-09-12', 'NAM', '12', 'MCV1'), ('12', N'Nguyễn Phương Thảo', '2004-08-31', 'NU', '11', 'MCV5'), ('13', N'Lê Thanh Vân', '2003-12-08', 'NU', '22', 'MCV3'), ('14', N'Bùi Thị Thu Phương', '2004-02-17', 'NU', '11', 'MCV4'), ('15', N'Lê Diễm Quỳnh', '2004-12-20', 'NU', '21', 'MCV4'); drop table if exists NGANH;
INSERT INTO NGANH(MANGANH, TENNGANH)
('MCV1', N'Công nghệ thông tin'),
('MCV3', N'Kĩ Thuật công nghiệp'),
('MCV4', N'Thiết kế đồ họa'),
('MCV5', N'Nhiếp ảnh'); drop table if exists PHONGTHI;
INSERT INTO PHONGTHI(PHONGTHI, MADIEMTHI)
('22', '2'); drop table if exists CANBO;
INSERT INTO CANBO(MACB, HOTEN, NGAYSINH, GIOITINH, SDT, MADIEMTHI, CHUCVU, DONVI)
('111', N'Phan Thắng', '1995-06-08', 'NAM', '0398765421','1', N'Trưởng điểm thi', N'Trường THPT Cầu Giấy'),
('121', N'Xuân Hoà', '1995-06-09', 'NAM', '0398765422','1', N'Phó điểm thi', N'Trường THPT Chuyên Sư Phạm'),
('131', N'Hoà Lạc', '1995-06-10', 'NU', '0398765423','1', N'Thư ký', N'HEC- THPT Giáo Dục'),
('211', N'Hà Nam', '1995-06-11', 'NAM', '0398765424','2', N'Trưởng điểm thi' , N'THPT Chuyên KHTN'),
('221', N'Thanh Hoa', '1995-06-12', 'NU', '0398765425','2', N'Phó điểm thi', N'THPT Cầu Giấy'),
('231', N'Bắc Đại', '1995-06-13', 'NAM', '0398765426','2', N'Thư ký', N'THPT Xuân Đỉnh'),
('141', N'Chiết Giang', '1995-06-14', 'NAM', '0398765427','1', N'Phục vụ điểm thi', N'THPT Cầu Giấy'),
('241', N'Lưu Ly', '1995-06-15', 'NU', '0398765428', '2', N'Phục vụ điểm thi', N'THPT Chuyên KHTN'),
('151', N'Nguyễn Ngọc Anh', '1995-06-16', 'NU', '0398765429', '1', N'Giám thị hành lang', N'THPT Chuyên Chu Văn An'),
('251', N'Bắc Giang', '1995-06-17', 'NU', '0398765430', '2', N'Giám thị hành lang', N'THPT Chuyên Sư Phạm'),
('161', N'Lê Văn Hoàng', '1995-06-18', 'NAM', '0398765431', '1', N'Cán bộ coi thi', N'HEC-THPT Giáo Dục'),
('162', N'Trần Bảo Giang', '1995-06-19', 'NU', '0398765432','1', N'Cán bộ coi thi', N'THPT Chuyên Chu Văn An'),
('163', N'Lê Trà Vinh', '1995-06-20', 'NU', '0398765433', '1', N'Cán bộ coi thi', N'THPT Xuân Đỉnh'),
('164', N'Phạm Hoà Bình', '1995-06-21', 'NAM', '0398765434', '1', N'Cán bộ coi thi', N'THPT Chuyên Sơn La'),
('261', N'Hoang Long An', '1995-06-22', 'NAM', '0398765435', '2', N'Cán bộ coi thi', N'HEC-THPT Giáo Dục'),
('262', N'Nguyễn Thanh Uyên', '1995-06-23', 'NU', '0398765436','2', N'Cán bộ coi thi', N'THPT Chuyên Sư Phạm'),
('263', N'Nguyễn Diệu Linh', '1995-06-24', 'NU', '0398765437', '2',N'Cán bộ coi thi', N'THPT Trần Phú'),
('264', N'Nguyễn Thị Lý', '1995-06-25', 'NU', '0398765438','2', N'Cán bộ coi thi', N'HEC-THPT Giáo Dục'); drop table if exists PCCOITHI;
INSERT INTO PCCOITHI(MACB, PHONGTHI)
ALTER TABLE THISINH ADD CONSTRAINT MANGANH
FOREIGN KEY (MANGANH) REFERENCES NGANH (MANGANH);
ALTER TABLE THISINH ADD CONSTRAINT PHONGTHIT
FOREIGN KEY (PHONGTHI) REFERENCES PHONGTHI(PHONGTHI);
ALTER TABLE CANBO ADD CONSTRAINT MADIEMTHIC
FOREIGN KEY (MADIEMTHI) REFERENCES DIEMTHI (MADIEMTHI);
ALTER TABLE PCCOITHI ADD CONSTRAINT MACB
FOREIGN KEY (MACB) REFERENCES CANBO(MACB);
ALTER TABLE PCCOITHI ADD CONSTRAINTPHONGTHIC
FOREIGN KEY (PHONGTHI) REFERENCES PHONGTHI(PHONGTHI);
ALTER TABLE PHONGTHI ADD CONSTRAINT MADIEMTHIP FOREIGN KEY (MADIEMTHI) REFERENCES DIEMTHI(MADIEMTHI);
ALTER TABLE THISINH drop CONSTRAINT MANGANH;
ALTER TABLE THISINH drop CONSTRAINT PHONGTHIT;
ALTER TABLE CANBO drop CONSTRAINT MADIEMTHIC;
ALTER TABLE PCCOITHI drop CONSTRAINT MACB;
ALTER TABLE PCCOITHI drop CONSTRAINT PHONGTHIC;
ALTER TABLE PHONGTHI drop CONSTRAINT MADIEMTHIP; a) THỦ TỤC THÊM drop proc if exists nhap_DIEMTHI;
@MADIEMTHI bigint, @TENDIEMTHI Nvarchar(255), @DIADIEMTHI Nvarchar(255) as begin
SET IDENTITY_INSERT DIEMTHI ON;
INSERT INTO DIEMTHI(MADIEMTHI,TENDIEMTHI, DIADIEMTHI)
VALUES (@MADIEMTHI, @TENDIEMTHI, @DIADIEMTHI) SET IDENTITY_INSERT DIEMTHI OFF; end
GO drop proc if exists nhap_THISINH;
INSERT INTO THISINH(SBD, HOTEN, NGAYSINH, GIOITINH,PHONGTHI, MANGANH)
VALUES (@SBD, @HOTEN, @NGAYSINH, @GIOITINH,
GO drop proc if exists nhap_NGANH;
@MANGANH Nvarchar(255), @TENNGANH Nvarchar (255) as begin insert into NGANH(MANGANH,TENNGANH) values (@MANGANH, @TENNGANH) end
Go drop proc if exists nhap_PHONGTHI;
@PHONGTHI bigint, @MADIEMTHI bigint as begin insert into PHONGTHI(PHONGTHI, MADIEMTHI) values (@PHONGTHI, @MADIEMTHI) end
Go drop proc if exists nhap_CANBO;
INSERT INTO CANBO(MACB, HOTEN, NGAYSINH, GIOITINH, MADIEMTHI, SDT, CHUCVU, DONVI)
VALUES (@MACB, @HOTEN, @NGAYSINH, @GIOITINH,
@MADIEMTHI, @SDT, @CHUCVU, @DONVI) end
Go b) THỦ TỤC XÓA drop proc if exists xoa_DIEMTHI;
DELETE FROM DIEMTHI WHERE MADIEMTHI=@MADIEMTHI end
Go drop proc if exists xoa_THISINH;
DELETE FROM THISINH WHERE THISINH.SBD=@SBD end
Go drop proc if exists xoa_NGANH;
DELETE FROM NGANH WHERE MANGANH=@MANGANH end
Go drop proc if exists xoa_PHONGTHI;
DELETE from PHONGTHI where PHONGTHI = @PHONGTHI end
Go drop proc if exists xoa_CANBO;
Delete from CANBO where MACB = @MaCB end
Go c) THỦ TỤC SỬA drop proc if exists sua_DIEMTHI;
@MADIEMTHI bigint, @TENDIEMTHI Nvarchar(255), @DIACHI Nvarchar(255) as begin
SET IDENTITY_INSERT DIEMTHI ON; update DIEMTHI
DIACHI = @DIACHI where MADIEMTHI = @MADIEMTHI SET IDENTITY_INSERT DIEMTHI OFF; end
GO drop proc if exists sua_THISINH;
@PHONGTHI bigint as begin update THISINH
NGAYSINH = @NGAYSINH, GIOITINH = @GIOITINH, MANGANH = @MANGANH, PHONGTHI = @PHONGTHI Where SBD = @SBD end
GO drop proc if exists sua_NGANH;
@TENNGANH Nvarchar (255) as begin update NGANH
TENNGANH = @TENNGANH where MANGANH = @MANGANHCU end
Go drop proc if exists sua_PHONGTHI;
@PHONGTHICU bigint, @PHONGTHIMOI bigint, @MADIEMTHI bigint as begin
MADIEMTHI = @MADIEMTHI where PHONGTHI = @PHONGTHICU end
Drop proc if exists sua_CANBO; go
@DONVI Nvarchar(255) as begin update CANBO set HOTEN = @HOTEN,
DONVI = @DONVI where MACB = @MACB end
Go d) THỦ TỤC TRA CỨU THEO : SOBD, HOTEN
Drop proc if exists tracuu;
@SBD bigint, @HOTEN Nvarchar(255) as begin select DIEMTHI.MADIEMTHI from THISINH join PHONGTHI on THISINH.PHONGTHI PHONGTHI.PHONGTHI join DIEMTHI on DIEMTHI.MADIEMTHI PHONGTHI.MADIEMTHI where THISINH.SBD = @SBD or THISINH.HOTEN = @HOTEN end go go e) LẬP DANH SÁCH THÍ SINH DỰ THI CỦA TỪNG NGÀNH
SELECT NGANH.TENNGANH, THISINH.SBD, THISINH.HOTEN from THISINH left join NGANH on THISINH.MANGANH NGANH.MANGANH where NGANH.MANGANH = 'MCV1'
SELECT NGANH.TENNGANH, THISINH.SBD, THISINH.HOTEN from THISINH left join NGANH on THISINH.MANGANH NGANH.MANGANH where NGANH.MANGANH = 'MCV2'
SELECT NGANH.TENNGANH, THISINH.SBD, THISINH.HOTEN from THISINH left join NGANH on THISINH.MANGANH NGANH.MANGANH where NGANH.MANGANH = 'MCV3'
SELECT NGANH.TENNGANH, THISINH.SBD, THISINH.HOTEN from THISINH left join NGANH on THISINH.MANGANH NGANH.MANGANH where NGANH.MANGANH = 'MCV4'
SELECT NGANH.TENNGANH, THISINH.SBD, THISINH.HOTEN from THISINH left join NGANH on THISINH.MANGANH NGANH.MANGANH where NGANH.MANGANH = 'MCV5' f) LẬP DANH SÁCH THÍ SINH CÓ TỔNG ĐIỂM THI CAO NHẤT select DIEMTHI.MADIEMTHI, DIEMTHI.TENDIEMTHI, count(THISINH.SBD) as N'Số lượng thí sinh theo điểm thi' from THISINH join PHONGTHI on THISINH.PHONGTHI PHONGTHI.PHONGTHI join DIEMTHI on DIEMTHI.MADIEMTHI PHONGTHI.MADIEMTHI
GROUP BY DIEMTHI.MADIEMTHI, DIEMTHI.TENDIEMTHI
ORDER By count(THISINH.SBD) Desc; g) THỐNG KÊ SỐ LƯỢNG THÍ SINH THEO TỪNG ĐIỂM THI VÀ PHÒNG THI select PHONGTHI, count(THISINH.SBD) as N'Số lượng thí sinh theo phòng thi' from THISINH
ORDER By count(THISINH.SBD) Desc;
Phân quyền sử dụng cơ sở dữ liệu
USE master go create login Thisinh with password = '123456', Check_expiration = off, check_policy = off; go create login Canbochinh with password = '123456', Check_expiration = off, check_policy = off; go create login Canbocoithi with password = '123456', Check_expiration = off, check_policy = off; use HOIDONGTHI
CREATE user Thisinh for login Thisinh; go
CREATE user Canbochinh for login Canbochinh; go
CREATE user Canbocoithi for login Canbocoithi;
GRANT Select, update, insert, delete to Canbochinh GRANT Select on CANBO to Canbocoithi
GRANT Select on DIEMTHI to Canbocoithi GRANT Select on PCCOITHI to Canbocoithi GRANT Select on THISINH To THISINH GRANT Select on NGANH To THISINH
GRANT Select on PHONGTHI To THISINHGRANT Select on DIEMTHI To THISINH