● Mỗi lần thanh toán sản phẩm khách hàng nhận được một hóa đơn HOADON, mỗi hóa đơn đơn có thông tin: Mã hóa đơn MaHD, tổng tiền Tongtien, tiền vận chuyển sản phẩm Tienship, ngày khách hà
Trang 1BÀI TẬP LỚN
CƠ SỞ DỮ LIỆU
Giảng viên: Nguyễn Ngọc Quỳnh Châu
Sinh viên: Nguyễn Văn Hiếu
Nguyễn Quang Thái
Nguyễn Đăng Phương
Lớp: 62TH5
***Hà Nội***
TRƯỜN
G ĐẠI HỌC THỦY LỢI
Trang 2Phụ Lục
Lời nói đầu 3
Bảng phân chia công việc 3
I Xác định quy tắc/ràng buộc, vẽ mô hình ER …… 4
1 Xác định quy tắc/ràng buộc 4
2 Xây dựng mô hình thực thể liên kết ER 5
II Chuyển từ mô hình thực thể liên kết sang mô hình quan hệ 9
III Xác định khóa 18
1 Thuật toán tìm khóa 18
1.1 Thuật toán 1 19
2 Thuật toán tìm nhiều khóa 21
IV Chuẩn hoá lược đồ quan hệ thành dạng chuẩn3NF hoặc BCNF ……… 23
1 Chuẩn hoá lược đồ quan hệ thành dạng chuẩn 3NF hoặc BCNF ……….23
2.1 Chuẩn hóa lược đồ quan hệ thành dạng chuẩn 3NF 24
2.2 Chuẩn hóa lược đồ quan hệ thành dạng chuẩn BCNF 25
V Câu lệnh truy vấn 27
1 Nguyễn Quang Thái 26
2 Nguyễn Văn Hiếu 28
3 Nguyễn Đăng Phương 30
Kết luận …32
Trang 3Lời nói đầu
Trước tình hình kinh tế xã hội năng động phát triển, cùng với đó là nền công nghệ luôn từngbước được khái phá, trí tuệ con người ta càng được mở rộng Điều đó đã tạo nên sự cạnh tranh mạnh mẽ trong xã hội về hình thức kinh tế cũ và hình thức kinh tế mới Đây cũng chính là thời điểm tạo nên cơ hội để phát triển bản thân cho những ai những ai có suy nghĩ táo bạo trong kinh doanh “Cơ hội giống như bình minh Nếu bạn chờ quá lâu, bạn sẽ bỏ lỡ nó” (William Arthur Ward)
Nắm bắt được cơ hội này, cũng như hình thức kinh tế mới mà người dùng đang hướng tới
đó là kinh doanh online Đây là một nền tảng đầy hứa hẹn và có tiềm năng phát triển cao trong tương lai Tính năng kinh doanh này đánh trực tiếp vào tâm lý mua hàng tiện ích, dễ dàng Bạn chỉ cần ở nhà với chiếc Smart phone trên tay hoặc chiếc laptop, bạn đã có thể mua hàng ở bất cứ đâu và thỏa sức tìm kiếm lựa chọn các mặt hàng mà không cần phải di chuyển nhiều nơi Chính vì thế dựa trên những tiện ích mà hình thức online đem lại và nền tảng khách hàng lớn cùng với đó là những nhu cầu mua sắm của khác hàng Nhóm em đã cùng thiết kế lên một CSDL nhằm tạo nên một trang wed có thể đăng bán nhiều mặt hàng vàđưa những mặt hàng dễ tiếp cận đến người mua hơn so với hình thức bán hàng truyền thống tại cửa hàng
Bảng phân chia công việcCông việc Nguyễn Văn Hiếu Nguyễn Quang
Thái Nguyễn ĐăngPhươngXác định quy tắc / ràng
Trang 4I Xác định quy tắc/ràng buộc, xây dựng mô hình thực thể liên kết ER:
1 Quy tắc quản lý cửa hàng online:
● Một website bán hàng online, chủ sở hữu website là người bán (NGUOIBAN)
có các thông tin: mã người bán (MaNB), mật khẩu (MatkhauNB), họ và tên(TenNB), địa chỉ (DiachiNB), số điện thoại (SdtNB), ngày sinh(NgaysinhNB), email (EmailNB) Người bán có duy nhất một mã người bán
● Người bán có đa dạng sản phẩm (SANPHAM), mỗi sản phẩm có các thông
tin: mã sản phẩm (MaSP), tên của sản phẩm (TenSP), khối lượng(Khoiluong), nơi sản xuất (Xuatxu), số lượng sản phẩm tồn (SLTon), mô tảchi tiết về sản phẩm (Mota), giá sản phẩm (Giaban) Mỗi sản phẩm có duynhất một mã sản phẩm
● Trang web có nhiều khách hàng mua sản phẩm (KHACHHANG), thông tin
của khách hàng gồm: Mã khách hàng (MaKH), mật khẩu (MatkhauKH), họ vàtên (TenKH), địa chỉ (DiachiKH), số điện thoại (SdtKH), email (EmailKH).Mỗi khách hàng có duy nhất một mã khách hàng
● Một khách hàng được mua nhiều sản phẩm, mỗi sản phẩm được mua trangweb lưu lại số lượng mua (SLmua)
● Mỗi lần thanh toán sản phẩm khách hàng nhận được một hóa đơn
(HOADON), mỗi hóa đơn đơn có thông tin: Mã hóa đơn (MaHD), tổng tiền
(Tongtien), tiền vận chuyển sản phẩm (Tienship), ngày khách hàng đặt sảnphẩm (Ngaydat), phương thức thanh toán được khách hàng lựa chọn(PTTToan) Mỗi hóa đơn có duy nhất một mã hóa đơn
● Một hóa đơn mua hàng có nhiều hóa đơn chi tiết (CHITIETHOADON), mỗi
chi tiết hóa đơn lưu lại: giá trị sản phẩm (Trigia), đơn giá (Dongia), số lượngsản phẩm đã đặt (SLDat)
● Người bán cần thuê nhân viên giao hàng (NHANVIENGIAO) lưu lại ngày
thuê nhân viên đó (Ngaythue), mỗi nhân viên giao có thông tin: Mã nhân viêngiao (MaNVG), Họ tên (TenNVG), số điện thoại liên lạc (SdtNVG) Mỗi nhânviên giao có mã nhân viên là duy nhất
● Sau khi khách hàng nhận hàng và kí tên từ người giao hàng, người bán nhậnđược thông tin giao hàng từ người giao hàng, mỗi lần giao thành công trangweb lưu lại thông tin nơi gửi (Noigui), nơi nhận (Noinhan), ngày gửi(Ngaygui), tiền thu hộ (Tienthuho)
● Sau khi mua hàng khách hàng cho ý kiến đánh giá sản phẩm bằng lời bìnhluận (BinhLuan) và bằng mức độ đánh giá (Vote) theo số thứ tự từ 1 đến 5.Trong đó:
1 → 2: Không tốt
2 → 3: Khá tốt
3 → 4: Tốt
Trang 5● SANPHAM(MaSP, TenSP, Khoiluong, Xuatxu, SLTon, Mota, Giaban)
● KHACHHANG(MaKH, TenKH, MatkhauKH, DiachiKH, SdtKH, EmailKH)
Trang 6● HOADON(MaHD, Tongtien, Tienship, Ngaydat, PTTToan)
Trang 7● Một người bán THUÊ được nhiều nhân viên giao, một nhân viên giao được
thuê bởi nhiều người bán
● Một khách hàng được GIAO bởi nhiều nhân viên giao, một nhân viên giao GIAO được cho nhiều khách hàng.
● Một hóa đơn được NHẬN bởi một nhân viên giao, một nhân viên giao NHẬN
được nhiều hóa đơn
● Một khách hàng CÓ nhiều hóa đơn, một hóa đơn chỉ CÓ bởi một khách.
● Một hóa đơn được XUẤT bởi một người bán, một người bán XUẤT được
nhiều hóa đơn
b Liên kết
● Liên kết 1 - 1:
● Liên kết 1 - N:
1 Liên kết giữa thực thể NGUOIBAN và HOADON
2 Liên kết giữa thực thể NHANVIENGIAO và HOADON
3 Liên kết giữa thực thể NGUOIBAN và SANPHAM
4 Liên kết giữa thực thể KHACHHANG và HOADON
● Liên kết M - N:
1 Liên kết giữa thực thể NHANVIENGIAO và KHACHHANG
2 Liên kết giữa thực thể NGUOIBAN và NHANVIENGIAO
3 Liên kết giữa thực thể SANPHAM và KHACHHANG
Trang 84 Liên kết giữa thực thể SANPHAM và KHACHHANG
5 Liên kết giữa thực thể SANPHAM và CHITIETHOADON
- Một web bán hàng online cá nhân, chủ sỡ hữu là người bán (NGUOIBAN)
có các thông tin như sau : mã người bán (MaNB), mật khẩu (MatkhauNB),tên (TenNB), địa chỉ (DiachiNB), số điện thoại (SdtNB), ngày sinh(NgaysinhNB), email (EmailNB) và mã người bán là duy nhất
+ NGUOIBAN (MaNB , MatkhauNB, TenNB, DiachiNB, SdtNB,NgaysinhNB,EmailNB)
+ MaNB → MatkhauNB, TenNB, DiachiNB, SdtNB, NgaysinhNB,EmailNB
Trang 9- Người bán này bán rất nhiều sản phẩm (SANPHAM), mỗi sản phẩm có cácthông tin như sau : mã sản phẩm (MaSP) là duy nhất cho mỗi mặt hàng bàybán, tên sản phẩm (TenSP), khối lượng sản phẩm (Khoiluong), xuất sứ(Xuatxu), số lượng sản phầm còn (SLTon) mô tả chi tiết sản phẩm (Mota),giá sản phẩm (Giaban)
+ SANPHAM (MaSP, TenSP, Khoiluong, Xuatxu, SLTon, Mota,Giaban)
+ MaSP → TenSP, Khoiluong, Xuatxu, SLTon, Mota, Giaban
- Trang web này có nhiều người dùng, mỗi người dùng là một khách hàng(KHACHHANG) có các thông tin như sau : Mã khách (MaKH) là duy nhấtmỗi khách hàng chỉ có 1 mã, tên khách hàng (TenKH), mật khẩu kháchhàng (MatkhauKH), địa chỉ khách hàng (DiachiKH), số điện thoại(SdtKH), email khách hàng (EmailKH) Một khách hàng (KHACHHANG)
có thể mua được nhiều sản phẩm (SANPHAM)
+ KHACHHANG (MaKH, TenKH, MatkhauKH, DiachiKH, SdtKH,EmailKH)
+ MaKH → TenKH, MatkhauKH, DiachiKH, SdtKH, EmailKH)
+ MaKH → MaSP
- Một khách hàng có thể mua được nhiều sản phẩm, mỗi sản phẩm được mualưu lại số lượng mua (SLMua), mỗi lần thanh toán sẽ nhận được một hóađơn (HOADON) chứa mã hóa đơn (MaHD) là duy nhất, mã người mua(MaKH), số tiền ship phải trả (Tienship), tổng tiền phải trả (Tongtien),ngày đặt hàng (Ngaydat), phương thức thanh toán (PTTToan) Khi thanhtoán khách hàng có thể ghi chú lại cho chủ shop
+ HOADON (MaHD, MaKH, Tienship, Tongtien, Ngaydat,PTTToan)
+ MaKH, MaSP → SLMua
+ MaHD → MaKH
+ MaHD → MaNVG
- Mỗi một hóa đơn sẽ có nhiều hóa đơn chi tiết, mỗi hóa đơn chi tiết(CHITIETHOADON) lưu lại mã hóa đơn (MaHD), mã sản phẩm (MaSP),giá bán sản phẩm (Giaban), số lượng đặt (SLDat)
+ CHITIETHOADON (MaHD, MaSP, SLDat)
+ MaHD, MaSP → SLDat, Trigia
- Nhân viên giao hàng (NHANVIENGIAO) có các thuộc tính mã nhân viêngiao (MaNVG) là duy nhất, tên nhân viên giao (TenNVG), số điện thoại(SdtNVG)
+ NHANVIENGIAO (MaNVG, TenNVG, SdtNVG)
Trang 10+ MaNVG → TenNVG, SdtNVG
- Khi khách hàng đặt hàng thành công, người bán nhận được thông tin hóađơn và ship đồ cho khách thông qua nhân viên giao, mỗi lần ship lưu lại sốtiền thu hộ (Tienthuho), ngày gửi (Ngaygui), nơi gửi (Noigui), nơi nhận(Noinhan)
+ MaNVG, MaHD → Tienthuho, Ngaygui, Noigui, Noinhan
- Khi khách hàng nhận được đồ có thể đánh giá lại sản phẩm, bằng cách đánhgiá sao (chosao) hoặc bình luận sản phẩm (loibinh)
+ MaKH, MaSP → Binhluan, vote
- Một sản phẩm được cung cấp bởi một người bán
+ F6: MaHD → Tienship, Tongtien, Ngaydat, PTTToan
+ F7: MaHD, MaSP → SLDat, Giaban, Dongia
+ F8: MaNVG → TenNVG, SdtNVG
+ F9: MaNVG, MaKH → Tienthuho, Ngaygui, Noigui, Noinhan
+ F10: MaKH, MaSP → SLMua
+ F11: MaKH, MaSP → Binhluan, vote
+ F12: MaHD → MaKH
+ F13: MaHD → MaNVG
+ F14: MaNB, MaNVG → Ngaythue
+ F15: MaHD → MaNB
Trang 11II Chuyển từ mô hình thực thể liên kết sang mô hình quan hệ:
- Áp dụng các quy tắc để chuyển mô hình thực thể liên kết sang mô hình quan hệ:
+ Quy tắc 1: Các thực thể (trừ thực thể yếu) → Các bảng/quan hệ
=> Quan hệ: NGUOIBAN(MaNB, MatkhauNB, TenNB, DiachiNB, SdtNB, NgaysinhNB,EmailNB)
=> Quan hệ: SANPHAM(MaSP, TenSP, Khoiluong, Xuatxu, SLTon, Mota, Giaban)
=> Quan hệ: KHACHHANG(MaKH, TenKH, MatkhauKH, DiachiKH, SdtKH, EmailKH)
Trang 12=> Quan hệ: HOADON(MaHD, Tongtien, Tienship, Ngaydat, PTTToan)
=> Quan hệ: NHANVIENGIAO(MaNVG, TenNVG, SdtNVG)
+ Quy tắc 2: Mỗi thực thể yếu → 1 bảng quan hệ, khoá của thực thể chủ sẽ thành khoángoại
=> CHITIETHOADON(MaHD, MaSP, Dongia,SLDat, Trigia)
+ Quy tắc 3: Liên kết 1-1 → Đưa khoá chính của kiểu thực thể không có sự tham giatoàn bộ (HOADON) sang làm khoá ngoại của thực thể có sự tham gia toàn bộ(CHITIETHOADON)
Trang 13=> CHITIETHOADON(MaHD, Dongia,SLDat, Trigia)
+ Quy tắc 4: Liên kết 1-N → Khoá của quan hệ bên 1 trở thành khoá ngoại ở quan hệbên nhiều
● Ta có mối liên kết CUNG CẤP: là kiểu liên kết 1-N giữa NGUOIBAN vàSANPHAM nên khoá chính của thực thể NGUOIBAN trở thành khoá ngoại của thựcthể SANPHAM
=> SANPHAM(MaSP, TenSP, Khoiluong, Xuatxu, SLTon, Mota, Giaban, MaNB)
● Ta có mối liên kết NHẬN: là kiểu liên kết 1-N giữa NHANVIENGIAO vàHOADON nên khoá chính của thực thể NHANVIENGIAO trở thành khoá ngoại củathực thể HOADON
=> HOADON(MaHD, Tongtien, Tienship, Ngaydat, PTTToan, MaNVG)
● Ta có mối liên kết CÓ: là kiểu liên kết 1-N giữa KHACHHANG và HOADON nênkhoá chính của thực thể KHACHHANG trở thành khoá ngoại của thực thểHOADON
Trang 14=> HOADON(MaHD, Tongtien, Tienship, Ngaydat, PTTToan, MaNVG, MaKH)
● Ta có mối liên kết XUẤT: là kiểu liên kết 1-N giữa NGUOIBAN và HOADON nênkhoá chính của thực thể NGUOIBAN trở thành khoá ngoại của thực thể HOADON
=> HOADON(MaHD, Tongtien, Tienship, Ngaydat, PTTToan, MaNVG, MaKH, MaNB)+ Quy tắc 5: Liên kết M-N → Thêm 1 bảng/quan hệ mới R, chuyển khóa chính của haiquan hệ phía M và N thành khóa ngoại của quan hệ Khóa chính của quan hệ mới là
sự kết hợp của hai khóa ngoại
● Ta có mối liên kết MUA: là kiểu liên kết M-N giữa KHACHHANG và SANPHAMnên ta tạo một quan hệ mới có tên là MUASP, MUASP nhận hai khóa chính của thựcthể KHACHHANG và SANPHAM làm khóa ngoại và khóa chính của thực thểMUASP là sự kết hợp của hai khóa ngoại đó
=> MUASP(MaKH, MaSP, SLMua)
Trang 15● Ta có mối liên kết ĐÁNH GIÁ: là kiểu liên kết M-N giữa KHACHHANG vàSANPHAM nên ta tạo một quan hệ mới có tên là DANHGIASP, MUASP nhận haikhóa chính của thực thể KHACHHANG và SANPHAM làm khóa ngoại và khóachính của thực thể DANHGIASP là sự kết hợp của hai khóa ngoại đó.
=> DANHGIASP(MaKH, MaSP, BinhLuan, Vote)
● Ta có mối liên kết CÓ: là kiểu liên kết M-N giữa SANPHAM vàCHITIETHOADON nên ta tạo một quan hệ mới có tên là SPCTHD, SPCTHD nhậnhai khóa chính của thực thể SANPHAM và CHITIETHOADON làm khóa ngoại vàkhóa chính của thực thể SPCTHD là sự kết hợp của hai khóa ngoại đó
=> SPCTHD(MaSP, MaHD)
● Ta có mối liên kết THUÊ: là kiểu liên kết M-N giữa NGUOIBAN vàNHANVIENGIAO nên ta tạo một quan hệ mới có tên là THUENV, THUENV nhậnhai khóa chính của thực thể NGUOIBAN và NHANVIENGIAO làm khóa ngoại vàkhóa chính của thực thể THUENV là sự kết hợp của hai khóa ngoại đó
Trang 16=> THUENV(MaNB, MaNVG, NgayThue)
● Ta có mối liên kết GIAO: là kiểu liên kết M-N giữa KHACHHANG vàNHANVIENGIAO nên ta tạo một quan hệ mới có tên là DONGIAO, DONGIAOnhận hai khóa chính của thực thể KHACHHANG và NHANVIENGIAO làm khóangoại và khóa chính của thực thể DONGIAO là sự kết hợp của hai khóa ngoại đó
=>DONGIAO(MaKH, MaNVG, NoiGui, NoiNhan, NgayGui, Tienthuho)
Trang 17● SANPHAM(MaSP, TenSP, Khoiluong, Xuatxu, SLTon, Mota, Giaban, MaNB)
● KHACHHANG(MaKH, TenKH, MatkhauKH, DiachiKH, SdtKH, EmailKH)
Trang 18● HOADON(MaHD, Tongtien, Tienship, Ngaydat, PTTToan, MaNVG, MaKH,MaNB)
● CHITIETHOADON(MaHD, MaSP, Dongia,SLDat, Trigia)
Trang 20- Một web bán hàng online cá nhân, chủ sỡ hữu là người bán (NGUOIBAN) cócác thông tin như sau : mã người bán (MaNB), mật khẩu (MatkhauNB), tên(TenNB), địa chỉ (DiachiNB), số điện thoại (SdtNB), ngày sinh(NgaysinhNB), email (EmailNB) và mã người bán là duy nhất.
+ NGUOIBAN (MaNB , MatkhauNB, TenNB, DiachiNB, SdtNB,
+ SANPHAM (MaSP, TenSP, Khoiluong, Xuatxu, SLTon, Mota,Giaban)
+ MaSP → TenSP, Khoiluong, Xuatxu, SLTon, Mota, Trigia
- Trang web này có nhiều người dùng, mỗi người dùng là một khách hàng(KHACHHANG) có các thông tin như sau : Mã khách (MaKH) là duy nhấtmỗi khách hàng chỉ có 1 mã, tên khách hàng (TenKH), mật khẩu khách hàng(MatkhauKH), địa chỉ khách hàng (DiachiKH), số điện thoại (SdtKH), emailkhách hàng (EmailKH) Một khách hàng (KHACHHANG) có thể mua đượcnhiều sản phẩm (SANPHAM)
+ KHACHHANG (MaKH, TenKH, MatkhauKH, DiachiKH, SdtKH,EmailKH)
+ MaKH → TenKH, MatkhauKH, DiachiKH, SdtKH, EmailKH)
+ MaKH → MaSP
- Một khách hàng có thể mua được nhiều sản phẩm, mỗi sản phẩm được mualưu lại số lượng mua (SLMua), mỗi lần thanh toán sẽ nhận được một hóa đơn(HOADON) chứa mã hóa đơn (MaHD) là duy nhất, mã người mua (MaKH),
số tiền ship phải trả (Tienship), tổng tiền phải trả (Tongtien), ngày đặt hàng(Ngaydat), phương thức thanh toán (PTTToan) Khi thanh toán khách hàng cóthể ghi chú lại cho chủ shop
+ HOADON (MaHD, MaKH, Tienship, Tongtien, Ngaydat, PTTToan)+ HOADON → Tienship, Tongtien, Ngaydat, PTTToan
+ MaKH, MaSP → SLMua
+ MaHD → MaKH
+ MaHD → MaNVG
Trang 21- Mỗi một hóa đơn sẽ có nhiều hóa đơn chi tiết, mỗi hóa đơn chi tiết(CHITIETHOADON) lưu lại mã hóa đơn (MaHD), mã sản phẩm (MaSP), giábán sản phẩm (Trigia), số lượng đặt (SLDat)
+ CHITIETHOADON (MaHD, MaSP, SLDat)+ MaHD, MaSP → SLDat, Trigia
- Nhân viên giao hàng (NHANVIENGIAO) có các thuộc tính mã nhân viêngiao (MaNVG) là duy nhất, tên nhân viên giao (TenNVG), số điện thoại(SdtNVG)
+ NHANVIENGIAO (MaNVG, TenNVG, SdtNVG)+ MaNVG → TenNVG, SdtNVG
- Khi khách hàng đặt hàng thành công, người bán nhận được thông tin hóa đơn
và ship đồ cho khách thông qua nhân viên giao, mỗi lần ship lưu lại số tiền thu
hộ (Tienthuho), ngày gửi (Ngaygui), nơi gửi (Noigui), nơi nhận (Noinhan)
+ MaNVG, MaKH → Tienthuho, Ngaygui, Noigui, Noinhan
- Khi khách hàng nhận được đồ có thể đánh giá lại sản phẩm, bằng cách đánhgiá sao (chosao) hoặc bình luận sản phẩm (loibinh)
+ MaKH, MaSP → Binhluan, vote
- Một sản phẩm được cung cấp bởi một người bán
A6, A7 A8 A9 A10 A11 A12
Mota, Giaban, MaKH, MatkhauKH,TenKH, DiachiKH, SdtKH, EmailKH,
A13 A14 A15 A16 A17 A18 A19 A20
MaHD, Tienship, Tongtien, Ngaydat, PTTToan, SLDat, MaNVG, TenNVG,
A21 A22 A23 A24 A25 A26 A27 A28
SdtNVG, SLMua, Vote, Binhluan, Tienthuho, Ngaygui, Noigui, Noinhan,
A29 A30 A31 A32 A33 A34 A35 A36
Trigia, Ngaythue, Dongia )
A37 A38 A39