Professional Documents
Culture Documents
Uyentrandoanhe 2
Uyentrandoanhe 2
ĐỒ ÁN MÔN HỌC
Đề tài:
ĐỒ ÁN MÔN HỌC
Đề tài:
Với vốn kiến thức cũng như kinh nghiệm còn rất khiêm tốn và là bước đầu làm
quen với công việc nghiên cứu mang tính thực nghiệm thì chắc chắn kết quả đạt
được của chúng em cũng không tránh khỏi những hạn chế nhất định. Chúng em rất
mong muốn được các Giảng viên, những bạn Sinh viên đi trước hay bất kỳ độc giả
nào quan tâm và góp ý để chúng em hoàn thiện hơn cho các đồ án cũng như các
nghiên cứu tiếp theo của mình.
Xin kính chúc Thạc sĩ Vũ Thị Thanh Hương cùng tất cả những người đã hỗ trợ và
đóng góp ý kiến cho chúng em cùng những người thân của mình lời chúc sức khỏe,
hạnh phúc và thành đạt.
Xin chân thành cảm ơn. Sinh viên: Đoàn Phương Uyên – Nguyễn Thị Nam Trân.
ĐÁNH GIÁ VÀ NHẬN XÉT CỦA GIẢNG VIÊN
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
Database Cơ sở dữ liệu
Function Hàm
Bảng 3.12. Thiết kế bảng chi tiết đơn đặt hàng (ctdonhang).....................................2
Bảng 3.14. Ràng buộc các khóa chính của các bảng (Table).....................................2
Bảng 3.16. Bảng tầm ảnh hưởng ràng buộc khối lượng sản phẩm.............................2
Bảng 3.17. Bảng tầm ảnh hưởng ràng buộc giá bán sản phẩm..................................2
Bảng 3.18. Bảng tầm ảnh hưởng ràng buộc số lượng tồn kho...................................2
Bảng 3.19. Bảng tầm ảnh hưởng ràng buộc số tiền hoa hồng....................................2
Bảng 3.20. Bảng tầm ảnh hưởng ràng buộc lương nhân viên....................................2
Bảng 3.21. Bảng tầm ảnh hưởng ràng buộc số lượng đặt hàng..................................2
DANH MỤC HÌNH ẢNH
Hình 1.1. Sơ đồ bộ máy tổ chức của cửa hàng cafe Starbuck. Error! Bookmark not
defined.
Hình 2.6. Giao diện làm việc của phần mềm Oracle SQL Developer......................11
Hình 2.8. Giao diện làm việc của phần mềm thiết kế Power Designer....................15
Hình 4.1. Kết quả trước và sau khi cập nhật 5% giá bán.........................................42
Hình 4.2. Kết quả trước và sau khi cập nhật giá bán của thương hiệu Nón Lá........43
Hình 4.3. Kết quả cập nhật số điện thoại nhân viên.................................................43
Hình 4.4. Kết quả cập nhật chuyển công việc cho nhân viên...................................44
Hình 4.5. Kết quả cập nhật giá bán và ngày sản xuất của sản phẩm........................45
Hình 4.7. Kết quả cập nhật số lượng sản phẩm tồn kho sau khi đã bán...................46
Hình 4.8. Kết quả sau khi cập nhật giá bán của hai mặt hàng bằng nhau................46
Hình 4.9. Kết quả sau khi đã cập nhật nhập thêm sản phẩm....................................47
Hình 4.10. Kết quả cập nhật giá của các sản phẩm chưa có đơn hàng.....................48
Hình 4.11. Kết quả cập nhật tăng giá sản phẩm có nhiều đơn hàng nhất.................49
Hình 4.12. Kết quả xóa một nhân viên đã nghỉ việc ra khỏi danh sách...................50
Hình 4.13. Kết quả ngừng kinh doanh một mặt hàng trong cửa hàng......................51
Hình 4.14. Kết quả cho nhân viên được nhập tên cụ thể thôi việc...........................51
Hình 4.15. Kết quả xóa các sản phẩm có số lượng tồn lớn hơn 1500......................52
Hình 4.16. Kết quả xóa các mặt hàng trong chi tiết đơn do nhân viên lập sai.........53
Hình 4.17. Kết quả xóa loại cà phê mà hiện không có mặt hàng.............................53
Hình 4.19. Kết quả xóa mặt hàng trong chi tiết đơn theo yêu cầu...........................54
Hình 4.21. Kết quả xóa sản phẩm có lượng tồn <=10 có yêu cầu chi nhánh...........55
Hình 4.22. Kết quả xóa các mặt hàng thuộc chi tiết đơn được lập trước 2021.........56
Hình 4.23. Kết quả xóa các nhân viên đóng hàng thuộc khu vực 1.........................57
Hình 4.24. Tạo Index trên bảng tồn kho thành công................................................57
Hình 4.25. Tạo Index trên bảng chi tiết đơn hàng thành công.................................58
Hình 4.26. Tạo Index trên bảng nhân viên thành công............................................58
Hình 4.27. Thông tin nhân viên được xếp theo khu vực..........................................59
Hình 4.29. Liệt kê thông tin sản phẩm cà phê kinh doanh.......................................61
Hình 4.30. Thông tin đơn đặt hàng của khách hàng................................................62
Hình 4.31. Liệt kê thông tin tồn kho của mặt hàng ở các chi nhánh........................62
Hình 4.35. Thông tin một số thương hiệu đang kinh doanh.....................................65
Hình 4.36. Thông tin tồn kho của tất cả chi nhánh..................................................66
Hình 4.37. Thông tin các chi tiết đơn đặt hàng........................................................67
Hình 4.38. Thông tin các mặt hàng có giá bán 100000VND – 1000000VND.........68
Hình 4.39. Liệt kê thông tin các mặt hàng có trong dưới 5 đơn hàng......................69
Hình 4.40. Thông tin về các sản phẩm thuộc TN và LC có giá dưới 100000VND..70
Hình 4.41. Liệt kê thông tin trước và sau khi giảm 15% các mặt hàng....................71
Hình 4.42. Số lượng mặt hàng của từng loại cà phê đang kinh doanh.....................72
Hình 4.43. Số lượng đơn đặt hàng trong năm hiện tại.............................................72
Hình 4.44. Thông tin các nhân viên làm việc ở bộ phận tư vấn...............................73
Hình 4.45. Liệt kê số lượng nhân viên ở từng bộ phận công việc............................74
Hình 4.46. Liệt kê các đơn hàng với nhân viên phụ trách được người dùng nhập...74
Hình 4.47. Thông tin các sản phẩm có ngày sản xuất sau 9/2021............................75
Hình 4.48. Thông tin các nhân viên vào làm việc từ năm 2020...............................76
Hình 4.49. Danh sách các nhân viên đã làm việc từ 3 năm trở lên..........................77
Hình 4.50. Danh sách các nhân viên có lương dưới 4000000VND.........................78
Hình 4.51. Tạo Sequence đánh số mã đơn đặt hàng tự động thành công.................78
Hình 4.52. Tạo Sequence đánh số mã khách hàng tự động thành công...................79
Hình 4.54. Kết quả kiểm thử View thông tin các sản phẩm đang kinh doanh.........81
Hình 4.55. Kết quả kiểm thử View thông tin các nhân viên các bộ phận................82
Hình 4.56. Kết quả kiểm thử View số lượng nhân viên từng bộ phận.....................83
Hình 4.57. Kết quả kiểm thử View các đơn đặt hàng lập trong năm hiện tại...........84
Hình 4.58. Kết quả kiểm thử View thành tiền của các đơn đặt hàng.......................85
Hình 4.59. Kết quả kiểm thử View số lượng tồn kho tại các chi nhánh...................86
Hình 4.60. Kết quả kiểm thử View nhân viên chưa lập đơn hàng nào.....................87
Hình 4.71. Bảng giá bán các mặt hàng trước khi thực thi proc_tang_giaban.........100
Hình 4.72. Bảng giá bán các mặt hàng sau khi thực thi proc_tang_giaban............100
Hình 4.73. Bảng giá bán các mặt hàng trước khi thực thi proc_giam_giaban........102
Hình 4.74. Bảng giá bán các mặt hàng sau khi thực thi proc_giam_giaban...........102
Hình 4.75. Giá bán của các sản phẩm trước khi thực thi proc_lamtron_giaban.....104
Hình 4.76. Giá bán của các sản phẩm sau khi thực thi proc_lamtron_giaban........105
Hình 4.77. Mã hoa hồng của các nhân viên trước thực thi proc_capnhat_mahh....107
Hình 4.78. Mã hoa hồng của các nhân viên sau thực thi proc_capnhat_mahh.......107
Hình 4.82. Danh sách số lượng tồn kho sau thực thi proc_thongtin_tonkho.........112
Hình 4.83. Thông tin nhân viên sau thực thi proc_timkiem_nhanvien..................114
Hình 4.84. Các mặt hàng đã có đơn sau thực thi proc_danhsach_banhang............116
Hình 4.86. Mã đơn đặt hàng thêm mới tự động sau thực thi proc_them_ddh........120
Hình 4.87. Mã khách hàng tự động thêm mới sau thực thi proc_them_kh............121
Hình 4.88. Mã mà phê được thêm mới sau khi thực thi proc_them_cf.................123
Hình 4.89. Kết quả thành tiền trước khi thực thi thủ tục........................................125
Hình 4.90. Kết quả cập nhật thành tiền sau khi thực thi thủ tục.............................125
Hình 4.91. Kết quả kiểm thử ngày giao hàng trước ngày lập đơn..........................127
Hình 4.92. Kết quả kiểm thử ngày giao hàng sau ngày lập đơn.............................127
Hình 4.93. Kết quả kiểm thử ngày vào làm của nhân viên sau ngày hiện tại.........128
Hình 4.94. Kết quả kiểm thử ngày vào làm của nhân viên trước ngày hiện tại......129
Hình 4.96. Kết quả xóa loại cà phê sau khi đã thực thi..........................................130
Hình 4.98. Kết quả xóa thương hiệu sau khi đã thực thi........................................131
Hình 4.99. Kết quả kiểm thử ngày sản xuất lớn hơn ngày hiện tại........................132
Hình 4.100. Kết quả kiểm thử ngày sản xuất nhỏ hơn ngày hiện tại......................133
Hình 4.101. Kết quả kiểm thử với số lượng tồn bé hơn số lượng đặt hàng............134
Hình 4.102. Kết quả kiểm thử với số lượng tồn lớn hơn số lượng đặt hàng..........134
Hình 4.103. Kết quả truy vấn trước khi cập nhật chi tiết đơn hàng.......................136
Hình 4.104. Kết quả sau khi thực thi trigger và cập nhật chi tiết đơn hàng...........136
Hình 4.105. Kết quả truy vấn trước khi xóa đơn hàng...........................................138
Hình 4.106. Kết quả đã thực thi trigger và xóa đơn đặt hàng................................139
Hình 4.107. Kết quả truy vấn trước khi xóa khách hàng.......................................140
Hình 4.108. Kết quả sau khi thực thi trigger và xóa khách hàng...........................140
MỤC LỤC
Lời cảm ơn............................................................................................... i
Mục lục................................................................................................. xv
1.3.2 Starbuck– Nơi gắn kết những con người với nhau.............................3
Chương 2: Cơ sở lý thuyết....................................................................6
2.3.1.5 Ưu điểm........................................................................................13
3.2 Tạo các bảng trong hệ quản trị cơ sở dữ liệu Oracle với SQL
Developer:..............................................................................................................
29
Chương 4: Ứng dụng vào các nghiệp vụ quản lý bán hàng tại cửa
hàng bán hạt cafe Starbuck.................................................................41
4.1.1.1 Cập nhật giá bán của các sản phẩm, giá bán giảm 5%:..............41
4.1.1.2 Cập nhật giá bán của các sản phẩm thuộc thương hiệu “Nón lá
Coffee”, tăng thêm 5000:............................................................................42
4.1.1.3 Cập nhật số điện thoại của nhân viên có mã “DH0005”, số điện
thoại là “0975301025”:..............................................................................43
4.1.1.4 Cập nhật chuyển nhân viên giao hàng có mã “GH0007” sang
công việc khác:............................................................................................43
4.1.1.5 Cập nhật ngày sản xuất thành 10/11/2021 và giá của sản phẩm,
mã sản phẩm do người dùng nhập:.............................................................44
4.1.1.6 Cập nhật số lượng tồn của các sản phẩm trong bảng tồn kho khi
sản phẩm được bán:....................................................................................45
4.1.1.7 Cập nhật giá bán của sản phẩm có mã “CF0003” bằng với giá
bán của sản phẩm có mã “CF0002”:.........................................................46
4.1.1.8 Cập nhật thêm 50 sản phẩm cho các mặt hàng có số lượng tồn
dưới 20: ......................................................................................................47
4.1.1.9 Cập nhật giảm giá 10% cho các sản phẩm chưa có đơn đặt hàng
nào: ......................................................................................................48
4.1.1.10 Cập nhật tăng giá thêm 5% cho những sản phẩm cafe có số lượng
mua nhiều nhất:...........................................................................................48
4.1.2.1 Cho thôi việc một nhân viên do người dùng nhập vào:................49
4.1.2.2 Cho phép người dùng nhập cà mã cafe và ngừng kinh doanh cafe
đó: ......................................................................................................50
4.1.2.3 Cho thôi việc nhân viên có tên “Phan Trong Hieu”:...................51
4.1.2.4 Xóa các mặt mặt hàng trong kho có số lượng tồn trên 1500 mặt
hàng ......................................................................................................51
4.1.2.5 Xóa tất cả các đơn hàng hàng do nhân viên có mã “TV0004” phụ
trách: ......................................................................................................52
4.1.2.6 Xóa loại cà phê mà hiện không có mặt hàng nào trừ “Khác”......53
4.1.2.7 Hủy một mặt hàng trong chi tiết đơn hàng đã lập đơn.................54
4.1.2.8 Xóa các mặt hàng trong kho có số lượng tồn <=10, mã chi nhánh
do người dùng nhập....................................................................................55
4.1.2.9 Xóa các mặt hàng thuộc bảng chi tiết có đơn hàng được lập trước
2021 ......................................................................................................56
4.1.2.10 Xóa các nhân viên đóng hàng thuộc khu vực 1...........................56
4.2 Index..........................................................................................................57
4.3.1 Truy vấn thông tin của nhân viên trong cửa hàng và sắp xếp theo
khu vực:..............................................................................................................
58
4.3.3 Truy vấn thông tin sản phẩm hạt cafe tại cửa hàng:........................60
4.3.4 Truy vấn thông tin các đơn đặt hàng của khách hàng và sắp xếp
chúng theo mã đơn đặt hàng và mã khách hàng:.........................................61
4.3.5 Truy vấn thông tin tồn kho của cửa hàng, với chi nhánh được người
dùng nhập vào:...............................................................................................62
4.3.6 Truy vấn các công việc được các nhân viên thực hiện tại cửa hàng:...
............................................................................................................63
4.3.7 Truy vấn thông tin của các chi nhánh thuộc Starbuck:...................63
4.3.8 Truy vấn thông tin các loại cafe có tại cửa hàng:.............................64
4.3.9 Truy vấn thông tin các thương hiệu cafe mà cửa hàng kinh doanh:...
............................................................................................................64
4.3.11 Truy vấn thông tin chi tiết các đơn đặt hàng:................................66
4.3.12 Truy vấn liệt kê tên và giá bán của các sản phẩm có giá từ 100.000
VNĐ đến 1.000.000 VNĐ:..............................................................................67
4.3.13 Truy vấn danh sách gồm: Mã cafe, tên cafe, có trong ít hơn 5 đơn
đặt hàng:.........................................................................................................68
4.3.14 Truy vấn: Mã cafe, tên cafe, giá bán của các sản phẩm thuộc
thương hiệu “Trung Nguyen”, “Lion Cafe” và có mức giá dưới 100.000
VNĐ: 69
4.3.15 Truy vấn cho biết danh sách sản phẩm với giá sản phẩm được
giảm 15% với các thông tin: Mã cafe, tên cafe, giá bán và giá sau giảm:....70
4.3.16 Truy vấn cho biết số lượng sản phẩm của mỗi loại cafe đang kinh
doanh tại cửa hàng:.......................................................................................71
4.3.17 Truy vấn cho biết tổng số đơn đặt hàng trong năm hiện hành:....72
4.3.18 Truy vấn các nhân viên tư vấn của cửa hàng:..............................72
4.3.19 Truy vấn số lượng nhân viên của mỗi công việc tại cửa hàng:.....73
4.3.20 Truy vấn thông tin các đơn đặt hàng của nhân viên phụ trách do
người dùng nhập vào:....................................................................................74
4.3.21 Truy vấn thông tin các hạt cafe được sản xuất sau tháng 9 năm
2021: .........................................................................................................74
4.3.22 Truy vấn thông tin các nhân viên bắt đầu làm việc từ năm 2020: 75
4.3.23 Truy vấn thông tin nhân viên có thời gian làm việc tại cửa hàng từ
3 năm trở lên:.................................................................................................76
4.3.24 Truy vấn thông tin nhân viên có lương ít hơn 4000000:...............77
4.4 Sequence:..................................................................................................78
4.5 View:.........................................................................................................80
4.5.1 View xem bảng giá các hạt cafe được bán tại cửa hàng:..................80
4.5.3 View xem số nhân viên của mỗi công việc tại cửa hàng:..................82
4.5.4 View xem các đơn hàng được lập trong năm hiện hành và sắp xếp
chúng theo mã đơn đặt hàng tăng dần:.........................................................83
4.5.6 View xem danh sách số lượng cafe còn tồn kho tại các chi nhánh:.85
4.5.7 View xem danh sách nhân viên chưa phụ trách đơn đặt hàng nào: 86
4.6 Function:...................................................................................................87
4.6.1 Function cho biết tên sản phẩm với mã cafe là tham số truyền vào:87
4.6.2 Function lấy giá trị trung bình giá bán của các sản phẩm với mã loại
(maloaicf) là tham số truyền vào:..................................................................88
4.6.3 Function có tham số truyền vào là mã cafe (macf) và cho biết thời
gian tồn tại của sản phẩm đó kể từ ngày sản xuất:.......................................90
4.6.4 Function tính tổng số lượng tồn kho tại tất cả chi nhánh của một
sản phẩm do người dùng nhập vào:..............................................................91
4.6.5 Function tìm mặt hàng có số lượng tồn nhỏ nhất của các chi nhánh,
tham số truyền vào là mã chi nhánh (macn):................................................92
4.6.6 Function tính lương của một nhân viên được người dùng nhập vào
mã nhân viên (manv):....................................................................................94
4.6.7 Function tính tổng lương của tất cả nhân viên của cửa hàng:........95
4.6.8 Function tính thành tiền của đơn hàng được người dùng nhập vào
mã đơn đặt hàng (maddh):.............................................................................96
4.7.1 Procedure cập nhật lương của các nhân viên của một công việc:. . .98
4.7.2 Procedure tăng giá bán tất cả sản phẩm thêm một tỉ lệ phần trăm
nào đó:................................................................................................................
99
4.7.3 Procedure giảm giá bán tất cả sản phẩm đi một tỉ lệ phần trăm nào
đó: ..........................................................................................................101
4.7.4 Procedure làm tròn giá bán của các sản phẩm mà cửa hàng kinh
doanh: ..........................................................................................................103
4.7.6 Procedure cập nhật nhân viên phụ trách đơn hàng khi quyết định
thôi việc một nhân viên nào đó:...................................................................107
4.7.7 Procedure xem danh sách cafe còn tồn kho tại chi nhánh (macn) mà
người dùng nhập vào:..................................................................................109
4.7.8 Procedure tìm kiếm và xem thông tin của nhân viên có mã (manv)
được nhập vào bởi người dùng:...................................................................112
4.7.9 Procedure cho phép xem danh sách cafe được bán từ chạy nhất đến
ít người mua nhất:.......................................................................................114
4.7.10 Procedure nhập vào mã nhân viên (manv) và trả về các đơn đặt
hàng do nhân viên đó phụ trách:.................................................................116
4.8 Trigger:...................................................................................................126
4.8.1 Trigger kiểm tra thời hạn giao hàng của đơn hàng phải sau ngày lập
đơn: ..........................................................................................................126
4.8.2 Trigger kiểm tra ngày vào làm phải nhỏ hơn hoặc bằng ngày hiện
hành: ..........................................................................................................127
4.8.3 Trigger khi xóa một loại cafe thì các sản phẩm thuộc loại đó sẽ được
cập nhật mã loại là “L00”:..........................................................................129
4.8.4 Trigger khi xóa một thương hiệu cafe thì các sản phẩm thuộc
thương hiệu đó sẽ được cập nhật mã thương hiệu là “00”:.......................130
4.8.5 Trigger kiểm tra ngày sản xuất của cafe phải nhỏ hơn hoặc bằng
ngày hiện tại:................................................................................................131
4.8.6 Trigger kiểm tra số lượng hàng được đặt phải nhỏ hơn số lượng tồn
hiện có của chi nhánh phụ trách đơn và cập nhật số lượng tồn khi thêm một
chi tiết đơn đặt hàng mới:............................................................................133
4.8.7 Trigger kiểm tra số lượng hàng được đặt sau khi chỉnh sửa phải nhỏ
hơn số lượng tồn hiện có của chi nhánh phụ trách đơn và cập nhật số lượng
tồn khi chỉnh sửa một chi tiết đơn hàng:.....................................................135
4.8.8 Trigger khi hủy đơn đặt hàng thì hủy cả các chi tiết của đơn hàng đó
và cập nhật lại số lượng tồn của sản phẩm:................................................137
4.8.9 Trigger khi xóa một khách hàng ra khỏi hệ thống thì các đơn đặt
hàng của khách hàng đó cũng sẽ được xóa:...............................................139
Cùng với sự phát triển của công nghệ thông tin và sự xâm nhập của tin học
vào mọi lĩnh vực của đời sống, thế nên việc sử dụng máy tính vào công cuộc quản
lý là vô cùng cấp bách và cần thiết nhằm nâng cao độ hiệu quả của quá trình quản lý
nhất là thời kì diễn ra cuộc cách mạng 4.0 như hiện nay.
Công cuộc quản lý bán hàng của cửa hàng Sarbuck cũng không ngoại lệ. Do
số lượng cơ sở (chi nhánh) cửa hàng ngày càng nhiều, số lượng mặt hàng ngày càng
phong phú và không ngừng đổi mới, số lượng khách hàng ngày một tăng lên, nên
cần có một hệ thống CSDL quản lý bán hàng gần như là một điều không thể thiếu ở
các chi nhánh của cửa hàng này.
Đó cũng là lý do đề tài này ra đời nhằm đáp ứng được nhu cầu của cửa hàng
cafe Starbuck về một hệ thống quản lý bán hàng, giúp cải thiện tích cực về hiệu quả
và nhanh chóng trong việc xử lý những thông tin của các mặt hàng, lượng tồn kho,
khách hàng, hóa đơn và một số thông tin cần thiết khác.
Vào ngày 30 tháng 3 năm 1971, với sự hợp tác của 3 thành viên: giáo viên
tiếng Anh Jerry Baldwin, giáo viên lịch sử Zev Siegl, và nhà văn Gordon Bowke thì
cửa hàng Cà phê Starbucks đầu tiên đã được mở tại Seattle, Washington. Cả ba góp
vốn mở một cửa hàng lấy tên là "Cà phê Starbucks cà phê, trà, và đồ ăn nhẹ" ở
Pikes Place Market, một khu vực đông khách du lịch thuộc Seattle. Ba đối tác đầu
tiên này cùng có sở thích uống những loại trà và cà phê ngon, đặc trưng; họ cùng tin
tưởng sẽ tạo dựng được một nhóm khách hàng riêng của cửa hàng mình, giống như
một số cửa hàng khác ở Vịnh San Francisco đã làm. Sự đổi thay của Cà phê
Starbucks chỉ thực sự bắt đầu khi Howard Schultz, một trong những người sáng lập
làm giám đốc và trực tiếp phụ trách hoạt động marketing của công ty. Là một người
hết sức năng động và nhiều ý tưởng, Howard Schultz đã phù phép để biến Cà phê
Trang 1
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Starbucks từ con số không trở thành một thương hiệu đắt giá bậc nhất thế giới. Sự
hình thành và đi lên vô cùng ngoạn mục của Cà phê Starbucks là được bắt đầu từ
một sự tình cờ. Khi lần đầu tiên được thưởng thức những chén cà phê Espresso làm
cho ông đã nhận ra tiềm năng của việc đưa phong cách phục vụ cà phê Ý đến với
nước Mỹ.
Trải qua 40 năm gây dựng và phát triển, Starbucks không chỉ bó hẹp bản
thân nó tại Seattle hay Mỹ, mà thậm chí còn lan ra khỏi châu lục, đưa nghệ thuật
thưởng thức cà phê Ý hiện đại đến với các quốc gia khác như Nhật Bản, Hongkong,
Nam Phi…
Thương hiệu cà phê Starbucks hiện nay đã chiếm được vị thế cao trong thị
trường cà phê với hơn 20.000 cửa hàng tại 61 quốc gia trên thế giới với 150.000
nhân viên. Nhân viên của hãng tại Mỹ có mức lương trung bình 8,8 USD một giờ và
được đóng bảo hiểm cùng một số quyền chọn mua cổ phiếu. Hơn 65% cửa hàng của
Starbucks được đặt tại Mỹ.
Trang 2
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Trong quý kết thúc vào ngày 27/6 năm 2021, lợi nhuận của Starbucks đạt 1,1
tỷ USD, sau khi lỗ 678,4 triệu USD trong cùng kỳ năm 2020 vì dịch Covid-19.
Đạo đức và Tuân thủ: Chúng tôi tin rằng hoạt động kinh doanh có đạo đức
và nỗ lực làm điều đúng đắn là yếu tố sống còn đối với sự thành công của
công ty.
Đạo đức và Tuân thủ của Starbucks hỗ trợ sứ mệnh và giá trị của họ,
đồng thời giúp bảo vệ văn hóa và danh tiếng của họ bằng cách thúc
đẩy văn hóa cam kết lãnh đạo có đạo đức và tiến hành kinh doanh một
cách liêm chính bằng cách cung cấp các nguồn lực giúp đối tác đưa ra
các quyết định có đạo đức tại nơi làm việc.
Họ thực hiện điều này bằng cách tư vấn và tạo điều kiện cho các nhà
lãnh đạo thúc đẩy các hoạt động kinh doanh có đạo đức, hợp tác với
doanh nghiệp để đảm bảo quản lý rủi ro pháp lý hiệu quả và khuyến
khích các đối tác lên tiếng nếu họ có thắc mắc hoặc lo ngại.
Trang 3
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Từ trước đến nay, Starbucks luôn khiến thế giới thán phục về cách quản
lý khách hàng của họ, ví dụ:
Để giúp cửa hàng cafe Starbuck thành công hơn trong công tác quản lý bán
hàng, chúng tôi đã xây dựng phần mềm với mục tiêu:
- Phần mềm vận hành đơn giản, dễ sử dụng, chỉ cần một lượng ít người quản
lý bán hàng là có thể vận hành tốt hệ thống.
- Tổ chức quản lý, lưu trữ trên hệ thống máy vi tính làm tăng tính an toàn, bảo
mật cao hơn. Trợ giúp tối đa cho quản lý ra quyết định có lợi cho cửa hàng.
- Đơn giản, dễ sử dụng: Giao diện trực quan bằng tiếng Việt, các form nhập
liệu đơn giản, dễ thao tác.
- Phù hợp với các ứng dụng triển khai trên diện rộng. Không phụ thuộc vào
phạm vi ứng dụng. Việc mở rộng ít tốn kém.
- Hệ thống dễ dàng bảo trì, phát triển.
- Với chương trình này, các quản lý có thể kiểm tra, theo dõi tình hình nghiệp
vụ bán hàng trong cửa hàng của mình, có thể điều chỉnh và xử lý thông tin
một cách nhanh chóng, tiết kiệm thời gian, chi phí và làm việc một cách hiệu
quả.
- Mục tiêu quan trọng nhất của đề tài giúp mọi người trong cửa hàng làm quen
với các hệ thống và cách sử dụng cơ bản của hệ thống này trong việc tạo cơ
Trang 4
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
sở dữ liệu, cũng như ứng dụng vào các nghiệp vụ liên quan đến quản lý bán
hàng tại cửa hàng cafe Starbuck
Đề tài không quá đi sâu vào phân tích tài chính, nhân viên hay khách hàng mà
tập trung vào phân tích về việc sử dụng CSDL quản lý bán hàng tại cửa hàng cafe
Starbuck. Trong đó có quản lý sản phẩm, đơn đặt hàng, chi tiết đơn hàng, tồn kho là
chủ yếu.
Dữ liệu lấy từ các mặt hàng trong cửa hàng và trong một thời gian nhất định.
Giới thiệu tổng quan về đề tài đồ án “Xây dựng và quản lý CSDL bán hàng
của cửa hàng cafe Starbuck”
Tìm hiểu về hệ quản trị cơ sở dữ liệu (DBMS), ngôn ngữ PL/SQL
Giới thiệu và thực hiện các công cụ hỗ trợ quá trình làm đề tài
Thiết kế cơ sở dữ liệu: Thiết kế các mô hình kết hợp, từ đó phân tích và tạo
bảng và nhập dữ liệu phù hợp.
Thực hiện các câu truy vấn áp dụng thực tế vào đối tượng nghiên cứu (cửa
hàng cafe Starbuck)
- Thao tác cập nhật dữ liệu (Update)
- Thao tác xóa dữ liệu (Delete)
- Chỉ mục (Index)
- Truy vấn (Select)
- Tăng tự động (Sequence)
- Khung nhìn (View)
- Hàm (Function)
- Thủ tục (Stored Procedure)
- Ràng buộc toàn vẹn (Trigger)
Trang 5
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Trang 6
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Tổng quan về hệ quản trị cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu (DBMS) là một phần mềm mang tính tổng quát cho
phép ngườidùng:
- Định nghĩa cơ sở dữ liệu (CSDL): mô tả kiểu dữ liệu, cấu trúc, các loại rang
buộc toàn vẹn
- Xây dựng CSDL: lưu CSDL trên một phương tiện lưu trữ
- Thực thi CSDL: truy vấn, thêm, xóa và sửa dữ liệu trong CSDL
- Tập hợp các dữ liệu liên quan
- Các DBMS thông dụng hiện nay: FoxPro, Access, SQLserver, MySQL,
Oracle, DB2, IMS, Sysbase, Informix,...
- Nhà cung cấp DBMS: Informix, Oracle, Microsoft, IBM, Sybase,...
Tiến trình phát triển các DBMS
Trang 7
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hai đặc trưng quan trọng để phân biệt DBMS với các hệ thống lập trình
khác:
- Khả năng quản lý dữ liệu tồn tại lâu dài
- Khả năng truy nhập các khối dữ liệu lớn hiệu quả
Ngoài ra, DBMS còn có một số đặc trưng khác như:
- Hỗ trợ ít nhất một mô hình dữ liệu để người dung có thể quan sát được
- Đảm bảo tính độc lập dữ liệu hay sự bất biến của các chương trình ứng dụng
đối với các thay đổi về cấu trúc trong mô hình dữ liệu
- Hỗ trợ các ngôn ngữ cao cấp nhất định cho phép người dung định nghĩa cấu
trúc dữ liệu, truy nhập dữ liệu và thao tác dữ liệu.
- Quản trị giao dịch (transaction), hỗ trợ các truy xuất CSDL đồng thời đối từ
nhiều người dung tại một thời điểm
- Điều khiển truy xuất nhằm hạn chế truy cập đến dữ liệu bởi những người
dung không được phép và khả năng kiểm tra tính đúng đắn của các giao dịch
- Sao lưu, phục hồi dữ liệu
Kiến trúc một DBMS được mô tả như sau:
Trang 8
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
- Bộ quản lý lưu trữ: cho phép lấy ra dữ liệu được yêu cầu từ những thiết bị
lưu trữ dữ liệu và thay đổi những dữ liệu này khi được yêu cầu bởi các mức
trên nó của hệ thống
- Bộ xử lý câu truy vấn: không chỉ điều khiển các câu hỏi mà cả các yêu cầu
thay đổi dữ liệu, siêu dữ liệu
- Bộ quản lý giao dịch: có trách nhiệm đảm bảo tính toàn vẹn dữ liệu của hệ
thống
Trang 9
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
PL / SQL cung cấp cấu trúc khối cho các đơn vị mã có thể thực thi được.
Việc bảo trì mã được thực hiện dễ dàng hơn với cấu trúc được xác định rõ
ràng như vậy.
PL / SQL Cung cấp các cấu trúc thủ tục như:
- Biến, hằng và kiểu dữ liệu
- Cấu trúc điều khiển như câu lệnh điều kiện và vòng lặp
- Đơn vị chương trình có thể sử dụng lại được viết một lần và thực thi nhiều
lần
Kiến trúc Run-time của PL/SQL như sau:
Trang 10
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
- Xử lý ngoại lệ
Oracle Database hay còn gọi là Oracle RDBMS, là 1 hệ quản trị cơ sở dữ liệu
quan hệ, được phát triển và phân phối bởi tập đoàn Oracle.
Oracle là một hệ quản trị cơ sở dữ liệu quan hệ đa mô hình, chủ yếu được thiết
kế điện toán lưới và lưu trữ dữ liệu cho doanh nghiệp. Đây là một trong những lựa
chọn hàng đầu giúp doanh nghiệp xử lý linh hoạt và đưa ra những giải pháp tối ưu
cho việc quản lý thông tin và ứng dụng.
Phần mềm này vẫn đang được phát triển tiếp lên những version cao hơn, và
vẫn đang là 1 trong những phần mềm quản trị database hàng đầu thế giới. Theo
thông tin từ Wikipedia thì phần mềm này được viết bằng Assembly, C và C++. Có
lẽ đó là cốt lõi chính của Oracle Database. Sau này những công cụ liên quan như
emctl, dbca, netca... thì được viết bằng Java.
Giống như các phần mềm khác, Oracle được xây dựng dựa trên SQL, một
ngôn ngữ lập trình được tiêu chuẩn hóa cho các nhà quản trị cơ sở dữ liệu, nhà phân
Trang 11
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
tích dữ liệu và các chuyên gia về dữ liệu sử dụng quản lý và truy vấn dữ liệu được
lưu trữ.
Phần mềm Oracle gắn với PL/ SQL, phần mở rộng do Oracle phát triển, cung
cấp những bổ sung mới cho tập hợp các phần mở rộng lập trình độc quyền trong
SQL tiêu chuẩn. Oracle cũng hỗ trợ lập trình bằng ngôn ngữ Java và các chương
trình được viết bằng PL/ SQL mở rộng.
Hình 2.6. Giao diện làm việc của phần mềm Oracle SQL Developer
Trang 12
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Oracle được phát triển bởi Lawrence Ellison và những người đồng nghiệp cũ
của ông, trụ sở chính được đặt ở Redwood Shores, California, sau đó chuyển trụ sở
chính đến Texas vào năm 2020.
Ban đầu, Oracle với tên đầy đủ Oracle Systems Corporation, là công ty đầu tiên
thương mại hóa nền tảng hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) và trở thành
nhà cung cấp cơ sở dữ liệu hàng đầu thế giới. Đến năm 1995, Oracle Systems
Corporation đổi thành Oracle Corporation và thường được gọi với tên Oracle.
Oracle cung cấp tính năng Oracle Data Guard. Khi sử dụng các tính năng này,
cơ sở dữ liệu dự phòng thứ cấp được duy trì như một bản sao của cơ sở dữ liệu
chính và có thể sử dụng các lựa chọn thay thế trong quá trình chuyển đổi dự phòng.
Bảo mật
Tính năng Oracle Advanced Security cung cấp giải pháp bảo vệ thông tin nhạy
cảm tại nguồn là TDE (mã hóa dữ liệu thời gian thực) và Data Redaction (che giấu
dữ liệu). Giải pháp này cho phép mã hóa dữ liệu tại nguồn và đăng xuất. Ngoài ra,
Oracle còn phát triển thêm một số tính năng bảo mật khác để bảo vệ quyền lợi cho
người dùng.
Oracle RAC là điển hình cho khả năng mở rộng của Oracle, cung cấp khả năng
như di chuyển phiên bản, thực hiện nâng cấp, truy trì tính liên tục của ứng dụng và
quản lý chất lượng dịch vụ.
Hiệu suất
Trang 13
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Oracle cung cấp các giải pháp nâng cao hiệu suất như Oracle Advanced
Compression, Oracle Database In- Memory,….nhằm tối ưu hiệu suất hoạt động của
hệ thống ở mức tốt nhất.
Oracle Analytics
Ở các tính năng phân tích, Oracle đưa ra các giải pháp sau:
- OLAP (Oracle Analytics Processing) là triển khai của Oracle được sử dụng
để phân tích dữ liệu bằng các thuận toán phức tạp.
- Oracle Advanced Analytics giúp người dùng xác định mô hình kinh doanh
dự án bằng cách thực hiện các khai thác dữ liệu và văn bản, tính toán dữ liệu
thống kê.
Quản lý Oracle
Oracle Multitenant là một giải pháp được phát triển để quản lý các cơ sở dữ liệu
với kiến trúc hợp nhất của một cơ sở dữ liệu vùng chứa duy nhất và nhiều cơ sở dữ
liệu được gắn thêm.
2.3.1.5 Ưu điểm
- Xác thực đối tượng cơ sở dữ liệu tự động: Sự chính xác của các chế độ và
trình kích hoạt đều được tích hợp sẵn. Điều này giúp giảm thiểu rủi ro khi sử
dụng phần mềm bị trục trặc và dễ dàng chỉnh sửa khi gặp vấn đề.
- Mô hình về khả năng lập trình phong phú: Oracle không chỉ hỗ trợ SQL
phong phú mà còn hỗ trợ cả PL/ SQL, sử dụng các công cụ dòng lệnh tốt
giúp quản lý các thay đổi dễ dàng và mang lại hiệu quả cao.
- Khả năng lưu trữ dữ liệu mạnh mẽ: Hoạt động tốt với khả năng lưu trữ nền
và cả đám mây, cung cấp chức năng quản lý chế độ xem tự động hóa, chuỗi
bảng, kiểu dữ liệu và SQL nâng cao dưới dạng hàm Windowing.
- An toàn bảo mật: Một trong những đặc điểm lớn nhất trong việc lựa chọn cơ
sở dữ liệu Oracle là tính năng bảo mật mà nó cung cấp, khả năng bảo mật
thông tin của Oracle được đánh giá cao hơn so với các đối thủ.
Trang 14
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
- Không có nhiều cú pháp được sử dụng trong PL/ SQL, dễ thay đổi khi làm
việc bằng các ngôn ngữ khác.
- Các lớp đào tạo không được đánh giá cao về độ hiệu quả, những hướng dẫn
trái ngược với các nhu cầu tìm hiểu và sử dụng của người dùng.
- Chi phí đang trở thành vấn đề khi các đối thủ cạnh tranh hoạt động trên thị
trường ở một mức giá thấp hơn.
- Dịch vụ hỗ trợ khách hàng thường phản hồi rất chậm, thường không sẵn lòng
trả lời các câu hỏi một cách trực tiếp để giải quyết vấn đề.
Power Designer là 1 công cụ thiết kế của CSDL. Với Power Designer có thể:
- Thiết kế Conceptual Data Model (CDM) bằng mô hình thực thể kết hợp.
- Phát sinh Physical Data model (PDM) tương ứng trên một DBMS được
chọn.
- Phát sinh kích bản tạo CSDL trên một DBMS đích.
- Phát sinh ràng buộc toàn vẹn tham chiếu nếu chúng được hỗ trợ bởi CSDL
đích.
- Cho phép hiệu chỉnh vào in các model.
Trang 15
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
- Việc mô hình hóa được tích hợp thông qua các phương pháp và kí hiệu
chuẩn để vẽ các sơ đồ.
- Sơ đồ phân rã chức năng.
- Sơ đồ dòng chảy dữ liệu.
- Mô hình dữ liệu quan niệm.
- Phát sinh mô hình vật lý dữ liệu từ mô hình dữ liệu quan niệm.
- Phát sinh code tự động SQL.
- Khả năng tạo các báo cáo (report) tự động.
Trang 16
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 2.8. Giao diện làm việc của phần mềm thiết kế Power Designer
Trang 17
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hoạt động kinh doanh của cửa hàng kinh doanh bán hạt cafe Starbuck được
mô tả theo các nghiệp vụ như sau:
Các chi nhánh (chinhanh) của cửa hàng được chia và quản lý theo từng khu
vực (khuvuc). Để phân biệt các chi nhánh và khu vực với nhau, mỗi chi nhánh và
khu vực có một mã riêng và có tên của khu vực/chi nhánh. Mỗi chi nhánh có các
nhân viên (nhanvien), các nhân viên cần cung cấp họ, tên, số điện thoại, email để
người quản lý có thể quản lý thông tin của họ và được phân biệt bằng mã nhân viên
(manv) và mỗi nhân viên có một công việc (congviec) của họ. Sao mỗi năm làm
việc nhân viên sẽ được nhận thêm hoa hồng (hoahong) thâm niên vào lương hằng
tháng của họ.
Các sản phẩm hạt cafe tại Starbuck được quản lý vô cùng chặt chẻ để đem đến
một chất lượng uy tín nhất, tốt nhất. Các hạt cafe được quản lý trong một danh sách
(dscafe) bao gồm các thông tin như: mã để phân biệt các sản phẩm hạt cafe, tên
cafe, ngày sản xuất, hạn sử dụng, khối lượng, đơn vị tính, giá bán và mô tả sơ lược
về hạt cafe đó. Các hạt cafe thượng hạng tại Starbuckđược mang đến từ các thương
hiệu lớn (thuonghieu) như: Cafe Trung Nguyên, Lion Cafe, … với các loại cafe
(loaicafe) cafe rang nguyên hạt, rang xay hòa tan hay phin giấy. Không những tốt về
chất lượng, ở Starbuckcác hạt cafe luôn có một lượng tồn kho (tonkho) lớn để đảm
bảo cung cấp các hạt cafe cho khách hàng mọi lúc.
Trang 18
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Để có thể mua hàng ở Starbuck, các khách hàng (khachhang) của Starbuc
kphải để lại các thông tin như tên, địa chỉ, phương thức liên lạc và tất nhiên các
khách hàng đều có một mã để người quản lý cửa hàng có thể quản lý dễ dàng hơn.
Khi đặt hàng (dondathang), khách hàng có thể chọn một địa chỉ giao hàng khác địa
chỉ của bản thân, chỉ định tên và số điện thoại của người khác để nhận hàng thay.
Sản phẩm và số lượng mua của khách hàng sẽ được lưu vào danh sách chi tiết
(ctdonhang).
Các quy định cơ bản của hệ thốngquản lý bán hàng của cửa hàng kinh
doanh bán hạt cafe Starbuck:
Quy định 1: Khối lượng và giá bán của các hạt cafe là số dương và phải lớn hơn
hoặc bằng 0.
Quy định 2: Số lượng tồn kho phải lớn hơn hoặc bằng 0.
Quy định 3: Lương của nhân viên phải từ 1.000.000 VNĐ trở lên.
Quy định 4: Khi tuyển một nhân viên mới, mã hoa hồng của nhân viên đó mặc định
là 0.
Quy định 5: Khi thêm một hạt cafe vào danh sách, nếu không nhập khối lượng, nó
sẽ mặc định là 0.
Quy định 7: Khi thêm một đơn hàng, tình trạng đơn hàng mặc định là “Chua duoc
giao”.
Dự vào phân tích nghiệp vụ ở trên DB phục vụ cho hệ thống quản lý bán hàng
của Starbuckbao gồm các thực thể sau đây:
Trang 19
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Trang 20
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Trang 21
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Bảng khuvuc:
Bảng chinhanh:
Trang 22
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Bảng loaicafe:
Bảng thuonghieu:
Bảng dscafe:
Trang 23
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
mota Mô tả Varchar(2000)
Bảng tonkho:
Bảng hoahong:
Trang 24
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Bảng congviec:
Bảng nhanvien:
Trang 25
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Bảng khachhang:
Bảng dondathang:
Trang 26
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Bảng ctdonhang:
Bảng 3.12. Thiết kế bảng chi tiết đơn đặt hàng (ctdonhang)
Ràng buộc toàn vẹn sử dụng các luật để định nghĩa các điều kiện đảm bảo cho
cơ sở dữ liệu luôn ở trạng thái an toàn. Ràng buộc toàn vẹn là một điều kiện được
định nghĩa liên quan đến một hoặc nhiều quan hệ bối cảnh khác nhau.
Trang 27
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Các mối quan hệ ràng buộc là những điều kiện bất biến mà mọi thể hiện của quan
hệ đều phải thỏa mãn ở bất kì thời điểm nào.
Quan hệ 1 + + -
Quan hệ n - + +(A)
Ký hiệu +(A): Có thể gây ra vi phạm RBTV khi thao tác trên thuộc tính A
khuvuc makv
chinhanh macn
loaicafe maloaicf
Trang 28
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
thuonghieu math
dscafe macf
hoahong mahh
congviec macv
nhanvien manv
khachhang makh
dondathang maddh
Bảng 3.14. Ràng buộc các khóa chính của các bảng (Table)
chinhanh makv
Trang 29
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Ràng buộc khối lượng của sản phẩm phải lớn hơn hoặc bằng 0.
o Bối cảnh: dscafe
o Biểu diễn: n dscafe (n.khoiluong >= 0)
o Bảng tầm ảnh hưởng:
dscafe + - +(khoiluong)
Bảng 3.16. Bảng tầm ảnh hưởng ràng buộc khối lượng sản phẩm
Ràng buộc giá bán của các sản phẩm phải lớn hơn bằng 0.
o Bối cảnh: dscafe
o Biễu diễn: n dscafe (n.giaban >= 0)
o Bảng tầm ảnh hưởng:
dscafe + - +(giaban)
Bảng 3.17. Bảng tầm ảnh hưởng ràng buộc giá bán sản phẩm
tonkho + - +(slton)
Bảng 3.18. Bảng tầm ảnh hưởng ràng buộc số lượng tồn kho
Trang 30
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Ràng buộc số tiền hoa hồng của phải lớn hơn bằng 0.
o Bối cảnh: hoahong
o Biểu diễn n hoahong (n.hoahong >= 0)
o Bảng tầm ảnh hưởng:
hoahong + - +(hoahong)
Bảng 3.19. Bảng tầm ảnh hưởng ràng buộc số tiền hoa hồng
Ràng buộc lương cơ bản của nhân viên phải lớn hơn bằng 3.000.000 VNĐ.
o Bối cảnh: nhanvien
o Biểu diễn: n nhanvien (n.luong >= 3000000)
o Bảng tầm ảnh hưởng:
nhanvien + - +(luong)
Bảng 3.20. Bảng tầm ảnh hưởng ràng buộc lương nhân viên
ctdonhang + - +(sl)
Bảng 3.21. Bảng tầm ảnh hưởng ràng buộc số lượng đặt hàng
Trang 31
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
3.2 Tạo các bảng trong hệ quản trị cơ sở dữ liệu Oracle với SQL Developer:
);
);
);
Trang 32
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
);
mota varchar(2000),
);
Trang 33
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
);
);
);
Trang 34
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
email varchar(100),
);
email varchar(100)
);
Trang 35
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
ghichu varchar(200)
);
);
Trang 36
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Để đảm bảo dữ liệu được nhập vào và không vi phạm các ràng buộc toàn vẹn,
ta thêm dữ liệu theo thứ tự sau đây:
1. khuvuc
2. chinhanh
3. loaicafe
4. thuonghieu
5. dscafe
6. tonkho
7. hoahong
8. congviec
9. nhanvien
10. khachhang
11. dondathang
12. ctdonhang
insert into khuvuc (makv, tenkv) values ( '1', 'khu vuc tay nguyen');
insert into khuvuc (makv, tenkv) values ( '2', 'khu vuc phia nam');
insert into khuvuc (makv, tenkv) values ( '3', 'khu vuc mien trung');
insert into khuvuc (makv, tenkv) values ( '4', 'khu vuc phia bac');
Nhập dữ liệu bảng chi nhánh:
insert into chinhanh (macn, tencn, diachi, hotline, makv) values ('CN01', 'Chi nhanh
Thang Loi, Buon Ma Thuot', '203 Nguyen Van Troi, Thang Loi, thanh pho Buon
Ma Thuot, Dak Lak', '0706664515', 1);
Trang 37
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
insert into chinhanh (macn, tencn, diachi, hotline, makv) values ('CN02', 'Chi nhanh
Tan Thanh, Buon Ma Thuot', '106 Le Duan, Tan Thanh, thanh pho Buon Ma Thuot,
Dak Lak', '0184787422', 1);
insert into chinhanh (macn, tencn, diachi, hotline, makv) values ('CN03', 'Chi nhanh
Quan 7, TPHCM', '37 Nguyen Thi Thap, Binh Thuan, quan 7, thanh pho Ho Chi
Minh', '0845125762', 2);
insert into chinhanh (macn, tencn, diachi, hotline, makv) values ('CN04', 'Chi
Nhanh Quan 10, TPHCM', '850 Su Van Hanh, phuong 12, quan 10, thanh pho Ho
Chi Minh', '0235846941', 2);
insert into chinhanh (macn, tencn, diachi, hotline, makv) values ('CN05', 'Chi nhanh
Da Nang', '104 Dong Da, Thuan Phuoc, Hai Chau, Da Nang', '0815489658', 3);
insert into chinhanh (macn, tencn, diachi, hotline, makv) values ('CN06', 'Chi nhanh
Ha Noi', '12c Hoang Dieu, Dien Ban, Ba Dinh, Ha Noi', '0276956698', 4);
Trang 38
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
insert into dscafe (macf, tencf, ngaysx, hsd, khoiluong, dvt, giaban, mota, maloaicf,
math) values ('CF0001', 'Cafe TNI King Coffee 450g', TO_DATE('2021-08-27',
'YYYY-MM-DD'), '2 nam ke tu nsx', 450, 'hop', 315000, 'khoi dau voi mot chut
huong nong nan cua nhung hat arabica hao hang, tiep noi voi vi chua nhe va nt diu
nguyen ban cua hat ca phe', 'L02', 'TK');
insert into dscafe (macf, tencf, ngaysx, hsd, khoiluong, dvt, giaban, mota, maloaicf,
math) values ('CF0002', 'Cafe nguyen hat TNI King Coffee arabica guatemala
340g', TO_DATE('2021-08-27', 'YYYY-MM-DD'), '2 nam ke tu nsx', 340, 'goi',
276000, 'duoc che bien tu hat Cafe arabica guatemala theo quy trinh hien dai ket
hop voi cong thuc pha che chuyen biet tu cac chuyen gia TNI King Coffee, cho ra
san pham Cafe phin TNI King Coffee chat luong', 'L01', 'TK');
insert into dscafe (macf, tencf, ngaysx, hsd, khoiluong, dvt, giaban, mota, maloaicf,
math) values ('CF0003', 'Cafe nguyen hat TNI King Coffee arabica colombia 340g',
TO_DATE('2021-08-27', 'YYYY-MM-DD'), '2 nam ke tu nsx', 340, 'goi', 258000,
'duoc lam tu nhung hat Cafe arabica colombia, voi cong nghe che bien hien dai cung
cong thuc chuyen biet cua cac chuyen gia tu TNI King Coffee, tao ra san pham Cafe
phin dac trung', 'L01', 'TK');
insert into dscafe (macf, tencf, ngaysx, hsd, khoiluong, dvt, giaban, mota, maloaicf,
math) values ('CF0004', 'Cafe nguyen hat TNI King Coffee arabica brazil 340g',
TO_DATE('2021-08-27', 'YYYY-MM-DD'), '2 nam ke tu nsx', 340, 'goi', 224000,
'su dung hat Cafe arabica brazil - la mot trong nhung loai Cafe nn va duoc nhieu
nguoi yeu thich tren thi truong hien tai', 'L01', 'TK');
insert into tonkho (macn, macf, slton) values ('CN01', 'CF0001', 1109);
insert into tonkho (macn, macf, slton) values ('CN01', 'CF0002', 1109);
insert into tonkho (macn, macf, slton) values ('CN01', 'CF0003', 1000);
insert into tonkho (macn, macf, slton) values ('CN01', 'CF0004', 1928);
insert into tonkho (macn, macf, slton) values ('CN01', 'CF0005', 1009);
Trang 39
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
insert into tonkho (macn, macf, slton) values ('CN01', 'CF0006', 1009);
insert into tonkho (macn, macf, slton) values ('CN01', 'CF0007', 1392);
insert into tonkho (macn, macf, slton) values ('CN01', 'CF0008', 1022);
insert into tonkho (macn, macf, slton) values ('CN01', 'CF0009', 1229);
insert into tonkho (macn, macf, slton) values ('CN01', 'CF0010', 1209);
Nhập dữ liệu bảng hoa hồng:
insert into nhanvien (manv, honv, tennv, ngayvaolam, luong, sdt, email, macv,
makv) values ('DH0001', 'Nguyen Thuy', 'Linh', TO_DATE('2018-11-18', 'YYYY-
MM-DD'), 4000000, '0377699829', 'thuylinh2308@gmailcom', 'DH', 1);
insert into nhanvien (manv, honv, tennv, ngayvaolam, luong, sdt, email, macv,
makv) values ('DH0002', 'Hoang Anh', 'Tuan', TO_DATE('2018-11-18', 'YYYY-
MM-DD'), 4000000, '0964872434', 'anhtuan0204@gamilcom', 'DH', 1);
insert into nhanvien (manv, honv, tennv, ngayvaolam, luong, sdt, email, macv,
makv) values ('DH0003', 'Tran Thi Hoang', 'Anh', TO_DATE('2018-11-18',
'YYYY-MM-DD'), 4000000, '0369954954', 'anhanh719@gmailcom', 'DH', 1);
Trang 40
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
insert into nhanvien (manv, honv, tennv, ngayvaolam, luong, sdt, email, macv,
makv) values ('DH0004', 'Doan Anh', 'Toan', TO_DATE('2018-11-18', 'YYYY-
MM-DD'), 4000000, '0986667211', 'toandoan4729@gmailcom', 'DH', 2);
insert into nhanvien (manv, honv, tennv, ngayvaolam, luong, sdt, email, macv,
makv) values ('DH0005', 'Nguyen Tran Anh', 'Thu', TO_DATE('2018-11-18',
'YYYY-MM-DD'), 4000000, '0974665644', 'anhthu1429@gamilcom', 'DH', 2);
insert into khachhang (makh, tenkh, diachi, sdt, email) values ('KH0001', 'Nguyen
Quoc Khanh', 'Duong 385, phuong Tang Nhon Phu A, tp Thu Duc', '0838263820',
'quockhanh29@gmail.com');
insert into khachhang (makh, tenkh, diachi, sdt, email) values ('KH0002', 'Tran
Thanh Thuy', '17 Hoang Dieu 2, phuong Linh Chieu, tp Thu Duc', '0382957329',
'thanhthuy08@gmail.com');
insert into khachhang (makh, tenkh, diachi, sdt, email) values ('KH0003', 'Phan Lan
Anh', '56 Nguyen Chi Thanh, Chi Lang, Thanh pho Pleiku, Gia Lai', '0948927717',
'lananh23@gmail.com');
insert into khachhang (makh, tenkh, diachi, sdt, email) values ('KH0004', 'Nguyen
Khanh Linh', '123, thon 2a, xa Eakly, huyen Krong Pac, Tinh Dak Lak',
'0932784661', 'khanhlinh103@gmail.com');
insert into khachhang (makh, tenkh, diachi, sdt, email) values ('KH0005', 'Nguyen
Tien Nam', ' 224 Duong so 48, Phuong 5, Quan 4, Thanh pho Ho Chi Minh',
'0832748718', 'tiennam134@gmail.com');
insert into dondathang (maddh, ngaylap, makh, manv, makv, macn, ten_nguoinhan,
diachi_giao, thoihan_giao, sdt_nguoinhan, ghichu) values ('DDH0000001',
to_date('2021-08-30', 'YYYY-MM-DD'), 'KH0001', 'TV0004', 2, 'CN03', 'Quoc
Trang 41
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Khanh', 'Duong 385, phuong Tang Nhon Phu A, tp Thu Duc', to_date('2021-09-01',
'YYYY-MM-DD'), '0838263820' , NULL);
insert into dondathang (maddh, ngaylap, makh, manv, makv, macn, ten_nguoinhan,
diachi_giao, thoihan_giao, sdt_nguoinhan, ghichu) values ('DDH0000002',
to_date('2021-09-01', 'YYYY-MM-DD'), 'KH0002', 'TV0005', 2, 'CN03', 'Thanh
Thuy', '17 Hoang Dieu 2, phuong Linh Chieu, tp Thu Duc', to_date('2021-09-02',
'YYYY-MM-DD'), '0382957329' , NULL);
insert into dondathang (maddh, ngaylap, makh, manv, makv, macn, ten_nguoinhan,
diachi_giao, thoihan_giao, sdt_nguoinhan, ghichu) values ('DDH0000003',
to_date('2021-09-01', 'YYYY-MM-DD'), 'KH0003', 'TV0002', 1, 'CN01', 'Lan Anh',
'56 Nguyen Chi Thanh, Chi Lang, Thanh pho Pleiku, Gia Lai', to_date('2021-09-03',
'YYYY-MM-DD'), '0948927717' , NULL);
insert into dondathang (maddh, ngaylap, makh, manv, makv, macn, ten_nguoinhan,
diachi_giao, thoihan_giao, sdt_nguoinhan, ghichu) values ('DDH0000004',
to_date('2021-09-02', 'YYYY-MM-DD'), 'KH0004', 'TV0001', 1, 'CN02', 'Khanh
Linh', '123, thon 2a, xa Eakly, huyen Krong Pac, Tinh Dak Lak', to_date('2021-09-
03', 'YYYY-MM-DD'), '0932784661' , NULL);
insert into dondathang (maddh, ngaylap, makh, manv, makv, macn, ten_nguoinhan,
diachi_giao, thoihan_giao, sdt_nguoinhan, ghichu) values ('DDH0000005',
to_date('2021-09-02', 'YYYY-MM-DD'), 'KH0005', 'TV0006', 2, 'CN03', 'Tien
Nam', ' 224 Duong so 48, Phuong 5, Quan 4, Thanh pho Ho Chi Minh',
to_date('2021-09-03', 'YYYY-MM-DD'), '0832748718' , NULL);
insert into ctdonhang (maddh, macf, sl) values ('DDH0000001', 'CF0003', 1);
insert into ctdonhang (maddh, macf, sl) values ('DDH0000001', 'CF0009', 2);
insert into ctdonhang (maddh, macf, sl) values ('DDH0000001', 'CF0022', 1);
insert into ctdonhang (maddh, macf, sl) values ('DDH0000002', 'CF0020', 1);
Trang 42
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
insert into ctdonhang (maddh, macf, sl) values ('DDH0000002', 'CF0035', 1);
insert into ctdonhang (maddh, macf, sl) values ('DDH0000003', 'CF0019', 2);
insert into ctdonhang (maddh, macf, sl) values ('DDH0000004', 'CF0023', 1);
insert into ctdonhang (maddh, macf, sl) values ('DDH0000004', 'CF0025', 1);
insert into ctdonhang (maddh, macf, sl) values ('DDH0000005', 'CF0002', 1);
insert into ctdonhang (maddh, macf, sl) values ('DDH0000005', 'CF0043', 3);
Trang 43
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Thao tác cơ bản trên dữ liệu của bảng như insert (thêm dữ liệu), update (chỉnh
sửa, cập nhật dữ liệu) và delete (xóa dữ liệu). Các thao tác này vô cùng quan trọng
đối với mọi cơ sở dữ liệu. Vì sao lại quan trọng? Trong quá trình quản lý bất cứ một
cơ sở dữ liệu nào, việc dữ liệu xảy ra sự thay đổi là không thể không xảy ra, từ thay
đổi dữ liệu thuộc tính, thêm một hàng dữ liệu mới đến xóa đi một hàng. Dưới đây là
một vài ví dụ về các câu lệnh cập nhật dữ liệu và xóa dữ liệu được dùng trong hệ
quản trị cơ sở dữ liệu quản lý bán hàng tại cửa hàng bán hạt cafe Starbuck(lệnh
thêm dữ liệu được thực hiện ở mục 3.. tại chương 3).
4.1.1.1 Cập nhật giá bán của các sản phẩm, giá bán giảm 5%:
Giải thích:
Tại cửa hàng Starbuck, khi đến các dịp lễ thường có chương trình khuyến mã
hoặc sale các sản phẩm. Muốn giảm 5% tất cả các mặt hàng cỏ thể sử dụng câu lệnh
cập nhật như nghiệp vụ sau.
Câu lệnh:
update dscafe
Trang 44
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Kết quả:
Hình 4.1. Kết quả trước và sau khi cập nhật 5% giá bán
4.1.1.2 Cập nhật giá bán của các sản phẩm thuộc thương hiệu “Nón lá
Coffee”, tăng thêm 5000:
Giải thích:
Giá cả các sản phẩm biến động, trong cửa hàng Starbuck, muốn tăng giá các sản
phẩm một thương hiệu nào đó (cụ thể là Nón Lá Coffee) ta thực hiện câu lệnh này.
Câu lệnh:
update dscafe
Kết quả:
Trang 45
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.2. Kết quả trước và sau khi cập nhật giá bán của thương hiệu Nón Lá
4.1.1.3 Cập nhật số điện thoại của nhân viên có mã “DH0005”, số điện thoại
là “0975301025”:
Giải thích:
Các nhân viên có thể thay đổi số điện thoại liên hệ của cá nhân bất cứ lúc nào
hoặc vì một lý do nào đó. Để thuận tiện trong việc quản lý cũng như cập nhật thông
tin chính xác nhất, ta sử dụng câu lệnh cập nhật này.
Câu lệnh:
update nhanvien
Kết quả:
Hình 4.3. Kết quả cập nhật số điện thoại nhân viên
4.1.1.4 Cập nhật chuyển nhân viên giao hàng có mã “GH0007” sang công
việc khác:
Giải thích:
Trang 46
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Trong cửa hàng Starbuck, có thể chuyển đổi công việc của nhân viên một các
linh hoạt nếu bộ phận công việc khác thiếu người. Cụ thể, trong nghiệp vụ này các
nhân viên ở bộ phận giao hàng sẽ chuyển qua một bộ phận khác cần hỗ trợ nhân lực
thì sử dụng câu lệnh cập nhật này để dễ dàng trong việc quản lý và thanh toán lương
nhân viên.
Câu lệnh:
update nhanvien
Select manv, honv || ' ' || tennv as "Ho Ten", macv from nhanvien;
Kết quả:
Hình 4.4. Kết quả cập nhật chuyển công việc cho nhân viên
4.1.1.5 Cập nhật ngày sản xuất thành 10/11/2021 và giá của sản phẩm, mã
sản phẩm do người dùng nhập:
Giải thích:
Các sản phẩm trong của hàng đến một thời gian nhất định nào đó sẽ hết hạn,
hoặc các sản phẩm nhập các đợt hàng mới thì hệ thống cần cập nhật ngày sản xuất
cho các mặt hàng đó. Lúc này, ta có thể sử dụng câu lệnh cập nhật này.
Câu lệnh:
update dscafe
Trang 47
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Kết quả:
Hình 4.5. Kết quả cập nhật giá bán và ngày sản xuất của sản phẩm
4.1.1.6 Cập nhật số lượng tồn của các sản phẩm trong bảng tồn kho khi sản
phẩm được bán:
Giải thích
Số lượng tồn trong kho của các chi nhánh sẽ thay đổi (giảm đi) khi mặt hàng đo
được bán đi. Lúc này, cần giảm số lượng tương ứng trong kho xuống để cập nhật số
lượng tồn kho một cách chính xác. Câu lệnh này sẽ hỗ trợ thực hiện nghiệp vụ đó.
Câu lệnh:
update tonkho
Trang 48
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Kết quả:
Hình 4.7. Kết quả cập nhật số lượng sản phẩm tồn kho sau khi đã bán
4.1.1.7 Cập nhật giá bán của sản phẩm có mã “CF0003” bằng với giá bán
của sản phẩm có mã “CF0002”:
Giải thích:
Trong danh sách các sản phẩm cà phê, các mặt hàng có khối lượng hoặc thuộc
loại cà phê tương đương nhau, người dung có thể cập nhật giá bán của các sản phẩm
đó bằng nhau, ta có thể sử dụng câu lệnh cập nhật này để áp dụng vào nghiệp vụ.
Câu lệnh:
update dscafe
Kết quả:
Trang 49
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.8. Kết quả sau khi cập nhật giá bán của hai mặt hàng bằng nhau
4.1.1.8 Cập nhật thêm 50 sản phẩm cho các mặt hàng có số lượng tồn dưới
20:
Giải thích:
Khi các mặt hàng trong kho gần hết hàng, quản lý kho cần kiểm tra và cập nhật
số lượng hàng trong kho để đảm bảo duy trì hàng hóa không bị hết hoặc thiếu hàng
khi được đặt mua.
Câu lệnh:
update tonkho
Kết quả:
Hình 4.9. Kết quả sau khi đã cập nhật nhập thêm sản phẩm
Trang 50
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
4.1.1.9 Cập nhật giảm giá 10% cho các sản phẩm chưa có đơn đặt hàng nào:
Giải thích:
Trong Starbucksẽ có nhiều mặt hàng có thể không thuộc loại mà khách hàng
thích, hoặc do các sản phẩm có giá cả đắt đỏ nên người dùng không sử dụng và các
sản phẩm đó không có đơn hàng. Cửa hàng cần có chế độ ưu đãi để có thể giải
quyết các tồn kho của mặt hàng này, ta sử dụng câu lệnh cập nhật giá bán cho
nghiệp vụ như sau.
Câu lệnh:
update dscafe
where NOT EXISTS (select macf from ctdonhang where macf = dscafe.macf);
Hình 4.10. Kết quả cập nhật giá của các sản phẩm chưa có đơn hàng
4.1.1.10 Cập nhật tăng giá thêm 5% cho những sản phẩm cafe có số lượng
mua nhiều nhất:
Giải thích
Trang 51
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Trong cửa hàng Starbuck, với mặt hàng cà phê có lượng đặt hàng nhiều nhất (có
nghĩa được khách yêu thích nhất), muốn tăng giá bán của sản phẩm này lên có thể
sử dụng câu lệnh cập nhật sau để thực hiện nghiệp vụ.
Câu lệnh:
UPDATE dscafe
Hình 4.11. Kết quả cập nhật tăng giá sản phẩm có nhiều đơn hàng nhất
4.1.2.1 Cho thôi việc một nhân viên do người dùng nhập vào:
Giải thích:
Trang 52
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Khi một nhân viên thuộc bộ bận nào đó thôi việc, quản lý của Starbuckchỉ cần
nhập mã nhân viên của người đó vào thì sẽ tự động xóa thông tin của người đó ra
khỏi danh sách nhân viên cửa hàng.
Câu lệnh:
Select manv, honv || ' ' || tennv as "Ho Ten", macv, makv
from nhanvien where manv = 'KK0007';
Kết quả:
Hình 4.12. Kết quả xóa một nhân viên đã nghỉ việc ra khỏi danh sách
4.1.2.2 Cho phép người dùng nhập cà mã cafe và ngừng kinh doanh cafe đó:
Giải thích:
Khi ngừng sản xuất một mặt hàng nào đó trong Starbuck, quản lý sẽ nhập mã
của sản phẩm đó để xóa thông tin cũng như thanh lý các mặt hàng đó trong các chi
nhánh hoạt động.
Câu lệnh:
Kết quả:
Trang 53
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.13. Kết quả ngừng kinh doanh một mặt hàng trong cửa hàng
4.1.2.3 Cho thôi việc nhân viên có tên “Phan Trong Hieu”:
Giải thích:
Trong trường hợp, quản lý không nhớ mã nhân viên đã thôi việc để xóa
thông tin ra khỏi CSDL thì có thể nhập họ tên của người đó sẽ dễ dàng hơn trong
việc quản lý và thanh toán lương.
Câu lệnh:
Select manv, honv || ' ' || tennv as "Ho Ten", macv, makv
from nhanvien where honv = 'Phan Trong' and tennv = 'Hieu';
Kết quả:
Hình 4.14. Kết quả cho nhân viên được nhập tên cụ thể thôi việc
4.1.2.4 Xóa các mặt mặt hàng trong kho có số lượng tồn trên 1500 mặt hàng
Giải thích:
Trang 54
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Các mặt hàng có số lượng tồn lớn hơn 1500 sản phẩm trong Starbuckcần
được thanh lý vì một số lý do nào đó như sắp hết hạn hoặc không kinh doanh được.
Người dùng chỉ cần sử dụng câu lệnh sau để thực hiện nghiệp vụ này.
Câu lệnh:
Kết quả:
Hình 4.15. Kết quả xóa các sản phẩm có số lượng tồn lớn hơn 1500
4.1.2.5 Xóa tất cả các đơn hàng hàng do nhân viên có mã “TV0004” phụ
trách:
Giải thích:
Giả sử khi nhân viên phụ trách đơn hàng cập nhật sai các mặt hàng trong chi
tiết đơn, thì đơn hàng do nhân viên đó đã từng phụ trách sẽ bị hủy, các mặt hàng
trong chi tiết đơn hàng sẽ bị xóa ra khỏi chi tiết đơn đặt hàng.
Câu lệnh:
Trang 55
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.16. Kết quả xóa các mặt hàng trong chi tiết đơn do nhân viên lập sai
4.1.2.6 Xóa loại cà phê mà hiện không có mặt hàng nào trừ “Khác”
Giải thích:
Một số loại cà phê, đã ngừng sản xuất và không còn mặt hàng nào trong kho
nữa thì cần được xóa trong CSDL (trừ loại “Khác”). Để thuận tiện trong việc quản
lý bán hàng và chặt chẽ hơn trong việc quản lý các loại sản phẩm kinh doanh tại
Starbuck.
Câu lệnh
where NOT EXISTS (Select macf from dscafe where maloaicf = loaicafe.maloaicf);
Trang 56
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.17. Kết quả xóa loại cà phê mà hiện không có mặt hàng
4.1.2.7 Hủy một mặt hàng trong chi tiết đơn hàng đã lập đơn
Giải thích:
Khi khách hàng liên hệ cho cửa hàng xóa một mặt hàng nào đó đã lên đơn,
có thể là do khách nhầm lẫn hay bất kì lý do nào đó. Nếu đơn chưa được giao thì
người dùng có thể sử dụng câu lệnh này để xử lý nghiệp vụ nhanh chóng.
Câu lệnh:
Kết quả:
Hình 4.19. Kết quả xóa mặt hàng trong chi tiết đơn theo yêu cầu
Trang 57
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
4.1.2.8 Xóa các mặt hàng trong kho có số lượng tồn <=10, mã chi nhánh do
người dùng nhập
Giải thích:
Khi các mặt hàng trong kho còn dưới 10 sản phẩm, đồng nghĩa với các sản phẩm
trong kho sắp hết hàng. Cần xóa các sản phẩm này trong CSDL để lập báo cáo yêu
cầu nhập thêm các mặt hàng vào các chi nhánh cụ thể.
Câu lệnh:
Kết quả:
Hình 4.21. Kết quả xóa sản phẩm có lượng tồn <=10 có yêu cầu chi nhánh
Trang 58
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
4.1.2.9 Xóa các mặt hàng thuộc bảng chi tiết có đơn hàng được lập trước
2021
Giải thích:
Các mặt hàng thuộc chi tiết đơn đặt hàng của đơn đặt hàng được lập trước
năm 2021, có thể do ngừng sản xuất mặt hàng này nên khi xử lý ràng buộc ta cần
xóa những chi tiết trước năm hiện tại. Để thực hiện nghiệp vụ này, ta có thể sử dụng
câu lệnh sau.
Câu lệnh:
Hình 4.22. Kết quả xóa các mặt hàng thuộc chi tiết đơn được lập trước 2021
4.1.2.10 Xóa các nhân viên đóng hàng thuộc khu vực 1
Giải thích:
Ở chi khu vực này, việc đóng hàng có thể tích hợp với nhân viên kiểm kho nên
công việc đóng hàng ở khu vực này sẽ bị hủy và xóa các nhân viên trong CSDL.
Trang 59
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Câu lệnh:
select manv, honv || ' ' || tennv as "Ho Ten", macv, makv
from nhanvien where macv = 'DH';
Kết quả:
Hình 4.23. Kết quả xóa các nhân viên đóng hàng thuộc khu vực 1
4.2 Index
- Index được tạo tự động cho thuộc tính khi thuộc tính đó được cài đặt ràng
buộc là PRIMARYKEY hoặc UNIQUE.
- Việc tạo Index trên các thuộc tính khác nhằm tăng tốc độ truy xuất.
Câu lệnh:
Kết quả:
Trang 60
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.24. Tạo Index trên bảng tồn kho thành công
Câu lệnh:
Kết quả:
Hình 4.25. Tạo Index trên bảng chi tiết đơn hàng thành công
Câu lệnh:
on nhanvien(macv, makv);
Kết quả:
Hình 4.26. Tạo Index trên bảng nhân viên thành công
Truy vấn cơ sở dữ liệu là một dạng bộ lọc sở hữu khả năng thu thập được các
thông tin đến từ nhiều bảng trong cùng một hệ cơ sở dữ liệu. Ngoài việc có thể thu
thập thông tin từ nhiều bảng, truy vấn cơ sở dữ liệu còn có khả năng thực hiện các
tính toán toán học, đếm số lượng, ….
Trang 61
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
4.3.1 Truy vấn thông tin của nhân viên trong cửa hàng và sắp xếp theo
khu vực:
Giải thích:
Hàng tháng, cửa hàng xẽ xuất ra bảng thông tin nhân viên và bảng lương theo
các khu vực của cửa hàng. Để nhân viên có thể theo dõi lương và tiện cập nhật
thông tin của mình nếu có thay đổi.
Câu lệnh:
select kv.makv, manv, honv || ' ' || tennv as "Ho Ten", tencv, ngayvaolam, luong sdt,
email
order by kv.makv;
Kết quả:
Hình 4.27. Thông tin nhân viên được xếp theo khu vực
Giải thích:
Trang 62
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hàng năm, cửa hàng thường có những chương trình khuyến mãi hoặc tri ân
khách hàng của cửa hàng Starbuck. Từ đó, truy vấn để liệt kê thông tin khách hàng
và liên hệ để trao đổi tặng quà hoặc giới thiệu chương trình ưu đãi cho khách hàng.
Câu lệnh:
from khachhang;
Kết quả:
4.3.3 Truy vấn thông tin sản phẩm hạt cafe tại cửa hàng:
Giải thích:
Cửa hàng Starbuckcần liệt kê các thông tin các sản phẩm cà phê đang kinh
doanh trong cửa hàng để thuận lợi trong việc quản lý hàng hóa cũng như tạo thực
đơn tham khảo cho khách hàng.
Câu lệnh:
select macf, tencf, giaban, khoiluong|| 'gram/' ||dvt as "Khoi_luong", ngaysx, hsd,
mota
from dscafe;
Kết quả:
Trang 63
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.29. Liệt kê thông tin sản phẩm cà phê kinh doanh
4.3.4 Truy vấn thông tin các đơn đặt hàng của khách hàng và sắp xếp
chúng theo mã đơn đặt hàng và mã khách hàng:
Giải thích:
Nghiệp vụ truy vấn này, nhằm để liệt kê ra thông tin các đơn đặt hàng tương ứng
với khách hàng đã có đơn tại Starbuck. Từ đó, có thể thống kê số hóa đơn và khách
hàng thân thiết của cửa hàng.
Câu lệnh:
from dondathang
Kết quả:
Trang 64
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.30. Thông tin đơn đặt hàng của khách hàng
4.3.5 Truy vấn thông tin tồn kho của cửa hàng, với chi nhánh được
người dùng nhập vào:
Giải thích:
Truy vấn thông tin tồn kho của các chi nhánh, nhằm để thống kê và năm được số
lượng tồn của các mặt hàng thuộc các chi nhánh cụ thể. Từ đó, nắm được số lượng
phục vụ cho việc xuất nhập kho hàng cho chi nhánh đó, đảm bảo không để kho
thiếu sản phẩm.
Câu lệnh:
Hình 4.31. Liệt kê thông tin tồn kho của mặt hàng ở các chi nhánh
Trang 65
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
4.3.6 Truy vấn các công việc được các nhân viên thực hiện tại cửa hàng:
Giải thích:
Truy vấn thông tin các bộ phận công việc trong cửa hàng, nhằm để liệt kê được
cửa hàng gồm có những bộ phận nào. Từ đó hỗ trợ cho những người có nhu cầu xin
việc, nắm được thông tin và xin việc vào bộ phận mong muốn.
Câu lệnh:
from congviec;
Kết quả:
4.3.7 Truy vấn thông tin của các chi nhánh thuộc Starbuck:
Giải thích:
Truy vấn thông tin các chi nhánh, nhằm để khách hàng biết được cửa hàng có
những chi nhánh nào, cũng thuận tiện trong việc liên hệ để được tư vấn và vận
chuyển hàng gần nhất, thuận tiện nhất.
Câu lệnh:
Kết quả:
Trang 66
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.33. Thông tin các chi nhánh đang hoạt động
4.3.8 Truy vấn thông tin các loại cafe có tại cửa hàng:
Giải thích:
Truy vấn thông tin các loại cà phê trong của hàng, nhằm để cập nhật về những
loại hàng mà cửa hàng đang kinh doanh. Từ đó, xuất ra bảng thông tin để khách
hàng có thể tham khảo và tìm hiểu thêm về các loại sản phẩm đó.
Câu lệnh:
from loaicafe;
Kết quả:
4.3.9 Truy vấn thông tin các thương hiệu cafe mà cửa hàng kinh doanh:
Giải thích:
Truy vấn thông tin các thương hiệu mà của hàng trong kinh doanh, nhằm để
quản lý các thương hiệu và dễ hàng trong việc tư vấn khách hàng về các thương
hiệu hiện có để phục vụ cho khách.
Câu lệnh:
Trang 67
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
from thuonghieu;
Kết quả:
Hình 4.35. Thông tin một số thương hiệu đang kinh doanh
Giải thích:
Cho biết thông tin tồn kho của tất cả các chi nhánh, từ đó lập thống kê doanh thu
tại các chi nhánh và phân bổ hàng hóa hợp lý.
Câu lệnh
from tonkho;
Kết quả
Trang 68
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.36. Thông tin tồn kho của tất cả chi nhánh
4.3.11 Truy vấn thông tin chi tiết các đơn đặt hàng:
Giải thích:
Liệt kê các chi tiết đơn đặt hàng để báo cáo và thống kê các mặt hàng nào được
bán ra nhiều nhất và mặt hàng nào bán được ít nhất hoặc không được khách hàng ưa
chuộng. Từ đó, điều chỉnh xuất nhập kho và lên kế hoạch trong việc bán hàng.
Câu lệnh:
from ctdonhang;
Kết quả:
Trang 69
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.37. Thông tin các chi tiết đơn đặt hàng
4.3.12 Truy vấn liệt kê tên và giá bán của các sản phẩm có giá từ 100.000
VNĐ đến 1.000.000 VNĐ:
Giải thích:
Truy vấn nghiệp vụ này, cho biết các mặt hàng có giá bán trung bình. Phù hợp
trong việc quản lý giá bán các mặt hàng, và làm nền tảng cho việc điều chỉnh giá
bán cho phù hợp (tăng hoặc giảm) theo chất lượng sản phẩm và nhu cầu mua hàng
của khách hàng
Câu lệnh:
from dscafe
order by giaban;
Trang 70
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Kết quả:
Hình 4.38. Thông tin các mặt hàng có giá bán 100000VND – 1000000VND
4.3.13 Truy vấn danh sách gồm: Mã cafe, tên cafe, có trong ít hơn 5 đơn
đặt hàng:
Giải thích:
Nghiệp vụ này, nhằm truy vấn thông tin các mặt hàng tại Starbuckít được ưa
chuộng, chỉ có dưới 5 đơn hàng chứa các mặt hàng đó. Nhằm để điều chỉnh xuất
nhập kho cũng như quản lý bán hàng về các sản phẩm đó.
Câu lệnh:
from dscafe
Trang 71
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Kết quả:
Hình 4.39. Liệt kê thông tin các mặt hàng có trong dưới 5 đơn hàng
4.3.14 Truy vấn: Mã cafe, tên cafe, giá bán của các sản phẩm thuộc
thương hiệu “Trung Nguyen”, “Lion Cafe” và có mức giá dưới 100.000
VNĐ:
Giải thích:
Truy vấn một số thông tin liên quan đến các thương hiệu (cụ thể là Trung
Nguyên và Lion Coffee), có giá cà phê thuộc mức thấp trong cửa hàng. Từ đó có
thể điều chỉnh giá cho phù hợp với giá cả thị trường ở các thời điểm.
Câu lệnh:
Trang 72
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Kết quả:
Hình 4.40. Thông tin về các sản phẩm thuộc TN và LC có giá dưới 100000VND
4.3.15 Truy vấn cho biết danh sách sản phẩm với giá sản phẩm được giảm
15% với các thông tin: Mã cafe, tên cafe, giá bán và giá sau giảm:
Giải thích:
Nghiệp vụ này nhằm truy vấn thông tin các sản phẩm có giá bán trong đợt sale
lớn “Black Friday”, được giảm giá 15% cho tất cả các sản phẩm đang được kinh
doanh cho cửa hàng, nhằm để thanh lý các mặt hàng còn tồn lại trong cửa hàng và
nhập các sản phẩm mới. và thấy được sự chênh lệch giá trước và sau khi giảm giá.
Câu lệnh:
from dscafe;
Trang 73
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Kết quả:
Hình 4.41. Liệt kê thông tin trước và sau khi giảm 15% các mặt hàng
4.3.16 Truy vấn cho biết số lượng sản phẩm của mỗi loại cafe đang kinh
doanh tại cửa hàng:
Giải thích:
Nghiệp vụ này cho biết số lượng các mặt hàng thuộc các loại cà phê phác nhau
trong cửa hàng, để dễ danhg kiểm soát được hàng hóa và thông tin hàng hóa.
Câu lệnh:
order by dscafe.maloaicf;
Kết quả:
Trang 74
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.42. Số lượng mặt hàng của từng loại cà phê đang kinh doanh
4.3.17 Truy vấn cho biết tổng số đơn đặt hàng trong năm hiện hành:
Giải thích:
Nghiệp vụ ngày giúp thống kê số lượng đơn đặt hàng trong năm hiện tại, từ đó
lập báo cáo doanh thu theo từng năm.
Câu lệnh:
from dondathang
Kết quả:
Hình 4.43. Số lượng đơn đặt hàng trong năm hiện tại
4.3.18 Truy vấn các nhân viên tư vấn của cửa hàng:
Giải thích:
Truy vấn các thông tin nhân viên tư vấn của cửa hàng, để từ đó biết được số
lượng nhân viên ở bộ phận này. Phục vụ cho việc tuyển dụng thêm nếu thiếu nhân
lực. hoặc liên hệ khi có sự cố.
Câu lệnh:
select manv, honv || ' ' || tennv as "Ho Ten", ngayvaolam, luong, sdt
Trang 75
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
from nhanvien
Kết quả:
Hình 4.44. Thông tin các nhân viên làm việc ở bộ phận tư vấn
4.3.19 Truy vấn số lượng nhân viên của mỗi công việc tại cửa hàng:
Giải thích:
Nghiệp vụ này, nhằm để quản lý được số lượng nhân viên ở từng bộ phận công
việc, hỗ trọ trong việc xem xét nên tuyển thêm nhân viên cho từng bộ phận công
việc cho phù hợp.
Câu lệnh:
Kết quả:
Trang 76
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.45. Liệt kê số lượng nhân viên ở từng bộ phận công việc
4.3.20 Truy vấn thông tin các đơn đặt hàng của nhân viên phụ trách do
người dùng nhập vào:
Giải thích:
Nghiệp vụ cho biết số đơn đặt hàng do các nhân viên phụ trách là bao nhiêu, từ
đó thưởng hoa hồng khích lệ cho nhân viên theo tháng, quý, năm. Hoặc để giải
quyết khi có sự cố đơn hàng.
Câu lệnh:
from dondathang dh
Hình 4.46. Liệt kê các đơn hàng với nhân viên phụ trách được người dùng nhập
4.3.21 Truy vấn thông tin các hạt cafe được sản xuất sau tháng 9 năm
2021:
Giải thích:
Trang 77
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Truy vấn này, giúp quản lý biết các mặt hàng được nhập trong khoảng thời gian
nào (cụ thể 9/2021), để kiểm soát về hạn dùng cũng như quản lý xuất nhập kho tại
Starbuckcó thông tin chính xác.
Câu lệnh:
select macf, tencf, giaban, khoiluong|| 'gram/' ||dvt as "Khoi_luong", ngaysx, hsd,
mota
from dscafe
Kết quả:
Hình 4.47. Thông tin các sản phẩm có ngày sản xuất sau 9/2021
4.3.22 Truy vấn thông tin các nhân viên bắt đầu làm việc từ năm 2020:
Giải thích:
Tại Starbuck, mỗi năm sẽ cập nhật tiền hoa hồng (tiền thưởng) cho nhân viên,
nghiệp vụ này giúp truy vấn các nhân viên làm việc từ năm nào (cụ thể 2020) để
thuận tiện trong việc cập nhật và thực hiện tăng hoa hồng cho nhân viên theo các
năm.
Câu lệnh:
select manv, honv || ' ' || tennv as "Ho Ten", ngayvaolam, luong, sdt, email, macv,
makv
Trang 78
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
from nhanvien
Kết quả:
Hình 4.48. Thông tin các nhân viên vào làm việc từ năm 2020
4.3.23 Truy vấn thông tin nhân viên có thời gian làm việc tại cửa hàng từ
3 năm trở lên:
Giải thích:
Truy vấn thông tin các nhân viên làm việc từ 3 năm trở lên trong cửa hàng để
thuận tiện cho việc quản lý và cân nhắc tăng mức lương cho từng nhân viên.
Câu lệnh:
select manv, honv || ' ' || tennv as "Ho Ten", round((sysdate - ngayvaolam)/365) as
So_nam_lam_viec, luong, sdt, email, macv, makv
from nhanvien
Kết quả:
Trang 79
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.49. Danh sách các nhân viên đã làm việc từ 3 năm trở lên
4.3.24 Truy vấn thông tin nhân viên có lương ít hơn 4000000:
Giải thích
Truy vấn thông tin các nhân viên có lương dưới 4000000VND, từ đó đưa vào
danh sách đề xuất tăng lương cho các nhân viên thuộc các bộ phận trong cửa hàng.
Câu lệnh:
select manv, honv || ' ' || tennv as "Ho Ten", ngayvaolam, luong, sdt, email, macv,
makv
Kết quả:
Trang 80
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.50. Danh sách các nhân viên có lương dưới 4000000VND
4.4 Sequence:
- Là một số tự tăng tương tự như Autonumber trong Access hay Identity trong
SQLServer
- Thường được dùng cho khóa chính
- Tăng hiệu quả thực thi câu lệnh
Câu lệnh:
increment by 1
minvalue 0
maxvalue 999999
cycle
nocache;
Tạo sequence:
Hình 4.51. Tạo Sequence đánh số mã đơn đặt hàng tự động thành công
Trang 81
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Câu lệnh:
increment by 1
minvalue 16
maxvalue 9999
nocycle
nocache;
Tạo sequence:
Hình 4.52. Tạo Sequence đánh số mã khách hàng tự động thành công
Câu lệnh:
increment by 1
minvalue 51
maxvalue 9999
nocycle
nocache;
Đã tạo sequence:
Trang 82
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
4.5 View:
Khung nhìn (view) được xem như bảng ảo. Ngoài việc cho người dùng viết lại
các ứng dụng dễ dàng hơn vì cho phép định nghĩa lại CSDL theo cách nhìn của
người viết ứng dụng và tăng cường tính độc lập của dữ liệu, còn phục vụ như một
công cụ bảo vệ thuận lợi trong nhiều trường hợp.
4.5.1 View xem bảng giá các hạt cafe được bán tại cửa hàng:
Ứng dụng:
View v_banggia sẽ được dùng để truy xuất giá bán của các hạt cafe, ta có thể
dùng view này để thực hiện tính thành tiền của chi tiết đơn đặt hàng, lấy thông tin
tạo menu,….
Câu lệnh:
as
Kiểm thử:
Kết quả:
Trang 83
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.54. Kết quả kiểm thử View thông tin các sản phẩm đang kinh doanh
Ứng dụng:
View v_thongtin_nhanvien cho phép người dùng truy xuất các thông tin đơn
giản hơn và hạn chế sự xuất hiện của các mã để người quản lý có thể dễ dàng nắm
bắt thông tin hơn.
Câu lệnh:
as
Kiểm thử:
Kết quả:
Trang 84
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.55. Kết quả kiểm thử View thông tin các nhân viên các bộ phận
4.5.3 View xem số nhân viên của mỗi công việc tại cửa hàng:
Ứng dụng:
View v_sonv_1congviec, cho phép người dùng truy xuất số lượng nhân viên của
từng bộ phận làm việc trong cửa hàng, để bộ phận quản lý dễ dàng đưa ra quyết
định tuyển dụng nhân viên cho các bộ phận đó.
Câu lệnh:
as
Trang 85
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Kiểm thử:
Kết quả:
Hình 4.56. Kết quả kiểm thử View số lượng nhân viên từng bộ phận
4.5.4 View xem các đơn hàng được lập trong năm hiện hành và sắp xếp
chúng theo mã đơn đặt hàng tăng dần:
Ứng dụng:
Câu lệnh:
as
Trang 86
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
order by maddh;
Kiểm thử:
Kết quả:
Hình 4.57. Kết quả kiểm thử View các đơn đặt hàng lập trong năm hiện tại
Ứng dụng:
View v_thanhtien_ctdonhang, cho biết tổng số tiền của đơn hàng mà khách hàng
phải trả, để việc thanh toán của khách hàng trở nên nhanh chóng và chính xác.
Câu lệnh:
as
group by maddh
order by maddh;
Kiểm thử:
Trang 87
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Kết quả:
Hình 4.58. Kết quả kiểm thử View thành tiền của các đơn đặt hàng
4.5.6 View xem danh sách số lượng cafe còn tồn kho tại các chi nhánh:
Ứng dụng:
View v_thongtin_tonkho, cho biết số lượng tồn kho tại các chi nhánh thuộc
Starbuck, từ đó điều chỉnh số lượng xuất – nhập kho cho phù hợp.
Câu lệnh:
as
Trang 88
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
order by macn;
Kiểm thử:
Kết quả:
Hình 4.59. Kết quả kiểm thử View số lượng tồn kho tại các chi nhánh
4.5.7 View xem danh sách nhân viên chưa phụ trách đơn đặt hàng nào:
Ứng dụng:
View v_ds_nv_phutrach0donhang, cho phép người dùng truy xuất danh sách các
nhân viên thuộc bộ phận tư vấn nhưng chưa lập được đơn hàng nào. Từ đó đưa ra
chế độ lương và khen thưởng phù hợp.
Câu lệnh:
as
select manv, honv, tennv, ngayvaolam, luong, sdt, email, mahh, macv, makv
from nhanvien
where manv not in (select distinct manv from dondathang) and macv = 'TV';
Trang 89
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Kiểm thử:
Kết quả:
Hình 4.60. Kết quả kiểm thử View nhân viên chưa lập đơn hàng nào
4.6 Function:
Function giống như thủ tục nhưng có giá trị trả về khi thực thi hàm còn thủ tục
không có giá trị trả về.
4.6.1 Function cho biết tên sản phẩm với mã cafe là tham số truyền vào:
Ứng dụng:
Function f_name_caphe, truyền vào mã cà phê từ đó cho biết chính xác tên sản
phẩm mà ngừoi dùng muốn tìm.
Câu lệnh:
return VARCHAR2 is
var_tencf VARCHAR2(100);
Begin
from dscafe
return (var_tencf);
EXCEPTION
Trang 90
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
End;
Kiểm thử:
set serveroutput on
BEGIN
end;
4.6.2 Function lấy giá trị trung bình giá bán của các sản phẩm với mã
loại (maloaicf) là tham số truyền vào:
Ứng dụng:
Câu lệnh:
Trang 91
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
return dscafe.giaban%TYPE is
var_avg_gia dscafe.giaban%TYPE;
Begin
from dscafe
return (var_avg_gia);
EXCEPTION
End;
Kiểm thử:
Begin
GiabanTB := f_avg_giaban_loaicf('&ma_loai');
dbms_output.put_line('Gia ban trung binh cua loai ca phe nay la: '|| GiabanTB);
End;
Trang 92
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
4.6.3 Function có tham số truyền vào là mã cafe (macf) và cho biết thời
gian tồn tại của sản phẩm đó kể từ ngày sản xuất:
Ứng dụng:
Function f_time_sanxuat, với tham số truyền vào là mã sản phẩm cà phê để trả
về thời gian mà từ thời điểm sản xuất đến hiện tại. Để người dùng có thể quản lý
được hạn sử dụng của sản phẩm tiện lợi.
Câu lệnh:
return number is
var_tgiansx number;
Begin
from dscafe
return var_tgiansx;
EXCEPTION
End;
Kiểm thử:
set serveroutput on
Begin
Trang 93
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
time := f_time_sanxuat('&macf');
End;
4.6.4 Function tính tổng số lượng tồn kho tại tất cả chi nhánh của một
sản phẩm do người dùng nhập vào:
Ứng dụng:
Function f_sum_slton_mac, người dùng nhập vào mã cà phê để kiểm tra tổng số
lượng tồn ở tất cả các chi nhánh của mặt hàng đó. Để đưa ra quyết định xuất nhập
và thanh lý phù hợp.
Câu lệnh:
return number is
var_sum_slton number;
Begin
return var_sum_slton;
EXCEPTION
Trang 94
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
End;
Kiểm thử:
set serveroutput on
Begin
sltonkho := f_sum_slton_macf('&macf');
dbms_output.put_line('Tong so luong ton kho cua san pham nay la: '||sltonkho);
End;
4.6.5 Function tìm mặt hàng có số lượng tồn nhỏ nhất của các chi
nhánh, tham số truyền vào là mã chi nhánh (macn):
Ứng dụng:
Function f_cafe_min_slton, cho phép người dùng nhập vào mã chi nhánh, hàm
sẽ trả về số lượng tồn nhỏ nhất của chi nhánh đó là bao nhiêu. Phù hợp với nghiệp
vụ kiểm soát số lượng sản phẩm.
Câu lệnh:
return VARCHAR2 is
Trang 95
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
var_cafe VARCHAR2(100);
Begin
return var_cafe;
EXCEPTION
End;
Kiểm thử:
set serveroutput on
Begin
luongtoncf := f_cafe_min_slton('&macn');
dbms_output.put_line('Luong ton nho nhat cua chi nhanh nay la: ' || luongtoncf);
End;
Trang 96
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
4.6.6 Function tính lương của một nhân viên được người dùng nhập vào
mã nhân viên (manv):
Ứng dụng:
Function f_luong_nhanvien, cho phép ngừoi dùng nhập vào mã nhân viên, từ đó
hàm sẽ trả về lương của nhân viên nhanh chóng và chính xác.
Câu lệnh:
return number is
var_luong nhanvien.luong%type;
Begin
return var_luong;
End;
Kiểm thử:
set serveroutput on
declare
var_luong number(11);
var_manv nhanvien.manv%type;
Begin
var_manv := '&ma_nhan_vien';
var_luong := f_luong_nhanvien(var_manv);
Trang 97
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
dbms_output.put_line('Luong cua nhan vien ' || var_manv || ' la: ' || var_luong || '
VND');
End;
4.6.7 Function tính tổng lương của tất cả nhân viên của cửa hàng:
Ứng dụng:
Function f_tong_luong, cho phép người dùng truy xuất ra tổng số tiền mà cửa
hàng phải trả cho tất cả nhân viên trong một tháng kể cả hoa hồng. Từ đó nhân viên
kế toán lập báo cáo để quản lý thống kê và trả tiền lương cho nhân viên chính xác.
Câu lệnh:
return number is
var_tongluong nhanvien.luong%type;
Begin
return var_tongluong;
End;
Kiểm thử:
set serveroutput on
Trang 98
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Begin
var_tong := f_tong_luong;
dbms_output.put_line('Tong luong cua nhan vien la: ' || var_tong || ' VND');
End;
Kết quả:
4.6.8 Function tính thành tiền của đơn hàng được người dùng nhập vào
mã đơn đặt hàng (maddh):
Ứng dụng:
Function f_thanhtien_ddh, cho phép người dùng nhập vào mã đơn đặt hàng từ
đó hàm sẽ trả về tổng tiền mà đơn hàng đó phải thanh toán, giúp nghiệp vụ trở nên
dễ dàng và nhanh chóng.
Câu lệnh:
return number is
var_thanhtien number(11);
begin
from v_thanhtien_ctdonhang
Trang 99
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
return var_thanhtien;
end;
Kiểm thử:
set serveroutput on
declare
var_tt number(11);
var_maddh dondathang.maddh%type;
Begin
var_maddh := '&ma_don';
var_tt := f_thanhtien_ddh(var_maddh);
dbms_output.put_line('Thanh tien cua don hang ' || var_maddh || ' la: ' || var_tt || '
VND');
End;
Khi thực thi một câu lệnh PL/SQL, Oracle phải kiểm tra xem user gửi câu lệnh
đó có được phép thực hiện câu lệnh hay không đồng thời kiểm tra cú pháp, lập kế
hoạch thực thi và thực thi. Nếu procedure được gọi nhiều lần thì kế hoạch thực thi
có thể được sử dụng lại nên tốc độ thực thi sẽ nhanh hơn.
Trang 100
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
4.7.1 Procedure cập nhật lương của các nhân viên của một công việc:
Ứng dụng:
Câu lệnh:
var_luong in nhanvien.luong%type)
is
begin
end;
Kiểm thử:
select manv, macv, luong as truoc from nhanvien where macv = 'DH';
select manv, macv, luong as sau from nhanvien where macv = 'DH';
Kết quả:
Trang 101
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
4.7.2 Procedure tăng giá bán tất cả sản phẩm thêm một tỉ lệ phần trăm
nào đó:
Ứng dụng:
Procedure proc_tang_giaban, cho phép người dùng nhập vào một tỉ lệ % cụ thể,
thủ tục sẽ được thực thi và tăng lên với tỷ lệ đó.
Câu lệnh:
Trang 102
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
is
begin
end;
Kiểm thử:
exec proc_tang_giaban(5);
Kết quả:
Hình 4.71. Bảng giá bán các mặt hàng trước khi thực thi proc_tang_giaban
Trang 103
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.72. Bảng giá bán các mặt hàng sau khi thực thi proc_tang_giaban
4.7.3 Procedure giảm giá bán tất cả sản phẩm đi một tỉ lệ phần trăm nào
đó:
Ứng dụng:
Procedure proc_giam_giaban, cho phép người dùng nhập vào một tỉ lệ %. Khi
thực thi thủ tục, giá bán sẽ được giảm theo tỷ lệ tương ứng. Phù hợp với nghiệp vụ
giảm giá vào các chương trình khuyến mãi.
Câu lệnh:
is
begin
end;
Kiểm thử:
Trang 104
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
exec proc_giam_giaban(5);
Kết quả:
Hình 4.73. Bảng giá bán các mặt hàng trước khi thực thi proc_giam_giaban
Hình 4.74. Bảng giá bán các mặt hàng sau khi thực thi proc_giam_giaban
Trang 105
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
4.7.4 Procedure làm tròn giá bán của các sản phẩm mà cửa hàng kinh
doanh:
Ứng dụng:
Procedure proc_lamtron_giaban, khi thực thi thủ tục thì giá bán của một số sản
phẩm sẽ được làm tròn lên, dễ dàng và thuận tiện trong việc tính thành tiền và thanh
toán cho cả cửa hàng và khách hàng nhà Starbuck.
Câu lệnh:
is
cursor cur_tt_giaban is
from dscafe;
rec_tt_giaban cur_tt_giaban%rowtype;
var_du int;
begin
open cur_tt_giaban;
loop
var_du := to_number(substr(mod(rec_tt_giaban.giaban,1000),1,1));
else
Trang 106
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
end if;
end loop;
close cur_tt_giaban;
end;
Kiểm thử:
exec proc_tang_giaban(5);
exec proc_lamtron_giaban;
Kết quả:
Hình 4.75. Giá bán của các sản phẩm trước khi thực thi proc_lamtron_giaban
Trang 107
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.76. Giá bán của các sản phẩm sau khi thực thi proc_lamtron_giaban
Ứng dụng:
Procedure proc_capnhat_mahh, cho phép người quản lý cập nhật hoa hồng của
các nhân viên theo từng năm nhưng chỉ cần thực thi thủ tục, giúp tiết kiệm thời gian
và đạt hiệu quả làm việc.
Câu lệnh:
is
cursor cur_mahh is
from nhanvien;
rec_mahh cur_mahh%rowtype;
var_mahh nhanvien.mahh%type;
Trang 108
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
begin
open cur_mahh;
loop
else
end if;
end loop;
close cur_mahh;
end;
Kiểm thử:
exec proc_capnhat_mahh;
Kết quả:
Trang 109
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.77. Mã hoa hồng của các nhân viên trước thực thi proc_capnhat_mahh
Hình 4.78. Mã hoa hồng của các nhân viên sau thực thi proc_capnhat_mahh
4.7.6 Procedure cập nhật nhân viên phụ trách đơn hàng khi quyết định
thôi việc một nhân viên nào đó:
Ứng dụng:
Trang 110
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Câu lệnh:
is
v_dem int;
begin
end if;
end;
Kiểm thử:
insert into nhanvien (manv, honv, tennv, ngayvaolam, luong, sdt, email, macv,
makv) values ('QL10', 'Nguyen Khanh', 'Huyen', TO_DATE('2020-09-02', 'YYYY-
MM-DD'), 7000000, '0932478719', 'khanhhuyen1105@gmailcom', 'QL', 4);
insert into nhanvien (manv, honv, tennv, ngayvaolam, luong, sdt, email, macv,
makv) values ('QL11', 'Nguyen Khanh', 'Huyen', TO_DATE('2020-09-02', 'YYYY-
MM-DD'), 7000000, '0932478719', 'khanhhuyen1105@gmailcom', 'QL', 4);
insert into dondathang (maddh, ngaylap, makh, manv, makv, macn, ten_nguoinhan,
diachi_giao, thoihan_giao, sdt_nguoinhan, ghichu) values ('DDH0000050',
Trang 111
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Kết quả:
Hình 4.81. Giải quyết thôi việc thành công sau khi thực thi thủ tục
Trang 112
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
4.7.7 Procedure xem danh sách cafe còn tồn kho tại chi nhánh (macn)
mà người dùng nhập vào:
Ứng dụng:
Procedure proc_thongtin_tonkho, cho phép ngừoi dùng nhập vào mã chi nhánh
sau khi đã thực thi thủ tục để xem danh sách sản phẩm cà phê còn tồn lại trong kho
tại chi nhánh đó. Từ đó, đưa ra mức xuất – nhập kho phù hợp.
Câu lệnh:
is
cursor cur_tt_tonkho is
from v_thongtin_tonkho
rec_tt_tonkho v_thongtin_tonkho%rowtype;
var_tencn v_thongtin_tonkho.tencn%type;
var_dem int;
begin
from chinhanh
from chinhanh
Trang 113
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
if(var_dem = 0) then
else
open cur_tt_tonkho;
loop
dbms_output.put_line
('---------------------------------------------------------------------------------------------------'
);
end loop;
close cur_tt_tonkho;
end if;
end;
Kiểm thử:
Kết quả:
Trang 114
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.82. Danh sách số lượng tồn kho sau thực thi proc_thongtin_tonkho
4.7.8 Procedure tìm kiếm và xem thông tin của nhân viên có mã (manv)
được nhập vào bởi người dùng:
Ứng dụng:
Procedure proc_timkiem_nhanvien, cho phép người dùng tìm kiếm nhân viên
làm việc tại Starbuckvà xuất ra thông tin nhân viên đó. Chỉ cần thực thi thủ tục và
nhập mã nhân viên cần tìm kiếm thì thông tin nhân viên sẽ được xuất ra nhanh
chóng.
Câu lệnh:
is
cursor cur_tt_nhanvien is
select manv, honv, tennv, tencv, ngayvaolam, luong, hoahong, sdt, email,
tenkv
Trang 115
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
rec_tt_nhanvien cur_tt_nhanvien%rowtype;
begin
open cur_tt_nhanvien;
loop
dbms_output.put_line ('--------------------------------------------');
end loop;
close cur_tt_nhanvien;
end;
Kiểm thử:
Trang 116
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
exec proc_timkiem_nhanvien('TV0004');
Kết quả:
Hình 4.83. Thông tin nhân viên sau thực thi proc_timkiem_nhanvien
4.7.9 Procedure cho phép xem danh sách cafe được bán từ chạy nhất đến
ít người mua nhất:
Ứng dụng:
Procedure proc_danhsach_banhang, cho phép người dùng thực thi thủ tục và
xem được các mặt hàng cà phê đã có trong các đơn đặt hàng. Danh sách sẽ được liệt
kê từ mặt hàng được mua nhiều nhất đến ít nhất.
Câu lệnh:
is
cursor cur_ds_banhang is
rec_ds_banhang cur_ds_banhang%rowtype;
Trang 117
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
var_sodem int;
begin
var_sodem := 1;
open cur_ds_banhang;
loop
dbms_output.put_line ('--------------------------------------------------');
var_sodem := var_sodem + 1;
end loop;
close cur_ds_banhang;
end;
Kiểm thử:
exec proc_danhsach_banhang;
Kết quả:
Trang 118
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.84. Các mặt hàng đã có đơn sau thực thi proc_danhsach_banhang
4.7.10 Procedure nhập vào mã nhân viên (manv) và trả về các đơn đặt
hàng do nhân viên đó phụ trách:
Ứng dụng:
Câu lệnh:
is
cursor cur_ddh is
Trang 119
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
order by maddh;
rec_ds_ddh cur_ddh%rowtype;
var_sodem int;
begin
var_sodem := 1;
open cur_ddh;
loop
dbms_output.put_line ('--------------------------------------------------');
Trang 120
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
dbms_output.put_line ('');
var_sodem := var_sodem + 1;
end loop;
close cur_ddh;
end;
Kiểm thử:
exec proc_thongtin_ddh_cuanvphutrach('TV0004');
Kết quả:
Ứng dụng:
Trang 121
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Procedure proc_them_ddh, thủ tục này được sử dụng khi khác hàng mua các sản
phẩm từ Starbuck, người dùng (nhân viên) chỉ cần lên đơn thì mã đơn hàng tự động
đánh số, nhân viên không cần phải kiểm tra một cách máy móc.
Câu lệnh:
var_manv in dondathang.manv%type,
var_makv in dondathang.makv%type,
var_macn in dondathang.macn%type,
var_ten_nguoinhan in dondathang.ten_nguoinhan%type,
var_diachi_giao in dondathang.diachi_giao%type,
var_thoihan_giao in dondathang.thoihan_giao%type,
var_sdt_nguoinhan in dondathang.sdt_nguoinhan%type,
var_ghichu in dondathang.ghichu%type)
is
var_maddh dondathang.maddh%type;
var_sq number(6);
begin
var_sq := sq_maddh.nextval;
Trang 122
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
end;
Kiểm thử:
Kết quả:
Hình 4.86. Mã đơn đặt hàng thêm mới tự động sau thực thi proc_them_ddh
Ứng dụng:
Procedure proc_them_kh, thủ tục này hoạt động khi thêm khách hàng mới thì sẽ
tự động đánh mã số mới không trùng với bất kì khách hàng đã có trong danh sách.
Thuận tiện cho khách hàng tự đăng ký hoặc hạn chế mất thời gian khi nhân viên
phải kiểm tra lại.
Câu lệnh:
var_diachi in khachhang.diachi%type,
var_sdt in khachhang.sdt%type,
var_email in khachhang.email%type)
is
Trang 123
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
var_makh khachhang.makh%type;
var_sq number(4);
begin
var_sq := sq_makh.nextval;
if(length(var_sq) = 1) then
var_makh := to_char('KH000' || var_sq);
elsif (length(var_sq) = 2) then
var_makh := to_char('KH00' || var_sq);
end if;
end;
Kiểm thử:
exec proc_them_kh('Nguyen Quoc Khanh', 'Duong 385, phuong Tang Nhon Phu A,
tp Thu Duc', '0838263820', 'quockhanh29@gmail.com');
Kết quả:
Hình 4.87. Mã khách hàng tự động thêm mới sau thực thi proc_them_kh
Trang 124
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Ứng dụng:
Procedure proc_them_cf, sau khi người dùng thực thi thủ tục này sẽ giúp người
dùng đánh mã số tự động khi thực hiện nghiệp vụ thêm một mặt hàng cà phê mới
vào CSDL.
Câu lệnh:
var_ngaysx in dscafe.ngaysx%type,
var_hsd in dscafe.hsd%type,
var_khoiluong in dscafe.khoiluong%type,
var_dvt in dscafe.dvt%type,
var_giaban in dscafe.giaban%type,
var_mota in dscafe.mota%type,
var_maloaicf in dscafe.maloaicf%type,
var_math in dscafe.math%type)
is
var_macf dscafe.macf%type;
var_sq number(4);
begin
var_sq := sq_macf.nextval;
if(length(var_sq) = 1) then
Trang 125
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
end if;
insert into dscafe (macf, tencf, ngaysx, hsd, khoiluong, dvt, giaban, mota,
maloaicf, math)
end;
Kiểm thử:
Kết quả:
Hình 4.88. Mã mà phê được thêm mới sau khi thực thi proc_them_cf
Ứng dụng:
Procedure proc_capnhat_thanhtien_ddh giúp người dùng cập nhật thành tiền của
các đơn hàng có ngày lập từ một ngày nào đó trở về sau. Procedure này thường
được dùng sau khi thay đổi giá bán một sản phẩm. Khi giá cả thay đổi, thành tiền
của các đơn hàng trước khi sự kiện thay đổi giá cả sẽ không bị ảnh hưởng.
Trang 126
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Câu lệnh
is
cursor cur_ddh is
select maddh
from dondathang
rec_ds_ddh cur_ddh%rowtype;
var_thanhtien dondathang.thanhtien%type;
begin
open cur_ddh;
loop
var_thanhtien := f_thanhtien_ddh(rec_ds_ddh.maddh);
end loop;
close cur_ddh;
end;
Kiểm thử:
Trang 127
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Kết quả:
Hình 4.89. Kết quả thành tiền trước khi thực thi thủ tục
Hình 4.90. Kết quả cập nhật thành tiền sau khi thực thi thủ tục
4.8 Trigger:
Ràng buộc toàn vẹn (trigger) là một khối PL / SQL được lưu trữ trong cơ sở dữ liệu
và được thực thi để đáp ứng với một sự kiện được chỉ định.
Trang 128
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Cơ sở dữ liệu Oracle tự động thực thi một ràng buộc toàn vẹn khi các điều kiện cụ
thể xảy ra.
4.8.1 Trigger kiểm tra thời hạn giao hàng của đơn hàng phải sau ngày
lập đơn:
Ứng dụng:
Khi lập đơn hàng, nếu sai sót trong việc ngày lập đơn sau ngày giao thì sẽ gây
hoang mang cho nhân viên giao và khác hàng. Vậy nên, cần có một ràng buộc toàn
vẹn kiểm tra thời hạn giao hàng của đơn hàng phải sau ngày lập đơn, người dùng sử
dụng trigger tg_ktra_thoihangiao_sau_ngaylapddh để giải quyết nghiệp vụ này.
Câu lệnh:
on dondathang
begin
raise_application_error (-20511, 'Thoi han giao hang phai sau ngay lap don dat
hang');
end if;
end;
Kiểm thử 1:
insert into dondathang (maddh, ngaylap, makh, manv, makv, macn, ten_nguoinhan,
diachi_giao, thoihan_giao, sdt_nguoinhan, ghichu) values ('DDH0000051',
to_date('2021-09-16', 'YYYY-MM-DD'), 'KH0013', 'TV0011', 4, 'CN06', 'Duc
Trang 129
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hanh', '30 Huyen Quang, Dinh Ke, Bac Giang', to_date('2020-09-19', 'YYYY-MM-
DD'), '0487364764' , NULL);
Hình 4.91. Kết quả kiểm thử ngày giao hàng trước ngày lập đơn
Kiểm thử 2:
insert into dondathang (maddh, ngaylap, makh, manv, makv, macn, ten_nguoinhan,
diachi_giao, thoihan_giao, sdt_nguoinhan, ghichu) values ('DDH0000051',
to_date('2021-09-16', 'YYYY-MM-DD'), 'KH0013', 'TV0011', 4, 'CN06', 'Duc
Hanh', '30 Huyen Quang, Dinh Ke, Bac Giang', to_date('2021-09-19', 'YYYY-MM-
DD'), '0487364764' , NULL);
select maddh, ngaylap, makh, manv, makv, thoihan_giao from dondathang where
maddh = 'DDH0000051';
Hình 4.92. Kết quả kiểm thử ngày giao hàng sau ngày lập đơn
4.8.2 Trigger kiểm tra ngày vào làm phải nhỏ hơn hoặc bằng ngày hiện
hành:
Ứng dụng:
Cần tạo một ràng buộc toàn vẹn để kiểm tra ngày nhân viên vào làm phải nhỏ
hơn hoặc bằng ngày hiện tại và khi nhập ngày vào làm lớn hơn thì ngay lập tức sẽ
xuất ra lỗi. Để người dùng có thể dễ dàng hơn trong việc kiểm tra lỗi trong trường
hợp có nhầm lẫn xảy ra cần thực thi trigger tg_ktra_ngayvaolam.
Trang 130
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Câu lệnh:
on nhanvien
begin
raise_application_error (-20513, 'Ngay vao lam phai nho hon hoac bang ngay
hien tai');
end if;
end;
Kiểm thử 1:
insert into nhanvien (manv, honv, tennv, ngayvaolam, luong, sdt, email, macv,
makv) values ('QL10', 'Nguyen Hoàng Mai', 'Anh', TO_DATE('2022-09-02',
'YYYY-MM-DD'), 7000000, '0932478719', 'khanhhuyen1105@gmailcom', 'QL',
4);
Hình 4.93. Kết quả kiểm thử ngày vào làm của nhân viên sau ngày hiện tại
Kiểm thử 2:
insert into nhanvien (manv, honv, tennv, ngayvaolam, luong, sdt, email, macv,
makv) values ('QL10', 'Nguyen Hoàng Mai', 'Anh', TO_DATE('2020-09-02',
Trang 131
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
select manv, honv || ' ' || tennv as "Ho Ten", ngayvaolam, luong, sdt, macv from
nhanvien;
Hình 4.94. Kết quả kiểm thử ngày vào làm của nhân viên trước ngày hiện tại
4.8.3 Trigger khi xóa một loại cafe thì các sản phẩm thuộc loại đó sẽ
được cập nhật mã loại là “L00”:
Ứng dụng:
Khi ngừng sản xuất một loại cà phê nào đó, ta không thể nào bỏ hết tất cả sản
phẩm hiện có của loại cafe đó. Thế nên các sản phẩm thuộc loại cà phê đã bị xóa sẽ
được cập nhật thành một loại khác có mã loại cà phê là “L00” để tiếp tục bán cho
đến khi mặt hàng không còn trong kho nữa. Trigger
tg_capnhat_xoaloai_capnhatmaloai sẽ xử lý nghiệp vụ đó.
Câu lệnh:
before delete
on loaicafe
for each row
begin
update dscafe set maloaicf = 'L00' where maloaicf = :old.maloaicf;
end;
Kiểm thử:
Hình 4.96. Kết quả xóa loại cà phê sau khi đã thực thi
4.8.4 Trigger khi xóa một thương hiệu cafe thì các sản phẩm thuộc
thương hiệu đó sẽ được cập nhật mã thương hiệu là “00”:
Ứng dụng:
Khi ngừng kinh doanh một thương hiệu cà phê nào đó, ta không thể nào bỏ hết
tất cả sản phẩm hiện có của thương hiệu cafe đó. Thế nên các sản phẩm thuộc
thương hiệu cà phê đã bị xóa sẽ được cập nhật thành một thương hiệu khác có mã
thương hiệu cà phê là “00” để tiếp tục bán cho đến khi mặt hàng không còn trong
kho nữa. Trigger tg_capnhat_xoath_capnhatmath sẽ xử lý nghiệp vụ đó.
Câu lệnh:
before delete
on thuonghieu
begin
end;
Trang 133
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Kiểm thử:
Hình 4.98. Kết quả xóa thương hiệu sau khi đã thực thi
4.8.5 Trigger kiểm tra ngày sản xuất của cafe phải nhỏ hơn hoặc bằng
ngày hiện tại:
Ứng dụng:
Kiểm tra ngày sản xuất mặt hàng phải nhỏ hơn hoặc bằng ngày hiện tại và
khi nhập ngày sản xuất lớn hơn thì ngay lập tức sẽ xuất ra lỗi là một việc cần thiết
đối với người sử dụng hệ thống. Để người dùng có thể dễ dàng hơn trong việc kiểm
tra lỗi trong trường hợp có nhầm lẫn xảy ra, trigger tg_ktra_ngaysx đã được tạo ra.
Câu lệnh:
Trang 134
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
on dscafe
begin
raise_application_error (-20514, 'Ngay san xuat nho hon hoac bang ngay hien
tai');
end if;
end;
Kiểm thử 1:
insert into dscafe (macf, tencf, ngaysx, hsd, khoiluong, dvt, giaban, mota, maloaicf,
math) values ('CF0055', 'Cafe urmet blend - 500gr', TO_DATE('2025-09-02',
'YYYY-MM-DD'), '24 thang ke tu nsx', 500, 'hop', 94100, 'nuoc pha mau nau den
sanh, huong vi dam da, loi cuon, ham luong caffeine: khoang 10%', 'L02', 'TN');
Hình 4.99. Kết quả kiểm thử ngày sản xuất lớn hơn ngày hiện tại
Kiểm thử 2:
insert into dscafe (macf, tencf, ngaysx, hsd, khoiluong, dvt, giaban, mota, maloaicf,
math) values ('CF0055', 'Cafe urmet blend - 500gr', TO_DATE('2019-09-02',
'YYYY-MM-DD'), '24 thang ke tu nsx', 500, 'hop', 94100, 'nuoc pha mau nau den
sanh, huong vi dam da, loi cuon, ham luong caffeine: khoang 10%', 'L02', 'TN');
select macf, tencf, ngaysx, hsd from dscafe where macf = 'CF0055';
Trang 135
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.100. Kết quả kiểm thử ngày sản xuất nhỏ hơn ngày hiện tại
4.8.6 Trigger kiểm tra số lượng hàng được đặt phải nhỏ hơn số lượng tồn
hiện có của chi nhánh phụ trách đơn và cập nhật số lượng tồn khi thêm
một chi tiết đơn đặt hàng mới:
Ứng dụng:
Cần tạo một ràng buộc toàn vẹn, kiểm tra số lượng đặt hàng phải nhỏ hơn số
lượng tồn kho, để khi số lượng tồn không đủ yêu cầu đáp ứng cho số lượng đặt thì
sẽ thông báo lỗi cho người dùng biết, ngược lại, nếu số lượng tồn kho đủ để cung
cấp cho chi tiết đơn hàng đó, kho sẽ tự động cập nhật tồn kho. Trigger
tg_ktra_dat_nhohon_ton_i sẽ giúp người dùng làm được việc này từ kiểm tra số
lượng cho đến cập nhật số lượng tồn kho.
Câu lệnh:
after insert
on ctdonhang
declare
var_tonkho tonkho.slton%type;
var_chinhanh chinhanh.macn%type;
begin
Trang 136
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
select slton into var_tonkho from tonkho where macf = :new.macf and macn =
var_chinhanh;
else
update tonkho set slton = slton - :new.sl where macf = :new.macf and macn =
var_chinhanh;
end if;
end;
Kiểm thử 1:
insert into dondathang (maddh, ngaylap, makh, manv, makv, macn, ten_nguoinhan,
diachi_giao, thoihan_giao, sdt_nguoinhan, ghichu) values ('DDH0000203',
to_date('2021-09-16', 'YYYY-MM-DD'), 'KH0013', 'TV0011', 4, 'CN01', 'Duc
Hanh', '30 Huyen Quang, Dinh Ke, Bac Giang', to_date('2021-09-19', 'YYYY-MM-
DD'), '0487364764' , NULL);
Hình 4.101. Kết quả kiểm thử với số lượng tồn bé hơn số lượng đặt hàng
Kiểm thử 2:
Trang 137
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.102. Kết quả kiểm thử với số lượng tồn lớn hơn số lượng đặt hàng
4.8.7 Trigger kiểm tra số lượng hàng được đặt sau khi chỉnh sửa phải
nhỏ hơn số lượng tồn hiện có của chi nhánh phụ trách đơn và cập nhật số
lượng tồn khi chỉnh sửa một chi tiết đơn hàng:
Ứng dụng:
Cần tạo một ràng buộc toàn vẹn, để kiểm tra số lượng hàng được đặt, sau khi
cập nhật thì số lượng đặt phải nhỏ hơn số lượng tồn kho hiện có của chi nhánh phụ
trách đơn đồng thời cập nhật số lượng tồn khi chỉnh sửa một chi tiết đơn hàng.
Trigger tg_ktra_dat_nhohon_ton_u sẽ giúp người dùng làm được nghiệp vụ này một
các nhánh chóng và ít tốn thời gian.
Câu lệnh:
after update
on ctdonhang
for each row
declare
var_tonkho tonkho.slton%type;
var_chinhanh chinhanh.macn%type;
begin
select slton into var_tonkho from tonkho where macf = :new.macf and macn =
var_chinhanh;
Trang 138
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
else
update tonkho set slton = slton - (:new.sl - :old.sl) where macf = :new.macf
and macn = var_chinhanh;
end if;
end;
Kiểm thử:
update ctdonhang set sl = 100 where maddh = 'DDH0000203' and macf = 'CF0001';
update ctdonhang set sl = 200 where maddh = 'DDH0000203' and macf = 'CF0002';
Kết quả:
Hình 4.103. Kết quả truy vấn trước khi cập nhật chi tiết đơn hàng
Hình 4.104. Kết quả sau khi thực thi trigger và cập nhật chi tiết đơn hàng
Trang 139
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
4.8.8 Trigger khi hủy đơn đặt hàng thì hủy cả các chi tiết của đơn hàng
đó và cập nhật lại số lượng tồn của sản phẩm:
Ứng dụng:
Khi hủy đơn đặt hàng thì người dùng phải hủy cả các chi tiết của đơn hàng
đó trước và cập nhật lại số lượng tồn của sản phẩm, việc đó mất khá nhiều thời gian
cũng như thao tác của người dùng. Trigger tg_huy_ct_khihuydon được tạo ra là một
giải pháp để giải quyết vấn đề này một cách nhanh chóng không cần phải thực hiện
các thao tác tính toán thủ công rườm rà. Vì vậy, trigger tg_huy_ct_khihuydon được
tạo ra để người dụng dễ sử dụng và tiết kiệm thời gian hơn, nâng cao hiệu suất làm
việc.
Câu lệnh:
before delete
on dondathang
declare
cursor cur_huy_don is
select macf, sl
from ctdonhang
rec_huy_don cur_huy_don%rowtype;
var_tinhtrang dondathang.tinhtrang%type;
begin
Trang 140
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
from dondathang
open cur_huy_don;
loop
end if;
end loop;
close cur_huy_don;
end;
Kiểm thử:
Kết quả:
Hình 4.105. Kết quả truy vấn trước khi xóa đơn hàng
Trang 141
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Hình 4.106. Kết quả đã thực thi trigger và xóa đơn đặt hàng
4.8.9 Trigger khi xóa một khách hàng ra khỏi hệ thống thì các đơn đặt
hàng của khách hàng đó cũng sẽ được xóa:
Ứng dụng:
Tương tự với khi xóa đơn hàng, không những thế, xóa khách hàng còn cần
nhiều thao tác hơn rất nhiều. Người dùng phải xóa tất cả chi tiết đơn hàng của các
đơn hàng của khách hàng đó, sau đó xóa toàn bộ đơn hàng của khách hàng, cuối
cùng mới có thể xóa được khách hàng. Trigger tg_huy_don_khihuykhachhang được
tạo ra để giải quyết vấn đề này và Trigger này cần sự giúp đỡ của Trigger
tg_huy_ct_khihuydon (mục 4.8.8) để có thể hoạt động.
Câu lệnh:
before delete
on khachhang
declare
begin
end;
Kiểm thử:
Trang 142
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Kết quả:
Hình 4.107. Kết quả truy vấn trước khi xóa khách hàng
Hình 4.108. Kết quả sau khi thực thi trigger và xóa khách hàng
Trang 143
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
- Tìm hiểu về đối tượng nghiên cứu của đề tài: cửa hàng cafe Starbuck
- Tìm hiểu và sử dụng hệ quản trị cơ sở dữ liệu khi ứng dụng vào các nghiệp
vụ thực tế về quản lý bán hàng tại cửa hàng cafe Starbuck.
- Tạo được bộ cơ sở dữ liệu quản lý bán hàng trên nền tảng công cụ Oracle Sql
Developer.
- Thực hiện được các câu truy vấn nhiều hơn mục tiêu ban đầu đặt ra như:
Update, delete, index, select, sequence, function, view, stored procedure,
trigger,…
- Áp dụng được các truy vấn về một số nghiệp vụ liên quan về khách hàng,
đơn đặt hàng, mặt hàng cà phê, thương hiệu, loại cà phê, giá bán và thành
tiền cho đơn hàng, chi tiết đơn hàng.
- Ngoài ra còn mở rộng một số nghiệp vụ liên quan đến nhân viên, tiền lương
và hoa hồng (tiền thưởng) của nhân viên.
- Do thời gian hoàn thành đề tài đồ án ngắn, một số dữ liệu để khởi tạo CSDL
còn hạn hẹp.
- Chưa khai thác hết được các nghiệp vụ liên quan đến quản lý bán hàng và
các chức năng trong cơ sở dữ liệu
- Cập nhật tự động số lượng tồn kho chưa thể giải quyết trường hợp đơn đã
được giao
Trang 144
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
- Nghiên cứu và khai thác các nghiệp vụ liên quan chưa được thực hiện trong
đồ án.
- Tìm hiểu thêm các kiến thức về bán hàng để hoàn thiện các chức năng
- Có thể mở rộng dữ liệu và database để có thể quản lý kho hàng hoặc quản lý
nhân sự - tiền lương tại đây.
- Tạo các user quản lý hệ thống.
Trang 145
Quản trị cơ sở dữ liệu hệ thống bán hàng tại cafe Starbuck
Sinh viên thực hiện: Đoàn Phương Uyên – Nguyễn Thị Nam Trân
Trang 146
Đồ án môn học Hệ quản trị cơ sở dữ liệu 2