Qua đó, chúng em đã xác định các thực thể, quan hệ và thuộc tính quan trọng để lưu trữ và quản lí thông tin liên quan đến quá trình bán hàng, như thông tin về khách hàng, sản phẩm, đơn h
Trang 1BÁCH KHOA HÀ NỘI - -
Đề tài: Thiết kế cơ sở dữ liệu hệ thống
quản lí siêu thị
Gi ng viên h ả ướ ng dẫẫn: Nguyêẫn Th Thu Huyêền ị
H và tên sinh viên: ọ Lê Đ c Vi t ứ ệ
Mã sốố sinh viên: 20216968
Mã l p: ớ 142298
Trang 2Đồ án môn học 2
Trang 3MỞ ĐẦU 8
CHƯƠNG I MÔ TẢ BÀI TOÁN THỰC TẾ 9
1 Mục tiêu của hệ thống quản lí siêu thị 9
2 Hệ thống này cung cấp các quy trình nghiệp vụ sau: 10
3 Yêu cầu của hệ thống về bảng dữ liệu: 11
CHƯƠNG II CÁC CHỨC NĂNG CỦA HỆ THỐNG 13
CHƯƠNG III THIẾT KẾ CƠ SỞ DỮ LIỆU 16
1 Phụ thuộc hàm và tập thuộc tính tương ứng 16
2 Tìm khóa của lược đồ quan hệ: 17
3 Tìm phủ tối thiểu 17
4 Chuẩn hóa lược đồ quan hệ 18
CHƯƠNG IV THIẾT KẾ THEO MÔ HÌNH THỰC THỂ LIÊN KẾT 23
CHƯƠNG V SO SÁNH QUÁ TRÌNH THIẾT KẾ 29
CHƯƠNG VI TẠO LẬP VÀ CẬP NHẬT DỮ LIỆU 31
1 Tạo bảng trong SQL 31
2 Cập nhật dữ liệu cho bảng 34
CHƯƠNG VII : TRUY VẤN DỮ LIỆU 40
Trang 4MỞ ĐẦU
Kính gửi giảng viên và các bạn sinh viên,
Trong kỷ nguyên công nghệ thông tin phát triển nhanh chóng, hệ
thống quản lí bán hàng là một yếu tố cực kỳ quan trọng đối với các
doanh nghiệp Thiết kế cơ sở dữ liệu cho hệ thống quản lí bán hàng
chính là một khía cạnh không thể thiếu trong quá trình xây dựng và
phát triển hệ thống này
Bài báo cáo này được thực hiện nhằm giới thiệu về quy trình thiết kế
cơ sở dữ liệu cho hệ thống quản lí bán hàng, nhằm tạo ra một hệ
thống mạnh mẽ, linh hoạt và hiệu quả để hỗ trợ các hoạt động kinh
doanh liên quan đến bán hàng
Chúng em đã nghiên cứu, phân tích và áp dụng các phương pháp
thiết kế cơ sở dữ liệu hiện đại để đảm bảo tính toàn vẹn, tính nhất
quán và khả năng mở rộng của hệ thống Qua đó, chúng em đã xác
định các thực thể, quan hệ và thuộc tính quan trọng để lưu trữ và
quản lí thông tin liên quan đến quá trình bán hàng, như thông tin về
khách hàng, sản phẩm, đơn hàng, kho hàng, và nhiều khía cạnh
khác
Bên cạnh đó, chúng em cũng đã đề xuất một mô hình cơ sở dữ liệu
phù hợp, bao gồm các bảng, quan hệ và ràng buộc để biểu diễn mối
quan hệ giữa các thực thể và đáp ứng các yêu cầu cụ thể của hệ
thống quản lí bán hàng
Bài báo cáo này cũng đề cập đến quy trình triển khai và quản lí cơ
sở dữ liệu, bao gồm việc tạo bảng, thêm dữ liệu, truy vấn và cập
nhật thông tin
Cuối cùng, chúng em hy vọng rằng bài báo cáo này sẽ mang lại cho
quý vị cái nhìn tổng quan về quá trình thiết kế cơ sở dữ liệu cho hệ
thống quản lí bán hàng và cung cấp những kiến thức cơ bản về các
phương pháp, quy trình và công cụ liên quan
Xin trân trọng cảm ơn!
Trang 5CHƯƠNG I MÔ TẢ BÀI TOÁN THỰC TẾ
1 Mục tiêu của hệ thống quản lí siêu thịlà tối ưu hóa và tăng cường hiệu quả trong hoạt động kinh doanh của siêu thị, đảm bảo quản lý thông tin một cách chính xác, hiệu quả và đáng tin cậy Để đạt được mục tiêu này, hệ thống quản lý siêu thị có những mục tiêu cụ thể sau
đây:
Quản lý thông tin hàng hóa: Mục tiêu là đảm bảo lưu trữ thông tin chính xác và đầy đủ về các mặt hàng được bán trong siêu thị, bao gồm tên sản phẩm, mã sản phẩm, số lượng tồn kho, giá bán, nhà cung cấp và bộ phận quản lý hàng hóa
Quản lý thông tin khách hàng: Mục tiêu là xây dựng cơ sở dữ liệu chứa thông tin về khách hàng, bao gồm tên, địa chỉ, số điện thoại, lịch sử mua hàng và các thông tin khác Hệ thống này giúp cải thiện trải nghiệm mua sắm của khách hàng và tạo các chương trình khuyến mãi, quảng cáo phù hợp
Quản lý thông tin hóa đơn: Mục tiêu là tạo, xem và quản lý thông tin về hóa đơn bán hàng, bao gồm mã hóa đơn, thông tin khách hàng, thông tin sản phẩm, tổng giá trị hóa đơn và thời gian lập hóa đơn
Quản lý nhân viên: Mục tiêu là lưu trữ thông tin về nhân viên làm việc trong siêu thị, bao gồm thông tin cá nhân, vị trí công việc, lịch sử làm việc Hệ thống này giúp cửa hàng quản lý nhân viên hiệu quả và đưa ra các chính sách phát triển nhân sự
Trang 6 Quản lý giảm giá: Mục tiêu là theo dõi các chương trình giảm giá, ưu đãi,khuyến mãi được áp dụng trong siêu thị, bao gồm mã giảm giá, loại giảm giá, thời gian áp dụng và điều kiện áp dụng Hệ thống này giúp tối ưu hóachiến lược giảm giá và thu hút khách hàng.
Quản lý tồn kho: Mục tiêu là theo dõi số lượng tồn kho của từng sản phẩm, kiểm soát hàng tồn kho, đồng thời tối ưu hóa quy trình nhập xuất hàng hóa để tránh thiếu hoặc thừa hàng tồn kho
Tăng doanh số bán hàng: Một trong những mục tiêu chính của hệ thống quản lý siêu thị là tăng doanh số bán hàng Hệ thống này giúp quản lý và theo dõi thông tin về hàng tồn kho, xu hướng mua sắm của khách hàng, giá cả cạnh tranh và các yếu tố khác để tối ưu hóa chiến lược bán hàng, thu hút khách hàng và tăng doanh thu
2 Hệ thống này cung cấp các quy trình nghiệp vụ sau:
Bước 1: Khách hàng mua sắm
Khách hàng đến siêu thị và chọn mua các sản phẩm
Nhân viên cửa hàng hỗ trợ khách hàng và nhập thông tin sản phẩm vào hệthống
Bước 2: Tạo hóa đơn
Nhân viên sử dụng hệ thống quản lí bán hàng để tạo hóa đơn cho khách hàng
Thông tin về sản phẩm, số lượng, giá bán, tổng tiền và thông tin khách hàng được ghi nhận trong hóa đơn
Bước 3: Thanh toán
Khách hàng thanh toán số tiền được hiển thị trên hóa đơn
Hệ thống cập nhật tình trạng thanh toán và tính toán số tiền trả lại (nếu có) trong hóa đơn
Bước 4: Cập nhật hàng tồn kho
Trang 7 Sau khi hóa đơn được thanh toán, hệ thống cập nhật số lượng tồn kho chotừng sản phẩm được bán.
Điều này giúp cửa hàng kiểm soát tồn kho và quản lý hàng hóa một cách hiệu quả
Bước 5: Quản lý thông tin khách hàng
Thông tin khách hàng nhập vào hệ thống quản lí bán hàng, bao gồm tên, địa chỉ, số điện thoại, và lịch sử mua hàng
Hệ thống cập nhật lịch sử mua hàng của khách hàng để tạo dự đoán và tối
ưu hóa các chương trình khuyến mãi
Bước 6: Chương trình khuyến mãi:
Xác định chương trình giảm giá
Nhân viên cửa hàng sử dụng hệ thống quản lí bán hàng để áp dụng giảm giá cho hóa đơn tương ứng đạt điều kiện
Hệ thống sẽ tính toán giá bán mới dựa trên chương trình giảm giá được
áp dụng và cập nhật thông tin hóa đơn vào cơ sở dữ liệu
Bước 7: Thống kê và báo cáo
Hệ thống cơ sở dữ liệu tạo ra các báo cáo thống kê về doanh thu, doanh
số bán hàng, sản phẩm bán chạy và các thông tin quản lý khác
Các báo cáo này hỗ trợ quyết định kinh doanh và giúp cửa hàng cải thiện hiệu suất kinh doanh
Bước 8: Quản lý thông tin nhân viên
Quản lý siêu thị thêm thông tin mới về nhân viên vào hệ thống
Thông tin nhân viên bao gồm tên, ngày sinh, giới tính, địa chỉ, số điện thoại và các thông tin liên quan khác
Thông tin nhân viên được bảo mật và chỉ cho phép người dùng có quyền truy cập hợp lệ có thể xem và chỉnh sửa thông tin nhân viên
3 Yêu cầu của hệ thống về bảng dữ liệu:
Trang 8Yêu cầu khi nhập dữ liệu vào phải đảm bảo: tính đầy đủ chính xác, tính toànvẹn Hệ thống có khả năng tìm kiếm và truy xuất nhanh chóng, bảo mật, dễdàng tích hợp và trao đổi dữ liệu.
Thông tin nhân viên có 1 mã nhân viên duy nhất,họ và tên nhân viên, số điệnthoại, địa chỉ, tuổi
Mỗi nhân viên thuộc 1 quầy bộ phận Mỗi quầy bộ phận gồm nhiều nhân viênkhác nhau Quầy bộ phận bao gồm mã quầy và tên quầy Các quầy bộ phậnquản lí hàng hóa của siêu thị
Các sản phẩm: có 1 mã sản phẩm duy nhất, tên sản phẩm, giá, số lượng tồn, nhàcung cấp Sản phẩm nhập từ nhiều nhà cung cấp
Hóa đơn do nhân viên bán hàng lập Mỗi hóa đơn có 1 mã hóa đơn duy nhất, tênhoá đơn, mã nhân viên lập hoá đơn, mã khách hàng, ngày lập hóa đơn
Mỗi hoá đơn có các chi tiết hoá đơn bao gồm đơn giá, số lượng sản phẩm vàtổng tiền khách đã mua
Khách hàng mua hàng có thể mua nhiều hoá đơn Thông tin khách hàng baogồm: Mã khách hàng, Tên khách hàng, địa chỉ, giới tính, số điện thoại
Khách hàng thanh toán có mã giảm giá tiền sẽ được trừ vào hóa đơn Thông tingiảm giá bao gồm: Mã giảm giá, tên loại giảm giá, thời gian áp dụng, điều kiệngiảm giá ( hiển thị số tiền được giảm ) Mỗi hóa đơn có thể áp dụng nhiều mãgiảm giá
Trang 9CHƯƠNG II CÁC CHỨC NĂNG CỦA HỆ THỐNG
Các chức năng chính trong chương trình quản lý cho bài toán
quản lí siêu thị có thể bao gồm:
1 Quản lí nhân viên:
Thêm nhân viên mới vào hệ thống
Cập nhật thông tin nhân viên (họ tên, số điện thoại,
địa chỉ, ngày sinh)
Xóa nhân viên khỏi hệ thống
Tìm kiếm và xem thông tin nhân viên
2 Quản lí quầy bộ phận:
Thêm quầy bộ phận mới vào hệ thống
Cập nhật thông tin quầy bộ phận (tên quầy)
Xóa quầy bộ phận khỏi hệ thống
Xem danh sách quầy bộ phận và nhân viên thuộc
quầy bộ phận
3 Quản lí hàng hóa:
Thêm sản phẩm mới vào hệ thống
Cập nhật thông tin sản phẩm (tên sản phẩm, giá, số
lượng tồn, nhà cung cấp)
Xóa sản phẩm khỏi hệ thống
Tìm kiếm và xem thông tin sản phẩm
4 Quản lí hóa đơn:
Tạo hóa đơn mới cho khách hàng
Cập nhật thông tin hóa đơn (tên hóa đơn, mã nhân
viên lập hóa đơn, mã khách hàng, ngày lập hóa đơn)
Trang 10 Thêm chi tiết hóa đơn (mã sản phẩm, đơn giá, số
lượng sản phẩm)
Xem danh sách hóa đơn và thông tin chi tiết hóa đơn
5 Quản lí khách hàng:
Thêm khách hàng mới vào hệ thống
Cập nhật thông tin khách hàng (tên khách hàng, địa
chỉ, giới tính, số điện thoại)
Xóa khách hàng khỏi hệ thống
Tìm kiếm và xem thông tin khách hàng
6 Quản lí giảm giá:
Thêm mã giảm giá mới vào hệ thống
Cập nhật thông tin giảm giá (tên loại giảm giá, thời
gian áp dụng, điều kiện giảm giá)
Xóa mã giảm giá khỏi hệ thống
Xem danh sách mã giảm giá và thông tin chi tiết
Sau đây là sơ đồ phân ra chức năng :
Trang 11CHƯƠNG III THIẾT KẾ CƠ SỞ DỮ LIỆU
1 Phụ thuộc hàm và tập thuộc tính tương ứng
Các phụ thuộc hàm thể hiện mối quan hệ giữa các thuộc
tính Để xác định các phụ thuộc hàm, ta tìm kiếm các thuộc
tính xác định giá trị của các thuộc tính khác
Lược đồ quan hệ = <U,F>
Các phụ thuộc hàm F và tập thuộc tính như sau:
Tập thuộc tính:
U = {Mã nhân viên, họ, tên, ngày sinh, giới tính, Mã
bảng lương, mức lương, số ngày làm, tiền lương nhận
được, Mã quầy, tên quầy, Mã sản phẩm , tên sản phẩm,
giá, số lượng tồn, mã nhà cung cấp, Mã hóa đơn, tên
hóa đơn, Mã khách hàng, Ngày lập hóa đơn, Đơn giá, số
lượng sản phẩm, tổng tiền, Mã giảm giá, tên loại giảm
giá, Thời gian áp dụng, Điều kiện giảm giá, số tiền giảm,
tên khách hàng, địa chỉ, giới tính, SĐT )
Tập phụ thuộc hàm:
Trang 12F = { Mã nhân viên -> {Họ tên, giới tính, ngày sinh};
Mã quầy -> Tên quầy;
Mã sản phẩm -> {Tên sản phẩm, giá, số lượng tồn, mã
nhà cung cấp};
Mã hóa đơn -> {Tên hóa đơn, Ngày lập hóa đơn};
Mã hóa đơn -> {Mã nhân viên, mã sản phẩm}
{Mã hoá đơn, mã sản phẩm } -> {đơn giá, số lượng sản
phẩm, tổng tiền}; Mã hoá đơn -> Mã giảm giá;
Mã giảm giá -> {Tên loại giảm giá, Thời gian áp dụng,
Điều kiện giảm giá };
{Mã hóa đơn, mã giảm giá} -> số tiền giảm;
Mã khách hàng -> {Tên khách hàng, địa chỉ, giới tính,
SĐT} }
2 Tìm khóa của lược đồ quan hệ:
U, F = { L -> R | i = 1,2,…,m }i i
I = U \
I = U \ {TenHD, Ngay_lap, TenSP, So_luong_ton, Gia, Don_gia,
So_luong, Thanh_tien, MaNV,MaKH, HoNV, TenNV, NgaysinhNV,
GioiTinhNV, TenKH, DiaChi, Muc_luong, So_ngay_lam,
Tien_luong, MaQuay, TenQuay, MaGG, TenGG, Thoigian,
Dieukien} = MaHD, MaSP
Tính bao đóng I+ = U
Xét tập thuộc tính {MaHD, MaSP}
- (MaHD, MaSP)+ = (MaHD, MaSP, TenHD, Ngay_lap, TenSP,
So_luong_ton, Gia, Don_gia, So_luong, Thanh_tien, MaNV,MaKH,
HoNV, TenNV, NgaysinhNV, GioiTinhNV, TenKH, Gioi_tinh,
DiaChi, MaQuay, TenQuay, MaGG, TenGG, Thoigian, Dieukien) =
U
- (MaHD)+ = (TenHD, Ngay_lap, MaNV,MaKH, HoNV, TenNV,
NgaysinhNV, GioiTinhNV, TenKH, Gioi_tinh, DiaChi, MaQuay,
TenQuay, MaGG, TenGG, Thoigian, Dieukien) # U
Trang 13- (MaSP)+ = (TenSP, So_luong_ton, Gia, MaQuay, TenQuay) # U
=> Khóa chính của lược đồ quan hệ TK = {MaHD, MaSP}
3 Tìm phủ tối thiểu
a) Tách về phải phụ thuộc hàm và loại bỏ phụ thuộc hàm dư
thừa
- Mã nhân viên -> Họ; Mã nhân viên -> tên; Mã nhân viên ->
giới tính; Mã nhân viên -> ngày sinh;
Mã quầy -> Tên quầy;
Mã sản phẩm -> Tên sản phẩm; Mã sản phẩm -> giá; Mã sản
phẩm -> số lượng tồn; Mã sản phẩm -> mã nhà cung cấp
Mã hóa đơn -> Tên hóa đơn; Mã hóa đơn -> Ngày lập hóa đơn
Mã hóa đơn -> Mã nhân viên; Mã hóa đơn -> mã sản phẩm
{Mã hoá đơn, mã sản phẩm } -> đơn giá; {Mã hoá đơn, mã sản
phẩm } -> số lượng sản phẩm; {Mã hoá đơn, mã sản phẩm }
-> tổng tiền
Mã giảm giá -> Tên loại giảm giá; Mã giảm giá -> Thời gian áp
dụng; Mã giảm giá -> Điều kiện giảm giá
{Mã hóa đơn, mã giảm giá} -> số tiền giảm;
Mã khách hàng -> Tên khách hàng; Mã khách hàng -> địa chỉ;
Mã khách hàng
-> giới tính; Mã khách hàng -> SĐT
Không có phụ thuộc hàm dư thừa
b) Tách vế trái và loại bỏ phụ thuộc hàm thừa
- {MaSP,MaHD} -> {Don_gia}
Thử bỏ MaSP tính MaHD + = (TenHD, Ngay_lap, MaNV,MaKH…)
-> Không thừa
Thử bỏ MaHD tính MaSP + =( TenSP, So_luong_ton, Gia,
MaQuay…) -> Không thừa
Không có phụ thuộc hàm nào thừa
Trang 144 Thiết kế CSDL dựa trên chuẩn hóa lược đồ quan hệ
Ta có 1 bảng gồm các thuộc tính U và có các phụ thộc hàm F
a) Chuẩn hóa đưa về dạng chuẩn 1NF
Điều kiện dạng chuẩn loại 1NF:
Các thuộc tính của bảng phải là nguyên tố
Giá trị của các thuộc tính trên các hàng phải là đơn trị,
không chứa nhóm lặp
Không có một thuộc tính nào có giá trị có thể tính toán
được từ một thuộc tính khác
Từ đó, ta có thể thiết kế lại bảng dữ liệu trên như sau:
• Tách các thuộc tính đa trị thành đơn trị như: Họ tên nhân
viên -> Họ, tên
Tách các thuộc tính lặp trong bảng như: Mã hóa đơn, tên
hóa đơn, ngày lập, mã nhân viên, mã khách hàng thành
bảng mới là Hóa đơn
Mã giảm giá, Tên loại giảm giá, Thời gian áp dụng, Điều
kiện giảm giá thành bảng mới là Giảm giá
b) Chuẩn hóa đưa về dạng chuẩn 2NF
Quy tắc chuẩn hóa từ chuẩn 1NF thành 2NF:
Bước 1: Loại bỏ các thuộc tính không khóa phụ thuộc vào
một bộ phận khóa chính và tách ra thành một bảng riêng,
khóa chính của bảng là bộ phận của khóa mà chúng phụ
thuộc vào
Bước 2: Các thuộc tính còn lại lập thành một quan hệ,
khóa chính của nó là khóa chính ban đầu
Bảng dữ liệu mới mà ta thiết kế vẫn chưa đạt chuẩn 2NF, ví dụ
như tên sản phẩm chỉ phụ thuộc vào 1 phần của khóa là mã
sản phẩm chứ không cần phụ thuộc vào cả tập khóa… Vậy nên
để đạt chuẩn 2NF ta tách các thuộc tính thành các bảng riêng
như sau:
Mã quầy, Tên quầy thành 1 bảng mới là Quầy bộ phận
Trang 15 Mã sản phẩm, Tên sản phẩm, giá, số lượng tồn, mã nhà
cung cấp thành 1 bảng mới là Sản phẩm
Mã hoá đơn, mã sản phẩm, đơn giá, số lượng sản phẩm,
tổng tiền thành 1 bảng mới là Chi tiết hóa đơn
Mã hóa đơn, mã giảm giá, số tiền giảm thành 1 bảng mới
là Áp dụng
Mã nhân viên ,họ, tên, ngày sinh, giới tính ra thành một
bảng mới là Nhân viên
Mã quầy, Tên quầy thành 1 bảng mới là Quầy bộ phận
Mã khách hàng ,Tên khách hàng, địa chỉ, giới tính, SĐT tạo
thành 1 bảng mới tên là Khách hàng
c) Đưa về dạng chuẩn 3NF
Điều kiện:
• Phải đạt chuẩn 2NF
• Mọi thuộc tính không khóa phụ thuộc bắc cầu vào thuộc
tính khóa (nghĩa là tất cả các thuộc tính không khóa phải
được suy ra trực tiếp từ thuộc tính khóa)
Quy tắc chuẩn hóa từ 2NF thành 3NF:
Bước 1: Loại bỏ các thuộc tính phụ thuộc bắc cầu ra khỏi
quan hệ và tách chúng thành quan hệ riêng có khóa chính
là thuộc tính bắc cầu
Bước 2: Các thuộc tính còn lại lập thành một quan hệ có
khóa chính là khóa ban đầu
Cơ sở dữ liệu mà ta thiết kế ở chuẩn 2NF cũng đã đạt tiêu chuẩn 3NF.
- Các bảng đã xác định khóa chính duy nhất cho từng bảng
- Sau khi thực hiện chuẩn hóa, ta có lược đồ quan hệ sau:
Bảng "Nhân viên":
Mã nhân viên (PK)
Họ và tên nhân viên
Trang 16 Tên hóa đơn
Mã nhân viên lập hóa đơn (FK)
Mã khách hàng (FK)
Ngày lập hóa đơn
Bảng "Chi tiết hóa đơn":
Đơn giá
Số lượng sản phẩm
Trang 17 Điều kiện giảm giá (số tiền được giảm)
Vậy lược đồ cơ sở dữ liệu đã ở dạng 3NF và các phụ thuộc bắc cầu đã bị loại bỏ Mỗi bảng đại diện cho một thực thể duy nhất và dữ liệu được tổ chức hiệu quả, giảm dư thừa dữ liệu và đảm bảo tính toàn vẹn của dữ liệu.
5 Đánh giá dạng chuẩn:
- Các bảng đều có khóa chính duy nhất
- Không có giá trị lặp trong các thuộc tính
- Không có thuộc tính đa giá trị
Trang 18- Không có thuộc tính khóa mà phụ thuộc hàm vào thuộc tính
Trang 19CHƯƠNG IV THIẾT KẾ THEO MÔ HÌNH THỰC THỂ
LIÊN KẾT
Mô hình quan hệ
NhanVien(MaNV, Ho, Ten, Tuoi, GioiTinh, MaQuay )
Quay_bo_phan( MaQuay, TenQuay)
SanPham( MaSP,TenSP, So_luong_ton, Gia,MaQuay )
HoaDon( MaHD, TenHD, Ngay_lap, MaNV MaKH, )
Chi_tiet_hoa_don (MaHD, Don_gia, So_luong, MaSP, Thanh_tien)
KhachHang( MaKH, TenKH, Gioi_tinh, DiaChi, SĐT )
Ap_Dung( MaHD, MaGG , So_tien_giam)
GiamGia( MaGG, Ten_loai_GG, Thoi_gian_ap_dung, Dieu_Kien)
Mô hình thực thể liên kết