IT Learning HubIT Learning Hub
LƯỢC ĐỒ DÙNG CHUNG · IT004

Cơ sở dữ liệu Quản lý bán hàng

5 quan hệBTTH2 · BTTH3 · BTTH5

Lược đồ này được dùng chung cho nhiều bài tập thực hành từ Tuần 2 đến Tuần 5. Đọc kỹ phần tân từ và bảng thuộc tính trước khi làm bài - Nắm đúng ý nghĩa dữ liệu giúp viết truy vấn chính xác hơn nhiều so với chỉ nhớ tên cột.

TỔNG QUAN

Cho cơ sở dữ liệu quản lý bán hàng gồm có các quan hệ sau

KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK)

Tân từ: Quan hệ khách hàng sẽ lưu trữ thông tin của khách hàng thành viên gồm có các thuộc tính: Mã khách hàng, họ tên, địa chỉ, số điện thoại, ngày sinh, ngày đăng ký và doanh số (tổng trị giá các hóa đơn của khách hàng thành viên này).

NHANVIEN (MANV, HOTEN, NGVL, SODT)

Tân từ: Mỗi nhân viên bán hàng cần ghi nhận họ tên, ngày vào làm, điện thoại liên lạc, mỗi nhân viên phân biệt với nhau bằng mã nhân viên.

SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA)

Tân từ: Mỗi sản phẩm có một mã số, một tên gọi, đơn vị tính, nước sản xuất và một giá bán.

HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)

Tân từ: Khi mua hàng, mỗi khách hàng sẽ nhận một hóa đơn tính tiền, trong đó sẽ có số hóa đơn, ngày mua, nhân viên nào bán hàng, trị giá của hóa đơn là bao nhiêu và mã số của khách hàng nếu là khách hàng thành viên.

CTHD (SOHD, MASP, SL)

Tân từ: Diễn giải chi tiết trong mỗi hóa đơn gồm có những sản phẩm gì với số lượng là bao nhiêu.

Sơ đồ quan hệ

KHACHHANG HOADON NHANVIEN CTHD SANPHAM

Diễn giải quan hệ

KHACHHANG (1) ➜ HOADON (N): Một khách hàng thành viên có thể có nhiều hóa đơn.

NHANVIEN (1) ➜ HOADON (N): Một nhân viên bán nhiều hóa đơn.

HOADON (1) ➜ CTHD (N): Một hóa đơn có nhiều dòng chi tiết.

SANPHAM (1) ➜ CTHD (N): Một sản phẩm xuất hiện trong nhiều dòng chi tiết, ở nhiều hóa đơn khác nhau.

Lưu ý dễ nhầm: HOADON.MAKH có thể để trống (NULL) - Không phải khách mua hàng nào cũng là khách hàng thành viên. Xem hóa đơn 1022 và 1023 trong dữ liệu mẫu, cả hai đều không gắn MAKH.

QUAN HỆ 1 · KHACHHANG

KHACHHANG

Lưu thông tin khách hàng thành viên: Mã khách hàng, họ tên, địa chỉ, số điện thoại, ngày sinh, ngày đăng ký thành viên và doanh số (tổng trị giá các hóa đơn mà khách hàng thành viên này đã mua).
Thuộc tínhKiểu dữ liệuDiễn giải
MAKHchar(4)Mã khách hàng - Khóa chính
HOTENvarchar(40)Họ tên
DCHIvarchar(50)Địa chỉ
SODTvarchar(20)Số điện thoại
NGSINHsmalldatetimeNgày sinh
NGDKsmalldatetimeNgày đăng ký thành viên
DOANHSOmoneyTổng trị giá các hóa đơn đã mua

DỮ LIỆU MẪU (đầy đủ 10 khách hàng)

MAKHHOTENDCHISODTNGSINHNGDKDOANHSO
KH01Nguyen Van A731 Tran Hung Dao, Q5, TpHCM882345122/10/196022/07/200613.060.000
KH02Tran Ngoc Han23/5 Nguyen Trai, Q5, TpHCM90825647803/04/197430/07/2006280.000
KH03Tran Ngoc Linh45 Nguyen Canh Chan, Q1, TpHCM93877626612/06/198008/05/20063.860.000
KH04Tran Minh Long50/34 Le Dai Hanh, Q10, TpHCM91732547609/03/196510/02/2006250.000
KH05Le Nhat Minh34 Truong Dinh, Q3, TpHCM824610810/03/195028/10/200621.000
KH06Le Hoai Thuong227 Nguyen Van Cu, Q5, TpHCM863173831/12/198124/11/2006915.000
KH07Nguyen Van Tam32/3 Tran Binh Trong, Q5, TpHCM91678356506/04/197112/01/200612.500
KH08Phan Thi Thanh45/2 An Duong Vuong, Q5, TpHCM93843575610/01/197113/12/2006365.000
KH09Le Ha Vinh873 Le Hong Phong, Q5, TpHCM865476303/09/197914/01/200770.000
KH10Ha Duy Lap34/34B Nguyen Trai, Q1, TpHCM876890402/05/198316/01/200767.500

QUAN HỆ 2 · NHANVIEN

NHANVIEN

Mỗi nhân viên bán hàng được ghi nhận: Mã nhân viên, họ tên, ngày vào làm và số điện thoại liên lạc.
Thuộc tínhKiểu dữ liệuDiễn giải
MANVchar(4)Mã nhân viên - Khóa chính
HOTENvarchar(40)Họ tên
SODTvarchar(20)Số điện thoại
NGVLsmalldatetimeNgày vào làm

DỮ LIỆU MẪU (đầy đủ - Chỉ có 5 nhân viên)

MANVHOTENSODTNGVL
NV01Nguyen Nhu Nhut092734567813/04/2006
NV02Le Thi Phi Yen098756739021/04/2006
NV03Nguyen Van B099704738227/04/2006
NV04Ngo Thanh Tuan091375849824/06/2006
NV05Nguyen Thi Truc Thanh091859038720/07/2006

QUAN HỆ 3 · SANPHAM

SANPHAM

Mỗi sản phẩm có mã số, tên gọi, đơn vị tính, nước sản xuất và giá bán.
Thuộc tínhKiểu dữ liệuDiễn giải
MASPchar(4)Mã sản phẩm - Khóa chính
TENSPvarchar(40)Tên sản phẩm
DVTvarchar(20)Đơn vị tính (cây, hộp, quyển, cái...)
NUOCSXvarchar(40)Nước sản xuất
GIAmoneyGiá bán

DỮ LIỆU MẪU (đầy đủ 24 sản phẩm)

MASPTENSPDVTNUOCSXGIA
BC01But chicaySingapore3.000
BC02But chicaySingapore5.000
BC03But chicayViet Nam3.500
BC04But chihopViet Nam30.000
BB01But bicayViet Nam5.000
BB02But bicayTrung Quoc7.000
BB03But bihopThai Lan100.000
TV01Tap 100 giay mongquyenTrung Quoc2.500
TV02Tap 200 giay mongquyenTrung Quoc4.500
TV03Tap 100 giay totquyenViet Nam3.000
TV04Tap 200 giay totquyenViet Nam5.500
TV05Tap 100 trangchucViet Nam23.000
TV06Tap 200 trangchucViet Nam53.000
TV07Tap 100 trangchucTrung Quoc34.000
ST01So tay 500 trangquyenTrung Quoc40.000
ST02So tay loai 1quyenViet Nam55.000
ST03So tay loai 2quyenViet Nam51.000
ST04So tayquyenThai Lan55.000
ST05So tay mongquyenThai Lan20.000
ST06Phan viet banghopViet Nam5.000
ST07Phan khong buihopViet Nam7.000
ST08Bong bangcaiViet Nam1.000
ST09But longcayViet Nam5.000
ST10But longcayTrung Quoc7.000

QUAN HỆ 4 · HOADON

HOADON

Khi mua hàng, khách nhận một hóa đơn: Số hóa đơn, ngày mua, nhân viên bán, trị giá hóa đơn và mã khách hàng (nếu người mua là khách hàng thành viên).
Thuộc tínhKiểu dữ liệuDiễn giải
SOHDintSố hóa đơn - Khóa chính
NGHDsmalldatetimeNgày lập hóa đơn
MAKHchar(4)Khách hàng nào mua - Khóa ngoại đến KHACHHANG, có thể NULL
MANVchar(4)Nhân viên nào bán - Khóa ngoại đến NHANVIEN
TRIGIAmoneyTrị giá hóa đơn

DỮ LIỆU MẪU (đầy đủ 23 hóa đơn)

SOHDNGHDMAKHMANVTRIGIA
100123/07/2006KH01NV01320.000
100212/08/2006KH01NV02840.000
100323/08/2006KH02NV01100.000
100401/09/2006KH02NV01180.000
100520/10/2006KH01NV023.800.000
100616/10/2006KH01NV032.430.000
100728/10/2006KH03NV03510.000
100828/10/2006KH01NV03440.000
100928/10/2006KH03NV04200.000
101001/11/2006KH01NV015.200.000
101104/11/2006KH04NV03250.000
101230/11/2006KH05NV0321.000
101312/12/2006KH06NV015.000
101431/12/2006KH03NV023.150.000
101501/01/2007KH06NV01910.000
101601/01/2007KH07NV0212.500
101702/01/2007KH08NV0335.000
101813/01/2007KH08NV03330.000
101913/01/2007KH01NV0330.000
102014/01/2007KH09NV0470.000
102116/01/2007KH10NV0367.500
102216/01/2007NULLNV037.000
102317/01/2007NULLNV01330.000

QUAN HỆ 5 · CTHD

CTHD (Chi tiết hóa đơn)

Diễn giải chi tiết trong mỗi hóa đơn: Hóa đơn đó gồm những sản phẩm nào, với số lượng bao nhiêu. Khóa chính là cặp (SOHD, MASP) - Vì trong 1 hóa đơn, 1 sản phẩm chỉ xuất hiện tối đa 1 dòng.
Thuộc tínhKiểu dữ liệuDiễn giải
SOHDintSố hóa đơn - Khóa chính, khóa ngoại đến HOADON
MASPchar(4)Mã sản phẩm - Khóa chính, khóa ngoại đến SANPHAM
SLintSố lượng mua

DỮ LIỆU MẪU (đầy đủ 48 dòng)

SOHDMASPSL
1001TV0210
1001ST015
1001BC015
1001BC0210
1001ST0810
1002BC0420
1002BB0120
1002BB0220
1003BB0310
1004TV0120
1004TV0210
1004TV0310
1004TV0410
1005TV0550
1005TV0650
1006TV0720
SOHDMASPSL
1006ST0130
1006ST0210
1007ST0310
1008ST048
1009ST0510
1010TV0750
1010ST0750
1010ST08100
1010ST0450
1010TV03100
1011ST0650
1012ST073
1013ST085
1014BC0280
1014BB02100
1014BC0460
SOHDMASPSL
1014BB0150
1015BB0230
1015BB037
1016TV015
1017TV021
1017TV031
1017TV045
1018ST046
1019ST051
1019ST062
1020ST0710
1021ST085
1021TV017
1021TV0210
1022ST071
1023ST046

SCRIPT ĐẦY ĐỦ

Tạo CSDL và nạp dữ liệu mẫu

Script tạo database QLBH_2025, tạo 5 bảng kèm khóa chính/khóa ngoại, và nạp toàn bộ dữ liệu mẫu (10 khách hàng, 5 nhân viên, 24 sản phẩm, 23 hóa đơn, 48 dòng chi tiết). Chạy trực tiếp trong SSMS trước khi bắt đầu làm bài.

Script CSDL Quản lý bán hàng (QLBH_2025) File .sql · tạo bảng, ràng buộc và dữ liệu mẫu đầy đủ
Tải file ↓
Áp dụng cho: BTTH2 (Tuần 2), BTTH3 (Tuần 3) và các ví dụ Trigger ở BTTH5 (Tuần 5) đều dùng chung lược đồ này - Chỉ cần chạy script 1 lần.