Quản Trị Cơ Sở Dữ Liệu Ứng Dụng Quản Lý Kỳ Coi Thi Tuyển Sinh Đại Học Cao Đẳng.pdf

42 3 0
Quản Trị Cơ Sở Dữ Liệu Ứng Dụng Quản Lý Kỳ Coi Thi Tuyển Sinh Đại Học Cao Đẳng.pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trang 1

TRƯỜNG ĐẠI HỌC THƯƠNG MẠI

KHOA HTTT KINH TẾ & TMĐT

-BÀI THẢO LUẬN

HỌC PHẦN: QUẢN TRỊ CƠ SỞ DỮ LIỆU

ỨNG DỤNG QUẢN LÝ KỲ COI THI TUYỂN SINH ĐẠI HỌC

Trang 2

BẢNG ĐÁNH GIÁ THÀNH VIÊN VÀ ĐIỂM THẢO LUẬN

Trang 3

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAMĐộc lập – Tự do – Hạnh phúc

Biên bản cuộc họp1 Môn: Quản trị cơ sở dữ liệu

2 Mã lớp học phần: 231_eCIT2711_013 Địa điểm : Họp online qua Google Meet4 Số buổi làm việc của nhóm: 3 buổi

5 Thời gian: 2 tiếng cho mỗi buổi họp nhóm ( từ 20h đến 22h)6 Nội dung công việc:

- Rà soát và điền chỉnh nội dung chương I và Chương II - Xem qua nội dung các sơ đồ chính.

6.3 Buổi 3: 15/11/2023 (Đủ)

- Các thành viên rà soát lại toàn bộ nội dung đã làm - Chỉnh sửa word

Biên bản đã được đọc trước tất cả các thành viên trong nhóm Cả nhóm đã đồng ý với những điều đã viết như trên

Nhóm trưởng Trần Minh Quân

Trang 4

MỤC LỤ

Trang 5

1.1 Phát biểu bài toán 7

1.2 Xây dựng mô hình thực thể liên kết 8

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 8

1.2.2 Xác định các liên kết và kiểu liên kết 10

1.2.3 Vẽ mô hình ER 11

CHƯƠNG II: XÂY DỰNG CƠ SỞ DỮ LIỆU 12

2.1 Xây dựng mô hình cơ sở dữ liệu quan hệ 12

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ệ 12

2.1.2 Chốt lại cơ sở dữ liệu cuối cùng của bài toán 12

2.1.3 Xác định các ràng buộc bài toán 13

CHƯƠNG III: KHAI THÁC CƠ SỞ DỮ LIỆU 22

3.1 Truy vấn khai thác cơ sở dữ liệu 22

3.2 Phân quyền sử dụng cơ sở dữ liệu 37

KẾT LUẬN 40

Trang 6

LỜI CẢM ƠN

Để hoàn thành bài tiểu luận với đề tài: “Ứng dụng quản lý kỳ coi thi tuyển sinh đại học cao đẳng”, chúng em đã nhận được rất nhiều sự giúp đỡ, chỉ bảo nhiệt tình của giảng viên, để có thể tìm ra hướng nghiên cứu, tiếp cận thực tế, tài liệu tham khảo… Với tình cảm chân thành, chúng em xin bày tỏ lòng biết ơn đến:

Ban Giám Hiệu trường Đại học Thương Mại đã tạo điều kiện về cơ sở vật chất cùng với hệ thống thư viện hiện đại, đa dạng các loại sách báo thuận lợi cho việc tìm kiếm thông tin.

Giảng viên hướng dẫn bộ môn, thầy Hoàng Ngọc Cảnh đã giảng dạy và hướng dẫn tận tình, chi tiết để em có đủ kiến thức vận dụng vào bài tiểu luận này.

Do lượng kiến thức và thông tin thu thập còn hạn chế nên bài luận không thể tránh khỏi những thiếu sót trong quá trình nghiên cứu và thực hiện Vì vậy em rất mong nhận được đánh giá cũng như ý kiến đóng góp của quý thầy cô để kiến thức của em trong lĩnh vực này được hoàn thiện hơn Em xin chân thành cảm ơn!

Trang 7

LỜI MỞ ĐẦU

Tuyển sinh đại học cao đẳng là một trong những kỳ thi quan trọng nhất trong đời của mỗi học sinh Để đảm bảo kỳ thi được diễn ra an toàn, công bằng và hiệu quả, cần có một hệ thống quản lý chặt chẽ Hệ thống này cần đáp ứng được các yêu cầu về quản lý thí sinh, quản lý bài thi, quản lý điểm thi,

Trong bài tập lớn này, chúng ta sẽ cùng nhau tìm hiểu về: “Ứng dụng quản lý kỳ coi thi tuyển sinh đại học cao đẳng” Ứng dụng này được nhóm 12 chúng em xây dựng trên nền tảng cơ sở dữ liệu, sử dụng các mô hình dữ liệu và thuật toán phù hợp để đáp ứng các yêu cầu của bài toán.

Để tìm hiểu sâu hơn, rõ ràng hơn về đề tài này, nhóm chúng em sẽ chia bài tập lớn này thành bốn phần chính:

Chương 1: Xây dựng mô hình thực thể liên kết Chương 2: Xây dựng mô hình cơ sở dữ liệu quan hệ Chương 3: Xây dựng truy vấn khai thác cơ sở dữ liệu Chương 4: Phân quyền

Trang 8

CHƯƠNG I: GIỚI THIỆU BÀI TOÁN VÀ XÂY DỰNG MÔ HÌNH THỰCTHỂ LIÊN KẾT

1.1 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ú).

Trang 9

1.2 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

DIEMTHI: MADIEMTHI, TENDIEMTHI, DIACHIDIEMTHI

THISINH: SOBD, HOTEN, NGAYSINH, PHONGTHI, MANGANH, GIOITINH

Trang 10

NGANH: MANGANH, TENNGANH

PHONGTHI: PHONGTHI, MADIEMTHI

CANBO: MACB, HOTENCB, DONVI, MADIEMTHI, CHUCVU, SDT, GIOITINH, MAPHONGTHI

Trang 11

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ì tro1-ng 1 1-ngà1-nh có 1-nhiều thí si1-nh đă1-ng ký, cò1-n 1 thí si1-nh chỉ có 1 mã 1-ngà1-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.

Trang 12

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.

1.2.3 Vẽ mô hình ER

Trang 13

CHƯƠNG II: XÂY DỰNG CƠ SỞ DỮ LIỆU2.1 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

R1.DIEMTHI (MADIEMTHI, TENDIEMTHI, DIACHI)

R2.THISINH (SOBD, HOTEN, NGAYSINH, GIOITINH MANGANH, PHONGTHI)

R3.NGANH (MANGANH, TENNGANH) R4.PHONGTHI (PHONGTHI, MADIEMTHI)

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á => R4.PHONGTHI (PHONGTHI, MADIEMTHI)

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,

PHONGTHI, SDT, CHUCVU, DONVI) Chuyển kiểu thực thể n-n

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:

Trang 14

DIEMTHI (MADIEMTHI, TENDIEMTHI, DIACHI)

THISINH (SOBD, HOTEN, NGAYSINH, MANGANH, PHONGTHI) NGANH (MANGANH, TENNGANH)

PHONGTHI (PHONGTHI, MADIEMTHI)

CANBO (MACB, HOTENCB, GIOITINH, MADIEMTHI, PHONGTHI, SDT, CHUCVU, DONVI)

PCCOITHI (MACB, PHONGTHI)

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”

Bối cảnh: DIEMTHI Nội dung:

Hình thức: t1, t2∀ (thuộc) DIEMTHI (t1 ≠ t2 => t1.MaĐT≠ t2.MaĐT) Bảng tầm ảnh hưởng:

b) RBTV liên bộ: “Mỗi ngành có một mã ngành duy nhất”

c) RBTV tham chiếu: “Mỗi thí sinh tham gia dự thi phải đăng kí ngànhhọc nào đó”

Bối cảnh: THISINH, NGANH Nội dung:

Trang 15

Hình thức: ∀ h (thuộc) THISINH, ∃ k (thuộc) NGANH

Trang 16

Hình thức: ∀ t (thuộc) THISINH, ∃ p (thuộc) PHONGTHI

Trang 17

i) “Mỗi phòng thi có 2 cán bộ coi thi trong phòng”

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: DIEMTHI (MADIEMTHI, TENDIEMTHI, DIACHI)

THISINH (SOBD, HOTEN, NGAYSINH, GIOITINH, MANGANH, PHONGTHI)

NGANH (MANGANH, TENNGANH) PHONGTHI (PHONGTHI, MADIEMTHI)

CANBO (MACB, HOTENCB, GIOITINH, MADIEMTHI, PHONGTHI, SDT, CHUCVU, DONVI)

PCCOITHI (MACB, PHONGTHI)

=> 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

Trang 18

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

Bảng DIEMTHI

Trang 19

Bảng NGANH

Trang 20

MCV1 Công nghệ thông tin

Trang 22

Thị Lý 95 coi thi Giáo Dục

CHƯƠNG III: KHAI THÁC CƠ SỞ DỮ LIỆU3.1 Truy vấn khai thác cơ sở dữ liệu

drop table if exists DIEMTHI; CREATE TABLE DIEMTHI(

Trang 23

MADIEMTHI bigint PRIMARY KEY,

('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; CREATE TABLE THISINH (

SBD bigint primary key,

Trang 24

('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;

CREATE TABLE NGANH (

MANGANH Nvarchar(255) PRIMARY KEY, drop table if exists PHONGTHI; CREATE TABLE PHONGTHI (

Trang 25

PHONGTHI bigint PRIMARY KEY,

drop table if exists CANBO; CREATE TABLE CANBO(

MACB bigint primary key,

INSERT INTO CANBO(MACB, HOTEN, NGAYSINH, GIOITINH, SDT, MADIEMTHI, CHUCVU, DONVI)

VALUES

('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'),

Trang 26

('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ý',

('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'),

Trang 27

('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; CREATE TABLE PCCOITHI (

ALTER TABLE THISINH ADD CONSTRAINT MANGANH FOREIGN KEY (MANGANH) REFERENCES NGANH (MANGANH);

ALTER TABLE THISINH ADD CONSTRAINT PHONGTHIT

Trang 28

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; Go

Trang 29

Create proc 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;

Trang 30

VALUES (@SBD, @HOTEN, @NGAYSINH, @GIOITINH,

Create proc nhap_NGANH

@MANGANH Nvarchar(255), @TENNGANH Nvarchar (255) as

insert into NGANH(MANGANH,TENNGANH) values (@MANGANH, @TENNGANH) end

drop proc if exists nhap_PHONGTHI; Go

Create proc nhap_PHONGTHI

@PHONGTHI bigint, @MADIEMTHI bigint as

insert into PHONGTHI(PHONGTHI, MADIEMTHI) values (@PHONGTHI, @MADIEMTHI)

end Go

drop proc if exists nhap_CANBO;

Trang 31

INSERT INTO CANBO(MACB, HOTEN, NGAYSINH, GIOITINH, MADIEMTHI, SDT, CHUCVU, DONVI)

VALUES (@MACB, @HOTEN, @NGAYSINH, @GIOITINH, @MADIEMTHI, @SDT, @CHUCVU, @DONVI)

Trang 33

Create proc sua_DIEMTHI

@MADIEMTHI bigint, @TENDIEMTHI Nvarchar(255), @DIACHI

Trang 34

where MADIEMTHI = @MADIEMTHI SET IDENTITY_INSERT DIEMTHI OFF;

Trang 35

Create proc sua_NGANH

@MANGANHCU Nvarchar(255), @MANGANHMOI Nvarchar(255),

Create proc sua_PHONGTHI

@PHONGTHICU bigint, @PHONGTHIMOI bigint, @MADIEMTHI bigint

Trang 37

Drop proc if exists tracuu; Go

Create proc tracuu

@SBD bigint, @HOTEN Nvarchar(255)

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

Ngày đăng: 09/04/2024, 21:59

Tài liệu cùng người dùng

Tài liệu liên quan