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

BÁO cáo CUỐI kỳ môn hệ cơ sở dữ LIỆU viết các câu lệnh SQL để thực hiện các thao tác sau

19 3 0

Đ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 đề Báo Cáo Cuối Kỳ Môn Hệ Cơ Sở Dữ Liệu
Tác giả Quách Thịnh
Người hướng dẫn GV Trần Thanh Phước
Trường học Trường Đại Học Tôn Đức Thắng
Chuyên ngành Hệ Cơ Sở Dữ Liệu
Thể loại báo cáo
Năm xuất bản 2021
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 19
Dung lượng 532,23 KB

Nội dung

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CUỐI KỲ MÔN HỆ CƠ SỞ DỮ LIỆU [] Người hướng dẫn: GV Trần Thanh Phước Người thực hiện: Quách Thịnh - 51800814 Lớp : 18050203 Khoá THÀNH PHỐ HỒ CHÍ MINH, NĂM 2021 0 : 22 TỔNG LIÊN ĐỒN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TƠN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CUỐI KỲ MÔN HỆ CƠ SỞ DỮ LIỆU [] Người hướng dẫn: GV Trần Thanh Phước Người thực hiện: Quách Thịnh - 51800814 Lớp : 18050203 Khố THÀNH PHỐ HỒ CHÍ MINH, NĂM 2021 0 : 22 BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau i LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành tri ân sâu sắc tới toàn thể quý thầy cô, giảng viên, viên chức giảng dạy làm việc trường Đại học Tôn Đức Thắng, đặc biệt quý thầy cô Khoa Công nghệ thông tin tạo điều kiện thời gian tận tình giúp đỡ em trình thực báo cáo trình học tập trường Trên hết, em xin tỏ lòng biết ơn sâu sắc đến thầy Nguyễn Văn Phước – Giảng viên Khoa Công nghệ thơng tin hết lịng giảng dạy, truyền đạt kiến thức quý báu đến tất sinh viên nói chung thân em nói riêng cách tận tình nghiêm túc Nhờ lượng kiến thức thầy truyền đạt mà giúp em hoàn thành thuận lợi báo cáo nói riêng vững vàng lượng kiến thức khổng lồ môn học Trong trình thực báo cáo, lượng kiến thức kinh nghiệm thực tiễn hạn chế nên kết cịn nhiều thiếu sót, em kính mong nhận ý kiến đóng góp thầy đề từ thân em cải thiện kỹ trình báo cách tinh tế chuẩn mực báo cáo tới Kinh chúc thầy có nhiều sức khỏe thành cơng cơng việc Em xin chân thành cảm ơn! 0 BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau ii ĐỒ ÁN ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC TƠN ĐỨC THẮNG Tơi xin cam đoan sản phẩm đồ án riêng hướng dẫn TS Nguyễn Văn A; Các nội dung nghiên cứu, kết đề tài trung thực chưa cơng bố hình thức trước Những số liệu bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá tác giả thu thập từ nguồn khác có ghi rõ phần tài liệu tham khảo Ngồi ra, đồ án cịn sử dụng số nhận xét, đánh số liệu tác giả khác, quan tổ chức khác có trích dẫn thích nguồn gốc Nếu phát có gian lận tơi xin hồn toàn chịu trách nhiệm nội dung đồ án Trường đại học Tơn Đức Thắng khơng liên quan đến vi phạm tác quyền, quyền gây q trình thực (nếu có) TP Hồ Chí Minh, ngày 18 tháng năm 2021 Tác giả (ký tên ghi rõ họ tên) Quách Thịnh 0 BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau iii Phần đánh giá GV chấm _ _ _ _ _ _ _ Tp Hồ Chí Minh, ngày tháng năm (kí ghi họ tên) 0 BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau MỤC LỤC LỜI CẢM ƠN .i Phần đánh giá GV chấm iii MỤC LỤC PHẦN – Tạo bảng thực câu lệnh SQL Câu 1: Viết câu lệnh SQL để thực thao tác sau: a Tạo Cơ sở liệu, tạo bảng có ràng buộc khó khóa ngoại b Thêm liệu cho bảng theo trình tự bên trước bên nhiều sau Mỗi bảng dòng liệu Câu 2: Viết câu lệnh SQL thực yêu cầu: a Cho biết án có nhiều nhận viên tham gia ORDER BY COUNT(MADA) DESC .5 b Liệt kê tất nhân viên mã án mà nhân viên tham gia, nhân viên chưa tham giá dự án cột Mã án để trống (null) .5 ORDER BY NHANVIEN.MANV Câu 3: Viết hàm : a Viết hàm trả số lượng dự án mà nhân viên tham gia Cho biết: Hàm có tham số đầu vào Mã nhân viên SELECT * FROM CAU3A('NV03') b Viết hàm trả danh sách gồm: Mã nhân viên, tên nhân viên, tên thân nhân nhân viên, tổng số dự án tham gia, tổng số thời gian tham gia Danh sách giảm dần theo tổng số dự án, tổng số dự án tăng dần theo tổng số thời gian tham gia Câu : Viết thủ tục : .6 a Thêm vào nhân viên, có kiểm tra khóa chính, khóa ngoại .6 EXEC CAU4A 'NV12', N'Đ ường Đ ại Hi ệp', '6/3/1989', N'Ngũ Hành S ơn', N'Nam', '12000000', 'XAYDUNG' 0 BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau b Tăng lương cho nhân viên có từ thân nhân trở lên thêm 20.000.000 đồng Tăng 10.000.000 đồng cho nhân viên có từ đến thân nhân EXEC CAU4B .7 Câu : Viết trigger : .7 a Xố nhân viên đó, nhân viên có thân nhân khơng xố b Thêm liệu vào bảng Phân công theo ràng buộc sau: nhân viên >= 30 tuổi tham gia dự án từ 100 ngày trở lên PHẦN – Thực yêu cầu lược đồ quan hệ .9 Câu : Tìm tất khóa (khóa dự tuyển) lược đồ quan hệ .9 Câu : Tìm phủ tối thiểu tập phụ thuộc hàm Câu : Xác định dạng chuẩn cao lược đồ quan hệ 10 Câu : Nếu lược đồ quan hệ chưa đạt dạng chuẩn BC, đưa lược đồ dạng chuẩn BC 10 PHẦN – Thực vẽ mơ hình ERD, chuyển mơ hình ERD sang mơ hình quan hệ.13 Câu 1: Viết đặc tả .13 Câu 2: Vẽ ERD 13 Câu 3: Chuyển ERD sang mơ hình quan hệ .13 0 BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau PHẦN – Tạo bảng thực câu lệnh SQL Cho lược đồ CSDL sau: NHANVIEN (MANV, HOTEN, NGAYSINH, DCHI, PHAI, LUONG, MAPB) Tân từ: Mỗi nhân viên có mã số nhân viên, họ tên, ngày sinh, địa chỉ, giới tính (PHAI), có mức lương (LUONG) thuộc vào phòng ban (MAPB) THANNHAN (MANV, TENTN, PHAI, NGAYSINH, QUANHE) Tân từ: Bảng THANNHAN lưu trữ thông tin người thân nhân viên bao gồm mã nhân viên, tên nhân nhân (TENTN), giới tính, ngày sinh quan hệ (QUANHE) với nhân viên PHONGBAN (MAPB, DIADIEM) DUAN (MADA, TENDA, DIADIEM, MAPB) Tân từ: Mỗi dự án có mã dự án (MADA) nhất, tên dự án, địa điểm thực dự án, phòng ban (MAPB) phụ trách PHANCONG (MANV, MADA, THOIGIAN) Tân từ: Mỗi nhân viên phân công tham gia nhiều dự án, thời gian tham gia dự án nhân viên (đơn vị tính Ngày) Câu 1: Viết câu lệnh SQL để thực thao tác sau: a Tạo Cơ sở liệu, tạo bảng có ràng buộc khó khóa ngoại CREATE DATABASE BAOCAOCUOIKI USE BAOCAOCUOIKI CREATE TABLE PHONGBAN ( MAPB VARCHAR(10) PRIMARY KEY, DIADIEMPB NVARCHAR(100) ) CREATE TABLE DUAN ( MADA VARCHAR(10) PRIMARY KEY, TENDA NVARCHAR(50), DIADIEMAD NVARCHAR(100), MAPB VARCHAR(10) FOREIGN KEY REFERENCES PHONGBAN(MAPB) ) CREATE TABLE NHANVIEN ( MANV VARCHAR(10) PRIMARY KEY, HOTEN NVARCHAR (50), NGAYSINH DATE, DCHI NVARCHAR(100), PHAI NVARCHAR(10), LUONG INT, 0 BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau MAPB VARCHAR(10) FOREIGN KEY REFERENCES PHONGBAN(MAPB) ) CREATE TABLE THANNHAN ( MANV VARCHAR(10) FOREIGN KEY REFERENCES NHANVIEN(MANV), TENTN NVARCHAR (50), PHAITN NVARCHAR(10), NGAYSINHTN DATE, QUANHE NVARCHAR(20), PRIMARY KEY (MANV, TENTN) ) CREATE TABLE PHANCONG ( MANV VARCHAR(10) FOREIGN KEY REFERENCES NHANVIEN(MANV), MADA VARCHAR(10) FOREIGN KEY REFERENCES DUAN(MADA), THOIGIAN INT, PRIMARY KEY (MANV, MADA) ) b Thêm liệu cho bảng theo trình tự bên trước bên nhiều sau Mỗi bảng dòng liệu INSERT INTO PHONGBAN VALUES ('KITHUAT', N'Quận 3, TP HCM'), ('KETOAN', N'Quận 7, TP HCM'), ('KINHDOANH', N'Quận 7, TP HCM'), ('THIETKE', N'Quận 4, TP HCM'), ('XAYDUNG', N'Quận 2, TP HCM'), ('VATLIEU', N'Quận 2, TP HCM') INSERT INTO DUAN VALUES ('DA01', N'Shop thời trang', N'Quận 5, TP HCM', 'THIETKE'), ('DA02', N'Thương m ại ện tử' ,N'Quận 3, TP HCM', 'KETOAN'), ('DA03', N'Quay số may mắn', N'Quận 6, TP HCM', 'KINHDOANH'), ('DA04', N'Năng lượng m ặt trời', N'T ỉnh Bình Dương', 'XAYDUNG'), ('DA05', N'Trang trại', N'T ỉnh Thái Nguyên', 'KINHDOANH') SET DATEFORMAT DMY INSERT INTO NHANVIEN VALUES ('NV01', N'Nguyễn Văn A', '17/4/1997', N'Quận 4, TP HCM', N'Nam', 14000000, 'KINHDOANH'), ('NV02', N'Nguyễn Văn B', '21/4/1995', N'T ỉnh Long Xuyên', N'Nam', 10000000, 'XAYDUNG'), ('NV03', N'Lê Đức Trí', '1/6/1988', N'Quận 6, TP HCM', N'Nam', 25000000, 'KITHUAT'), ('NV04', N'Hoàng Văn Thống', '25/11/1992', N'Biên Hòa, Đồng Nai', N'Nam', 8000000, 'VATLIEU'), ('NV05', N'Lý Thế Kiệt', '13/9/1990', N'Quận 3, TP HCM', N'Nam', 22000000, 'THIETKE'), ('NV06', N'Vũ Hoàng Yến', '2/4/1996', N'Quận 4, TP HCM', N'Nữ', 12000000, 'KETOAN'), 0 BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau ('NV07', N'Nguyễn Bảo Như', '22/12/1993', N'T ỉnh Bình Dương', N'Nữ', 15000000, 'THIETKE'), ('NV08', N'Đinh Tuấn Tú', '30/3/1989', N'Qu ận 10, TP HCM', N'Nam', 19000000, 'THIETKE'), ('NV09', N'Lê Đức Anh', '6/7/1986', N'T ỉnh Thái Nguyên', N'Nam', 17000000, 'XAYDUNG'), ('NV10', N'Hoàng Thị Cẩm Tú', '21/12/1994', N'Tỉnh Thái Nguyên' , N'Nữ', 14000000, 'KETOAN'), ('NV11', N'Dương Cẩm Ly', '10/9/1995', N'Quận 5, TP HCM', N'Nữ', 12000000, 'KINHDOANH') INSERT INTO THANNHAN VALUES ('NV01', N'Lê Chí Tài', N'Nam', '14/3/1982', N'Chú'), ('NV02', N'Nguyễn Lô Tô', N'Nam', '3/7/1981', N'Dượng'), ('NV03', N'Nguyễn Thanh Mai', N'Nữ', '21/9/1991', N'Vợ'), ('NV04', N'Hồng Chí Tơn', N'Nam', '27/11/1963', N'Bố'), ('NV05', N'Dương Cẩm Thạch' , N'Nữ', '6/1/1994', N'Vợ'), ('NV06', N'Hoàng Bảo Long', N'Nam', '27/12/1992', N'Chồng'), ('NV07', N'Tr ần Thị Tuyết Nhung', N'Nữ', '5/9/1964', N'Mẹ'), ('NV08', N'Đinh Thế Bảo', N'Nam', '17/6/1986', N'Anh'), ('NV09', N'Nguy ễn Xuân Thanh', N'Nữ', '4/8/1991', N'Vợ'), ('NV10', N'Qch Gia Lâm', N'Nam', '21/10/1992', N'Chồng'), ('NV11', N'Tơ Chí Thanh', N'Nam', '24/2/1982', N'Chú') INSERT INTO PHANCONG VALUES ('NV01', 'DA03', 14), ('NV02', 'DA04', 180), ('NV03', 'DA04', 180), ('NV04', 'DA02', 7), ('NV05', 'DA01', 14), ('NV06', 'DA05', 7), ('NV07', 'DA01', 14), ('NV08', 'DA04', 14), ('NV09', 'DA05', 180), ('NV10', 'DA05', 30), ('NV11', 'DA04', 30) Câu 2: Viết câu lệnh SQL thực yêu cầu: a Cho biết án có nhiều nhận viên tham gia SELECT TOP MADA, COUNT(MADA) AS 'Số NV' FROM PHANCONG GROUP BY (MADA) ORDER BY COUNT(MADA) DESC b Liệt kê tất nhân viên mã án mà nhân viên tham gia, nhân viên chưa tham giá dự án cột Mã án để trống (null) 0 BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau SELECT NHANVIEN.MANV, PHANCONG.MADA FROM NHANVIEN FULL OUTER JOIN PHANCONG ON NHANVIEN.MANV = PHANCONG.MANV ORDER BY NHANVIEN.MANV Câu 3: Viết hàm : a Viết hàm trả số lượng dự án mà nhân viên tham gia Cho biết: Hàm có tham số đầu vào Mã nhân viên CREATE FUNCTION CAU3A (@MANV VARCHAR(10)) RETURNS TABLE AS RETURN SELECT MANV, COUNT(MADA) AS N'Dự án tham gia' FROM PHANCONG WHERE MANV = @MANV GROUP BY MANV Thực thi SELECT * FROM CAU3A('NV03') b Viết hàm trả danh sách gồm: Mã nhân viên, tên nhân viên, tên thân nhân nhân viên, tổng số dự án tham gia, tổng số thời gian tham gia Danh sách giảm dần theo tổng số dự án, tổng số dự án tăng dần theo tổng số thời gian tham gia CREATE FUNCTION CAU3B() RETURNS TABLE AS RETURN SELECT PHANCONG.MANV, NHANVIEN.HOTEN, COUNT(THANNHAN.MANV) AS N'SỐ THÂN NHÂN', COUNT (PHANCONG.MANV) AS N'Tổng số dự án', SUM(PHANCONG.THOIGIAN) AS N'T thời gian' FROM NHANVIEN, THANNHAN, PHANCONG WHERE NHANVIEN.MANV = THANNHAN.MANV AND NHANVIEN.MANV = PHANCONG.MANV GROUP BY PHANCONG.MANV, NHANVIEN.HOTEN ORDER BY COUNT(PHANCONG.MANV) DESC, SUM(PHANCONG.THOIGIAN) Thực thi SELECT * FROM CAU3B() Câu : Viết thủ tục : a Thêm vào nhân viên, có kiểm tra khóa chính, khóa ngoại CREATE PROC CAU4A (@MANV VARCHAR(10), @HOTEN NVARCHAR(50), @NGAYSINH DATE, @DCHI NVARCHAR(100), @PHAI NVARCHAR(10), @LUONG INT, @MAPB VARCHAR(10)) AS BEGIN IF NOT EXISTS (SELECT * FROM NHANVIEN WHERE MANV = @MANV) AND EXISTS (SELECT * FROM PHONGBAN WHERE MAPB = @MAPB) INSERT INTO NHANVIEN VALUES (@MANV, @HOTEN, @NGAYSINH, @DCHI, @PHAI, @LUONG, @MAPB) END 0 BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau Thực thi EXEC CAU4A 'NV12', N'Đường Đ ại Hiệp', '6/3/1989', N'Ngũ Hành Sơn', N'Nam', '12000000', 'XAYDUNG' b Tăng lương cho nhân viên có từ thân nhân trở lên thêm 20.000.000 đồng Tăng 10.000.000 đồng cho nhân viên có từ đến thân nhân CREATE PROC CAU4B AS BEGIN UPDATE NHANVIEN SET LUONG = LUONG + 20000000 WHERE MANV IN (SELECT MANV FROM THANNHAN GROUP BY MANV HAVING COUNT(MANV) >= 3) UPDATE NHANVIEN SET LUONG = LUONG + 10000000 WHERE MANV IN (SELECT MANV FROM THANNHAN GROUP BY MANV HAVING COUNT(MANV) >= AND COUNT(MANV) = 30 tuổi tham gia dự án từ 100 ngày trở lên CREATE TRIGGER CAU5B 0 BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau ON PHANCONG FOR INSERT AS DECLARE @MANV_INS VARCHAR(10) DECLARE @MADA_INS VARCHAR(10) DECLARE @THOIGIAN_INS INT SELECT @MANV_INS = MANV FROM inserted SELECT @MADA_INS = MADA FROM inserted SELECT @THOIGIAN_INS = THOIGIAN FROM inserted IF EXISTS (SELECT MANV FROM NHANVIEN WHERE MANV = @MANV_INS AND (YEAR(GETDATE())-YEAR(NGAYSINH)) < 30) AND EXISTS (SELECT * FROM PHANCONG WHERE MANV=@MANV_INS AND MADA=@MADA_INS AND THOIGIAN=@THOIGIAN_INS AND @THOIGIAN_INS >=100) BEGIN PRINT N'Nhân viên ch ưa đ ủ 30 tu ổi nên không th ể tham gia d ự án 100 ngày' ROLLBACK TRAN END ELSE BEGIN INSERT INTO PHANCONG VALUES (@MANV_INS, @MADA_INS, @THOIGIAN_INS) PRINT N'Thêm thành công' END 0 BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau PHẦN – Thực yêu cầu lược đồ quan hệ Cho lược đồ quan hệ R(U, F), U = MNOPQRS F = {SMR; NSQM; PQRS; MONR; NR} Câu : Tìm tất khóa (khóa dự tuyển) lược đồ quan hệ Ta có phủ tối thiểu lược đồ quan hệ G’’ = { SM(1); SR(2); NSQ(3); PQS(4); MON(5); NR(6)} U = MNOPQRS UR = MRQSN UL = SNPQMO N = U – UR = OP +¿ ¿ N = OP, lược đồ có nhiều khóa D = UR – UL = R L = U – (N ˅D) = MNQS + Xét Li gồm thuộc tính +¿ ¿ MOP = MOPNR +¿ ¿ NOP = NROP +¿ K = OPQ khóa ¿ QOP = QPOSMRN = U, +¿ K = OPS khóa ¿ SOP = SOPMRNQ = U, + Xét Li gồm thuộc tính +¿ ¿ MNOP = MNOPR Vậy có khóa : OPQ, OPS Câu : Tìm phủ tối thiểu tập phụ thuộc hàm B1: Phân rã vế phải cịn thuộc tính F = {SMR; NSQM; PQRS; MONR; NR} G = {SM(1); SR(2); NSQ(3); NSM(4); PQR(5); PQS(6); MON(7); MOR(8); NR(9)} B2: Loại bỏ phụ thuộc hàm dư thừa +¿ Bỏ (1), không được, S ¿ = SR +¿ Bỏ (2), không được, S ¿ = SM +¿ Bỏ (3), không được, NS¿ = NSM +¿ Bỏ (4), được, NS¿ = NSM 0 BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau 10 Bỏ (5), được, +¿ ¿ PQ = PQSMR +¿ Bỏ (6), không được, PQ¿ = PQ +¿ Bỏ (7), không được, MO¿ = MOR +¿ Bỏ (8), được, MO¿ = MONR +¿ Bỏ (9), không được, N ¿ = N Vậy G’ = { SM(1); SR(2); NSQ(3); PQS(4); MON(5); NR(6)} B3: Loại bỏ thuộc tính dư thừa vế trái +¿ Xét (3), Xóa N, S ¿ = SMR, khơng +¿ Xóa S, N ¿ = NR, khơng +¿ Xét (4), Xóa N, S ¿ = SMR, khơng +¿ Xóa S, N ¿ = NR, khơng +¿ Xét (5), Xóa P, Q ¿ = Q, khơng dược +¿ Xóa Q, P¿ = P, khơng +¿ Xét (6), Xóa M, O ¿ = O, khơng +¿ Xóa O, M ¿ = M, khơng Vậy phủ tối thiểu lược đồ quan hệ : G’’ = { SM(1); SR(2); NSQ(3); NSM(4); PQS(5); MON(6); NR(7)} Câu : Xác định dạng chuẩn cao lược đồ quan hệ Ta có phủ tối thiểu lược đồ quan hệ G’’ = { SM(1); SR(2); NSQ(3); PQS(4); MON(5); NR(6)} Khóa lược đồ : OPS, OPQ Thuộc tính khóa : O, P, Q, S Thuộc tính khơng khóa : M, N, R Đạt chuẩn dạng 1NF tập phụ thuộc hàm dạng tối thiểu Khơng đạt chuẩn dạng 2NF S  M (1), S  R (2) Chuẩn cao lược đồ quan hệ chuẩn 1NF 0 BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau 11 Câu : Nếu lược đồ quan hệ chưa đạt dạng chuẩn BC, đưa lược đồ dạng chuẩn BC Ta có phủ tối thiểu lược đồ quan hệ G’’ = { SM(1); SR(2); NSQ(3); PQS(4); MON(5); NR(6)} Vì lược đồ quan hệ đạt chuẩn cao dạng 1NF  Đưa chuẩn 2NF: Q1(SM), F1={ SM }, K1 = S, thỏa BCNF Q2(SR), F2={ SR }, K2 = S, thỏa BCNF Q3(MNOPQRS), F3={ NSQ(1); PQS(2); MON(3); NR(4)} U = MNOPQRS UR = NQRS UL = MNOPQS N = U – UR = MOP +¿ ¿ N = MNOPR  lược đồ có nhiều khóa D = UR – UL = R L = U – (N˅D) = QS + Xét Li gồm thuộc tính +¿ MOPQ¿ = MNOPQRS = U, K3a = MOPQ +¿ ¿ MOPS = MNOPRSQ = U, K3b = MOPS Thuộc tính khóa : M, O, P, Q, S Thuộc tính khơng khóa : N, R  Xét 2NF (3) không thỏa 2NF Đưa 2NF Q31(MNO), F31 = { MON }, K31 = MO, thỏa BCNF Q32(MNOPQS) = { NSQ(1); PQS(2); NR(3) } U = NPQSR UR = QSR UL = NPQS N = U – UR = NP +¿ ¿ N = OP  lược đồ có nhiều khóa D = UR – UL = R L = U – (N˅D) = QS + Xét Li gồm thuộc tính +¿ ¿ NPQ = NPQSR = U, K32a = NPQ +¿ ¿ NPS = NPSQR = U, K32b = NPS 0 BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau 12  Thuộc tính khóa : N, P, Q, S  Thỏa 2NF, 3NF, không thỏa BCNF Xét BCNF Q321(NSQ), F321 = {NSQ}, K321 = NS, thỏa BCNF Q323(PQS), F323 = {PQS}, K323 = PQ, thỏa BCNF Q324(NR), F324 = {NR}, K324 = N, thỏa BCNF Vậy lược đồ thỏa BCNF gồm : Q1(SM), F1={ SM }, K1 = S, thỏa BCNF Q2(SR), F2={ SR }, K2 = S, thỏa BCNF Q31(MNO), F31 = { MON }, K31 = MO, thỏa BCNF Q321(NSQ), F321 = {NSQ}, K321 = NS, thỏa BCNF Q323(PQS), F323 = {PQS}, K323 = PQ, thỏa BCNF Q324(NR), F324 = {NR}, K324 = N, thỏa BCNF 0 BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau 13 PHẦN – Thực vẽ mơ hình ERD, chuyển mơ hình ERD sang mơ hình quan hệ Câu 1: Viết đặc tả Trường Đại học Tôn Đức Thắng cần hệ thống quản lý việc đăng ký môn học sinh viên Thông tin sinh viên cần nắm mã sinh viên, tên, ngày sinh, quê quán, giới tính, số điện thoại, email Mỗi sinh viên khoa quản lý Thông tin cần lưu khoa mã khoa, tên khoa, địa điểm văn phòng khoa, số điện thoại liên lạc Sinh viên đăng ký nhiều mơn học học kỳ Thông tin môn học bao gồm mã mơn học, tên mơn học, số tín Mỗi mơn học có điểm học phần lớp, điểm kì, điểm cuối kì Hệ thống cần ghi lại điểm số làm sở tính điểm trung bình mơn học Các mơn học có số môn tiên Để đăng ký môn học, sinh viên phải học đạt môn tiên mơn học Sinh viên đăng ký môn học nhiều lần kết tất lần học phải hệ thống lưu lại Câu 2: Vẽ ERD Tên khoa Môn học tiên Địa điểm Mã khoa Khoa Số điện thoại Tên mơn học Mã mơn học Nhóm ngành Mơn học Email Mã sinh viên Số tín Đăng ký Tên Ngày sinh Giới tính Has Sinh viên Số điện thoại Điểm môn học Quê quán Điểm học phần 0 BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau Điểm kì Điểm cuối kì BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau BAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sauBAO.cao.CUOI.ky.mon.he.co.so.du.LIEU.viet.cac.cau.lenh.SQL.de.thuc.hien.cac.thao.tac.sau

Ngày đăng: 24/12/2023, 12:10

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

TÀI LIỆU LIÊN QUAN

w