Câu 2:Mô hình dữ liệu quan hệ Câu 3: CÁC PHÉP TOÁN ĐẠI SỐ QUAN HỆπ MaPB, TenPB, HoTen, NgaySinh σ MaPB=''''PB01'''' NhanVien ⨝ NhanVien.MaPB= PhongBan.MaPB PhongBan... WHERE nv.MANV pc= .MA
Trang 1TRƯỜNG ĐẠI HỌC DUY TÂN TRƯỜNG KHOA HỌC MÁY TÍNH
KHOA CÔNG NGHỆ THÔNG TIN
Trang 2ĐỀ TÀI SỐ 01 QUẢN LÝ LAO ĐỘNG
Thành viên nhóm:
1 Phạm Vũ Khánh Trường
2 Phan Đức Tài
3 Văn Nguyễn Khánh Nhi
4 Nguyễn Lê Anh Tuấn
Bài làm:
Câu 1:
Mô hình thực thể liên kết.
Trang 3 Câu 2:
Mô hình dữ liệu quan hệ
Câu 3: CÁC PHÉP TOÁN ĐẠI SỐ QUAN HỆ
π MaPB, TenPB, HoTen, NgaySinh (σ MaPB='PB01' (NhanVien ⨝
NhanVien.MaPB= PhongBan.MaPB (PhongBan))
Trang 4π MaNV, HoTen, SLNgayCong (NhanVien ⨝
NhanVien.MaNV=CongTrinh.MaNV ^ MACT = ‘CT01’ (CongTrinh ⨝CongTrinh.MaCT = PHANCONG.MaCT (PHANCONG))
3.7
ThongKeTheoCT(MaCT, TenCT, TongSLNgayCong ) (MaCT, TenCT) I
Sum(SLNgayCong) (CongTrinh CongTrinh.MACT = PHANCONG.MACT ^ ⨝NgayHT!='NULL' (PHANCONG))
3.8
π MaNV, HoTen, MaCT, YEAR(DATE()) – YEAR(NGAYSINH) as ‘Tuổi ’ (σ Phai=N'Nữ' YEAR(DATE()) – YEAR(NGAYSINH) < 18 (NhanVien ∧ ⨝MaNV=MaNV (CongTrinh))
3.9
π SUM(SLNGAYCONG) (PHANCONG)
3.10
a NHANVIEN ⨝ NHANVIEN.MAPB = PHONGBAN.MAPB (PHONGBAN)
b PHANCONG PHANCONG.MANV = a.MANV (a) ⨝
c σ TENPB = N‘Phòng Tổng hợp’ (b)
luongCaoNhat(MAPB, TENPB, LUONG_MAX) (MAPB, TENPB) I
MAX(SLNGAYCONG/26 * HSL * 3.000.000) ( c )
3.11
a NHANVIEN NHANVIEN.MAPB = PHONGBAN.MAPB (PHONGBAN) ⨝
b PHANCONG PHANCONG.MANV = a.MANV (a) ⨝
(MAPB, TENPB)I MIN(AVG(SLNGAYCONG/26 * HSL * 3.000.000)) (b)
Trang 5a NHANVIEN NHANVIEN.MAPB = PHONGBAN.MAPB (PHONGBAN) ⨝
b PHANCONG PHANCONG.MANV = a.MANV (a) ⨝
a NHANVIEN NHANVIEN.MAPB = PHONGBAN.MAPB (PHONGBAN) ⨝
b PHANCONG PHANCONG.MANV = a.MANV (a) ⨝
luong(MANV, TENNV, TENPB, NGAYCONG, HSL, NGAYCONG/26 * HSL *
3 000 000 ) (MANV) I SUM(SLNGAYCONG) (b)
3.16
a NHANVIEN NHANVIEN.MAPB = PHONGBAN.MAPB (PHONGBAN) ⨝
b PHANCONG PHANCONG.MANV = a.MANV (a) ⨝
tongLuong(PHAI, TONGLUON) (PHAI) I SUM(SLNGAYCONG/26 * HSL *
Trang 6b σ TENPB = N’Phòng kỹ thuật’ (a)
Π HSL*1.5 (b)
3.19
σ NGAYCAPGP = ‘NULL’ ^ NGAYKC <= DATE() (CONGTRINH)
3.20
a NHANVIEN NHANVIEN.MAPB = PHONGBAN.MAPB (PHONGBAN) ⨝
b PHANCONG PHANCONG.MANV = a.MANV (a) ⨝
NVCAONHAT(MAPB, MANV, TENPB, TENNV,LUONG)
CREATE TABLE PHONGBAN(
MAPB CHAR(5)NOT NULL,
TENPB NVARCHAR( )50 NOT NULL,
PRIMARY KEY(MAPB)
);
Bả ng NHANVIEN
CREATE TABLE NHANVIEN(
MANV chảr(5)NOT NULL,
HOTEN nvảrchảr( )50 not null,
NGAYSINH dảtenotnull,
PHAI nvảrchảr(5)not null,
DIACHI nvảrchảr(50),
HSL FLOATNOTNULL,
MAPB CHAR(5)NOT NULL,
PRIMARY KEY(MANV),
FOREIGN KEY(MAPB)REFERENCES PHONGBAN(MAPB)
);
Trang 7Bả ng CONGTRINH
CREATE TABLE CONGTRINH(
MACT CHAR(5)NOT NULL,
TENCT NVARCHAR( )50 NOT NULL,
NGAYCAPGP DATENOTNULL,
CREATE TABLE DIADIEM(
MACT CHAR(5)NOT NULL,
DIADIEM NVARCHAR(50) NOTNULL,
PRIMARY KEY(MACT,DIADIEM),
FOREIGN KEY(MACT)REFERENCES CONGTRINH(MACT));
Bả ng PHANCONG
CREATE TABLE PHANCONG(
MANV CHAR(5)NOT NULL,
MACT CHAR(5)NOT NULL,
SLNGAYCONG INT,
FOREIGN KEY(MANV)REFERENCES NHANVIEN(MANV),
FOREIGN KEY(MACT)REFERENCES CONGTRINH(MACT));
4.2:
BẢNG PHONGBAN:
Trang 8BẢNG NHANVIEN:
Trang 9BẢNG CONGTRINH:
Trang 10BẢNG DIADIEM:
Trang 11BẢNG PHANCONG:
Trang 12SELECT pb.MảPB, pb TenPB nv , HoTen, nv NgảySinh.
FROM NhảnVien nv PhongBản pb,
INSERT INTO THONG_KE_3_6(MANV,HOTEN,SONGAYCONG)
SELECT nv.MảNV, nv HoTen pc , SLNgảyCong
FROM NhảnVien nv PHANCONG pc,
WHERE nv.MảNV pc= MảNV AND pc.MACT ='CT01';
Trang 13INSERT INTO THONG_KE_3_7(MACT,TENCT,TONGSLNGAYCONG)
SELECT ct.MảCT, ct TenCT ,SUM( pc SLNgảyCong )AS
TongSLNgảyCong
FROM CongTrinh ct, PHANCONG pc
WHERE ct.MảCT pc= MảCT AND ct.NGAYHT IS NOT NULL
INSERT INTO THONG_KE_3_8(MANV,HOTEN,MACT TUOI, )
SELECT nv.MảNV, nv HoTen pc , MảCT ,YEAR GETDATE( ()) - YEAR(nv NgảySinh )AS Tuoi
FROM NhảnVien nv PHANCONG pc,
WHERE nv.MảNV pc= MảNV AND nv.Phải =N'Nữ'AND
YEAR GETDATE( ())-YEAR(nv NgảySinh )< 18;
Trang 14WHERE nv.MANV pc= MANV ảnd pb.MAPB = nv MAPB AND TENPB
=N'Phòng Tổ ng hợp'
GROUP BY pc.MANV, HSL
ORDER BY LuongMảx DESC
3.11
SELECT top 1 pb.MAPB, pb TENPB ,(SUM(pc.SLNGAYCONG 26 )/
* nv.HSL 3000000* )/COUNT( nv MANV luongTrungBinh)ảs
FROM PHONGBAN pb NHANVIEN nv, , PHANCONG pc
WHERE pb.MAPB nv= MAPB ảnd nv.MANV = pc MANV
GROUP BY pb.MAPB, pb TENPB HSL ,
ORDER BY luongTrungBinh
3.12
SELECT pb.MAPB, pb TENPB ,SUM( pc SLNGAYCONG 26 )/ *
nv.HSL 3000000 * ảs tongLuong
FROM PHONGBAN pb NHANVIEN nv, , PHANCONG pc
WHERE pb.MAPB nv= MAPB ảnd nv.MANV = pc MANV
GROUP BY pb.MAPB, pb TENPB HSL ,
FROM NHANVIEN nv PHANCONG pc, , PHONGBAN pb
WHERE nv.MANV pc= MANV ảnd nv.MAPB = pb MAPB
GROUP BY nv.MANV, HOTEN, HSL TENPB,
Trang 15SELECT PHAI ,SUM(SLNGAYCONG / 26 * HSL * 3000000)ASLUONG
FROM NHANVIEN NV PHANCONG PC,
WHERE NV.MANV PC= MANV
GROUP BY PHAI;
3.17
DELETE FROM CONGTRINH
WHERE NGAYKC IS NULL OR NGAYKC >GETDATE()
FROM PHONGBAN PB NHANVIEN NV,
WHERE NV.MAPB PB= MAPB AND TENPB =N'Phòng Kỹ thuật'
FROM NHANVIEN NV PHONGBAN PB, , PHANCONG PC
WHERE NV.MANV PC= MANV AND PB.MAPB = NV MAPB
GROUP BY TENPB HOTEN,
Trang 16FROM PHONGBAN PB NHANVIEN NV, , PHANCONG PC DIADIEM DD,
WHERE DD.DIADIEM =N'Đà Nẵ:ng'AND PB MAPB NV MAPB = AND
NV.MANV = PC.MANV
GROUP BY PB.MAPB, TENPB
HAVINGSUM(SLNGAYCONG) 50>
4.6
SELECT NV.MANV, HOTEN,SUM(SLNGAYCONG)AS NGAY_CONG ,
CASE
WHENSUM(SLNGAYCONG )BETWEEN AND 0 10 THEN'F'
WHENSUM(SLNGAYCONG )BETWEEN 11 AND 20 THEN'D'
WHENSUM(SLNGAYCONG )BETWEEN 21 AND 30 THEN'C'
WHENSUM(SLNGAYCONG )BETWEEN 31 AND 40 THEN'B'
WHENSUM(SLNGAYCONG )>= 41 THEN'A'
ENDAS XEPLOAI,
CASE
WHENSUM(SLNGAYCONG )BETWEEN AND 0 10 THEN 0 WHENSUM(SLNGAYCONG )BETWEEN 11 AND 20 THEN500000
WHENSUM(SLNGAYCONG )BETWEEN 21 AND 30 THEN1000000
WHENSUM(SLNGAYCONG )BETWEEN 31 AND 40 THEN1500000
WHENSUM(SLNGAYCONG )>= 41 THEN 2000000
ENDAS THUONG
FROM NHANVIEN NV PHANCONG PC,
WHERE NV.MANV PC= MANV
GROUP BY NV.MANV, HOTEN
Trang 17FROM NHANVIEN NV PHANCONG PC,
WHERE NV.MANV PC= MANV
GROUP BY MAPB NV, MANV, HOTEN
CREATE VIEW NGAY_CONG_CAO_NHAT
AS
SELECT MAPB ,MAX(SO_NGAY_CONG)AS CAO_NHAT
FROM BANG_NGAY_CONG
GROUP BY MAPB
SELECT MANV HOTEN SO_NGAY_CONG, ,
FROM BANG_NGAY_CONG BC, NGAY_CONG_CAO_NHAT NCWHERE SO_NGAY_CONG CAO_NHAT = AND BC.MAPB = NC MAPB
GROUP BY NC.MAPB, MANV, HOTEN, SO_NGAY_CONG
JOIN CONGTRINH CT ON PC.MACT = CT MACT
JOIN DIADIEM DD ON DD MACT CT = MACT
Trang 184.9
DELETE FROM NHANVIEN
WHERE MANV NOT IN(
PHONGBAN (MAPB, TENPB)
NHANVIEN (MANV, HOTEN, PHAI, NGAYSINH, DIACHI, HSL, MAPB) CONGTRINH (MACT, TENCT, NGAYCAPGP, NGAYKC, NGAYHT) DIADIEM (MACT, DIADIEM, …)
PHANCONG (MANV, MACT, SLNGAYCONG)
Các Ràng buộc toàn vẹn và bảng tầm ảnh hưởng:
Trang 19-RB_2: NHANVIEN(MAPB) ⊆ PHONGBAN(MAPB)
RB_3: Ngày hoàn thành công trình phải lớn hơn ngày khởi công
Với r là quan hệ bất kỳ trên lược đồ quan hệ CONGTRINH:
∀ t ∈ r
t1.NGAYKC < t1.NGAYHT
-RB_4: Nhân viên có giới tính là nam hoặc nữ
Với r là quan hệ bất kì trên lược đồ quan hệ NHANVIEN
∀ t ∈ r : t.PHAI ∈ {N ‘Nam’ ,N ‘Nữ’ }
-RB_5: Mỗi nhân viên chỉ thuộc một phòng ban.
Với r là quan hệ bất kì trên lược đồ quan hệ NHANVIEN ∀ t ∈ r : MANV ( ) → MAPB ( ) π t π t
Trang 20-RB_6: Mỗi công trình chỉ có một ngày cấp giấy phép xây dựng
Với r là quan hệ bất kì trên lược đồ quan hệ CONGTRINH
Với r là quan hệ bất kì trên lược đồ quan hệ PHANCONG
∀ t ∈ r : SLNGAYCONG ( ) ≤ NGAYHT ( ) − NGAYKC ( ) π t π t π t
-RB_8: Lương của mỗi nhân viên được tính dựa trên hệ số lương và số ngày công.
Với t1 là quan hệ bất kì trên lược đồ quan hệ NHANVIEN,
Với t2 là quan hệ bất kì trên lược đồ quan hệ PHANCONG
t1,t2 : ∀ t ∈ πLUONG(t) = ∑ p∈ PHANCONG , MANV26=t πSLNGAYCONG ( p)
Trang 21Với t1 là quan hệ bất kì trên lược đồ quan hệ CONGTRINH,
Với t2 là quan hệ bất kì trên lược đồ quan hệ PHANCONG
∀ t ∈ r: ∑ p ∈∈∈∈∈ PHANCONG , MACT = tπSLNGAYCONG ( ) ≤ NGAYHT ( ) − p π t πNGAYKC ( ) t