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ÂNTRƯỜNG KHOA HỌC MÁY TÍNH
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN CÁ NHÂN
MÔN HỌC:
IS 301 Q: CƠ SỞ DỮ LIỆU
GIẢNG VIÊN HƯỚNG DẪN : NGUYỄN DŨNGSINH VIÊN THỰC HIỆN: NHÓM 1LỚP MÔN HỌC: IS 301 QLỚP SINH HOẠT: K28HP - TBM
ĐIỂM SỐĐIỂM CHỮGIÁM KHẢO
Trang 23 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))
ThongKeTheoCT(MaCT, TenCT, TongSLNgayCong ) (MaCT, TenCT) I
Sum(SLNgayCong) (CongTrinh CongTrinh.MACT = PHANCONG.MACT ^ ⨝ NgayHT!='NULL' (PHANCONG))
π MaNV, HoTen, MaCT, YEAR(DATE()) – YEAR(NGAYSINH) as ‘Tuổi ’ (σ Phai=N'Nữ' YEAR(DATE()) – YEAR(NGAYSINH) < 18 (NhanVien ∧ ⨝ MaNV=MaNV (CongTrinh))
π SUM(SLNGAYCONG) (PHANCONG)
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 )
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)
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)
σ NGAYCAPGP = ‘NULL’ ^ NGAYKC <= DATE() (CONGTRINH)
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) );
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 ,
SELECT nv.MANV, nv HOTEN TENPB , ,sum(SLNGAYCONG )ảs SoNgảyCong, HSL ,sum(SLNGAYCONG) 26 / * HSL 3000000 *
ảs Luong
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)AS LUONG
FROM NHANVIEN NV PHANCONG PC,
WHERE NV.MANV PC= MANV GROUP BY PHAI;
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ỹ
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>
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 THEN
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 NC WHERE 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 18DELETE 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 ∀ t ∈ r : MACT ( ) → NGAYCAPGP ( ) π t π t
-RB_7: Tổng số ngày công của mỗi nhân viên trong một công trình không vượt quá thời gian tồn tại của công trình đó.
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) ×πHSL(t)×3,000,000
-RB_9: Tổng số ngày công của một công trình không vượt quá thời giantồn tại của công trình đó
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