báo cáo case stydy 1 quản lý hồ sơ và điểm ở trường trung học phổ thông

27 0 0
Tài liệu đã được kiểm tra trùng lặp
báo cáo case stydy 1 quản lý hồ sơ và điểm ở trường trung học phổ thông

Đ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

Vì dụ như các table: DIEM, KETQUA, HOCSINH đều liên quan đến học sinhnên tạo một tablespace có tên là student để chứa 3 bảng đó.... * Đối với cơ sở dữ liệu trên, tạo ra 3 tablesapce để p

Trang 1

Nhóm làm bài: 01

Mã môn học: IS12A Nhóm 01

Giảng viên hướng dẫn: Cô Nguyễn Thị Thu Trang

Hà Nội, ngày 24 tháng 04 năm 2020

Trang 2

DANH SÁCH THÀNH VIÊN

2Nguyễn Thị Huyền (NT)21A4040047K21HTTTA23%

Trang 3

MỤC LỤC

2.2 Lý do tạo thêm tablespace cho cơ sở dữ liệu.82.3 Tạo các tablespace cần thiết, table và mối quan hệ giữa các bảng9

Trang 4

Mỗi học kỳ, một học sinh có thể nhận được các loại điểm: miệng, 15 phút, 1 tiết, điểmthi học kì của từng môn Cuối học kì nhà trường tổng kết điểm trung bình của từng môn, củatoàn kì cho mỗi học sinh Học sinh sẽ nhận được kết quả học tập và nhận xét về ý thức họctập và xếp loại vào cuối kì và cả năm

Ban giám hiệu có trách nhiệm cung cấp các quy định tính điểm, các đánh giá xếp loại,quy định về khen thưởng kỷ luật Cuối mỗi kỳ học, ban giám hiệu nhận được các báo cáo vềtình hình chung của từng lớp và đưa ra quyết định khen thưởng cho từng cá nhân học sinh,đồng thời ra quyết định danh sách lên lớp.

II-Triển khai dự án

1 Thiết kế ban đầu (thiết kế mức vật lý và logic)+ Sơ đồ thực thể liên kết

Trang 5

+ Sơ đồ quan hệ

+ Xây dựng các bảng lưu trữ thông tin của trường trung học phổ thông

Bảng HOCSINH

Trang 6

Thuộc tínhKiểu dữ liệuKíchthước

Thay đổi: Số điện thoại di động ở Việt Nam hiện nay có 10 chữ số (thay vì 11 chữ số như ban đầu)

Bảng BANGIAMHIEU

Thuộc tínhKiểu dữ liệuKíchthước

Định dạngRàng buộc

Bảng KHENTHUONG_GV

Trang 7

Thuộc tínhKiểu dữ liệuKíchthước

Định dạngRàng buộc

Bảng KHENTHUONG_HS

Thuộc tínhKiểu dữ liệuKíchthước

Định dạngRàng buộc

C: có lên lớpK: không lên lớp

Thay đổi: Điểm trung bình gồm 1 chữ số nguyên và 1 chữ số thập phân

Bảng GIAOVIEN

Trang 8

Thuộc tínhKiểu dữ liệuKíchthước

Thuộc tínhKiểu dữ liệuKích thướcĐịnh dạngRàng buộc

Bảng DIEM

Thuộc tínhKiểu dữ liệuKích thướcĐịnh dạngRàng buộc

Trang 9

MaHSCHAR 9HS****K** Khóa chính

Thuộc tínhKiểu dữ liệuKích thướcĐịnh dạngRàng buộc

2 Xây dựng và quản lý cơ sở dữ liệu

2.1.Tạo cơ sở dữ liệu với tên gọi phù hợp.

+ Tên CSDL: Quan_Ly_Hoc_Sinh

+ User tạo: user hệ thống SYS, nhóm quyền SYSDBA

Trang 10

2.2 Có cần thiết phải tạo nhiều tablespace cho cơ sở dữ liệu này không? Hãy đưa ranhững giải thích hợp lý cho quyết định của anh chị.

Việc tạo nhiều tablespace là cần thiết cho cơ sở dữ liệu , vì:

+ Dùng tablespace sẽ giúp quản lí data dễ dàng hơn, cho hiệu suất cao hơn, an toàn vàbảo mật dữ liệu tốt hơn.

+ Có thể cấp phát hạn ngạch không gian cho nhiều người dùng khác nhau trong hệthống.

+ Dễ dàng backup hay recover từng phần Mỗi phần này chính là 1 tablespace.+ Nếu một lúc nào đó dữ liệu lớn ra, cần thêm ổ cứng để lưu trữ thì ta gắn thêm ổcứng, lấy 1 vùng không gian trên ổ cứng mới dùng cho dữ liệu Để gắn kết vùng không gianmới này với vùng không gian hiện tại thì phải dùng tablespace.

+ Nếu ta muốn 1 phần CSDL không được truy xuất nữa thì chỉ cần dừng 1 tablespaceđó chứ không cần phải dừng toàn bộ CSDL.

Lý do tạo các tablespace:

- Trong các table có sự liên kết chặt chẽ và liên quan với nhau thì sẽ tạo thành mộttablespace Vì dụ như các table: DIEM, KETQUA, HOCSINH đều liên quan đến học sinhnên tạo một tablespace có tên là student để chứa 3 bảng đó.

Trang 11

* Đối với cơ sở dữ liệu trên, tạo ra 3 tablesapce để phục vụ cho cơ sở dữ liệu

Gồm các bảng: CHUNHIEM, GIAOVIEN, DAY.

2.3.Tạo các tablespace cần thiết, các bảng theo thiết kế vật lý đã nêu ở trên và mốiquan hệ tương ứng giữa các bảng.

2.3.1 Mối quan hệ giữa các bảng, tạo các bảng cùng ràng buộc+ Mối quan hệ giữa các bảng:

BANGIAMHIEU - KHENTHUONG_GV: (1-n)BANGIAMHIEU - KHENTHUONG_HS: (1-n)KHENTHUONG_HS - HOCSINH: (1-1)HOCSINH – KETQUA : (1-1)

HOCSINH – LOP: (1-n)HOCSINH – DIEM: (1-n)LOP – GVCN: (1-1)LOP – DAY : (1-n)GIAOVIEN – GVCN: (1-1)GIAOVIEN – DAY: (n-n)DAY – MONHOC: (n-n)DIEM – MONHOC: (n-n)+ Tạo các bảng cùng ràng buộcTạo bảng Học sinh

CREATE TABLE HocSinh (

MaHS CHAR (9) NOT NULL PRIMARY KEY, CHECK (MaHS LIKE'HS K '), TenHS NVARCHAR2 (30) NOT NULL, MaLop CHAR (5) NOT NULL, NgaySinh DATE NOT NULL, GioiTinh NVARCHAR2 (4) NOT NULL, DanToc NVARCHAR2 (5),

Trang 12

TenMe NVARCHAR2 (30), NgheMe NVARCHAR2 (30), TenBo NVARCHAR2 (30), NgheBo NVARCHAR2 (30), DienThoai VARCHAR2 (10), QueQuan NVARCHAR2 (90), TonGiao NVARCHAR2 (30), MaThe Char (10) NOT NULL);

Tạo bảng Ban Giám Hiệu

CREATE TABLE BanGiamHieu(

MaBGH CHAR (5) NOT NULL PRIMARY KEY, CHECK (MaBGH LIKE 'BGH '),

TenBGH NVARCHAR2 (30) NOT NULL, ChucVu CHAR (50) NOT NULL );

Tạo bảng Khen Thưởng Giáo Viên

CREATE TABLE KhenThuong_GV(

MaBGH CHAR (5) NOT NULL, CHECK (MaBGH LIKE 'BGH '),

MaGV CHAR (5) NOT NULL PRIMARY KEY, CHECK (MaGV LIKE 'GV _'),

HocKy NUMBER (1) NOT NULL, NamHoc VARCHAR (9) NOT NULL,

CONSTRAINT ktgv_fk FOREIGN KEY (MaBGH) REFERENCES BanGiamHieu (MaBGH)

Tạo bảng Khen Thưởng Học Sinh

CREATE TABLE KhenThuong_HS(

MaHS CHAR (9) NOT NULL, CHECK (MaHS LIKE'HS K '), MaBGH CHAR (5) NOT NULL, CHECK (MaBGH LIKE 'BGH '),

CONSTRAINT kths_fk FOREIGN KEY (MaBGH) REFERENCES BanGiamHieu (MaBGH),

CONSTRAINT hs_fk FOREIGN KEY (MaHS) REFERENCES HocSinh (MaHS), HocKy NUMBER (1) NOT NULL,

NamHoc VARCHAR (9) NOT NULL, DanhHieu NVARCHAR2 (30) NOT NULL

Trang 13

Tạo bảng Giáo Vien

CREATE TABLE GiaoVien(

MaGV CHAR (5) NOT NULL PRIMARY KEY, CHECK (MaGV LIKE'GV _'),

DiaChi NVARCHAR2 (90), ChuyenMon CHAR (2),

CHECK (ChuyenMon = 'TN' OR ChuyenMon = 'XH'), TenGV NVARCHAR2 (30)

Tạo bảng Dạy

CREATE TABLE Day(

MaMonHoc CHAR (5), MaLop CHAR (5), MaGV CHAR (5),

CONSTRAINT day_pk PRIMARY KEY(MaGV, MaLop),

CONSTRAINT gv_fk FOREIGN KEY (MaGV) REFERENCES GiaoVien (MaGV), CONSTRAINT lop_fk FOREIGN KEY (MaLop) REFERENCES Lop (MaLop));

CHECK (MaHS LIKE 'HS K '),

CONSTRAINT sv_fk FOREIGN KEY (MaHS) REFERENCES HocSinh (MaHS), CONSTRAINT kqhs_pk PRIMARY KEY(MaKQ, MaHS),

DiemTBKy1 NUMBER (2,1) NOT NULL, DiemTBKy2 NUMBER (2,1) NOT NULL, DiemTKN NUMBER (2,1) NOT NULL, HanhKiem NVARCHAR2 (10) NOT NULL,

Trang 14

HocLuc NVARCHAR2 (10) NOT NULL, LenLop NVARCHAR2 (1),

CHECK (LenLop = 'C' OR LenLop = 'K'));

Tạo bảng Giáo Viên Chủ Nhiệm

CREATE TABLE GVCN (

MaGV CHAR (5) NOT NULL, CHECK (MaGV LIKE'GV _'),

MaLop CHAR (5) NOT NULL PRIMARY KEY);

NamHoc VARCHAR (9), DiemMieng NUMBER (1), Diem15p NUMBER (1), Diem45p NUMBER (1), DiemThi NUMBER (1), DiemTBMon NUMBER (2,1));

CHECK (MaGV LIKE'GV _'),

CONSTRAINT mh_fk FOREIGN KEY (MaGV) REFERENCES GiaoVien (MaGV));

2.3.2 Tạo các tablespace

Cách tạo tablespace bằng oracle enterprise manager:

: vào vào tùy chọn như hình dưới.

B1 loginoracle enterprise manager

Trang 15

B2: bấm chọn create, nhập tên namespace cần tạo và chọn add.

B3: nhập file name có đuôi dbf

file Directory mặc định.

điền tên tablespace cần tạo.

B4: tích vào Automatically extend datafile when full (AUTOEXTEND)

(mục đích để tự động mở rộng file dữ liệu khi đầy) và điền tham số vào Increment.Và bấm chọn ok

=> TABLESPACE đã được tạo.

Trang 16

+ Hiển thị danh sách những học sinh giỏi trong toàn trường

SELECT MaHS, HocSinh.TenHS, KetQua.HocLucFROM HocSinh INNER JOIN KetQua USING (MaHS)WHERE KetQua.HocLuc = 'Gioi';

+ Hiển thị danh sách những học sinh bị lưu ban

SELECT MaHS, HocSinh.TenHs, KetQua.LenLopFROM HocSinh INNER JOIN KetQua USING (MaHS)WHERE KetQua.LenLop = 'K';

+ Thống kê những học sinh có hạnh kiểm Yếu/Kém

SELECT MaHS, HocSinh.TenHS, KetQua.HanhKiemFROM HocSinh INNER JOIN KetQua USING (MaHS)

WHERE KetQua.HanhKiem = 'Yeu' OR KetQua.HanhKiem = 'Kem';

+ Hiển thị Top 3 lớp có nhiều học sinh Khá/Giỏi nhất trường nhằm mục đích khen thưởng

SELECT TenGV, MaLop, COUNT (DanhHieu) "SO HSG"

FROM GiaoVien JOIN GVCN USING (MaGV) JOIN HocSinh USING (MaLop) JOIN KhenThuong_HS USING (MaHS) WHERE DanhHieu = 'HSGIOI' GROUP BY TenGV, MaLop

HAVING COUNT (DanhHieu) >= ALL (SELECT COUNT(DanhHieu)

FROM GiaoVien JOIN GVCN USING (MaGV) JOIN HocSinh USING (MaLop) JOIN KhenThuong_HS USING (MaHS)

WHERE DanhHieu = 'HSGIOI' GROUP BY MaLop);

2.5 Hệ thống quản lý hồ sơ và điểm chỉ cho phép một số nhóm người dùng nhất định,cụ thể như sau:

+ Nhóm quản trị có toàn quyền

Thông tin user:

Tên user: NHOM_QUAN_TRI

Trang 17

Phương thức xác thực là mật khẩu: CSDL.hvnhTablespace mặc định

Temporary Tablespace mặc địnhProfile: mặc định

Quyền/nhóm quyền: loại quyền system, nhóm quyền DBA.

Sử dụng công cụ Oracle SQL Developer tạo userCâu lệnh:

GRANT "DBA" TO "NHOM_QUAN_TRI" ;

ALTER USER "NHOM_QUAN_TRI" DEFAULT ROLE "DBA";

Connect user vừa tạo

Trang 18

(User NHOM_QUAN_TRI có quyền tạo bảng, thêm dữ liệu, xóa bảng,…)

+ Nhóm giáo viên chỉ có quyền thêm mới vào bảng Kêt Quả

Thông tin user:

Tên user: GIAO_VIEN

Phương thức xác thực là mật khẩu: k21htttaTablespace mặc định

Temporary Tablespace mặc địnhProfile: mặc định

Quyền/nhóm quyền: quyền tạo phiên làm việc, xem, cập nhật và chỉnh sửa bảng KếtQuả.

Sử dụng công cụ Oracle SQL Developer tạo user

Trang 19

(User GIAO_VIEN chỉ có thể xem bảng Kết Quả chứ không xem được các bảng khác)

+ Nhóm hiệu trưởng được đọc dữ liệu ở tất cả các bảng

Thông tin user:

Tên user: HIEU_TRUONG

Phương thức xác thực là mật khẩu: btn.305Tablespace mặc định

Temporary Tablespace mặc địnhProfile: mặc định

Quyền/nhóm quyền: quyền tạo phiên làm việc, quyền xem tất cả các bảng trong cơ sởdữ liệu, ngoài ra có thể cấp quyền xem đó cho các user khác.

Sử dụng công cụ Oracle SQL Developer tạo userCâu lệnh:

USER SQL

CREATE USER "HIEU_TRUONG" IDENTIFIED BY "btn.305"

Trang 20

DEFAULT TABLESPACE "USERS"TEMPORARY TABLESPACE "TEMP"; QUOTAS

ALTER USER "HIEU_TRUONG" QUOTA UNLIMITED ON "USERS"; SYSTEM PRIVILEGES

GRANT CREATE SESSION TO "HIEU_TRUONG" WITH ADMIN OPTION;GRANT SELECT ANY TABLE TO "HIEU_TRUONG" WITH ADMIN OPTION;

Cách connect và test tương tự với phía trên

2.6.Hệ thống quản lý hồ sơ và điểm được sử dụng nhiều nhất vào thời điểm cuối vàđầu mỗi kì/mỗi năm học Anh chị hãy lựa chọn và triển khai phương án backupphù hợp nhất.

+ Phương án backup: Backup bằng RMAN và thực hiện 2 backup: Full Backup Incremintal Backup

+ Backup bằng RMAN

❖ Chọn Availability để thực hiện Backup

❖ Chọn Backup Settings để thiết lập backupSao lưu đĩa

Vị trí sao lưu đĩa hiện tại là vùng Flash

Loại sao lưu đĩa: bộ sao lưu (một định dạng tệp sao lưu Oracle cho phép sao lưu hiệu quả bằng cách xen kẽ nhiều tệp sao lưu vào một tệp đầu ra)

Trang 21

Điền UsernamePassword OK để thiết lập xong Backup

❖ Chiến lược Backup

Chọn Schedule Backup

Với hệ thông quản lý hồ sơ và điểm của trường học, chọn Custonized Backup (Tùy chỉnh Backup)

Trang 22

Tạo 2 Backup:● Backup 1:

+ Loại Backup: Full Backup

+ Lịch Backup: Full Backup 1 năm 1 lần, giữa khoảng thời gian cuối năm học trước vàđầu năm học sau Thời gian backup được đặt vào lúc cơ sở dữ liệu ít hoạt động nhất vì thờigian full bạckup lâu và nếu cơ sở bị mở trong thời gian sao lưu thì nó sẽ bị tắt và được gắntrước khi sao lưu, sau đó mở lại sau sao lưu.

Trang 24

Chọn Submit Job để hoàn thành chiến lược sao lưu tùy chỉnh.

Trang 25

2.7 Để cải thiện hiệu năng hoạt động của hệ thống, một số yêu cầu nghiệp vụ đượcyêu cầu thực hiện ở tầng cơ sở dữ liệu Các yêu cầu đó bao gồm:

+ Tìm học sinh có thành tích học tập xuất sắc nhất trong một năm học nhất định

SET SERVEROUTPUT ON DECLARE

NH KhenThuong_HS.NamHoc%TYPE := '&NH'; CURSOR CONTRO IS

SELECT DiemTKN, MaHS, TenHS, NamHoc

FROM KetQua INNER JOIN HocSinh USING (MaHS) INNER JOIN KhenThuong_HS USING (MaHS)

WHERE NamHoc = NH AND DiemTKN = (SELECT MAX (DiemTKN)

FROM KetQua INNER JOIN KhenThuong_HS USING (MaHS) WHERE NamHoc = NH);BEGIN

FOR ITEM IN CONTRO LOOP

DBMS_OUTPUT.PUT_LINE ('HS xuat sac nhat la: '|| ITEM.DIEMTKN||ITEM.MAHS || ITEM.TENHS||ITEM.NAMHOC);

END LOOP;END;

+ Tìm kiếm những giáo viên chủ nhiệm có nhiều học sinh giỏi nhất

SET SERVEROUTPUT ON

Trang 26

DECLARE

NH KhenThuong_HS.NamHoc%TYPE := '&NH'; CURSOR CONTRO IS

SELECT COUNT (DanhHieu) AS SL_HSGIOI, Lop.MaLop, GVCN.MaGV, GiaoVien.TenGV, KhenThuong_HS.NamHoc

FROM KhenThuong_HS INNER JOIN HocSinh ON HocSinh.MaHS = KhenThuong_HS.MaHS INNER JOIN Lop ON HocSinh.MaLop = Lop.MaLop

INNER JOIN GVCN ON Lop.MaLop = GVCN.MaLop INNER JOIN GiaoVien ON GVCN.MaGV = GiaoVien.MaGV WHERE DanhHieu = 'HSGIOI' AND KhenThuong_HS.NamHoc = NH

GROUP BY Lop.MaLop, GVCN.MaGV, GiaoVien.TenGV, KhenThuong_HS.NamHoc HAVING COUNT (DanhHieu) >= ALL (SELECT COUNT (DanhHieu)

FROM GiaoVien JOIN GVCN USING (MaGV)

JOIN HocSinh USING (MaLop) JOIN KhenThuong_HS USING (MaHS) WHERE KhenThuong_HS.NamHoc = NH AND DanhHieu ='HSGIOI'

GROUP BY TenGV);BEGIN

FOR ITEM IN CONTRO LOOP

DBMS_OUTPUT.PUT_LINE ('Thong tin gvcn co nhieu hs gioi nhat la: ' || ITEM.MaLop || ITEM.MaGV || ITEM.TenGV || ITEM.NamHoc);

END LOOP;END;

+ Thống kê tỉ lệ học sinh Khá, Giỏi, Trung bình, Yếu, Kém của một lớp nhất định trong mộtnăm học nào đó

CREATE OR REPLACE PROCEDURE TI_LE(NH IN KhenThuong_HS.NamHoc%TYPE)IS

SELECT MALOP, TENLOP, SISO,

CONCAT ((ROUND (SELECT COUNT (HocLuc) FROM KetQua WHERE HocLuc = 'GIOI')*100/SISO, 2), '%') AS TL_GIOI,

CONCAT ((ROUND (SELECT COUNT (HocLuc) FROM KetQua WHERE HocLuc = 'KHA')*100/SISO, 2), '%') AS TL_KHA,

CONCAT ((ROUND (SELECT COUNT (HocLuc) FROM KetQua WHERE HocLuc = 'TB')*100/SISO, 2), '%') AS TL_TB,

CONCAT ((ROUND (SELECT COUNT (HocLuc) FROM KetQua WHERE HocLuc = 'YEU')*100/SISO, 2), '%') AS TL_YEU,

CONCAT ((ROUND (SELECT COUNT (HocLuc) FROM KetQua WHERE HocLuc = 'KEM')*100/SISO, 2), '%') AS TL_KEM,

FROM Lop INNER JOIN HocSinh ON HocSinh.MaLop = Lop.MaLop INNER JOIN KetQya ON HocSinh.MaHS = KetQua.MaHS

Trang 27

INNER JOIN KhenThuong_HS ON KetQua.MaHS = KhenThuong_HS.MaHS WHERE KhenThuong_HS.NamHoc = NH;

GROUP BY MaLop, TenLop, SiSo;END;

EXECUTE TI_LE ('2018-2019');

+ Xem tỉ lệ lưu ban của từng lớp nhất định

SET SERVEROUTPUT ON DECLARE

+ Tìm kiếm lớp có tỉ lệ bỏ học nhiều nhất

SET SERVEROUTPUT ONDECLARE

GROUP BY MaLop);BEGIN

FOR ITEM IN CONTRO LOOP

DBMS_OUTPUT.PUT_LINE(ITEM.MaLop || ITEM.TY_LE_DUP_NHIEU_NHAT); END LOOP;

END;

Ngày đăng: 19/06/2024, 18:05

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

  • Đang cập nhật ...

Tài liệu liên quan