Báo cáo bài tập lớn đề tài quản lý đề tài nghiên cứu khoa học của sinh viên

50 0 0
Báo cáo bài tập lớn đề tài  quản lý đề tài nghiên cứu khoa học của sinh viên

Đ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

đề tài chỉ được bảo lãnh bởi một giảng viên● SINH VIÊN : Mỗi sinh viên sẽ có các thông tin như MÃ SV, TÊN SV, ĐỊA CHỈ, SĐT, EMAIL, GIỚI TÍNH, NGÀY SINH.. Một sinh viên có thể làm nhiều

Trang 1

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

-BÁO CÁO BÀI TẬP LỚNMÔN : HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

ĐỀ TÀI: QUẢN LÝ ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN

Giảng viên HD: NGUYỄN ĐỨC TUẤN

Sinh viên thực hiện:

Trang 3

PHẦN I PHÁT BIỂU BÀI TOÁN

Qua khảo sát cách quản lý đề tài nghiên cứu khoa học của sinh viên ta th y việc quản lý thông tin của đề tài nghiên cứu là r t quan trọng Việc quản lý chi tiết minh bch là thiết yếu Thông tin cá nhân của SINH VIÊN nằm trong KHOA nào LỚP

nào CHỦ ĐỀ của ĐỀ TÀI và các CÔNG VIỆC nằm trong phm vi đề tài Và đề tài này là do GIẢNG VIÊN nào đứng đầu, bảo lãnh, hướng dẫn Việc quản lý một cách tường minh sẽ tốt cho việc tập hợp đánh giá và đầu tư.

● GIẢNG VIÊN MÃ GV, TÊN GV,ĐỊA CHỈ, SĐT, EMAIL, GIỚI :

TÍNH Mỗi giảng viên là người đứng đầu, hướng dẫn và bảo lãnh cho đề tài

mà sinh viên nghiên cứu Mỗi giảng viên chỉ được bảo lãnh cho 1 đề tài và

đề tài chỉ được bảo lãnh bởi một giảng viên

● SINH VIÊN : Mỗi sinh viên sẽ có các thông tin như MÃ SV, TÊN SV, ĐỊA CHỈ, SĐT, EMAIL, GIỚI TÍNH, NGÀY SINH Số điện thoi,

email mỗi sinh viên chỉ sở hữu 1 cái duy nh t Một sinh viên có thể làm nhiều công việc trong nhiều đề tài khác nhau

● KHOA : MÃ KHOA, TÊN KHOA, ĐỊA CHỈ, SĐT Số điện thoi của khoa là duy nh t Một khoa có nhiều lớp

● LỚP : MÃ LỚP, TÊN LỚP, CỐ VẤN Một lớp có nhiều sinh viên

● CHỦ ĐỀ MÃ CD, TÊN CD : Một chủ đề có thể có nhiều đề tài

● ĐỀ TÀI MÃ ĐT, NGÀY BĐ, NGÀY KT, CẤP QL, KINH PHÍ, TÊN :

ĐT C p quản lý như c p trường, c p thành phố, tỉnh, quốc gia……Ngày bắt

đầu phải nhỏ hơn ngày kết thúc

CÔNG VIỆC MÃ CV, TÊN CV, PHỤ CẤP: Phụ c p là phụ c p theo ngày

Trang 4

PHẦN II MÔ HÌNH THỰC THỂ LIÊN KẾT

II.1 Xác định các thực thể và thuộc tính Từ phát biểu bài toán ta có:

1 Tbl.Sinhvien: iMaSV, sTenSV,sDiachi, iSdt, s Email, bGioitinh,dNgaysinh

⮚ Thuộc tính khóa: iMaSV 2 Tbl.Lop: iMalop, sTenlop, sCovan

⮚ Thuộc tính khóa: iMalop 3 Tbl.Khoa: iMaK, sTenK, sDiadiem, iSdt

⮚ Thuộc tính khóa: iMaK 4 Tbl.Chude: iMaCD, sTenCD

⮚ Thuộc tính khóa : iMaCD

5 Tbl.Detai: iMaDT, dNgayBD, dNgayKT, sCapQL, iKinhphi, sTenDT ⮚ Thuộc tính khóa: iMaDT

6 Tbl.Congviec:iMaCV, sTenCV, iPhucap ⮚ Thuộc tính khóa: iMaCV

7 Tbl.Giangvien: iMaGV, sTenGV,sDiachi, iSdt, s Email, bGioitinh

⮚ Thuộc tính khóa: iMaGV

Trang 6

II.2 Xác định liên kết giữa các thực thể 1 Tbl.Sinhvien – thuộc – Tbl.Lop(n-1)

- 1 lớp có nhiều sinh viên - 1 Sinh viên chỉ thuộc 1 lớp 2 Tbl.Lop – thuộc – Tbl.Khoa(n-1) 4 Tbl.Sinhvien, Tbl.Congviec, Tbl.Detai

- 1 sinh viên có thể làm nhiều công việc - 1 công việc có thể do nhiều sinh viên làm - 1 đề tài có nhiều công việc

- 1 công việc có thể có trong nhiều đề tài - 1 sinh viên có thể làm trong nhiều đề tài - 1 đề tài có thể có nhiều sinh viên tham gia ⇨ Liên kết bậc 3

5 Tbl.Giangvien -tbl.Detai(1-1) - 1 giảng viên – hướng dẫn – 1 đề tài

dNgaysinh

Trang 7

PHẦN III Mô hình cơ sở dữ liệu quan hệ

● QT1: Chuyển đổi thực thể mnh

(1) : tbl.Sinhvien(iMaSV, sTenSV,sDiachi, iSdt, s Email, bGioitinh,dNgaysinh)

(2) : tbl.Lop(iMalop, sTenlop, sCovan) (3) : tbl.Khoa(iMaK, sTenK, sDiadiem, iSdt) (4) : tbl.Chude(iMaCD, sTenCD)

(5) : tbl.Detai( iMaDT, dNgayBD, dNgayKT, sCapQL, iKinhphi, sTenDT)

(6) :tbl.Congviec( iMaCV, sTenCV, iPhucap)

(7) Tbl.Giangvien:( iMaGV, sTenGV,sDiachi, iSdt, s Email, bGioitinh)

● QT2: Chuyển đổi thuộc tính đa trị ● QT3: Chuyển đổi thực thể yếu ● QT4: Chuyển liên kết quan hệ (m-n) ● QT5: Chuyển đổi quan hệ n-1

⇨ (5’’): tbl.Detai( iMaDT, dNgayBD, dNgayKT, sCapQL, iKinhphi, sTenDT, iMaCD, iMaGV)

Trang 8

● QT7: Chuyển đổi quan hệ bậc >2

- Tbl.Sinhvien, tbl.Detai, tbl,Congviec ⇨ (8) : tbl.Thamgia(iMaDT, iMaCV, iMaSV )

⇨ (2’): tbl.Lop(iMalop, sTenlop, sCovan, iMakhoa)

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú

Trang 9

⇨ (3): tbl.Khoa(iMaK, sTenK, sDiadiem, iSdt)

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú

động

Trang 10

⇨ (5’’): tbl.Detai( iMaDT, dNgayBD, dNgayKT, sCapQL, iKinhphi, sTenDT, iMaCD, iMaGV)

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú

⇨ (6): tbl.Congviec( iMaCV, sTenCV, iPhucap)

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú

tăng

Trang 11

⇨ (7): Tbl.Giangvien:( iMaGV, sTenGV,sDiachi, iSdt, s Email, bGioitinh) STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú

⇨ (8) : tbl.Thamgia(iMaTG, iMaDT, iMaCV, iMaSV )

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú

Trang 13

PHẦN IV Chuẩn hóa cơ sở dữ liệu

● 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 phụ thuộc trực tiếp vào khóa chính và 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.

Vậy lược đồ quan hệ đã được chuẩn hóa về dạng cao nhất – 3NF

Trang 14

PHẦN V Cài đặt mức vật lý

1 to bảng Sinh viên create table tblSinhvien( iMaSV int identity(1,1), sTenSV nvarchar(40) not null, sDiaChi nvarchar(50) not null, iSDT int unique not null,

sEmail nvarchar(40) unique not null, bGioiTinh nvarchar(3) not null, iMaLop int not null,

dNgaysinh date not null,

constraint PK_iMaSV_tblkSinhVien primary key (iMaSV) )

2 to bảng lớp create table tblLop( iMaLop int identity(1,1), sTenLop nvarchar(40) not null, sCoVan nvarchar(40) not null, iMaKhoa int not null,

constraint PK_iMaLop_tblLop primary key(iMaLop) )

alter table tblLop

add constraint FK_iMaKhoa_tblKhoa foreign key(iMaKhoa) references tblKhoa(iMaKhoa)

3 to bảng khoa create table tblKhoa( iMaKhoa int identity(1,1), sTenKhoa nvarchar(40) not null, sDiaDiem nvarchar(40) not null, iSDT int unique not null,

constraint PK_iMaKhoa_tblKhoa primary key(iMaKhoa) )

alter table tblSinhvien

Trang 15

add constraint FK_iMaLop_tblLop foreign key(iMaLop) references tblLop(iMaLop)

4 to bảng chủ đề create table tblChude( iMaCD int identity(1,1), STenCD nvarchar(20) not null

constraint PK_iMaCD_tblChuDe primary key(iMaCD) )

5 to bảng đề tài create table tblDetai( iMaDT int identity(1,1), sTenDT nvarchar(40) not null, sCapQL nvarchar(20) not null, dNgayBD date not null, dNgayKT date not null, iKinhPhi int ,

iMaCD int not null, iMaGV int not null,

constraint PK_iMaDT_tblDeTai primary key(iMaDT) )

alter table tblDetai

add constraint FK_iMaCD_tblChuDe foreign key(iMaCD) references tblChude(iMaCD),

constraint FK_iMaGV_tblGiangVien foreign key(iMaGV) references tblGiangvien(iMaGV)

6 to bảng công việc create table tblCongviec( iMaCV int identity(1,1), sTenCV nvarchar(40) not null, fPhuCap float not null,

constraint PK_iMaCV_tblCongViec primary key(iMaCV) )

Trang 16

7 to bảng giảng viên create table tblGiangvien( iMaGV int identity(1,1), sTenGV nvarchar(40) not null, sDiaChi nvarchar(50) not null, iSDT int unique not null,

sEmail nvarchar(40) unique not null, bGioiTinh tinyint not null,

constraint PK_iMaGV_tblGiangvien primary key(iMaGV) )

8 to bảng tham gia create table tblThamgia(

iMaGV int identity(1,1) primary key, iMaDT int not null,

iMaCV int not null, iMaSV int not null,

constraint FK_tblThamGia_iMaCV foreign key(iMaCV) references

Trang 17

PHẦN VI Thêm dữ liệu

Trang 19

4 insert bảng giảng viên

insert into tblGiangvien(sTenGV,sDiaChi,iSDT,sEmail,bGioiTinh) values

(N'Vũ Văn Hnh',N'Hà Nội','0489765942','hanhvu@gmail.com',1), (N'Dương Văn Đông',N'Hà Nam','0445665942','dongduong@gmail.com',1), (N'Nguyễn Thị Nga',N'Thái Bình','0481235942','nganguyen@gmail.com',0), (N'Trần Minh Tâm',N'Hồ Chí Minh','0489765777','tamhcm@gmail.com',0)

(N'Bảo vệ môi trường',N'Trường','2021/10/30','2021/11/10',100000000,1,1), (N'Ô nhiễm môi trường',N'Trường','2021/11/20','2021/12/10',150000000,1,2), (N'Đi dịch Corona',N'Trường','2021/10/20','2021/12/20',200000000,2,3), (N'Sống khỏe-Sống đẹp',N'Trường','2021/10/20','2021/11/10',5000000,2,4) 7 insert bảng công việc

insert into tblCongviec(sTenCV,fPhuCap) 8 insert bảng tham gia insert into tblThamgia (iMaDT,iMaCV,iMaSV) values

(1,1,1),(1,2,5),(1,3,9),(1,4,10),(1,5,20),(1,5,23), (2,1,2),(2,2,6),(2,3,20),(2,4,19),(2,5,11),(2,5,18),

Trang 20

(3,1,3),(3,2,7),(3,3,21),(3,4,12),(3,5,22),(3,5,17), (4,1,4),(4,2,8),(4,3,15),(4,4,14),(4,5,16),(4,5,13)

Trang 21

PHẦN VII Tạo các view

⮚ View 2: Hiển thị sinh viên làm công việc gì trong đề tài nào và tiền phụ c p có thể nhân sau khi đề tài kết thúc

create view vw_2 as

select iMaDT, sTenDT, iMaSV, sTenSV, iMaCV, sTenCV, DATEDIFF(day, dNgayBD, dNgayKT) as 'isongaylam', (DATEDIFF(day, dNgayBD, dNgayKT)*tblCongviec.fPhuCap) as'itinhphucap'

from tblSinhvien,tblDetai,tblCongviec,tblThamgia where

tblSinhvien.iMaSV = tblThamgia.iMaSV and tblCongviec.iMaCV = tblThamgia.iMaCV and tblDetai.iMaDT = tblThamgia.iMaDT

group by iMaDT,sTenDT,iMaSV,sTenSV,iMaCV,sTenCV,

Trang 23

II Tiến Mnh

⮚ View 1: To view sinh viên ở hà nội create view vw_SVHN_DTM1 as

select iMaSV,sTenSV,bGioiTinh,sDiaChi from tblSinhvien where sDiaChi =N'Hà Nội'

group by iMaSV,sTenSV,bGioiTinh,sDiaChi

⮚ View 2: Giảng viên có giới tính nam create view vw_NamGV_DTM2 as

select iMaGV,sTenGV,bGioiTinh from tblGiangvien where bGioiTinh='1'

group by iMaGV,sTenGV,bGioiTinh

Trang 24

III Minh Thu

⮚ View 1: To view xem sinh viên làm đề tài nào, thuộc chủ đề nào, giảng viên nào

create view vw_svlamdetai as

select tblSinhvien.iMaSV as[Ma sv],sTenSV as[Ten sv],sTenCD as[Ten chu de],sTenDT as[Ten de tai],sTenGV as[Ten giang vien] from tblChude left join tblDetai on tblChude.iMaCD=tblDetai.iMaCD left join tblGiangvien on tblGiangvien.iMaGV=tblDetai.iMaGV left join tblThamgia on tblThamgia.iMaDT=tblDetai.iMaDT left join tblSinhvien on tblThamgia.iMaSV=tblSinhvien.iMaSV test

select*from vw_svlamdetai

⮚ View 2: To view xem tổng kinh phí đối với từng chủ đề

create view vw_kinhphi as

Trang 25

select tblChude.iMaCD, sTenCD,sum(iKinhPhi) as[kinh phi] from tblDetai, tblChude

where tblChude.iMaCD=tblDetai.iMaCD group by tblChude.iMaCD,sTenCD test

select*from vw_kinhphi

⮚ View 3: To view xem những học sinh làm nhiều hơn 1 đề tài

create view vw_lamnhieuDT as

select tblThamGia.iMaSV , sTenSV, count(iMaDT) as [SLDT] from tblSinhvien, tblThamgia

Trang 26

⮚ View 1: Đếm xem 1 lớp có bao nhiêu sinh viên create view vwdemsv

as select

tblLop.iMaLop,tblLop.iMaKhoa,tblLop.sCoVan,isnull(count(tblSinhv ien.iMaSV),0) as 'Số sinh viên'

from tblLop left join tblSinhvien on tblLop.iMaLop = tblSinhvien.iMaLop

group by tblLop.iMaLop,tblLop.iMaKhoa,tblLop.sCoVan

⮚ View 2: Xem các lớp của từng khoa create view vwxemkhoa

Trang 27

PHẦN VIII Tạo các thủ tục lưu I Tu n Phong

⮚ Proc 1: Tự động thêm sinh viên vào đề tài với tham số truyền vào là tên đề tài, công việc cần tuyển thêm và số sinh viên cần thêm

alter PROCEDURE them_sinh_vien_vao_de_tai

where tblDetai.sTenDT = @stenDetai

if(upper(@stenCV) in (select upper(tblCongviec.sTenCV) from tblCongviec))

select @iMaCV = tblCongviec.iMaCV from tblCongviec where tblCongviec.sTenCV = @stenCV

Trang 29

⮚ Proc 2: thêm công việc

CREATE PROCEDURE them_cong_viec

Trang 30

II Tiến Mnh

⮚ Proc 1: To thủ tục lưu thêm sinh viên create proc prThemDuLieuSV

@sTenSV nvarchar(50) ,@sDiaChi nvarchar(50),@sEmail nvarchar(30),@bGioiTinh tinyint,@iMaLop int ,@dNgaySinh date

⮚ Proc 2: To thủ tục lưu tổng sinh viên theo giới tính create proc prTongSV_theogioitinh

@bGioiTinh nvarchar(3)

Trang 31

III Minh Thu

⮚ Proc 1: To thủ tục lưu cho biết số lượng sinh viên làm đề tài nào đó với tham số truyền vào là mã đề tài

Trang 32

end test

sp_slsv @detai=1

⮚ Proc 2: To thủ tục lưu cho biết tên chủ đề, đề tài, giảng viên của sinh viên đã nhập với tham số truyền vào là mã sinh viên

Trang 33

@sTenLop nvarchar(50) AS

declare @iMaLop int

select @iMaLop = tblLop.iMaLop from tblLop where tblLop.sTenLop = @sTenLop

select * from tblSinhvien where @iMaLop = tblSinhvien.iMaLop END

⮚ Proc 2: To thủ tục lưu thêm lớp CREATE PROCEDURE them_lop

Trang 34

END

Trang 35

PHẦN IX Tạo các trigger

I Tu n Phong

⮚ Trigger 1: 1 sinh viên chỉ được thêm 1 lần vào 1 dự án alter TRIGGER Kiem_tra_1SV_1DT

@sTenCV nvarchar(50),@sTenDT nvarchar(50)

select @iMaSV = iMaSV,@iMaDT=iMaDT,@iMaCV = iMaCV

select @sTenSV = vw_2.sTenSV,@sTenCV =vw_2.sTenCV,@sTenDT =vw_2.sTenDT from vw_2

where vw_2.iMaSV = @iMaSV and vw_2.iMaDT = @iMaDT raiserror(N'sinh viên này đã có mặt trong đề tài',16,10) print(N'Sinh viên '+@sTenSV+ N' đã đang làm công việc '+@sTenCV+N' trong đề tài '+@sTenDT)

end end

Trang 36

⮚ Trigger 2: kiểm tra kinh phí có đủ để thêm sinh viên vào làm hay

declare @kinhphiconlai int ,@iMaDT int select @iMaDT=iMaDT from inserted

select @kinhphiconlai = vw_3.itienconlai from vw_3 where

⮚ Trigger 3: kiểm tra tồn tại công việc CREATE trigger kiemtra_tenCV

Trang 37

select @stenCV = upper(sTenCV),@fphucap = fPhuCap from inserted

if(@stenCV in (select upper(tblCongviec.sTenCV) from tblCongviec))

raiserror (N' -THÔNG BÁO -',16,10) PRINT(N'Công việc ' + @stenCV+ N' đã có trong kho')

⮚ Trigger 4: cập nhật kinh phí còn lại alter table tblDetai

add ikinhphiconlai int

create trigger capnhatkinhphi on tblThamgia

after insert,update,delete as

Trang 38

update tblDetai

set ikinhphiconlai =vw_3.itienconlai

from vw_3 where tblDetai.iMaDT = vw_3.iMaDT end

II Tiến Mnh

❖ Trigger 1: kiểm tra giới tính nhập phải là Nam hoặc Nữ alter trigger trGioiTinh on tblSinhVien

after insert,update as

declare @bGioiTinh nvarchar(3)

select @bGioiTinh=bGioiTinh from inserted

Trang 39

❖ Trigger 2: Kiểm tra số sinh viên trong 1 lớp không được quá 10 người create trigger tgSVLOP

on tblSinhvien after insert,update as

declare @TongSV int declare @iMalop int

select @iMalop= iMalop from inserted

select @TongSV =(select count(iMaLop) from tblSinhvien where iMaLop

III Minh Thu

❖ Trigger 1: To trigger đảm bảo ngày kết thúc luôn >= ngày hiện ti create trigger trg_ngay

Trang 41

❖ Trigger 2: To trigger tăng 10% kinh phí cho những đề tài có thời hn làm

Trang 42

❖ Trigger 1: kiểm tra tên khoa đã tồn ti create trigger kiemtra_tenkhoa

select @sTenKhoa = upper(sTenKhoa), @sDiaDiem = sDiaDiem, @iSDT = iSDT from inserted

if( @sTenKhoa in( select upper(tblKhoa.sTenKhoa) from tblKhoa)) begin

raiserror (N' -THÔNG BÁO -',16,10) PRINT(N'Khoa ' + @sTenKhoa+ N' đã có trong kho') end

Trang 43

❖ Trigger 2: kiểm tra 1 cố v n 1 lớp create trigger kiemtra_1cv_1lop

select @sCoVan = sCoVan, @sTenLop = sTenLop, @iMaKhoa = iMaKhoa from inserted

if( @sCoVan in ( select tblLop.sCoVan from tblLop where tblLop.iMaKhoa = @iMaKhoa))

raiserror (N' -THÔNG BÁO -',16,10) PRINT(N'Cố v n ' + @sCoVan+ N' đã có trong kho') end

else begin

Trang 44

insert into tblLop

values(@sTenLop,@sCoVan,@iMaKhoa) end

end

Trang 45

PHẦN X Phân tán dữ liệu

I Tu n Phong Trên máy chủ

⮚To login, user, phân quyền

● create login maychu

● with password= '11111111'

● create user phong_maychu

● for login maychu

● with default_schema = btl

● grant insert,delete,select on tblCongviec to phong_maychu grant insert,delete,select on tblThamgia to phong_maychu

⮚To link server tới máy trm

❖ Phân tán ngang bảng công việc với phụ c p >1000000 thì lưu ti máy trm create trigger phan_tan_tblCongviec

Trang 46

on tblCongviec after insert as begin

declare @iMaCV int,@fphucap float,@sTenCV nvarchar(50)

select @iMaCV = iMaCV,@fphucap = fPhucap,@sTenCV = sTenCV from

❖ Phân tán ngang bảng tham gia theo mã đề tài chẵn lẻ( lẻ lưu ti trm) create trigger phan_tan_tblThamgia

on tblThamgia after insert as begin

declare @iMaCV int,@iMaSV int ,@iMaDT int

select @iMaCV = iMaCV,@iMaDT= iMaDT,@iMaSV = iMaSV from inserted

if( @iMaDT %2=1) begin

rollback tran

print(N'thông tin tham gia đề tài cảu sinh viên đã được lưu ti trm 1') insert into LINK_TOI_MAY_TRAM.BTL_TRAM.dbo.tblThamgia

Ngày đăng: 08/04/2024, 12:50

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

Tài liệu liên quan