Tiếp theo, em xin cảm ơn khoa Công Nghệ Thông Tin của trường Đại Học Tôn Đức Thắng đã tạo điều kiện về cơ sở vật chât, tài liệu bổ ích cho em học tập môn học này.. ĐỒ ÁN ĐƯỢC HOÀN THÀNH
Trang 1LỜI CẢM ƠN
Đầu tiên, em xin gửi lời cảm ơn chân thành và lòng biết ơn sâu sắc đến cô Trần Thị Bích Vân Cô là người đã luôn hỗ trợ và hướng dẫn tận tình cho em trong suốt quá
trình học tập và hoàn thành bài nghiên cứu với đề tài “Phân tích và thiết kế hệ thống quản lý cửa hàng vật liệu xây dựng".
Tiếp theo, em xin cảm ơn khoa Công Nghệ Thông Tin của trường Đại Học Tôn Đức Thắng đã tạo điều kiện về cơ sở vật chât, tài liệu bổ ích cho em học tập môn học này
Bài làm của em còn nhiều thiếu sót và em mong nhận được sự đóng góp của thầy, cô để em củng cố kiến thức của bản thân và hoàn thiện hệ thống tốt hơn
Trang 2ĐỒ ÁN ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG
Tôi xin cam đoan đây là sản phẩm đồ án của riêng tôi và được sự hướng dẫn của
cô Trần Thị Bích Vân; Các nội dung nghiên cứu, kết quả trong đề tài này là trung thực
và chưa công bố dưới bất kỳ hình thức nào trước đây Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo
Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như số liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm
về nội dung đồ án của mình Trường đại học Tôn Đức Thắng không liên quan đến
những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện (nếu có)
TP Hồ Chí Minh, ngày tháng năm
Tác giả (ký tên và ghi rõ họ tên)
Dương Thủy Tiên
Trang 3Phần đánh giá của GV chấm bài
_ _ _ _ _ _ _
Tp Hồ Chí Minh, ngày tháng năm
(kí và ghi họ tên)
Trang 4MỤC LỤC
LỜI CẢM ƠN i
MỤC LỤC 1
PHẦN 1 – 2
Câu 1 2
Câu 2 2
… 2
PHẦN 2 3
Câu 1 3
PHẦN 3 4
Câu 1 4
Trang 5PHẦN 1 –
Câu 1
Câu 1a:
CREATE DATABASE QLNHANVIEN
USE QLNHANVIEN
CREATE TABLE NHANVIEN (
MANV CHAR ( ),
HOTEN NVARCHAR ( 35 ),
NGAYSINH DATE ,
DCHI NVARCHAR ( 100 ),
PHAI NVARCHAR ( ),
LUONG MONEY ,
MAPB CHAR ( ),
PRIMARY KEY ( MANV )
)
CREATE TABLE THANNHAN (
MANV CHAR ( ),
TENTN NVARCHAR ( 35 ),
PHAI NVARCHAR ( ),
NGAYSINH DATE ,
QUANHE NVARCHAR ( 15 ),
PRIMARY KEY ( MANV , TENTN )
)
CREATE TABLE PHONGBAN (
MAPB CHAR ( ),
DIADIEM NVARCHAR ( 100 ),
PRIMARY KEY ( MAPB )
)
CREATE TABLE DUAN (
MADA CHAR ( ),
TENDA NVARCHAR ( 100 ),
DIADIEM NVARCHAR ( 100 ),
MAPB CHAR ( ),
PRIMARY KEY ( MADA )
)
CREATE TABLE PHANCONG (
MANV CHAR ( ),
MADA CHAR ( ),
THOIGIAN FLOAT CHECK ( THOIGIAN >= 0 ) PRIMARY KEY ( MANV , MADA )
)
ALTER TABLE NHANVIEN
Trang 6ALTER TABLE THANNHAN
ADD CONSTRAINT FK_THANHNHAN_MANV FOREIGN KEY ( MANV ) REFERENCES NHANVIEN ( MANV )
ALTER TABLE PHANCONG
ADD CONSTRAINT FK_PHANCONG_MANV FOREIGN KEY ( MANV ) REFERENCES NHANVIEN ( MANV )
ALTER TABLE PHANCONG
ADD CONSTRAINT FK_PHANCONG_MADA FOREIGN KEY ( MADA ) REFERENCES DUAN ( MADA )
Câu 1b:
SET DATEFORMAT DMY
INSERT INTO PHONGBAN VALUES
( 'NS0001' , N'Lầu 1' ),
( 'TC0002' , N'Lầu 2' ),
( 'KT0003' , N'Lầu 3' ),
( 'MA0004' , N'Lầu 4' ),
( 'PR0005' , N'Lầu 5' )
INSERT INTO NHANVIEN VALUES
( 'NV0001' , N'Trần Thị Hải' , '25/06/1995' , N'12- Nguyễn Du- Quận 2, TP
HCM' , N'Nữ' , 10000000 , 'MA0004' ),
( 'NV0002' , N'Lê Văn An' , '15/12/1966' , N'02- Trần Phú- Quận 1, TP
HCM' , N'Nam' , 12000000 , 'KT0003' ),
( 'NV0003' , N'Nguyễn Dương Nam' , '17/05/1975' , N'111- Huỳnh Khúc Kháng- Quận Thủ Đức, TP HCM' , N'Nam' , 15000000 , 'NS0001' ),
( 'NV0004' , N'Đinh Thị Kiều' , '01/04/1992' , N'1A- Lê Thánh Tông- Quận 12, TP
HCM' , N'Nữ' , 10000000 , 'PR0005' ),
( 'NV0005' , N'Vương Nhất Bác' , '14/02/1991' , N'3- Nguyễn Huệ- Quận 6, TP
HCM' , N'Nam' , 11000000 , 'NS0001' )
INSERT INTO THANNHAN VALUES
( 'NV0001' , N'Trần Hải Đường' , N'Nam' , '15/06/1965' , N'Bố' ),
( 'NV0002' , N'Phạm Kiều Tiên' , N'Nữ' , '02/01/1969' , N'Vợ' ),
( 'NV0003' , N'Lê Thị Lành' , N'Nữ' , '12/12/1995' , N'Con' ),
( 'NV0004' , N'Lương Thanh Tâm' , N'Nữ' , '15/03/1967' , N'Mẹ' ),
( 'NV0005' , N'Dương Thủy Tiên' , N'Nữ' , '21/04/2001' , N'Vợ' )
INSERT INTO DUAN VALUES
( 'DA0001' , N'Dự án tháng 1' , N'Quận 2' , 'NS0001' ),
( 'DA0002' , N'Dự án Xuân Hè' , N'Quận Thủ Đức' , 'MA0004' ),
( 'DA0003' , N'Dự án Trăng Rằm' , N'Quận 7' , 'PR0005' ),
( 'DA0004' , N'Dự án tháng 4' , N'Quận 1' , 'TC0002' ),
( 'DA0005' , N'Dự án cuối năm' , N'Quận 5' , 'KT0003' )
INSERT INTO PHANCONG VALUES
( 'NV0001' , 'DA0002' , 15 ),
( 'NV0002' , 'DA0005' , 14 ),
( 'NV0005' , 'DA0001' , ),
( 'NV0004' , 'DA0002' , 15 ),
Trang 7( 'NV0003' , 'DA0005' , 14 ),
( 'NV0005' , 'DA0005' , 14 )
Câu 2
Câu 2a:
SELECT MADA
FROM ( SELECT COUNT ( MADA ) AS 'TONGNV' , MADA FROM PHANCONG GROUP BY MADA ) AS KQ1
WHERE KQ1 TONGNV = ( SELECT MAX ( TONGNV ) AS 'M' FROM ( SELECT COUNT ( MADA ) AS 'TONGNV' , MADA FROM PHANCONG GROUP BY MADA ) AS KQ2 )
Câu 2b:
SELECT NHANVIEN MANV , PHANCONG MADA
FROM NHANVIEN
FULL OUTER JOIN PHANCONG
ON NHANVIEN MANV = PHANCONG MANV
Câu 3
Câu 3a:
CREATE FUNCTION CAU3A ( @MANV CHAR ( ))
RETURNS INT
AS
BEGIN
RETURN ( SELECT COUNT ( MADA ) FROM PHANCONG WHERE MANV = @MANV )
END
Câu 3b:
SELECT FUNCTION CAU3B ()
RETURNS @CAU3B TABLE (
ID INT IDENTITY ( , ) PRIMARY KEY ,
MSNV CHAR ( ),
HOTEN NVARCHAR ( 35 ),
TENTN NVARCHAR ( 35 ),
TONGDA INT ,
TONGTG FLOAT )
AS
BEGIN
INSERT INTO @CAU3B
SELECT NV MANV , NV HOTEN , TN TENTN , COUNT ( PC MADA ) AS TONGDA , SUM ( PC THOIGIAN ) AS TONGTG
FROM NHANVIEN NV , THANNHAN TN , PHANCONG PC WHERE NV MANV = TN MANV AND NV MANV = PC MANV GROUP BY NV MANV , NV HOTEN , TN TENTN
ORDER BY TONGDA DESC , TONGTG ASC RETURN
END
Trang 8Câu 4
Câu 4a:
CREATE PROC CAU4A ( @MANV CHAR ( ), @HOTEN NVARCHAR ( 35 ), @NGAYSINH DATE , @DCHI
NVARCHAR ( 100 ), @PHAI NVARCHAR ( ), @LUONG MONEY , @MAPB CHAR ( ))
AS
BEGIN
IF EXISTS SELECT MANV FROM NHANVIEN WHERE @MANV = MANV )
PRINT N'KHÓA CHÍNH ĐÃ TỒN TẠI!'
ELSE
IF NOT EXISTS( SELECT MAPB FROM PHONGBAN WHERE @MAPB = MAPB )
PRINT N'KHÓA NGOẠI KHÔNG TỒN TẠI!'
ELSE
INSERT INTO NHANVIEN VALUES ( @MANV , @HOTEN , @NGAYSINH , @DCHI , @PHAI , @LUONG , @MAPB ) END
Câu 4b:
CREATE PROC CAU4B
AS
BEGIN
UPDATE NHANVIEN
SET LUONG = LUONG + 20000000
WHERE MANV IN SELECT KQ1 MANV FROM ( SELECT MANV , COUNT ( MANV ) AS C FROM THANNHAN GROUP BY MANV ) AS KQ1 WHERE KQ1 C >= 3 )
UPDATE NHANVIEN
SET LUONG = LUONG + 10000000
WHERE MANV IN SELECT KQ1 MANV FROM ( SELECT MANV , COUNT ( MANV ) AS C FROM THANNHAN GROUP BY MANV ) AS KQ1 WHERE KQ1 C BETWEEN 1 AND 2 )
END
Câu 5
Câu 5a:
CREATE TRIGGER CAU5A
ON NHANVIEN
INSTEAD OF DELETE
AS
IF ( SELECT MANV FROM DELETED ) IN SELECT MANV FROM THANNHAN )
BEGIN
RAISERROR ( 'KHONG THE XOA VI CO THAN NHAN' , 16 , ) ROLLBACK TRAN
END
Câu 5b:
CREATE TRIGGER CAU5B
ON PHANCONG
Trang 9FOR INSERT
AS
IF EXISTS SELECT NHANVIEN MANV
FROM NHANVIEN
INNER JOIN INSERTED
ON NHANVIEN MANV = INSERTED MANV WHERE (( YEAR ( GETDATE ()) YEAR ( NHANVIEN NGAYSINH )) 30 ) AND INSERTED THOIGIAN >= 100 ))
BEGIN
IF EXISTS SELECT MANV FROM INSERTED WHERE THOIGIAN >= 100 )
BEGIN RAISERROR ( 'KHONG DU TUOI' , 16 , ) ROLLBACK TRAN
END END
Trang 10PHẦN 2
Câu 1
Câu 2
….
Trang 11PHẦN 3
Câu 1
Câu 2