Doanh nghiệp có nhiều nhân viên, mỗi nhân viên ch 椃 làm việc ở một đơn vị, mỗi đơn vị có thể có nhiều nhân viên.. Mỗi nhân viên có thể tham gia sản xuất các khâu trong nhiều sản phầm và
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DUY TÂN
ĐỒ ÁN CÁ NHÂN MÔN: CƠ SỞ DỮ LIỆU ĐỀ TÀI QUẢN LÝ DOANH NGHIỆP MAY MẶC
Giáo viên hướng dẫn:Trần Huệ Chi Sinh viên thực hiện:Phan Phước Tuấn Anh Lớp: IS 301 D MSSV: 28216803370
Đà Nẵng, tháng 3 năm 2024 MỤC LỤC PHẦN I PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ MÔ HÌNH CƠ SỞ DỮ LIỆU 3
1.1.Mô tả bài toán 3
1.2Vẽ mô hình thực thể liên kết 4
PHẦN II BIỂU THỨC ĐẠI SỐ QUAN HỆ 6
2.Viết câu lệnh chỉnh sửa cấu trúc bảng 8
2.1 Câu lệnh thêm cột 8
2.2 Câu lệnh xóa cột 8
Trang 22.3 Câu lệnh đổi kiểu dữ liệu 8
3.Câu lệnh về dữ liệu 8
3.1 Câu lệnh về dự liệu vào bảng 8
3.2 Câu lệnh cập nhật dữ liệu 8
3.3 Câu lệnh xóa dữ liệu 8
4.Câu lệnh thao tác dữ liệu 8
4.1 Cấu trúc lệnh đơn giản 8
4.2Truy vấn từ nhiều bảng 8
4.3 Truy vấn lấy dữ liệu từ 1 bảng 9
4.4 Truy vấn từ nhiều bảng 9
5.Truy vấn có dùng hàm 10
6.Truy vấn có gộp nhóm 11
7.Truy vấn lồng nhau 11
7.1 Lồng trong mệnh đề where 11
7.2 Lồng trong mệnh đề Having 12
Trang 3PHẦN I PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ MÔ HÌNH CƠ SỞ DỮ LIỆU
1.1.Mô tả bài toán
lạc
Doanh nghiệp có nhiều đơn vị trực tiếp sản xuất Thông tin mỗi đơn vị gồm mã đơn vị, tên đơn vị Mỗi phân xưởng sản xuất có có thể có nhiều đơn vị, đồng thời mỗi đơn vị ch 椃 thuộc một phân xưởng Doanh nghiệp có nhiều nhân viên, mỗi nhân viên ch 椃 làm việc ở một đơn vị, mỗi đơn vị có thể có nhiều nhân viên Thông tin
nón… quản lý thông tin về sảm phẩm gồm mã sản phẩm, tên sản phẩm, đơn vị tính Mỗi nhân viên có thể tham gia sản xuất các khâu trong nhiều sản phầm và mỗi sản phẩm hoàn thành có thể do nhiều nhân viên tham gia Mỗi nhân viên tham gia vào các sản phẩm có lượng thời gian được ghi nhận bởi nhân viên quản lý
1.2Vẽ mô hình thực thể liên kết
Bảng vẽ mô hình thực thể liên kết
1.3.Tạo mô hình quan hệ
Trang 4Bản vẽ mô hình quan hệ
1.4.Cho dữ liệu mỗi bảng
Bảng dữ liệu PHÂN XƯỞNG
Bảng dữ liệu ĐƠN VỊ
Bảng dữ liệu NHÂN VIÊN
Trang 5Bảng dữ liệu SẢN PHẨM
Bảng dữ liệu NV-SP
PHẦN II BIỂU THỨC ĐẠI SỐ QUAN HỆ
Cơ sở dữ liệu bán hàng
ĐONVI (MaDV, TenDV, TenPX)
PHANUONG( TenPX, DiaChi, SDT)
NHANVIEN(MaNV, HoTen, NgaySinh, NgayLam, MaDV)
NV-SP(MaSP, MaNV, TinhLuong)
SANPHAM(MaSP, TenSP, DVT)
1.Liệt kê các đơn vị thuộc phân xưởng<1 MaDV, TenDV, TenPX
2.Liệt kê những nhân viên thuộc đơn vị 4 MaNV, HoTen, MaDV
3.Liệt kê các sản phẩm có ĐVT là “Cái” MaSP, TenSP, ĐVT
Trang 6Π MaSP, TenSP,ĐVT( ĐVT = “Cái”(SANPHAM))δ
4.Lấy danh sách những nhân viên có làm sản phẩm “giỏ mây” MaNV, MaSP, TenSP, ThoiGian
5.Liệt kê những những nhân viên làm mã sản phẩm “SP01” MaSP, MaNV, ThoiGian
6.Liệt kê những sản phẩm có thời gian >=20h MaSP, TenSP, MaNV, ThoiGian
7.Liệt kê những nhân viên vừa tham gia sản phẩm Áo Thun vừa tham gia sản phẩm Áo Khoác MaNV, HoTen, MaSP, TenSP
∪
8.Liệt kê những sản phẩm chưa được sản xuất
PHẦN III NGÔN NGỮ SQL
1 Viết câu lệnh về bảng
-Tạo bảng PHÂN XƯỞNG
Create Table PHANXUONG( TenPX text primary key, DiaChi text, SDT text)
-Tạo bảng ĐƠN VỊ
Create Table DONVI(MaDV text primary key, TenDV text, TenPX text references PhanXuong(TenPX))
-Tạo bảng NHÂN VIÊN
Create table NHANVIEN(MaNV text primary key, HoTen text, NgaySinh datetime, DiaChi text, NgayLam datetime, MaDV text references DonVi(MaDV)
Trang 7-Tạo bảng SẢN PHẨM
Create table SANPHAM(MaSP text primary key, TenSP text, ĐVT text)
-Tạo bảng NV-SP
Create table NV-SP( MaSP text references SanPham(MaSP), MaNV text references NhanVien(MaNV), TinhLuong number, ThoiGian number)
2.Viết câu lệnh chỉnh sửa cấu trúc bảng
2.1 Câu lệnh thêm cột
-Alter table ĐONVI add columm DiaChi text
-Alter table NV-SP add columm Thoigian number
2.2 Câu lệnh xóa cột
-Alter table ĐONVI drop columm TenPX
-Alter table SANPHAM drop columm TenSP
2.3 Câu lệnh đổi kiểu dữ liệu
-Alter table SANPHAM after columm MaSP number
-Alter table NV-SP after columm ThoiGian text
3.Câu lệnh về dữ liệu
3.1 Câu lệnh về dự liệu vào bảng
-Insert into ĐONVI value (“ĐV6”, “Nhật Hùng”, “Phân xưởng 6”)
-Insert into SANPHAM value(“SP06”, “Quần”, “Cai”)
3.2 Câu lệnh cập nhật dữ liệu
-Update SANPHAM set TenSP = “Giỏ Mây” where MaSP = “SP02”;
3.3 Câu lệnh xóa dữ liệu
-Delete from SANPHAM where TenSP = “Áo Thun”
-Delete from NHANVIEN where MaNV = “NV1”
4.Câu lệnh thao tác dữ liệu
Trang 84.1 Cấu trúc lệnh đơn giản
SELECT MaDV, TenDV, TenPX from ĐƠN VỊ
4.2Truy vấn từ nhiều bảng
SELET MaDV, MaNV from a.ĐONVI, b.NHANVIEN where a.MaDV = b.MaDV
4.3 Truy vấn lấy dữ liệu từ 1 bảng
-Câu không cần điều kiện: Lập danh sách các nhân viên
Select MaNV, HoTen, NgaySinh from NHANVIEN
-Câu có 1 điều kiện: Lấy những sản phẩm có ĐVT là “Chiếc” (MaSP, ĐVT)
Select MaSP, ĐVT from SANPHAM where ĐVT = “Chiếc”
-Câu có 2 điều kiện: Liệt kê những nhân viên vừa làm “SP01” và “SP05” (MaSP, MaNV)
Select MaSP, MaNV, HoTen from NV-SP, where MaSP = “SP01” and MaSP = “ SP05”
-Câu có sử dụng biểu thức: Liệt kê những nhân viên sinh tháng 5 (MaNV, HoTen, NgaySinh)
Select MaSV, HoTen, Month(NgaySinh) from NHANVIEN where Month(NgaySinh) = 5
-Câu có dùng tùy chọn Top N: Liệt kê 2 nhân viên có tháng sinh nhỏ nhất (MaNV, HoTen, NgaySinh)
Select top 2 MaNV, HoTen, Month(NgaySinh) from NHANVIEN Oder by Month(NgaySinh)
-Câu có dùng tùy chọn *: Lấy tất cả thông tin các PHÂN XƯỞNG
Select * from PHÃNUONG
-Câu có dùng tùy chọn order by:Lấy danh sách sản phẩm được xếp theo mã sản phẩm
Select * from SANPHAM order by MaSP
-Câu có sử dụng kết hợp 2 hoặc 3 tùy chọn trên: Lấy danh sách 4 nhân viên có tuổi cao nhất , được sắp xếp theo mã nhân viên
Select top 4* from NHANVIEN Order by NgaySinh desc, MaNV
4.4 Truy vấn từ nhiều bảng
Trang 92 câu truy vấn từ 2 bảng không cần điều kiện lọc:
-Liệt kê tất cả thông tin của bảng NHÂN VIÊN và bảng ĐƠN VỊ
Select * from NHANVIEN, ĐONVI where ĐONVI.MaDV = NHANVIEN
-Truy vấn thông tin của nhân viên và đơn vị làm việc từ bảng NHÂN VIÊN và bảng NV-SP(MaNV, HoTen, MaDV)
Select MaNV, HoTen, MaDV From NHANVIEN, NV-SP where NHANVIEN.MaNV =
NV-SP.MaNV
2 câu truy vấn từ 2 bảng có thêm điều kiện lọc
-Liệt kê những nhân viên có số tiền lương >= 400000(MaNV, HoTen, TienLuong)
Select NHANVIEN.MaNV, HoTen, TienLuong from NV-SP, NHANVIEN where NHANVIEN.MaNV = NV-SP.MaNV, TienLuong>= 400000
-Lấy đơn vị có địa chỉ ở quận “Hải Châu” (MaDV,TenDV, DiaChi,TenPX)
Select MaDV, TenDV, DiaChi, ĐONVI.TenPX from ĐONVI, PHANXUONG where ĐƠN VỊ.TenPX = PHANXUONG.TênPX, DiaChi = “HaiChau”
2 câu truy vấn từ 3 bảng trở lên
-Liệt kê những nhân viên làm mã sản phẩm “SP03”(MaNV, HoTen, MaSP)
Select MaNV, HoTen, MaSP from a.NHANVIEN,b.NV-SP, c.SANPHAM where a.MaNV = b.MaNV and b.MaSP = c.MaSP and MaSP = “SP03”
-Liệt kê những nhân viên vừa làm mã sản phẩm “SP01” vừa làm mã sản phẩm “SP05”( MaNV, HoTen, MaSP)
Select MaNV, HoTen, MaSP from a.NHANVIEN,b.NV-SP, c.SANPHAM where a.MaNV = b.MaNV and b.MaSP = c.MaSP and MaSP = “SP01” and MaSP =
“SP05”
5.Truy vấn có dùng hàm
-1 câu có dùng hàm sum làm điều kiện: Tổng số giờ làm của nhân viên “NV1”
Select sum(ThoiGian) as so_gio_lam from NV-SP where MaNV = “NV1”
-1 câu dùng hàm count: Đếm có bao nhiêu sản phẩm
Select count (MaSP) as so_luong_san_pham from SANPHAM
-1 câu có dùng hàm agv có điều kiện:Tính trung bình cộng thời gian làm việc của nhân viên “NV3”
Select agv(ThoiGian) as TBC from NV-SP where MaNV = “NV3”
-1 câu dùng max: Số lượng thời gian làm nhiều nhất
Trang 10Select max(ThơiGian) from NV-SP
-1 câu dùng min: Số lượng thời gian làm ít nhất
Select min(ThơiGian) from NV-SP
6.Truy vấn có gộp nhóm
-1 câu có dùng hàm sum: Tổng số giờ làm của nhân viên “NV1”
Select MaNV, sum(ThoiGian) from NV-SP Group by MaNV
-1 câu có dùng hàm count có dùng điều kiện nhóm:
Select MaNV, count(MaSP) as so_luong from NV-SP where MaNV = “NV4”
-1 câu có dùng hàm max lấy thông tin từ 2 bảng:
Select MaNV, HoTen, max(ThoiGian) from a.NHANVIEN, b.NV-SP where a.MaNV = b.NV-SP where a.MaNV=b.NV-SP
-1 câu dùng hàm avg có điều kiện nhóm:
Select MaNV, avg(ThoiGian) as TBC from NV-SP, Group by MaNV
7.Truy vấn lồng nhau
7.1 Lồng trong mệnh đề where
-Lấy thời gian cao nhất
Select MaNV, (ThoiGian*25) as ThoiGianCaoNhat from NV-SP, where (ThoiGian*25) = (Select max (ThoiGian*25) from NV-SP)
-Lấy số thời gian cao hơn thời gian trung bình
Select * from NV-SP where ThoiGian>(Select avg(ThơiGian) from NV-SP)
7.2 Lồng trong mệnh đề Having
-Đếm số sản phẩm mà nhân viên tham gia
Select MaNV, HoTen, count(MaSP) so_sanpham from a.NHANVIEN, b.NV-SP where a.MaNV= b.MaNV Group by MaNV having cout(MaSP)=(Select
count(MaSP) from SANPHAM