1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo bài tập lớn môn hệ quản trị csdl đề tài quản lý nhân viên

48 3 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Quản Lý Nhân Viên
Tác giả Nguyễn Đình Văn-1910A02, Trần Văn Tiến-1910A05, Đinh Quốc Đạt-1910A03, Vũ Quốc Hưng-1910A05
Người hướng dẫn Nguyễn Thị Tâm
Trường học Trường Đại Học Mở Hà Nội
Chuyên ngành Hệ Quản Trị CSDL
Thể loại Báo cáo
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 48
Dung lượng 2,98 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mỗi phòng ban có các nhân viên và nhân viên được quản lí bởi các thông tin:tên nhân viên, mã nhân viên, ngày sinh, giới tính, địa chỉ, lương.. Mỗi nhân viên sẽ có người thân và người thâ

Trang 1

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

KHOA CÔNG NGHỆ THÔNG TIN

Vũ Quốc Hưng -1910A05

Hà Nội – 2021

Trang 2

MỤC LỤC

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

II MÔ HÌNH CSDL QUAN HỆ 3

1 Xác định các kiểu thực thể và thuộc tính 3

2 Xác định các thuộc tính và phân loại thuộc tính 3

3 Xác định các liên kết 3

4 Chuẩn hóa cơ sở dữ liệu 4

5 CÁC BẢNG: 5

III TẠO CƠ SỞ DỮ LIỆU 7

1 DATABASE DIAGRAMS 17

IV TẠO VIEW 18

V TẠO PROCEDUCE 24

VI TẠO TRIGGER 30

VII PHÂN QUYỀN VÀ BẢO MẬT CSDL 39

VIII PHÂN TÁN CSDL 43

Trang 3

PHÂN CÔNG VÀ KẾ HOẠCH THỰC HIỆN

HỌ VÀ TÊN NỘI DUNG ĐÁNH GIÁ GHI CHÚ

Trang 4

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

Quản lý nhân viên :

Một công ty thực hiện quản lý nhân viên của công ty Trong công ty có các dự án được thực hiện quản lí bởi các bộ phận công việc khác nhau

Mỗi dự án được quản lí bởi các thông tin: mã dự án, tên dự án, địa điểm dự

án, phòng ban thực hiện dự án đó Bộ phận công việc được quản lí bởi thông tin: mã

dự án, số thứ tự, tên công việc

Trong bộ phận thì sẽ có nhiều phòng ban, mỗi phòng ban được quản lý bởi các thông tin: mã phòng ban, tên phòng ban Mỗi phòng ban được phân biệt bởi mãphòng ban

Mỗi phòng ban sẽ có một trưởng phòng Một phòng ban chỉ có một trưởng phòng để quản lí nhân viên trong phòng đó

Mỗi phòng ban có các nhân viên và nhân viên được quản lí bởi các thông tin:tên nhân viên, mã nhân viên, ngày sinh, giới tính, địa chỉ, lương Mỗi phòng ban có thể có nhiều nhân viên, trưởng phòng quản lí nhân viên của mình bằng việc lưu giữ lại ngày vào làm

Có bảng phân công quản lý các thông tin: Mã nhân viên, mã dự án, số thứ tự,thời gian thực hiện dự án

Mỗi nhân viên sẽ có người thân và người thân được quản lý bởi các thông tin: Mã nhân viên, tên người thân, giới tính, ngày sinh và quan hệ

Trang 5

II MÔ HÌNH CSDL QUAN HỆ

 DỰ ÁN : mã dự án, tên dự án, địa điểm dự án, phòng

 CÔNG VIỆC : mã dự án, STT, tên công việc

 PHÂN CÔNG: mã nhân viên, mã dự án, STT, thời gian

 NGƯỜI THÂN : mã nhân viên, tên người thân, giới tính, ngày sinh, quan hệ

2 Xác định các thuộc tính và phân loại thuộc tính

 Nhân viên: thuộc tính khóa là mã nhân viên

 Phòng ban: thuộc tính khóa là mã phòng

 Dự án : thuộc tính khóa là mã dự án

 Công việc : thuộc tính khóa là mã dự án, số thứ tự

 Phân công: thuộc tính khóa là mã nhân viên, mduan, stt

 Người thân : thuộc tính khóa là mã nhân viên, tên người thân

Trang 6

+ Một dự án có nhiều phòng ban

+ Mỗi một phòng ban có một dự án

- Giữa thực thể NHANVIEN và thực thể NGUOITHAN có kiểu liên kết N–N, vì+ Một nhân viên có nhiều người thân

+ Một người thân thuộc nhiều nhân viên

4 Chuẩn hóa cơ sở dữ liệu

 Từ mô hình quan hệ ta suy ra các phụ thuộc hàm:

MaNV  TenNV, NgaySinh, GioiTinh, ĐiaChi, Luong, TgPhg, phg, NgVL.MaDa TenDa, DiaDiemDA, Phong.

Maphg TenPhg, TrgPhg, Ngaynhanchuc.

MaNV, MaDa, STT Thoigian

MaNV, TenNT Gioitinh, Ngaysinh, Quanhe.

MaDa, STT  TenCV

 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

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

5 CÁC BẢNG:

tblNhanvien:

Trang 7

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

3 DiaDiemDA Nvarchar(20) Địa điểm dự án

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

1 MaNV Nvarchar(20) PK, FK Mã nhân viên

2 MaDa Nvarchar(20) PK,FK Mã dự án

Trang 8

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

1 MaNV Nvarchar(20) PK, FK Mã nhân viên

2 TenNT Nvarchar(50) PK Tên người thân

III TẠO CƠ SỞ DỮ LIỆU

create table tblDuan(

MaDa nvarchar(20) not null primary key,

TenDa nvarchar(50) null,

DiaDiemDA nvarchar(20) null,

Phong int null

Trang 9

create table tblCongviec(

MaDa nvarchar(20) NOT NULL,

STT int NOT NULL,

TenCV nvarchar(50) NULL,

)

alter table tblCongviec

add constraint pk_Congviec primary key(MaDa,STT) ;create table tblNhanvien(

MaNV nvarchar(20) NOT NULL primary key,TenNv nvarchar(50) NULL,

Ngaysinh date null,

Diachi nvarchar(50) NULL,

Gioitinh bit null,

Luong float NULL,

TrgPhg nvarchar(20) NULL,

phg int NULL

)

alter table tblNhanvien add NgVL datetime null;

create table tblPhancong(

MaNV nvarchar(20) NOT NULL,

MaDa nvarchar(20) NOT NULL,

STT int NOT NULL,

Thoigian float NULL

)

Trang 10

alter table tblPhancong

add constraint pk_Phancong primary key(MaNV,MaDa,STT) ;

create table tblPhongban(

Maphg int primary key,

TenPhg nvarchar(20) NULL,

TrgPhg nvarchar(20) NULL,

Ngaynhanchuc date NULL

)

alter table tblPhongban add SoNV int null;

create table tblNguoithan(

MaNV nvarchar(20) not null,

TenNT nvarchar(50) not null,

Gioitinh bit null,

Ngaysinh date null,

Quanhe nvarchar(15) null

)

alter table tblNguoithan

add constraint pk_Nguoithan primary key(MaNV, TenNT)

ALTER TABLE tblCongviec WITH CHECK ADD CONSTRAINT [FK_congviec_duan] FOREIGN KEY(MaDa)

REFERENCES tblDuan (MaDa)

GO

ALTER TABLE tblCongviec CHECK CONSTRAINT [FK_congviec_duan]GO

Trang 11

ALTER TABLE tblDuan WITH CHECK ADD CONSTRAINT

[FK_Duan_Phongban] FOREIGN KEY(Phong)

REFERENCES tblPhongban (Maphg)

Trang 13

insert into tblCongviec (MaDa, STT, TenCV) values (N'1', 1, N'Thiết

Trang 14

insert tblDuan (MaDa, TenDa, DiaDiemDA, Phong) values(N'5', N'Thi công 2', N'Bình Dương',5)

insert tblDuan (MaDa, TenDa, DiaDiemDA, Phong) values(N'6', N'Thi công 3', N'Đà Nẵng',4)

insert tblDuan (MaDa, TenDa, DiaDiemDA, Phong) values(N'7', N'Thi công 4', N'Hà Nội',5)

insert into tblPhongban (Maphg, TenPhg, TrgPhg, Ngaynhanchuc) values(1, N'Thiết kế', N'001', CAST(N'2016-06-19' AS Date))insert into tblPhongban (Maphg, TenPhg, TrgPhg, Ngaynhanchuc) values(2, N'Quản lý', N'002', CAST(N'2013-02-11' AS Date))insert into tblPhongban (Maphg, TenPhg, TrgPhg, Ngaynhanchuc) values(3, N'Marketing', N'003', CAST(N'2017-06-29' AS Date)) insert into tblPhongban (Maphg, TenPhg, TrgPhg, Ngaynhanchuc) values(4, N'Kế Toán', N'004', CAST(N'2015-06-26' AS Date))insert into tblPhongban (Maphg, TenPhg, TrgPhg, Ngaynhanchuc) values(5, N'Ngoại giao', N'005', CAST(N'2012-06-29' AS Date)) insert into tblPhongban (Maphg, TenPhg, TrgPhg, Ngaynhanchuc) values(6, N'An ninh', N'006', CAST(N'2011-03-09' AS Date)) insert into tblPhongban (Maphg, TenPhg, TrgPhg, Ngaynhanchuc) values(7, N'In ấn', N'007', CAST(N'2010-01-09' AS Date))

Trang 15

insert into tblPhongban (Maphg, TenPhg, TrgPhg, Ngaynhanchuc) values(8, N'Lập trình', N'008', CAST(N'2009-08-08' AS Date))

insert into tblNhanvien (MaNV, TenNV, Ngaysinh, Diachi,Gioitinh, Luong, TrgPhg, phg) values (N'001', N'Nguyễn Đình

Văn',CAST(N'1999-12-15' AS Date),N'Thái Bình',1 ,11000000, N'001',1 )

insert into tblNhanvien (MaNV, TenNV, Ngaysinh, Diachi,Gioitinh, Luong, TrgPhg, phg) values (N'002', N'Đinh Quốc

Đạt',CAST(N'1995-07-11' AS Date),N'Ninh Bình',1, 9500000, N'001',2 )

insert into tblNhanvien (MaNV, TenNV, Ngaysinh, Diachi,Gioitinh, Luong, TrgPhg, phg) values (N'003', N'Trần Văn Tiến',CAST(N'1999-03-05' AS Date),N'Hà Nam',1, 10000000, N'002',3 )

insert into tblNhanvien (MaNV, TenNV, Ngaysinh, Diachi,Gioitinh, Luong, TrgPhg, phg) values (N'004', N'Vũ Quốc

Hưng',CAST(N'1988-06-05' AS Date),N'Hưng Yên',1, 9000000, N'003',4 )

Trang 16

insert into tblNhanvien (MaNV, TenNV, Ngaysinh, Diachi,Gioitinh, Luong, TrgPhg, phg) values (N'005', N'Nguyễn Thị

Tuyết',CAST(N'1978-06-26' AS Date),N'Thái Bình',0, 12000000, N'002',5 )

insert into tblNhanvien (MaNV, TenNV, Ngaysinh, Diachi,Gioitinh, Luong, TrgPhg, phg) values (N'006', N'Nguyễn Thị

Hằng',CAST(N'1988-01-09' AS Date),N'Huế',0, 9500000, N'001',3 )insert into tblNhanvien (MaNV, TenNV, Ngaysinh, Diachi,Gioitinh, Luong, TrgPhg, phg) values (N'007', N'Nguyễn Văn A',CAST(N'2000-11-09' AS Date),N'Nghệ An',1, 5000000, N'002',3 )

insert into tblNhanvien (MaNV, TenNV, Ngaysinh, Diachi,Gioitinh, Luong, TrgPhg, phg) values (N'008', N'Nguyễn Thị B',CAST(N'2000-10-10' AS Date),N'Hải Phòng',0, 7000000, N'001',1 )

insert into tblPhancong (MaNV, MaDa, STT, Thoigian) values (N'001', N'1', 1, 15)

insert into tblPhancong (MaNV, MaDa, STT, Thoigian) values (N'002', N'2', 2, 5)

insert into tblPhancong (MaNV, MaDa, STT, Thoigian) values (N'003', N'3', 3, 25)

Trang 17

insert into tblPhancong (MaNV, MaDa, STT, Thoigian) values (N'004', N'3', 3, 25)

insert into tblPhancong (MaNV, MaDa, STT, Thoigian) values (N'005', N'4', 4, 30)

insert into tblPhancong (MaNV, MaDa, STT, Thoigian) values (N'006', N'4', 4, 30)

insert into tblPhancong (MaNV, MaDa, STT, Thoigian) values (N'007', N'5', 5, 10)

insert into tblPhancong (MaNV, MaDa, STT, Thoigian) values (N'008', N'7', 7, 20)

insert into tblNguoithan (MaNV, TenNT,Gioitinh,Ngaysinh, Quanhe) VALUES (N'001', N'Nguyễn Đình Thiệu', 1, CAST(N'1978-5-16' AS Date), N'Bố')

insert into tblNguoithan (MaNV, TenNT,Gioitinh,Ngaysinh, Quanhe) VALUES (N'002', N'Nguyễn Thị Phít', 0, CAST(N'1995-10-5' AS Date), N'Vợ chồng')

insert into tblNguoithan (MaNV, TenNT,Gioitinh,Ngaysinh, Quanhe) VALUES (N'003', N'Trần Thị Hạnh', 0, CAST(N'1970-10-11' AS Date),N'Mẹ')

Trang 18

insert into tblNguoithan (MaNV, TenNT,Gioitinh,Ngaysinh, Quanhe) VALUES (N'004', N'Vũ Quốc Thịnh', 1, CAST(N'1990-12-3' AS Date), N'Em trai')

insert into tblNguoithan (MaNV, TenNT,Gioitinh,Ngaysinh, Quanhe) VALUES (N'005', N'Nguyễn Đình Minh', 1, CAST(N'1971-4-24' AS Date), N'Vợ chồng')

insert into tblNguoithan (MaNV, TenNT,Gioitinh,Ngaysinh, Quanhe) VALUES (N'006', N'Trần Quốc Tuấn', 1, CAST(N'1987-4-26' AS Date),N'Vợ chồng')

insert into tblNguoithan (MaNV, TenNT,Gioitinh,Ngaysinh, Quanhe) VALUES (N'007', N'Nguyễn Văn C', 1, CAST(N'1970-10-20' AS Date), N'Bố')

insert into tblNguoithan (MaNV, TenNT,Gioitinh,Ngaysinh, Quanhe) VALUES (N'008', N'Hoàng Thị D', 0, CAST(N'1979-3-8' AS Date), N'Mẹ')

Trang 19

1 DATABASE DIAGRAMS

Trang 20

IV TẠO VIEW

1 Tìm các nhân viên làm việc ở phòng số 3create view vw_1timnhanvienophong3 asselect TenNv as 'tên nhân viên' from tblNhanvienwhere phg=3

select * from vw_1timnhanvienophong3

2 Tìm các nhân viên mức lương trên 10000000create view vw_2timnhanvientren10tr asselect TenNv as 'tên nhân viên' from tblNhanvienwhere Luong>10000000

Trang 21

select * from vw_2timnhanvientren10tr

3 Tìm các nhân viên có (mức lương trên 9000000 ở phòng3)hoặc các nhân viên có (mức lương trên 7000000 ở phòng 1)create view vw_3timnhanvienp3va1 as

select TenNV as 'tên nhân viên' , phg as 'Phòng' from tblNhanvienwhere (Luong > 9000000 AND phg=3) OR (Luong > 7000000 ANDphg=1)

select * from vw_3timnhanvienp3va1

4 Cho biết họ tên của các nhân viên ở Thái Bình

create view vw_4nhanvienThaibinh as

select TenNv as 'tên nhân viên' , Diachi as 'Địa chỉ' fromtblNhanvien

where Diachi = N'Thái Bình'

select * from vw_4nhanvienThaibinh

5 Cho biết các nhân viên có năm sinh trong khoảng 1978 đến1995

create view vw_5nhanvien78to95 as

select TenNv as 'tên nhân viên' , Ngaysinh as 'Ngày sinh' fromtblNhanvien

where YEAR(Ngaysinh) between 1978 and 1995

select * from vw_5nhanvien78to95

Trang 22

6 Cho biết các nhân viên và tuổi của nhân viên

create view vw_6tuoinvien as

select MaNV as'Mã NV', TenNv as 'Tên nhân viên' ,year(GETDATE())- year(Ngaysinh) as 'Tuổi' from tblNhanvienselect * from vw_6tuoinvien

7 Tìm tên và địa chỉ của tất cả các nhân viên của phòng "Thiếtkế"

create view vw_7phongthietke as

select TenNv as 'Tên nv', Diachi

from tblPhongban, tblNhanvien

where tblNhanvien.phg = tblPhongban.Maphg andtblPhongban.TenPhg = N'Thiết kế'

select * from vw_7phongthietke

8 Với mỗi dự án ở Hà Nội, cho biết tên dự án, tên phòng ban, họtên và

Trang 23

ngày nhận chức của trưởng phòng của phòng ban chủ trì dự

án đó

create view vw_8duanhanoi as

select TenDa as 'Tên Dự án', TenPhg as 'Tên Phòng', TenNv as 'Tênnv', Ngaynhanchuc as 'Ngày nhận chức'

from tblDuan,tblPhongban,tblNhanvien

where tblDuan.Phong = tblPhongban.Maphg andtblPhongban.TrgPhg = tblNhanvien.MaNV and tblDuan.DiaDiemDA

= N'Hà Nội'

select * from vw_8duanhanoi

9 Thống kê số lượng nhân viên theo giới

tính create view vw_9solgtheogioitinh as

select Gioitinh as 'giói tính', count (MaNV) as 'số lượng nhân viên'from tblNhanvien

group by tblNhanvien.Gioitinh

select * from vw_9solgtheogioitinh

10 Tìm tên những người trưởng phòng của từng phòng bancreate view vw_10truongphong as

select TenPhg as 'Tên Phòng', TenNv as 'Tên Nhân Viên' fromtblPhongban, tblNhanvien

where tblPhongban.TrgPhg = MaNV

select * from vw_10truongphong

Trang 24

11 Cho biết tên các dự án mà nhân viên Nguyễn Đình Văn đãtham gia.

create view vw_11nđvthamgia as

select TenDa as 'Tên Dự Án' from tblNhanvien, tblPhancong,tblDuan

where TenNv= N'Nguyễn Đình Văn' and tblNhanvien.MaNV=tblPhancong.MaNV and tblPhancong.MaDa= tblDuan.MaDa select * from vw_11nđvthamgia

12 Cho biết họ tên nhân viên có mức lương trên

mức lương trung bình của phòng "Marketing"

create view vw_12mlgtb as

select TenNv as 'Tên nv' , Luong as 'Lương' from tblNhanvienwhere tblNhanvien.Luong > (select avg(Luong) from tblPhongban,tblNhanvien

where tblPhongban.Maphg =tblNhanvien.phg and TenPhg = N'Marketing'

group by tblPhongban.Maphg)select * from vw_12mlgtb

Trang 25

13 Cho biết danh sách các mã dự án mà nhân viên có mã là 003chưa làm.

create view vw_13duanchualam as

select MaDa as 'Mã dự án', TenDa as 'Tên dự án'

from tblDuan

where MaDa not in (select MaDa from tblPhancong

where MaNV = N'003')

select * from vw_13duanchualam

14 Tìm tên những nữ nhân viên và tên người thân của họcreate view vw_14nvnuvafnguoithan as

select TenNv as 'Tên NV', TenNT as'Tên Người thân ', Quanhe as'Quan hệ' from tblNhanvien,tblNguoithan

where tblNhanvien.MaNV = tblNguoithan.MaNV andtblNhanvien.Gioitinh = 0

select * from vw_14nvnuvafnguoithan

15 Cho biết số lượng dự án của công ty

create view vw_15solgduan as

Trang 26

select count(MaDa) as 'Số dự án' from tblDuanselect * from vw_15solgduan

Trang 27

select * from tblNhanvien

where TenNv = @tennv

exec proc_1timnhanvien N'Nguyễn Đình Văn'

2 Tổng tiền lg của 1 nhân viên bất kỳ

create proc proc_2tongtienlg

@manv nvarchar(20)

as

select MaNV, Luong as'Lương' from tblNhanvien

where MaNV=@manv

exec proc_2tongtienlg @manv=N'001'

3 Tạo proc cho biết các nhân viên và tuổi của nhân viêncreate proc proc_3tuoinv

@manv nvarchar(20)

as

Trang 28

select MaNV as'Mã NV', TenNv as 'Tên nhân viên' ,year(GETDATE())- year(Ngaysinh) as 'Tuổi' from tblNhanvienwhere MaNV=@manv

exec proc_3tuoinv @manv=N'001'

4 Tạo proc cho biết danh sách các mã dự án mà nhân viên có

where MaDa not in (select MaDa from tblPhancong

where MaNV = @manv)

exec proc_4duanchualam @manv=N'001'

5 Cho biết tên các dự án mà nhân viên đã tham gia

create proc proc_5duanthamgia

@tennv nvarchar(50)

as

Trang 29

select TenDa as 'Tên Dự Án' from tblNhanvien, tblPhancong,tblDuan

where TenNv= @tennv and tblNhanvien.MaNV=tblPhancong.MaNV and tblPhancong.MaDa= tblDuan.MaDa exec proc_5duanthamgia @tennv=N'Đinh Quốc Đạt'

6 Tạo proc cho biết địa chỉ của nv

create proc proc_6diachi

@diachi nvarchar(50)

as

select TenNv as 'tên nhân viên' , Diachi as 'Địa chỉ' fromtblNhanvien

where Diachi = @diachi

exec proc_6diachi @diachi=N'Thái Bình'

7 Với mỗi dự án, cho biết có bao nhiêu nhân viên tham gia dự

án đó

create proc proc_7duancobnnv

@tenda nvarchar(50)

as

select TenDa, count(MaNV) as 'số lg nv tham gia'

from tblDuan, tblPhancong, tblCongviec

Ngày đăng: 20/09/2023, 15:42

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w