Cơ sở dữ liệu HUST để dành cho các khóa sau tham khảo, đây là học phần MI3090 thuộc khoa toán tin Cơ sở dữ liệu HUST để dành cho các khóa sau tham khảo, đây là học phần MI3090 thuộc khoa toán tin Cơ sở dữ liệu HUST để dành cho các khóa sau tham khảo, đây là học phần MI3090 thuộc khoa toán tin Cơ sở dữ liệu HUST để dành cho các khóa sau tham khảo, đây là học phần MI3090 thuộc khoa toán tin Cơ sở dữ liệu HUST để dành cho các khóa sau tham khảo, đây là học phần MI3090 thuộc khoa toán tin Cơ sở dữ liệu HUST để dành cho các khóa sau tham khảo, đây là học phần MI3090 thuộc khoa toán tin Cơ sở dữ liệu HUST để dành cho các khóa sau tham khảo, đây là học phần MI3090 thuộc khoa toán tin Cơ sở dữ liệu HUST để dành cho các khóa sau tham khảo, đây là học phần MI3090 thuộc khoa toán tin
Trang 1
ĐẠI HỌC BÁCH KHOA HÀ NỘI
KHOA TOÁN - TIN
Trang 22
MỤC LỤC
Chương 1: Giới thiệu 3
Chương 2: Bài toán thực tế 4
Chương 3: Các chức năng hệ thống 6
Chương 4: Mô hình thực thể liên kết 7
Chương 5: Thiết kế cơ sở dữ liệu 8
I Mô hình dữ liệu quan hệ 8
II Mô tả cấu trúc bảng 9
III Thao tác tạo lập trong SQL Server 10
IV Mối quan hệ giữa các bảng 21
V Các ràng buộc dữ liệu 22
Chương 6: Đại số quan hệ 24
Chương 7: Đánh giá kết quả 28
Trang 33
Chương 1: Giới thiệu Trong bối cảnh ngày nay, ngành công nghiệp ô tô đang trải qua sự biến động mạnh mẽ do sự phát triển của công nghệ và nhu cầu thị trường ngày càng đa dạng Để đáp ứng được những yêu cầu ngày càng cao của khách hàng cũng như nắm bắt cơ hội trong một môi trường cạnh tranh khốc liệt, việc quản lý thông tin hiệu quả trở thành một yếu tố then chốt Trong bối cảnh này, việc xây dựng một cơ sở dữ liệu đồng nhất và linh hoạt là bước cơ bản và quan trọng trong quá trình quản lý kinh doanh ô tô
Báo cáo này tập trung vào việc thiết kế cơ sở dữ liệu để quản lý thông tin liên quan đến kinh doanh ô tô Mục tiêu của chúng em là đề xuất một mô hình cơ sở dữ liệu phù hợp, phản ánh chính xác các khía cạnh quản lý và vận hành trong ngành ô tô, từ việc quản lý thông tin sản phẩm đến hệ thống bán hàng và dịch vụ hậu mãi Cơ sở dữ liệu chúng em tập trung chủ yếu vào việc quản lý quá trình hậu mua xe ô tô, cũng như là tập trung vào việc kiểm soát quá trình nhập và xuất ô tô Kiểm soát các hoạt động của các phòng ban trong việc quản lý vận hành kinh doanh ô tô
Bằng cách này, chúng em hy vọng rằng báo cáo sẽ cung cấp một cơ sở tương đối vững chắc
để tổ chức thông tin và tối ưu hóa quá trình quản lý, từ đó nâng cao hiệu suất và cạnh tranh cho các doanh nghiệp trong ngành ô tô
Trang 44
Chương 2: Bài toán thực tế Một công ty kinh doanh ô tô cần xây dựng 1 cơ sở dữ liệu để lưu trữ thông tin của công ty nhằm mục đích quản lý các hoạt động của công ty của mình
Mô tả cơ sở dữ liệu:
Xét CSDL Quản lý Kinh doanh ô tô của công ty, cụ thể các thông tin như sau:
Ô tô: Mỗi ô tô có một mã xe riêng để phân biệt, bao gồm các thông tin cơ bản: tên xe,
loại xe, nơi sản xuất, năm sản xuất, giá niêm yết, phân khúc, số lượng, ngày nhập về
Ô tô được lưu trữ các thông tin về thông số kỹ thuật như: Động cơ, công suất, momen xoắn, hộp số, số chỗ ngồi
Bảo trì: Ngoài ra, ô tô cũng cần được bảo trì, mỗi lần bảo trì sẽ có mã bảo trì và mã xe
riêng để phân biệt, bao gồm các thông tin: ngày thực hiện, đơn vị thực hiện
Ưu đãi: Mỗi ô tô khi mua sẽ có ưu đãi, mỗi ưu đãi có mã ưu đãi riêng để phân biệt,
bao gồm các thông tin: tên ưu đãi, tổng giá trị ưu đãi, mô tả
Kho: Mỗi kho lưu trữ ô tô có mã kho riêng để phân biệt, bao gồm các thông tin: tên
kho, địa điểm
Nhà cung cấp: Mỗi nhà cung cấp có mã công ty riêng để phân biệt, bao gồm thông tin
về tên công ty và địa điểm
Hợp đồng: Mỗi hợp đồng có mã HĐ riêng để phân biệt, lưu trữ các thông tin: địa điểm,
số tiền cọc, thời gian, nội dung…
Nhân viên: Mỗi nhân viên có mã NV riêng để phân biệt, bao gồm các thông tin về họ
tên, địa chỉ, năm sinh, giới tính, email, SDT, tình trạng công việc, số lượng (xe đã bán)
Phòng ban: Mỗi phòng ban có tên phòng ban riêng để phân biệt, gồm các thông tin về
mã trưởng phòng và ngày nhận chức
Đối tác: Mỗi đối tác có tên đối tác riêng để phân biệt, gồm thông tin về lĩnh vực hợp
tác
Khách hàng: Mỗi khách hàng có mã KH để phân biệt, gồm các thông tin: họ tên, ngày
sinh, địa chỉ, giới tính, nghề nghiệp, SĐT
Và để đảm bảo các vấn đề về sau, CSDL cũng lưu trữ các thông tin về thân nhân bao gồm thông tin: họ tên, địa chỉ, tuổi, mối quan hệ với khách hàng
Trang 55
Ngoài ra ta cũng cần lưu trữ các thông tin về ngày, số lượng khi nhập ô tô từ nhà sản xuất; số lượng xe lưu trữ trong kho; khi mua xe ta cũng cần lưu ý tới hình thức thanh toán; ngày bắt đầu, ngày kết thúc ưu đãi của ô tô Ta cũng sẽ quản lý dữ liệu về ngày nhận chức của nhân viên trưởng phòng
Mỗi ô tô (khác nhau về tên xe) chỉ có một thông số kỹ thuật duy nhất, mỗi thông số kỹ thuật chỉ có trên một ô tô
Mỗi xe có một/nhiều ưu đãi, mỗi ưu đãi dành cho một/nhiều xe
Mỗi ô tô có thể chưa có lịch sử bảo trì, hoặc đã có một hoặc nhiều lần bảo trì Mỗi lần bảo trì chỉ cho một ô tô duy nhất
Mỗi kho lưu trữ nhiều ô tô, mỗi ô tô lưu trữ ở một/ nhiều kho
Mỗi nhà cung cấp cung cấp nhiều xe, mỗi xe chỉ được cung cấp bởi một nhà cung cấp duy nhất
Một ô tô có thể chưa được mua bởi khách hàng nào, chưa được bán bởi nhân viên nào, chưa thuộc hợp đồng nào, hoặc chỉ được mua bởi một khách hàng duy nhất, được bán bởi một nhân viên duy nhất và thuộc duy nhất một hợp đồng
Mỗi hợp đồng được ký bởi một khách hàng, một nhân viên, một ô tô duy nhất; mỗi khách hàng có thể mua một/ nhiều xe, ký một/nhiều hợp đồng
Một nhân viên có thể không ký hợp đồng, bán chiếc xe nào do không thuộc phòng bán hàng, hoặc ký một/nhiều hợp đồng, bán một/nhiều xe
Mỗi khách hàng có một/nhiều thân nhân, mỗi thân nhân chỉ có mối quan hệ với một khách hàng duy nhất
Mỗi nhân viên làm việc cho một phòng ban duy nhất
Mỗi phòng ban có một trưởng phòng duy nhất, có nhiều nhân viên làm việc, hợp tác với một đối tác duy nhất
Mỗi đối tác chỉ hợp tác với một phòng ban
Trang 66 Chương 3: Các chức năng hệ thống
Sơ đồ phân rã chức năng hệ thống
Trang 77
Chương 4: Mô hình thực thể liên kết
Mô hình thực thể liên kết của bài toán như sau:
Mô hình thực thể liên kết
Link: Mô hình thực thể liên kết
Trang 88
Chương 5: Thiết kế cơ sở dữ liệu
I Mô hình dữ liệu quan hệ
1 ThanNhan (HoTen, MaKH, DiaChi, GioiTinh, Quanhe, Tuoi)
(MaKH vừa là khóa chính vừa là khóa ngoại)
2 KhachHang (MaKH, HoVaTen, NgheNghiep, NgaySinh, DiaChi, GioiTinh)
3.HopDong(MaHopDong,MaKH,MaNV,Sotiencoc,NoiDung,DiaDiem,Thoigian)
4 NhanVien (MaNV, TenPhongBan, HoTen, DiaChi, NgaySinh, Email,
TinhTrangCongViec, GioiTinh)
5 PhongBan (TenPhongBan, MaTruongPhong, NgayNhanChuc)
6 DoiTac (TenDT, LinhVuc, TenPB)
7 Oto (MaXe, MaCongTyCC, LoaiXe, NoiSanXuat, GiaNiemYet, NamSanXuat, TenXe,
PhanKhuc, SoLuong, NgayNhapVe)
8 KhachHang_MuaXe (MaXe, MaKH, SoLuong, PhuongThucThanhToan)
(MaXe, MaKH vừa là khóa chinh vừa là khóa ngoại tham chiếu đến các bảng có liên quan)
9 HopDong_Xe (MaXe, MaHopDong, SoLuong) (n-n giữa hợp đồng và Oto )
(MaXe, MaHD vừa là khóa chinh vừa là khóa ngoại tham chiếu đến các bảng có liên quan)
10 NhanVien_BanXe (MaXe, MaNV, SoLuongXe) (n-n giữa Nhân viên và ô tô )
(MaXe, MaNhanVien vừa là khóa chinh vừa là khóa ngoại tham chiếu đến các bảng có liên quan)
11 BaoTriBaoDuong (MaBaoTri, MaXe, NgayThucHien, DonViSuaChua)
12 UuDai (MaUuDai, TenUuDai, MoTa, TongGiatri)
13 UuDai_Xe (MaUuDai, MaXe, NgayBatDau, NgayKetThuc) ( n-n giữa Ưu đãi và Ô tô )
(MaXe, MaUuDai vừa là khóa chinh vừa là khóa ngoại tham chiếu đến các bảng có liên quan)
14 NhaCungCap (MaCongTy,TenCongTy, DiaDiem)
15 ThongSoKyThuat (MaXe,SoCho, DongCo, HopSo,CongSuat,MomenXoan)
Trang 9(MaNV vừa là khóa chính vừa là khóa ngoại)
18 Kho (MaKho, TenKho, DiaDiem)
19 Kho_LuuTru (MaXe, MaKho, SoLuongXe)
(MaXe,MaKho vừa là khóa chính vừa là khóa ngoại tham chiếu đến các bảng tương ứng)
II Mô tả cấu trúc bảng
Dựa vào quy trình nghiệp vụ đã nêu, chúng ta cần thiết kế CSDL để lưu trữ các thông tin sau:
1 Bảng Thông tin chính của ô tô: Lưu trữ thông tin tên xe, mã xe, ngày nhập về, loại xe, năm sản xuất, giá niêm yết, nơi sản xuất, phân khúc, số lượng, mã công ty cung cấp
2 Bảng Thông số kỹ thuật của ô tô: Lưu trữ thông tin mã xe, động cơ, công suất (mã lực), momen xoắn(Nm), hộp số, số chỗ
3 Bảng Hợp đồng: mã hợp đồng, mã khách hàng, mã nhân viên, nội dung, thời gian, địa điểm, số tiền cọc
4 Bảng Ô tô_Hợp đồng: Lưu trữ thông tin mã xe, mã hợp đồng, số lượng
5 Bảng Thông tin chính của khách hàng: Lưu trữ thông tin mã khách hàng, họ tên, nghề nghiệp, giới tính, ngày sinh, địa chỉ
6 Bảng Khách hàng_Mua: Lưu trữ thông tin mã khách hàng, mã xe, số lượng, phương thức thanh toán
7 Bảng KH_SĐT: Lưu trữ thông tin mã khách hàng, số điện thoại
8 Bảng Thân nhân: Lưu trữ thông tin họ tên, quan hệ, mã khách hàng, tuổi, địa chỉ, giới tính
9 Bảng Thông tin chính của Nhân viên: Lưu trữ thông tin mã nhân viên, họ tên, địa chỉ, ngày sinh, email, tình trạng công việc, giới tính, tên phòng ban
10 Bảng Nhân viên_Bán: Lưu trữ thông tin mã nhân viên, mã xe, số lượng
11 Bảng Nhân viên_SĐT: Lưu trữ thông tin mã nhân viên, số điện thoại
Trang 1010
12 Bảng Bảo trì: Lưu trữ thông tin mã bảo trì, mã xe, ngày thực hiện, đơn vị sửa chữa
13 Bảng Thông tin chính của phòng ban: Lưu trữ thông tin tên phòng ban, mã trưởng phòng, ngày nhận chức
14 Bảng đối tác: Lưu trữ thông tin tên của công ty đối tác, lĩnh vực, tên phòng ban
15 Bảng Kho lưu trữ: Lưu trữ thông tin mã xe, mã kho, số lượng xe
16 Bảng Thông tin chính của kho: Lưu trữ thông tin mã kho, tên kho, địa điểm
17 Bảng Thông tin chính của ưu đãi: Lưu trữ thông tin mã ưu đãi, tên ưu đãi, mô tả, tổng giá trị
18 Bảng Ưu đãi_Áp dụng: Lưu trữ thông tin mã xe, mã ưu đãi, ngày bắt đầu, ngày kết thúc
19 Bảng Nhà cung cấp: Lưu trữ thông tin mã công ty, tên công ty, địa điểm
III Thao tác tạo lập trong SQL Server
Bước đầu, tạo lược đồ để chuẩn bị tạo lập các bảng:
1 Bảng Thông tin chính của ô tô
ThongTinChinh (OTO) (MaXe, TenXe, LoaiXe, NamSanXuat, NoiSanXuat,
PhanKhuc, GiaNiemYet, NgayNhapVe, SoLuong, MaCTyCungCap)
Tạo bảng bằng SQL Server
Trang 1313
Thông số bảng
5 Bảng Thông tin chính của khách hàng
ThongTinChinh (KH) (MaKH, HoVaTen, NgheNghiep, NgaySinh, GioiTinh, DiaChi)
Trang 1515
Thông số bảng
9 Bảng Thông tin chính của Nhân viên
ThongTinChinh (NV) (MaNV, HoTen, GioiTinh, NgaySinh, DiaChi, Email,
TinhTrangCongViec, PhongBan)
Tạo bảng bằng SQL Server
Thông số bảng
Trang 21ThongSoKiThuat (OTO)-ThongTinChinh (OTO),
ThongTinChinh (OTO)- ThongSoKiThuat (OTO),
NhaCungCap (OTO)-ThongTinChinh (OTO),
ThongTinChinh (OTO)- ThongTinChinh (KHO),
ThongTinChinh (KHO)- ThongTinChinh (OTO),
ThanNhan(KH)-ThongTinChinh (KH),
Trang 2222
ThongTinChinh (KH)- ThongTinChinh (OTO),
ThongTinChinh (KH)-HopDong (NV),
ThongTinChinh (OTO)- ThongTinChinh (UuDai),
HopDong (NV)- ThongTinChinh (OTO),
ThongTinChinh (PB)- ThongTinChinh (NV)
(0,n)
ThongTinChinh (OTO)- ThongTinChinh (NV),
ThongTinChinh (NV)- ThongTinChinh (OTO),
ThongTinChinh (OTO)- ThongTinChinh (KH),
ThongTinChinh (OTO)- HopDong (NV),
2 Ràng buộc khóa phụ: đảm bảo sự liên kết giữa các bảng
- VD: trong bảng HopDong (NV) có khóa phụ là MaKH và MaNV hai thuộc tính giúp bảng HopDong (NV) có thể liên kết thông tin với hai bảng ThongTinChinh (NV) và ThongTinChinh (KH) cũng như hai bảng đó có thể liên kết thông tin với nhau qua bảng HopDong (NV)
3 Ràng buộc NULL: giá trị trong cột có thể được để rỗng như NgheNghiep, PhuongThucThanhToan, …
4 Ràng buộc UNIQUE: tất cả giá trị trong một cột phải khác nhau ngoài các khoa chính còn một số thuộc tính khác như SDT, Email, …
5 Ràng buộc miền logic:
Tuoi > 0
Trang 2323
Ngày : từ 1 31
Tháng: từ 1 12
6 Ràng buộc miền giá trị:
Trong bảng ApDung (UuDai): NgayBatDau < NgayKetThuc
Trang 2424
Chương 6: Đại số quan hệ
1 Hãy liệt kê tên trưởng phòng và tên phòng ban tương ứng:
ΠNhanVien.HoTen,PhongBan.TenPhongBan(NhanVien ⋈ PhongBan))
2 Liệt kê tên xe bán được trong tháng 3/2022:
SQL :
SELECT DISTINCT
OTT TenXe
FROM
OTO ThongTinChinh OTT
INNER JOIN OTO TT_HopDong OTHD
ON OTT MaXe = OTHD MaXe
INNER JOIN NV HopDong NVHD
ON NVHD MaHopDong = OTHD MaHopDong
Trang 2525
OTT.MaXe,OTT TenXe,K.SoLuong
FROM
OTO ThongTinChinh OTT
INNER JOIN Kho.LuuTru K
ON K.MaXe = OTT MaXe
ĐSQH:
ΠMaXe,TenXe,SoLuongXe (Oto ⋈ Kho_LuuTru)
4 Liệt kê tất cả những mã ưu đãi đã từng được áp dụng cho xe ô tô có mã là ‘X0001’:
SQL:
SELECT
UD MaSo
FROM
OTO ThongTinChinh OTT
INNER JOIN UuDai ApDung UD
ON OTT MaXe = UD MaXe
WHERE
OTT MaXe = 'X0001'
ĐSQH:
ΠUuDai.MaUuDai(ϭMaXe = ‘X0001’(OTO ⋈ UuDai_Xe))
5 Liệt kê những nhân viên không bán được xe nào hoặc là không bán xe
Trang 2626
INNER JOIN NV Ban NVB
ON NV MaNV = NVB MaNV
ĐSQH:
(ΠHoTen(NhanVien)) – (ΠHoTen(NhanVien ⋈ NhanVien_BanXe)
6 Liệt kê giá niêm yết cao nhất:
YMaXe,Max(GiaNiemYet) Max(Gia)(OTO)
7 Lấy thông tin các đối tác hợp tác với phòng ban ‘Marketing’:
ϭTenCongTy,LinhVuc(PhongBan ⋈ DoiTac)
8 Liệt kê thông số kỹ thuật của xe:
SQL:
SELECT
COUNT (*)
Trang 2727
FROM
NV ThongTinChinh
ĐSQH:
YCOUNT(MaNhanVien) DemSoLuongNV (NhanVien)
9 Liệt kê tên khách hàng và tên những thân nhân có tuổi > 20:
ΠKhachHang.HoTen,ThanNhan.HoTen(ϭThanNhan.Tuoi > 20(KhachHang ⋈ ThanNhan))
10 Sắp xếp bảng Nhân viên theo tên nhân viên:
Trang 2828
Chương 7: Đánh giá kết quả
hoàn thành
1 20227264 Nguyễn Thế Thiện Trưởng nhóm, thiết kế cơ sở dữ
liệu, đại số quan hệ
A
2 20227191 Nguyễn Tuấn Dũng Đại số quan hệ, tìm kiếm data A
3 20227248 Đặng Kim Ngân Thiết kế cớ sở dữ liệu, tìm
kiếm data, viết báo cáo
Trang 2929