PHÁT BIỂU BÀI TOÁN Khảo sát hoạt động của một đơn vị quản lý kinh doanh vật liệu xây dựng, ta thu được các thông tin quản lý sau:- Mỗi khách hàng thành viên được lưu trữ các thông tin g
Trang 1TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
-Sinh viên thực hiện: Nguyễn Hải Long-2210A01
Vũ Đông Thanh Phương-2210A03 Nguyễn Hoàng Quân-2210A04.
QUẢN LÍ KINH DOANH VẬT LIỆU XÂY DỰNG
BÁO CÁO BÀI TẬP LỚN MÔN: CƠ SỞ DỮ LIỆU
Giảng viên hướng dẫn: Trịnh Thị Xuân
Hà Nội – 2023
Trang 2PHÂN CÔNG VÀ KẾ HOẠCH THỰC HIỆN
2
Trang 3- MỤC
LỤC -PHẦN I PHÁT BIỂU BÀI TOÁN 4
PHẦN II MÔ HÌNH THỰC THỂ LIÊN KẾT 5
PHẦN III MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ 7
PHẦN IV RÀNG BUỘC TOÀN VẸN 8
PHẦN V CHUẨN HOÁ CƠ SỞ DỮ LIỆU 11
PHẦN VI CÀI ĐẶT CƠ SỞ DỮ LIỆU 12
PHẦN VII KHAI THÁC CƠ SỞ DỮ LIỆU 14
Nguyễn Hải Long -Phát biểu bài toán
-Khai thác cơ sở dữ liệu -Hoàn thiện trình bày bài tập lớn
Hoàn thành
Vũ Đông Thanh Phương -Ràng buộc toàn vẹn
-Chuẩn hòa cơ sở dữ liệu
Hoàn thành
Nguyễn Hoàng Quân -Cài đặt cơ sở dữ liệu
-Khai thác cơ sở dữ liệu
Hoàn thành
Trang 4PHẦN I PHÁT BIỂU BÀI TOÁN
Khảo sát hoạt động của một đơn vị quản lý kinh doanh vật liệu xây dựng, ta thu được các thông tin quản lý sau:
- Mỗi khách hàng thành viên được lưu trữ các thông tin gồm mã khách hàng, số điện thoại khách hàng, họ tên, địa chỉ, giới tính Mỗi khách hàng được phân biệt nhau bởi mã khách hàng
- Mỗi nhân viên của cửa hàng được quản lý các thông tin gồm mã số nhân viên, họ tên, số điện thoại, ngày sinh, giới tính, lương Mỗi nhân viên được phân biệt nhau bởi mã số nhân viên
- Mỗi vật liệu có mã vật liệu, tên vật liệu, số lượng tồn kho, xuất xứ, giá thành Mỗi vật liệu chỉ có 1 mã vật liệu
- Mỗi lần khách hàng mua hàng sẽ có một hoá đơn Mỗi hoá đơn có các thông tin gồm số hoá đơn, ngày lập hoá đơn Mỗi hoá đơn do nhân viên bán hàng của cửa hàng lập và có thể bán nhiều sản phẩm cùng lúc, được
kê chi tiết trong bảng chi tiết hoá đơn trong đó có ghi rõ số lượng và tổng tiền hàng cụ thể của từng sản phẩm (Tổng tiền hàng = Giá thành * Số lượng)
4
Trang 5PHẦN II MÔ HÌNH THỰC THỂ LIÊN KẾT
II.1 Xác định các thực thể và các thuộc tính
*NHÂN VIÊN: MaNV, HotenNV, Gioitinh, Ngaysinh, SdtNV, Luong
-MaNV: khóa
-Luong: suy dẫn
*KHÁCH HÀNG: MaKH, SdtKH, HotenKH, Diachi, Gioitinh -MaKH: khóa
*VẬT LIỆU: MaVL, TenVL, Xuatxu, SoluongTonKho, Dongia -MaVL: khóa
-XuatXu: đa trị
-SoluongTonKho: suy dẫn
*HÓA ĐƠN: SoHD, NgayLapHD, Tongtienhang
-SoHD: khóa
-Tongtienhang: suy dẫn
II.2 Xác định các liên kết giữa các thực thể
*NHÂN VIÊN – lập – HÓA ĐƠN: 1-n
*KHÁCH HÀNG – nhận – HÓA ĐƠN: 1-m
*VẬT LIỆU – ghi trên – HÓA ĐƠN: n-m
Trang 6II.3 Vẽ được lược đồ ER
6
Trang 7PHẦN III MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
Bước 1: Áp dụng quy tắc với thực thể mạnh
(1) tblNHANVIEN(MaNV, Hoten, Ngaysinh, Gioitinh, Sdt) (2) tblVATLIEU(MaVL, TenVL, Dongia)
(3) tblHOADON(SoHD, NgayLapHD)
(4) tblKHACHHANG(MaKH, Hoten, Diachi, Gioitinh, Sdt)
Bước 2: Áp dụng quy tắc với thuộc tính đa trị
(5) tblXuatXu_VATLIEU(MaVL, XuatXu)
Bước 3: Áp dụng quy tắc với thực thể yếu
Không có thực thể yếu
Bước 4: Áp dụng quy tắc với liên kết nhiều-nhiều
(6) tblVATLIEU_HOADON (MAVL, SOHD, Soluong)
Bước 5: Áp dụng quy tắc với liên kết một-nhiều
(3’) tblHOADON(SoHD, NgayLapHD, MaNV, MaKH)
Bước 6: Áp dụng quy tắc với liên kết một-một
Không có liên kết một-một
Bước 7: Áp dụng quy tắc với liên kết có bậc lớn hơn 2
Không có liên kết có bậc lớn hơn 2
Kết luận mô hình cơ sở dữ liệu quan hệ
(1) tblNHANVIEN(MaNV, Hoten, Ngaysinh, Gioitinh, Sdt) (2) tblVATLIEU(MaVL, TenVL, Dongia)
(3’) tblHOADON(SoHD, NgayLapHD, MaNV, MaKH)
Trang 8(4) tblKHACHHANG(MaKH, Hoten, Diachi, Gioitinh, Sdt) (5) tblXuatXu_VATLIEU(MaVL, XuatXu)
(6) tblVATLIEU_HOADON (MAVL, SOHD, Soluong)
8
Trang 9PHẦN IV RÀNG BUỘC TOÀN VẸN
+Ràng buộc 1: “Mỗi nhân viên có một mã số riêng biệt không trùng với bất kì nhân viên nào khác”.
-Bối cảnh: tbl_NHANVIEN
-Nội dung: +Không nhân viên nào có chung mã số
-Hình thức: ∀nv1, nv2 ∈ tbl_NHANVIEN: nv1 nv2 nv1.MaNV ≠ ≠
nv2.MaNV
Tbl_NHANVIEN +(MaNV) - -(MaNV)
+Ràng buộc 2: “Mỗi khách hàng có một mã số riêng biệt không trùng với bất kì khách hàng nào khác”
-Bối cảnh: tbl_KHACHHANG
-Nội dung: +Không khách hàng nào có chung mã số
-Hình thức: ∀kh1, kh2 ∈ tbl_KHACHHANG: kh1 kh2 kh1.MaKH≠
≠ kh2.MaKH
+Ràng buộc 3: “Mỗi loại vật liệu có một mã số riêng biệt không trùng với bất
kì loại vật liệu nào khác”
-Bối cảnh: tbl_VATLIEU
-Nội dung: Không loại vật liệu nào có chung mã số
-Hình thức: ∀ vl1,vl2 ∈ tbl_VATLIEU: vl1 ≠ vl2 vl1.MaVL ≠
vl2.MaVL
Trang 10Thêm Sửa Xóa
+Ràng buộc 4: “Mỗi loại hóa đơn có một mã số riêng biệt không trùng với bất
kì vật liệu nào khác”
-Bối cảnh: tbl_HOADON
-Nội dung: Không loại hóa đơn nào có chung mã số
-Hình thức: ∀ hd1, hd2 ∈ tbl_HOADON: hd1 hd2 hd1.SoHD ≠ ≠ hd2.SoHD
+Ràng buộc 5: “Giới tính của nhân viên chỉ được nhận giá trị “Nam” hoặc
“Nữ””
-Bối cảnh: tbl_NHANVIEN
-Nội dung: Giới tính của nhân viên chỉ được nhận giá trị “Nam” hoặc
“Nữ”
-Hình thức: nv ∀ ∈ tbl_NHANVIEN: nv.Gioitinh = “Nam” or nv Gioitinh =
“Nu”
Tbl_NHANVIEN + +(Gioitinh)
-+Ràng buộc 6: “Giới tính của khách hàng chỉ được nhận giá trị “Nam” hoặc
“Nữ””
-Bối cảnh: tbl_KHACHHANG
-Nội dung: Giới tính của khách hàng chỉ được nhận giá trị “Nam” hoặc
“Nữ”
1
Trang 11-Hình thức: kh ∀ ∈ tbl_KHACHHANG: kh.Gioitinh = “Nam” or kh.Gioitinh = “Nu”
Trang 12-PHẦN V CHUẨN HOÁ CƠ SỞ DỮ LIỆU
Từ mô hình cơ sở dữ liệu quan hệ ta thấy
- Mọi thuộc tính đều là nguyên tố, giá trị các thuộc tính trên bộ là đơn trị, không có thuộc tính nào có giá trị được tính toán từ một số thuộc tính khác
Lược đồ quan hệ trên đã ở dạng chuẩn 1NF
- Mọi thuộc tính không khóa của quan hệ đều phụ thuộc hàm đầy đủ vào khóa chính
Lược đồ quan hệ trên đã ở dạng chuẩn 2NF
- Mọi thuộc tính không khóa của quan hệ đều không phụ thuộc bắc cầu vào bất kì khóa chính của quan hệ
Lược đồ quan hệ trên đã ở dạng chuẩn 3NF
PHẦN VI CÀI ĐẶT CƠ SỞ DỮ LIỆU
VI.1 Bảng dữ liệu nhân viên
VI.2 Bảng dữ liệu vật liệu
1
Trang 13VI.3 Bảng dữ liệu khách hàng
VI.4 Bảng dữ liệu hóa đơn
VI.5 Relationships
Trang 14PHẦN VII KHAI THÁC CƠ SỞ DỮ LIỆU
VII.1 Lấy dữ liệu từ một bảng
* Đưa ra thông tin : MaNV, HotenNV, Ngaysinh, SdtNV của các nhân viên
có giới tính là nam
R1=σ(Gioitinh=”Nam”)(tblNHANVIEN)
Π( MaNV, HotenNV, Gioitinh, Ngaysinh, SdtNV)(R1)
* Đưa ra thông tin : MaVL, TenVL, SoluongTonKho của các vật liệu có xuất xứ từ Việt Nam
R2= σ(Xuatxu=”Việt Nam”)(tblVATLIEU)
Π( MaVL, TenVL, SoluongTonKho)(R2)
1
Trang 15* Đưa ra thông tin : MaKH, SdtKH, HotenKH, Diachi của các khách hàng có giới tính là nữ
R3= σ(Gioitinh=”Nữ”)(tblKHACHHANG)
Π( MaKH, SdtKH, HotenKH, Diachi, Gioitinh)(R3)
* Đưa ra thông tin : MaVL, TenVL, Xuatxu, Dongia của các vật liệu có
số lượng tồn kho ít hơn 741
R4= σ(SoluongTonKho<741)(tblVATLIEU)
Π( MaVL, TenVL, Xuatxu, Dongia)(R4)
* Đưa ra thông tin : MaNV, HotenNV, Gioitinh, Ngaysinh, SdtNV của các nhân viên có lương lớn hơn 9.000.000
R5= σ(Luong>9.000.000)(tblNHANVIEN)
Trang 16Π( MaNV, HotenNV, Gioitinh, Ngaysinh, SdtNV)(R5)
VII.2 Lấy dữ liệu từ hai bảng
* Đưa ra thông tin : SoHD, MaKH, TenVL, Xuatxu, NgayLapHD, Tongtienhang của hóa đơn do nhân viên có mã A1234567890 lập
Π( SoHD,MaKH,TenVL,Xuatxu,NgayLapHD,Tongtienhang) (MaNV=”A1234567890”) σ (tblNHANVIEN* tbl HOADON)
* Đưa ra thông tin : SoHD, MaKH, MaNV, Xuatxu, NgayLapHD, Tongtienhang của hóa đơn có tên vật liệu là gạch
Π( SoHD,MaKH,MaNV,Xuatxu,NgayLapHD,Tongtienhang) (TenVL=”Gạch”) σ (tblVATLIEU* tbl HOADON)
* Đưa ra thông tin : SoHD, MaKH, MaNV, TenVL, NgayLapHD, Tongtienhang của hóa đơn có xuất xứ từ Việt Nam
Π( SoHD,MaKH,MaNV,TenVL,NgayLapHD,Tongtienhang) (Xuatxu=”ViệtNam”)σ (tblVATLIEU* tbl HOADON)
1
Trang 17
VII.3 Tính toán từ một bảng
* Đếm số lượng nhân viên:
count(MaNV)(tblNHANVIEN)
* Tính tổng số lượng tồn kho:
sum(SoluongTonKho)(tblVATLIEU)
* Tính trung bình lương của nhân viên:
average(Luong)(tblNHANVIEN)
* Hiển thị nhân viên có lương thấp nhất:
min(Luong)(tblNHANVIEN)
* Hiển thị nhân viên có lương cao nhất:
max(Luong)(tblNHANVIEN)
VII.4 Tính toán từ hai bảng
* Tính tổng số lượng vật liệu trong mỗi hóa đơn do nhân viên có mã A1234567890 lập :
σ(MaNV=” A1234567890”)( sum(SoluongVL)(tblHOADON*tblNHANVIEN)
* Tính trung bình số lượng vật liệu có trong mỗi hóa đơn do nhân
viên B9876543210 lập :
σ(MaNV=” B9876543210”)( sum(SoluongVL)(tblHOADON*tblNHANVIEN)