Trang 17 Quản Trị Cơ Sở Dữ Liệu Hệ Thống Quản Lý Quán Cafe Highlands Coffee1.1.3.Quy trình xử lý nghiệp vụ của hệ thống:Quy trình nghiệp vụ bán cà phê :1: Khách hàng đến quán thì được nh
TỔNG QUAN
Tổng quan về đề tài
1.1.1.Lý do hình thành đề tài:
Trong cuộc sống hiện nay, không khó để có thể tìm kiếm một quán nước, quán coffee, ngoài nhu cầu giải khát, còn có thể trò chuyện cùng bạn bè, gia đình, việc học nhóm tại các quán coffee cũng khá quen thuộc đối với các bạn trẻ Và để đáp ứng nhu cầu đó của con người thì ngày nay việc kinh doanh bán cà phê không còn quá xa lạ đối với con người.
Việc mở một quán cà phê đòi hỏi phải có nhiều yếu tố: tài chính, vật chất, địa lý thuận lợi để giúp việc buôn bán phát triển Bên cạnh đó thì việc quản lý bán cà phê như thế nào bằng cách nào cũng là một câu hỏi lớn cần giải quyết Vậy việc quản lý bán cà phê như thế nào và bằng cách gì? Quản lý về cái gì? Quản lý như thế nào được gọi là tiện lợi? Ít tốn công sức nhưng lại cho ra kết quả một cách hiệu quả.
Và đó cũng là một trong những lý do lớn nhất để phần mềm quản lý bán hàng ra đời và trả lời cho những câu hỏi trên nhằm đáp ứng cho việc kinh doanh của cá nhân hoặc của một tổ chức nào đó thuận lợi và tiết kiệm thời gian hơn Do đó, nhóm em xây dựng hệ thống cơ sở dữ liệu “Quản lý quán Cafe Highlands Coffee”.
Củng cố kiến thức về hệ quản trị cơ sở dữ liệu SQL server xây dựng phần mềm quản lý để có thể nâng cao kĩ năng về lập trình và ứng dụng quản lý cơ sở dữ liệu, tạo nền tảng và cơ sở để phát triển các ứng dụng thông tin.
Giúp quản lý hệ thống của quán trở nên tối ưu hơn, công tác quản lý dễ dàng và tiện lợi hơn.
Với việc phân cấp quyền đăng nhập thì quản lý và nhân viên có thể giảm tải áp lực trong công việc như cập nhật, lưu trữ sổ sách…
1.1.3.Quy trình xử lý nghiệp vụ của hệ thống:
Quy trình nghiệp vụ bán cà phê :
(1): Khách hàng đến quán thì được nhân viên phục vụ đưa cho menu của quán Trong thời gian khách hàng chọn món thì nhân viên cần ghi lại thông tin số bàn vào giấy order
(2): Sau khi khách hàng order xong thì nhân viên phục vụ chuyển thông tin đến cho nhân viên pha chế và nhân viên thu ngân để thanh toán.
(3): Nhân viên thu ngân có nhiệm vụ nhập đúng thông tin khách hàng và những gì khách đã order vào hệ thống Nếu khách hàng có nhu cầu muốn đổi bàn nhân viên phục vụ sẽ ghi lại số bàn mà khách hàng muốn chuyển và báo lại cho nhân viên thu ngân để cho việc thanh toán không bị sai sót.
(4): Khi khách hàng có nhu cầu tính tiền, thì nhân viên phục vụ sẽ báo số bàn khách đang ngồi lại cho quầy thu ngân, sau đó nhân viên thu ngân sẽ xuất hóa đơn thanh toán và nhân viên phục vụ sẽ báo giá tiền cho khách hàng
(5): Cuối ngày, nhân viên thu ngân sẽ thống kê tình hình của quán.
(6): Khu vực – bàn: hệ thống sẽ hiển thị giao diện người dùng về quản lý khu vực bàn Nếu khách hàng muốn đổi khu vực - bàn thì nhân viên là người chỉnh sửa và lưu lại trên hệ thống
(7): Cuối tháng, quản lý sẽ yêu cầu nhân viên thu ngân tiến hành thống kế doanh thu để lập báo cáo kết quả kinh doanh Sau đó, quản lý gửi báo cáo kết quả kinh doanh cho giám đốc để nắm rõ tình hình kinh doanh của quán.
(8): Nhân viên thu ngân sẽ tiến hành thống kê kết quả doanh thu trên phần mềm quản lý bán hàng rồi xuất ra báo cáo kết quả kinh doanh nộp cho quản lý. 1.1.4.Mô tả hoạt động:
Quản lý quán cafe là một hoạt động nghiệp vụ tập trung vào việc ứng dụng thực tế các kỹ thuật bán hàng và quản lý hoạt động bán hàng của một công ty Đây là một chức năng kinh doanh quan trọng như doanh thu thuần thông qua việc bán sản phẩm và dịch vụ và kết quả là lợi nhuận thúc đẩy hầu hết các hoạt động kinh doanh Đây cũng là những mục tiêu và chỉ số hoạt động của quản lý quán cafe.
Giới thiệu sơ lược về quán cafe Highlands Coffee
Highlands Coffee là một thương hiệu của Công ty Cổ phần Việt Thái Quốc
Tế (VTI) Việt Thái Quốc Tế là công ty 100% cổ phần Việt Nam Ðược thành lập từ năm 1998 và chỉ tập trung vào mảng cà phê đóng gói, đến năm 2002 thì quán cà phê Highlands Coffee đầu tiên chính thức ra mắt Tính đến thời điểm nay thì đã có hơn 40 quán hoạt động trên khắp Việt Nam Highlands Coffee đang tự tin vào một tương lai phát triển bền vững cùng sự vươn lên và lớn mạnh không ngừng của đất nước.
Mục tiêu của Công ty là dẫn đầu ngành hàng bán lẻ cao cấp tại Việt Nam. Triết lý của Highlands Coffee là kết hợp những tinh hoa của thế giới hiện đại với những nét duyên và giá trị truyền thống của Việt Nam.
Highlands Coffee luôn mong muốn mang lại cho khách hàng những cảm nhận về một giá trị truyền thống và bất hủ Highlands Coffee không ngừng nỗ lực để mang đến cho khách hàng cảm nhận về một phần của cuộc sống năng động hiện đại song hành với những truyền thống văn hóa độc đáo, lâu đời đậm chất ViệtNam.
Phạm vi của đề tài
Phạm vi quay quanh các nghiệp vụ bán hàng, tuân theo nghiệp vụ quản lý của một quán cà phê, đảm bảo đầy đủ các chức năng chính của quản lý bán cà phê và khai thác các chức năng mới có liên quan đến quản lý quán cà phê nhằm giúp cho việc quản lý bán cà phê thêm tiện ích.
Bố cục của báo cáo
Bố cục báo cáo gồm những nội dung sau:
Chương 1: Giới thiệu tổng quan về đồ án hệ quản trị cơ sở dữ liệu quản lý quán café Highlands Coffee
Chương 2: Cơ sở lý thuyết phục vụ việc thực hiện đồ án
Chương 3: Thiết kế cơ sở dữ liệu
Chương 4: Ứng dụng các đối tượng trong SQL server lên hệ thốngCSDL của đồ án.
CƠ SỞ LÝ THUYẾT
Mô tả hệ thống
Phần mềm quản lý bán hàng bao gồm: nhập nguyên liệu, bán hàng, quản lý nhân viên và khách hàng, quản lý hàng hóa, quản lý khu vực- bàn, thống kê doanh thu bán hàng, thống kê lương chi trả cho nhân viên, thống kê mặt hàng chạy bán.
● Nhập nguyên liệu: việc nhập nguyên liệu để pha chế sẽ được nhập từ nhà cung cấp Nhân viên kiểm tra hàng tồn kho trên hệ thống, rồi báo cho quản lý những nguyên liệu cần nhập cho quán, và liên hệ với nhà cung cấp Khi nhận hàng, tiến hành kiểm tra chất lượng nếu đúng theo yêu cầu của quán thì nhân viên tiến hành xuất phiếu nhập và thanh toán.
● Bán hàng: là chức năng chính của phần mềm, đảm nhiệm vai trò bán hàng, tiếp nhận order của khách hàng, mở bàn nếu khách hàng có yêu cầu, chọn món, thanh toán, xuất hóa đơn cho khách hàng.
● Quản lý khách hàng và nhân viên: lưu trữ thông tin của khách hàng bao gồm tên, địa chỉ, điểm tích lũy, email, điện thoại, lịch sử giao dịch của khách hàng, Mỗi khách hàng quen sẽ có một khuyến mãi giảm giá, dựa trên số lượng mua, Lưu trữ thông tin nhân viên bao gồm: mã nhân viên, mã đăng nhập, mật khẩu, tên nhân viên, năm sinh, giới tính, điện thoại,
● Quản lý hàng hóa: Mỗi khi có hàng hóa mới(nguyên liệu), quản lý nhập danh sách hàng hóa vào kho dữ liệu của hệ thống.
● Quản lý khu – bàn: lưu thông tin tất cả các khu vực và bàn, quản lý bàn theo khu vực
● Quản lý lương nhân viên: lưu thông tin của tất cả các ca làm bao gồm giờ bắt đầu ca làm, giờ kết thúc ca làm, lương của một ca, tính lương theo từng nhân viên, Lương thưởng dựa vào từng nhân viên, làm việc ngày nghĩ lễ, tăng ca.
● Thống kê doanh thu: thống kê doanh thu theo ngày, tháng, năm.
Ngoài ra thống kê các sản phẩm nào đang bán chạy nhất.
Nghiệp vụ 1: Nhân viên tiếp nhận order của khách hàng
Nghiệp vụ 2: Nhân viên sẽ chuyển thông tin cho nhân viên thu ngân và nhân viên pha chế
Nghiệp vụ 3: Thu ngân có nhiệm vụ mở bàn cho khách hàng và khi khách hàng muốn đổi bàn thì nhân viên phục vụ sẽ báo lại cho thu ngân để chỉnh sửa để thanh toán tránh sai sót Nhân viên pha chế sẽ pha chế theo yêu cầu của khách hàng.
Nghiệp vụ 4: Thống kê lương cho từng nhân viên và mức thưởng của nhân viên đó
Nghiệp vụ 5: Nhân viên lập báo cáo ngày, báo cáo tháng, báo cáo năm rồi báo cho quản lý, và quản lý tổng kết lại báo cho cấp trên.
SQL Server
SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS – Relational Database Management System) với các tính năng bảo mật, an toàn cao, hỗ trợ nhiều người dùng truy xuất đồng thời, được dùng để tạo các ứng dụng cơ sở dữ liệu theo mô hình máy trạm/máy chủ, phát triển các ứng dụng web và chỉ thực thi trên môi trường Windows
Ngôn ngữ truy vấn của Microsoft SQL Server là Transact – SQL Ngôn ngữ Transact SQL là ngôn ngữ mở rộng dựa trên SQL chuẩn của ISO(International Organization for Standardization) và ANSI (American NationalStandards Institute).
Một vài vấn bản SQL Server:
Enterprise : chứa tất cả cả đặc điểm nổi bật của SQL Server, bao gồm nhân bộ máy cơ sở dữ liệu và các dịch vụ đi kèm cùng với các công cụ cho tạo và quản lý phân cụm SQL Server Nó có thể quản lý các CSDL lớn tới
524 petabytes và đánh địa chỉ 12 terabytes bộ nhớ và hỗ trợ tới 640 bộ vi xử lý (các core của CPU)
Standard : Rất thích hợp cho các công ty vừa và nhỏ vì giá thành rẻ hơn nhiều so với Enterprise Edition, nhưng lại bị giới hạn một số chức năng cao cấp (advanced features) khác, edition này có thể chạy tốt trên hệ thống lên đến 4 CPU và 2 GB RAM.
Developer : Có đầy đủ các tính năng của Enterprise Edition nhưng được chế tạo đặc biệt như giới hạn số lượng người kết nối vào Server cùng một lúc…. Ðây là phiên bản sử dụng cho phát triển và kiểm tra ứng dụng Phiên bản này phù hợp cho các cá nhân, tổ chức xây dựng và kiểm tra ứng dụng
Workgroup: ấn bản SQL Server Workgroup bao gồm chức năng lõi cơ sở dữ liệu nhưng không có các dịch vụ đi kèm Chú ý phiên bản này không còn tồn tại ở SQL Server 2012.
Express : SQL Server Express dễ sử dụng và quản trị cơ sở dữ liệu đơn giản Được tích hợp với Microsoft Visual Studio, nên dễ dàng để phát triển các ứng dụng dữ liệu, an toàn trong lưu trữ, và nhanh chóng triển khai SQL Server Express là phiên bản miễn phí, không giới hạn về số cơ ở dữ liệu hoặc người sử dụng, nhưng nó chỉ dùng cho 1 bộ vi xử lý với 1 GB bộ nhớ và 10 GB file cơ sở dữ liệu SQL Server Express là lựa chọn tốt cho những người dùng chỉ cần một phiên bản SQL Server 2005 nhỏ gọn, dùng trên máy chủ có cấu hình thấp, những nhà phát triển ứng dụng không chuyên hay những người yêu thích xây dựng các ứng dụng nhỏ.
Ứng dụng cho mọi doanh nghiệp theo từng gói phần mềm với chi phí khác nhau.
Tối ưu hóa để thực thi trên môi trường cơ sở dữ liệu lớn.
Tích hợp công cụ Reporting Service hỗ trợ thiết kế và trình bày báo cáo tùy biến người dùng.
Quản lý, chia sẻ, cấp phát, truy xuất tài nguyên hệ thống linh hoạt, hiệu quả, dễ dàng nâng cấp và bảo trì.
Hỗ trợ các ứng dụng web và xử lý trực tiếp với lượng dữ liệu lớn.
Hỗ trợ cơ chế mã hóa tự động.
Hỗ trợ phát triển ứng dụng trong môi trường NET nhằm giảm sự phức tạp khi xây dựng và phát triển các ứng dụng.
Tích hợp ngôn ngữ truy vấn SQL, các hàm, thủ tục, khung nhìn,…
Cấp quyền truy xuất cơ sở dữ liệu và các đối tượng cơ sở dữ liệu nhằm nâng cao khả năng bảo mật hệ thống.
Sao lưu và phục hồi hệ thống khi gặp sự cố.
Power Desiger
Là 1 công cụ thiết kế CSDL Với Power Designer bạn có thể : Thiết kế Conceptual Data model (CDM) bằng sơ đồ 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ột toàn vẹn tham chiếu (referential integrity triggers) nếu chúng được hổ trợ bởi CSDL đích Cho phép hiệu chỉnh và in các model Phát sinh ngược lại các Database và các appliccation đang tồn tại Định nghĩa các thuộc tính mở rộng có các đối tượng PDM.
Với Power Designer bạn có thể: o Trình bày các mô hình bằng các ký hiệu đồ họa phù hợp với các phương pháp mô hình hóa trong thực tế như mô hình thực thể và mối kết hợp; mô hình quan hệ… o Thiết kế Conceptual Data model (CDM) bằng sơ đồ thực thể kết hợp o Phát sinh Logical Data Model (LDM) dựa trên CDM o Phát sinh Physical Data Model (PDM) tương ứng trên một DBMS được chọn. o Phát sinh kích bản tạo CSDL trên một DBMS đích. o Phát sinh ràng buột toàn vẹn tham chiếu (Referential integrity triggers) nếu chúng được hổ trợ bởi CSDL đích. o Cho phép hiệu chỉnh và in các model o Phát sinh ngược lại các Database và các application đang tồn tại. o Định nghĩa các thuộc tính mở rộng có các đối tượng PDM. o Lập mô hình dữ liệu và các nhà phân tích dữ liệu o Kiến trúc sư và công cụ phát triển o Tích hợp vào một cơ sở chung o Khả năng mở rộng và thân thiện với người dùng cao o Hỗ trợ hơn 80 RDBMS o Sơ đồ phân tích tác động và đồ họa o Dễ dàng sử dụng framework, và nhiều hơn nữa.
THIẾT KẾ CƠ SỞ DỮ LIỆU
Mô hình dữ liệu mức quan niệm
Một quán café có bán các loại thức uống, món ăn, giá các món, thức uống có thể thay đổi trong khoảng thời gian Người quản lý quán muốn việc thu, chi hàng ngày của quán để làm cơ sở tính thu nhập, tính lương và thưởng cho nhân viên.
Mỗi bàn có một nhân viên phục vụ chính (khi khách vào, nhân viên nào rảnh sẽ được chỉ định phục vụ chính bàn đó), có một mã số , số chỗ ngồi Khách hàng có thể gọi thức uống, món ăn và được nhân viên phục vụ chính ghi nhận lại trên phiếu, chuyển phiếu đến bộ phận quản lý và bộ phận phục vụ thức uống, món ăn Dữ liệu này được nhân viên thu ngân nhập liệu vào máy trước khi chuyển sang bộ phận phục vụ thức uống.
Khách hàng có thể gọi món mới, thay đổi món, số lượng Tùy theo yêu cầu của khách hàng, nhân viên có chuyển bàn hoặc ghép bàn Có phụ thu cho khu vực bàn khác nhau (máy lạnh, sân vườn…) Khi khách gọi tính tiền thì nhân viên thu ngân sẽ in hóa đơn tính tiền và nhân viên phục vụ thu tiền.
Trong ngày, các loại chi cũng được ghi nhận lại, thông tin gồm có: nhóm chi (chi mua thực phẩm, thức uống, chi đầu tư cơ sở vật chất, chi lương, thưởng, chi khác,…) số tiền chi.
Cuối ngày người quản lý có thể xem các báo cáo thống kê số lượng bán và doanh thu các loại (từng món, theo bàn, theo nhân viên) theo từng ngày, từng tuần cũng như từng tháng hoặc một khoảng thời gian để nắm được tình hình lợi nhuận của quán.
Mô hình dữ liệu quan hệ
Mô hình quan hệ thể hiện CSDL dưới dạng tập hợp các quan hệ:
BaoCao(MaBC, TenBC, Ngaylap, MaNV)
NhanVien(MaNV, HotenNV, Ngaysinh, Gioitinh, Diachi, Ngayvaolam)
PhieuPhuThu(MaPPT, TenPPT, Ngaylap, Sotien, MaNV)
ThucUong(MaTU, TenTU, DonGia ,MaLTU)
HoaDon(MaHD, Ngaylap, Tongtien, MaNV, MaKH, MaKV)
NguyenLieu(MaNL, TenNL, Soluong, Donvitinh)
NhaCungCap(MaNCC, TenNCC, Diachi, Dienthoai)
KhachHang(MaKH, TenKH, Diachi, Dienthoai)
PhieuNhap(MaPN, Ngaylap, Tongtien, MaNCC, MaNV)
PhieuXuat(MaPX, Ngaylap, Tongtien, MaNV)
Ràng buộc dữ liệu
3.3.1.Ràng buộc toàn vẹn miền giá trị:
Trong lược đồ quan hệ HOADON:
R1: Dạng phụ thuộc hàm trong quan hệ HOADON
Mô tả: Mỗi hóa đơn đều có thời gian vào nhỏ hơn thời gian hiện tại
R2: Dạng phụ thuộc hàm trong quan hệ HOADON
Mô tả: Mỗi hóa đơn đều có thời gian ra nhỏ hơn thời gian hiện tại
R3: Dạng phụ thuộc hàm trong quan hệ HOADON
Mô tả: Mỗi hóa đơn giảm giá phải lớn hơn hoặc bằng 0 và nhỏ hơn hoặc bằng 100
Trong lược đồ quan hệ CHITIETHOADON:
R4: Dạng phụ thuộc hàm trong quan hệ CHITIETHOADON
Mô tả: Mọi chi tiết hóa đơn phải có số lượng lớn hơn 0
Trong lược đồ quan hệ THUCUONG
R5: Dạng phụ thuộc hàm trong quan hệ THUCUONG
Mô tả: Mọi thức uống phải có đơn giá lớn hơn 0
3.3.2.Ràng buộc toàn vẹn liên bộ:
R6: Dạng phụ thuộc hàm trong quan hệ NHANVIEN
Mô tả: Mỗi Nhân viên có một mã số nhân viên riêng biệt với các nhân viên khác
R7: Dạng phụ thuộc hàm trong quan hệ PHIEUNHAP
Biểu diễn: Mỗi phiếu nhập chỉ có một mã số để phân biệt với các phiếu nhập khác
R8: Dạng phụ thuộc hàm trong quan hệ PHIEUXUAT
Biểu diễn: Mỗi phiếu xuất chỉ có một mã số để phân biệt với các phiếu xuất khác
R9: Dạng phụ thuộc hàm trong quan hệ HOADON
Mô tả: Mỗi hóa đơn chỉ có một mã số để phân biệt với các hóa đơn khác
R10: Dạng phụ thuộc hàm trong quan hệ NHACUNGCAP
Mô tả: Mỗi nhà cung cấp chỉ có một mã số để phân biệt với các nhà cung cấp khác
R11: Dạng phụ thuộc hàm trong quan hệ THUCUONG
Mô tả: Mỗi thức uống chỉ có một mã số để phân biệt với các thức uống khác
R12: Dạng phụ thuộc hàm trong quan hệ LOAITHUCUONG
Mô tả: Mỗi loại thức uống chỉ có một mã số để phân biệt với các loại thức uống khác
R13: Dạng phụ thuộc hàm trong quan hệ NGUYENLIEU
Mô tả: Mỗi nguyên liệu chỉ có một mã số để phân biệt với các nguyên liệu khác
R14: Dạng phụ thuộc hàm trong quan hệ KHACHHANG
Mô tả: Mỗi khách hàng chỉ có một mã số để phân biệt với các khách hàng khác
R15: Dạng phụ thuộc hàm trong quan hệ KHUVUC
Mô tả: Mỗi khu vực chỉ có một mã số để phân biệt với các khu vực khác
3.3.3.Ràng buộc toàn vẹn liên bộ-liên quan hệ:
R16: Dạng phụ thuộc hàm khóa chính – khóa ngoại giữa các quan hệ
Bối cảnh: NHANVIEN và PHIEUXUAT
Mô tả: Mỗi phiếu xuất chỉ được lập bởi 1 nhân viên
R17: Dạng phụ thuộc hàm khóa chính – khóa ngoại giữa các quan hệ
Bối cảnh: NHANVIEN và PHIEUNHAP
Mô tả: Mỗi phiếu nhập chỉ được lập bởi 1 nhân viên
R18: Dạng phụ thuộc hàm khóa chính – khóa ngoại giữa các quan hệ
Bối cảnh: HOADON và CHITIETHOADON
Mô tả: Mỗi hóa đơn phải có ít nhất một chi tiết hóa đơn
R19: Dạng phụ thuộc hàm khóa chính – khóa ngoại giữa các quan hệ
Bối cảnh: KHUVUC và HOADON
Mô tả: Mỗi khu vực phải có ít nhất một hóa đơn
Cài đặt cơ sở dữ liệu
Tên Mô tả Kiểu dữ liệu Độ dài
MaNV(Pk) Mã nhân viên Nchar 10
HoTenNV Họ tên nhân viên Nvarchar 50
GioiTinh Giới tính nhân viên Nvarchar(7) 7
DiaChi Địa chỉ nhân viên Nvarchar(100) 100
NgayVaoLam Ngày vào làm Datetime
Tên Mô tả Kiểu dữ liệu Độ dài
MaBC(Pk) Mã Báo cáo Nchar 10
MaNV Mã nhân viên Nchar 10
TenBC Tên báo cáo Nvarchar 50
Tên Mô tả Kiểu dữ liệu Độ dài
MaPPT(Pk) Mã phiếu phụ thu Nchar 10
TenPPT Tên phiếu phụ thu Nvarchar 50
Ngaylap Ngày lập phiếu Datetime
MaNV Mã nhân viên Nchar 10
Tên Mô tả Kiểu dữ liệu Độ dài
TenKV Tên khu vực Nvarchar 50
Tên Mô tả Kiểu dữ liệu Độ dài
MaLTU(Pk) Mã loại thức uống Nchar 10
TenLTU Tên loại thức uống Nvarchar 50
Tên Mô tả Kiểu dữ liệu Độ dài
TenTU Tên thức uống Nvarchar 30
MaLTU Mã loại thức uống Nchar 10
Tên Mô tả Kiểu dữ liệu Độ dài
HotenKH Họ tên khách hàng Nvarchar 50
Tên Mô tả Kiểu dữ liệu Độ dài
MaNV Mã nhân viên Nchar 10
MaKV Mã khu vực Nchar 10
MaKH Mã khách hàng Nchar 10
NgayLap Ngày lập hóa đơn Datetime
Tên Mô tả Kiểu dữ liệu Độ dài
MaNCC Mã nhà cung cấp Nchar 10
MaNV Mã nhân viên Nchar 10
Tên Mô tả Kiểu dữ liệu Độ dài
MaNV Mã nhân viên Nchar 10
Tên Mô tả Kiểu dữ liệu Độ dài
TenNL Tên nguyên liệu Nchar 50
Donvitinh Đơn vị tính Nvarchar 30
Tên Mô tả Kiểu dữ liệu Độ dài
) Mã nhà cung cấp Nchar 10
TenNCC Tên nhà cung cấp
Bảng 3 32 Chi tiết hóa đơn
Tên Mô tả Kiểu dữ liệu Độ dài
Bảng 3 33 Chi tiết phiếu nhập
Tên Mô tả Kiểu dữ liệu Độ dài
MaPN(Pk) Mã Phiếu nhập Nchar 10
Bảng 3 34 Chi tiết công thức
Tên Mô tả Kiểu dữ liệu Độ dài
3.4.2.Tạo cấu trúc các bảng:
Hình 3 4 Bảng Phiếu phụ thu
Hình 3 6 Bảng Loại thức uống
Hình 3 9 Bảng Nhà cung cấp
Hình 3 14 Bảng Chi tiết hóa đơn
Hình 3 15 Bảng Chi tiết phiếu nhập
Hình 3 16 Bảng Chi tiết công thức
Hình 3 17 Mô hình quan hệ
Hình 3 1 Dữ liệu bảng Nhân viên
Hình 3 2 Dữ liệu bảng Báo cáo
Hình 3 20 Dữ liệu bảng Phiếu phụ thu
Hình 3 21 Dữ liệu bảng Khu vực
Hình 3 3 Dữ liệu bảng Loại thức uống
Hình 3 4 Dữ liệu bảng Thức uống
Hình 3 5 Dữ liệu bảng Khách hàng
Hình 3 6 Dữ liệu bảng Hóa đơn
Hình 3 7 Dữ liệu bảng Nguyên liệu
Hình 3 8 Dữ liệu bảng Nhà cung cấp
Hình 3 9 Dữ liệu bảng Phiếu nhập
Hình 3 10 Dữ liệu bảng Phiếu xuất
Hình 3 30 Dữ liệu bảng Chi tiết phiếu nhập
Hình 3 31 Dữ liệu bảng Chi tiết công thức
Hình 3 11 Dữ liệu bảng Chi tiết Hóa đơn
ỨNG DỤNG
Synonym
4.1.1.Mô tả ứng dụng trong hệ thống:
Các từ đồng nghĩa có thể giúp chúng ta tách tên và vị trí của đối tượng cơ bản khỏi mã SQL Do đó, chúng ta có thể viết mã tạo ra từ đồng nghĩa ngay cả khi bảng của chúng ta muốn được chuyển đến máy chủ, cơ sở dữ liệu mới hoặc được đổi tên.
Từ đồng nghĩa là một đối tượng cơ sở dữ liệu phục vụ các mục đích sau:
- Cung cấp một tên thay thế cho một đối tượng cơ sở dữ liệu khác, được gọi là đối tượng cơ sở, có thể tồn tại trên máy chủ cục bộ hoặc từ xa.
- Cung cấp một lớp trừu tượng để bảo vệ ứng dụng khách khỏi những thay đổi được thực hiện đối với tên hoặc vị trí của đối tượng cơ sở.
4.1.2.Hiện thực ứng dụng Synonym trong hệ thống: a) Synonym 1
Tạo tên đồng nghĩa có tên bất kỳ truy xuất vào bảng NhanVien do người dùng dbo làm chủ sở hữu.
Create Synonym NV For dbo.NhanVien
Hình 3 12 Kiểm thử synonym 2 c) Synonym 3
Tạo tên đồng nghĩa có tên bất kỳ truy xuất vào bảng ThucUong do người dùng dbo làm chủ sở hữu.
Create Synonym TU For dbo.ThucUong
Index
4.2.1.Mô tả ứng dụng trong hệ thống:
Các chỉ mục hay Index trong SQL là các bảng tra cứu đặc biệt mà công cụ tìm kiếm cơ sở dữ liệu có thể sử dụng để tăng tốc độ truy xuất dữ liệu Đơn giản chỉ cần thiết lập một chỉ số là một con trỏ đến dữ liệu trong một bảng Nói một cách dễ hiểu là một chỉ mục trong một cơ sở dữ liệu giống với một chỉ mục ở mặt sau của một cuốn sách.
Một chỉ mục giúp tăng tốc các truy vấn SELECT và các mệnh đề WHERE, nhưng nó làm chậm dữ liệu nhập vào, với các câu lệnh UPDATE và INSERT Các chỉ mục có thể được tạo ra hoặc bỏ đi mà không ảnh hưởng đến dữ liệu.
4.2.2.Hiện thực ứng dụng Index trong hệ thống:
Trong hệ thống quản lý quán cafe, Index được dùng để thực hiện một số tác vụ như: a) Index 1
Tạo chỉ mục có tên bất kỳ trên cột TenNL trong bảng NguyenLieu
Create Index Index_Ten_NL ON NguyenLieu(TenNL)
With (Index(Index_Ten_NL)) where MaNL='NL13'
Hình 3 14 Kiểm thử index 1 b) Index 2
Tạo chỉ mục có tên bất kỳ trên cột HoTenKH trong bảng KhachHang
Create Index Index_HoTen_KH ON KhachHang(HoTenKH)
With (Index(Index_HoTen_KH)) where HoTenKH=N'Nguyễn Bảo Châu'
Hình 3 15 Kiểm thử index 2 c) Index 3
Tạo chỉ mục có tên bất kỳ trên cột TenLTU trong bảng LoaiThucUong Create Index Index_Ten_LTU ON LoaiThucUong TenLTU( )
With (Index(Index_Ten_LTU)) where TenLTU=N'Cà phê pha phin'
View
4.3.1.Mô tả ứng dựng trong hệ thống:
View là một bảng ảo(khung nhìn) trong cơ sở dữ liệu có nội dung được định nghĩa thông qua một câu lệnh SQL nào đó Một khung nhìn bao gồm các hàng và cột giống như một bảng thực Các trường trong một khung nhìn là các trường từ một hoặc nhiều bảng thực trong cơ sở dữ liệu. Điểm khác biệt giữa khung nhìn và bảng là khung nhìn không được xem là một cấu trúc lưu trữ dữ liệu tồn tại trong cơ sở dữ liệu Thực chất dữ liệu quan sát được trong khung nhìn được lấy từ các bảng thông qua câu lệnh truy vấn dữ liệu và được sử dụng để hạn chế truy cập cơ sở dữ liệu hoặc để ẩn dữ liệu phức tạp.
4.3.2.Hiện thực ứng dụng View trong hệ thống: a) View 1
Tạo view vw_DsHoaDon2019 với các thông tin: mã hóa đơn, mã khách hàng, họ tên khách hàng, mã nhân viên, họ tên nhân viên, ngày lập hóa đơn
Create view vw_DsHoaDon2019 as
Select hd.MaHD,nv MaNV, HoTenNV kh , MaKH, HoTenKH , hd NgayLap.
From HoaDon hd join NhanVien nv hdon MaNV=nv MaNV. join KhachHang kh on hd MaKH=kh MaKH . where year(hd NgayLap )='2019'
Hình 3 17 Kiểm thử view 1 b) View 2
Tạo view vw_ThongTinHoaDon với các thông tin: mã hóa đơn, họ tên nhân viên, ngày lập hóa đơn(2021-06-28), tổng tiền. create view vwhongtinhoadon as select hd.MaHD, nv.MaNV, hd.NgayLap, hd TongTien from HoaDon hd, NhanVien nv where hd.MaNV=nv MaNV and NgayLap='2021-06-28'
Kiểm thử: select from * vwhongtinhoadon
Hình 3 18 Kiểm thử view 2 c) View 3
Tạo view lọc ra danh sách thức uống không chứa nguyên liệu sữa đặc. create view vwThucUong as select tu.TenTU, tu.DonGia from ThucUong tu join ChiTietCongThuc ct tuon MaTU ct.MaTU join NguyenLieu nl on ct MaNL nl.MaNL where nl.TenNL not likeN'Sữa đặc'
Kiểm thử: select from * vwThucUong
Hình 3 19 Kiểm thử view 3 d) View 4
Tạo view liệt kê thức uống bán nhiều nhất create view vw_ThucUong_Nhieu1 as select tu.TenTU, tu.DonGia, sum( ct SoLuong) as N'Số lượng bán' from HoaDon hd join ChiTietHoaDon ct hdon MaHD ct MaHD= join ThucUong tu cton MaTU tu.MaTU group by tu.TenTU, tu.DonGia having (sum(ct SoLuong )=(select top 1 sum(ct SoLuong ) as N'Số lượng' from HoaDon hd join ChiTietHoaDon ct on hd MaHD ct MaHD = join ThucUong tu cton MaTU tu.MaTUgroup by tu.TenTU, tu.DonGia order by sum(ct SoLuong ) desc))
Kiểm thử: select from * vw_ThucUong_Nhieu1
Hình 3 20 Kiểm thử view 4 e) View 5
Tạo view Doanh thu năm 2020 create view vw_DoanhThu2020 as select year(hd.NgayLap) N'Năm',as sum(hd TongTien)+(select sum(ptt SoTien ) as N'Tổng tiền phiếu phụ thu' from PhieuPhuThu ptt where (year(ptt.NgayLap 2020 as N'Tổng tiền')= )) from HoaDon hd group by year(hd.NgayLap) having year(hd.NgayLap 2020)Kiểm thử: select from * vw_DoanhThu2020
Function
4.4.1.Mô tả ứng dụng trong hệ thống:
Function là một đối tượng trong cơ sở dữ liệu bao gồm một tập nhiều câu lệnh được nhóm lại với nhau và được tạo ra với mục đích sử dụng lại Trong SQL Server, hàm được lưu trữ và bạn có thể truyền các tham số vào cũng như trả về các giá trị.
4.4.2.Hiện thực ứng dụng Function trong hệ thống: a) Function 1
Viết hàm xem danh sách các thức uống theo loại thức uống (trả về dạng bảng) create function f_dstu @ltu ( nchar( ))10 returns table as return select from * ThucUong where @ltu=MaLTU
Kiểm thử: select from dbo* f_dstu('LTU3')
Hình 3 22 Kiểm thử function 1 b) Function 2
Viết hàm cho biết số lượng đơn đặt hàng với tham số truyền vào là mã nhân viên create function f_sldh @manv ( nchar(10)) returns int as begin declare @sl int set @sl 0 select @sl=count(hd MaHD) from HoaDon hd where @manv=MaNV group by MaNV return @sl end
Kiểm thử: print dbo.f_sldh ('NV0002')
Store Procedure
4.5.1.Mô tả ứng dụng trong hệ thống:
Chúng ta chỉ cần viết Stored Procedure một lần, sau đó có thể gọi nó nhiều lần ở trong ứng dụng.
Stored Procedure sẽ được biên dịch và lưu vào bộ nhớ khi được tạo ra Do đó nó sẽ thực thi nhanh hơn so với việc gửi từng đoạn lệnh SQL tới SQL Server.
Vì nếu chúng ta gửi từng đoạn lệnh nhiều lần thì SQL Server cũng sẽ phải biên dịch lại nhiều lần, rất mất thời gian so với việc biên dịch sẵn.
Trong SQL Server có các tác vụ cấp cao mà người dùng bình thường không thể truy cập vào được Bằng việc cung cấp các Stored Procedure đã truy cập tới các tác vụ này cho người dùng thường thì không sao hết Vì làm vậy thì người dùng thường sẽ truy cập gián tiếp mà không ảnh hưởng tới vấn đề bảo mật của SQL Server.
4.5.2.Hiện thực ứng dụng Store Procedure trong hệ thống:
Stored Procedure được áp dụng trong hệ thống quản lí quán cà phê, để thực hiện một số chức năng như: a) Stored Procedure 1
Viết thủ tục thêm một loại thức uống mới vào bảng LoaiThucUong với tham số truyền vào là mã loại, tên loại thức uống Nếu có bị trùng mã loại thì báo.
If Exists (Select From* LoaiThucUong Where MaLTU=@MaLTU) Begin
Print N'Ma Loai Thuc Uong bị trùng'
Insert Into LoaiThucUong Values (@MaLTU @TenLTU, )
Exec Them_LoaiThucUong 'LTU8' N'Mojoto',
Hình 3 24 Kiểm thử 1 Stored Procedure 1
Exec Them_LoaiThucUong 'LTU11' N'Mojoto',
Hình 3 25 Kiểm thử 2 Stored Procedure 1 b) Stored Procedure 2
Viết thủ tục cập nhật lại một nhân viên vào bảng NhanVien với tham số truyền vào là MaNV, HotenNV, Diachi Nếu không tìm thấy thì hiển thị không tìm thấy MaNV.
From NhanVien Where MaNV =@MaNV) Begin
Set HoTenNV @HotenNV DiaChi @Diachi= , Where MaNV=@MaNV
Print N'Không tìm thấy MaNV'
Exec CapNhat_NhanVien 'NV0027',N'Nguyễn Quốc Toàn' N'1358/68 Lê, Quang Định, Q.Bình Thạnh, Tp.HCM'
Hình 3 26 Kiểm thử 1 Stored Procedure 2
Exec CapNhat_NhanVien 'NV0010',N'Nguyễn Quốc Toàn' N'1358/68 Lê,Quang Định, Q.Bình Thạnh, Tp.HCM'
Hình 3 27 Kiểm thử 2 Stored Procedure 2 c) Stored Procedure 3
Viết thủ tục xem thông tin của khách hàng với tham số truyền vào là MaKH.
Create Proc XemTT_KH @MaKH Nchar( )10
Hình 3 28 Kiểm thử Stored Procedure 3 d) Stored Procedure 4
Viết thủ tục cho biết số lượng hóa đơn mà nhân viên đó lập trong năm hiện hành của bảng HoaDon với tham số truyền vào là MaNV.
Create Proc SLHD_NhanVien @MaNV Nchar(10)
Select NhanVien.MaNV,Count(MaHD) As N'Số lượng hóa đơn'
From HoaDon join NhanVien HoaDon MaNV NhanVienon = MaNV Where NhanVien MaNV @MaNV Group by NhanVien.MaNV
Hình 3 29 Kiểm thử Stored Procedure 4 e) Stored Procedure 5
Viết thủ thủ tục liệt kê các nguyên liệu(Tên, số lượng, đơn vị tính) của một phiếu nhập bất kì với tham số truyền vào là MaPN.
Create Proc NLieu_PNhap @MaPN Nchar(10)
Select TenNL,NguyenLieu.SoLuong Donvitinh,
From NguyenLieu join ChiTietPhieuNhap NguyenLieu MaNL on ChiTietPhieuNhap MaNL. join PhieuNhap on PhieuNhap.MaPN ChiTietPhieuNhap MaPN.
Hình 3 30 Kiểm thử Stored Procedure 5 f) Store Procedure 6
Viết thủ tục tính tổng doanh thu của hệ thống trong khoảng thời gian bất kì Với tham số đầu vào là ngày bắt đầu, ngày kết thúc Với tham số đầu ra là tổng doanh thu của hệ thống (Doanh thu=Tổng tiền hóa đơn + PPT) Create Proc DoanhThu_NgayNhap
(Select Sum(PhieuPhuThu.Sotien ) from PhieuPhuThu
Where PhieuPhuThu.NgayLap >= @Ngaybatdau And PhieuPhuThu.NgayLap @Ngaybatdau And HoaDon NgayLap = @Ngaybatdau And PhieuPhuThu.NgayLap = @Ngaybatdau And HoaDon.NgayLap ) print N'Tổng thu hệ thống là :' +cast(@TongDoanhThuHT as Nvarchar( ))50 else
Print N'Tổng Doanh thu không đạt'
Hình 3 31 Kiểm thử 1 Stored Procedure 6
Hình 3 32 Kiểm thử 2 Stored Procedure 6
Trigger
4.6.1.Mô tả ứng dụng trong hệ thống:
Trigger là một loại stored procedure đặc biệt được thực thi (execute) một cách tự động khi có một sự kiện thay đổi dữ liệu (data modification) xảy ra nhưUpdate, Insert hoặc Delete Trigger được dùng để đảm bảo tính toàn vẹn dữ liệu(Data Integrity) hoặc thực hiện các quy tắc nghiệp vụ (business rules) nào đó.
Mỗi table thường sẽ có 3 thao tác làm thay đổi dữ liệu đó là: UPDATE, INSERT, DELETE Và đôi khi mỗi hành động như vậy ta sẽ có những ràng buộc trên bảng để giúp bảo toàn dữ liệu, lúc này sử dụng trigger là một giải pháp tốt. Như vậy chúng ta sẽ có tổng cộng 3 loại trigger như sau:
Update: Loại trigger sẽ được kích hoạt khi có hành động cập nhật dữ liệu.
Insert: Loại trigger sẽ được kích hoạt khi có hành động thêm dữ liệu.
Delete: Loại trigger sẽ được kích hoạt khi có hành động xóa dữ liệu. 4.6.2.Hiện thực ứng dụng Trigger trong hệ thống: a) Trigger 1
Viết trigger thêm dữ liệu cho bảng nguyên liệu create trigger tg_ThemSL1 on NguyenLieu for insert as if exists (select from * inserted where inserted.SoLuong 0< ) begin print(N'Số lượng phải lớn hơn hoặc bằng 0') rollback tran end
Kiểm thử insert into NguyenLieu values('NL22' N'Kem dâu', ,20,N'Ký') select * from NguyenLieu where MaNL='NL22'
Hình 3 33 Kiểm thử Trigger 1 b) Trigger 2
Viết trigger cập nhật số lượng cho bảng nguyên liệu create trigger tg_CapNhatSL1 on NguyenLieu for update as if exists (select from * inserted where inserted.SoLuong 0< ) begin print(N'Số lượng phải lớn hơn hoặc bằng 0') rollback tran end
Kiểm thử 1 update NguyenLieu set SoLuong=-20 where MaNL=N'NL1'
Kiểm thử 2 update NguyenLieu set SoLuongP where MaNL=N'NL1'
Hình 3 35 Kiểm thử 2 Trigger 2 c) Trigger 3
Viết trigger kiểm tra trùng mã ở bảng KhuVuc create trigger tg_kiemtra on KhuVuc instead of insert as declare @MaKV nchar( );10 declare @trungma int; select @MaKV MaKV = from inserted; select @trungma=count(*) from KhuVuc where MaKV=@MaKV; if(@trungma 0> ) begin print N'Cảnh báo: trùng mã' rollback tran return end else begin declare @ten nvarchar (50); select @ten=TenKV from inserted; insert into KhuVuc values(@MaKV @ten, ) end
Kiểm thử 1 insert into KhuVuc values('KV007',N'Lầu 3')
Kiểm thử 2 insert into KhuVuc values('KV008',N'Lầu 4')
Transaction
4.7.1.Mô tả ứng dụng trong hệ thống:
Transaction trong SQL là một nhóm các câu lệnh SQL Nếu một transaction được thực hiện thành công, tất cả các thay đổi dữ liệu được thực hiện trong transaction được lưu vào cơ sở dữ liệu Nếu một transaction bị lỗi và được rollback, thì tất cả các sửa đổi dữ liệu sẽ bị xóa (dữ liệu được khôi phục về trạng thái trước khi thực hiện transaction).
Transaction có bốn đặc điểm tiêu chuẩn sau:
Bảo toàn – đảm bảo rằng tất cả các câu lệnh trong nhóm lệnh được thực thi thành công Nếu không, transaction bị hủy bỏ tại thời điểm thất bại và tất cả các thao tác trước đó được khôi phục về trạng thái cũ.
Nhất quán – đảm bảo rằng cơ sở dữ liệu thay đổi chính xác các trạng thái khi một transaction được thực thi thành công.
Độc lập – cho phép các transaction hoạt động độc lập và minh bạch với nhau.
Bền bỉ - đảm bảo rằng kết quả của một transaction được commit vẫn tồn tại trong trường hợp lỗi hệ thống.
4.7.2.Hiện thực ứng dụng Transaction trong hệ thống:
Tạo thủ tục cập nhật đơn giá bán trong bảng ThucUong với tham số mã thuc uong, đơn giá bán do người dùng nhập quay lui khi nhập có lỗi CREATE PROC Capnhat_DG
DECLARE @ERROR INT, @ROWCOUNT INT
SELECT @ERROR = @@ERROR, @ROWCOUNT @@ROWCOUNTIF @ERROR OR 0 @ROWCOUNT 1
EXEC @Check CapNhat_DG= 'TU04' '85000',
PRINT N'Cập giá bán thất bại'
PRINT N'Cập nhật giá bán thành công'
EXEC @Check CapNhat_DG= 'TU22' '85000',
PRINT N'Cập giá bán thất bại'
PRINT N'Cập nhật giá bán thành công'
User
4.8.1.Mô tả ứng dụng trong hệ thống:
SQL Server cho phép người dùng có thể tạo tài khoản và đăng nhập vào Mỗi người dùng đều truy cập vào trong SQL Server qua 1 tài khoản riêng.
Khi tạo 1 tài khoản người dùng mới, quản trị viên sẽ cấp cho tài khoản này các quyền(Server Roles) và phạm vi có thể truy cập(Database Schemas).
Để giới hạn mức độ truy cập trên từng tài khoản người dùng đối với SQL Server nên chúng ta có khái niệm Server Roles.
Khi chúng ta thực hiện tạo tài khoản, chúng ta sẽ có 1 tab Server Roles để chọn các đặc quyền trên SQL Server.
4.8.2.Hiện thực ứng dụng Trigger trong hệ thống: a) User 1
Tạo user phân quyền cho KIEMKHO exec sp_addrole KIEMKHO grant select insert on, dbo.PhieuNhap KIEMKHOto grant select insert on, dbo.ChiTietPhieuNhap KIEMKHOto grant select insert on, dbo.NguyenLieu KIEMKHOto
Thêm user exec sp_addlogin lethanhdat 1 QuanLyQuanCaFe, , exec sp_adduser lethanhdat user3 KIEMKHO, ,
Hình 3 62 Kiểm thử User 1 b) User 2
Tạo user phân quyền cho QUANLY exec sp_addroleQUANLY grant select,update, insert on dbo.BaoCao QUANLYto grant select,update, insert on dbo.ChiTietCongThuc QUANLYto grant select,update, insert on dbo.NhanVien QUANLYto grant select,update, insert on dbo.LoaiThucUong QUANLYto grant select,update, insert on dbo.KhuVuc QUANLYto grant select insert on, dbo.ChiTietHoaDon QUANLYto grant select insert on, dbo.ChiTietPhieuNhap QUANLYto grant select insert on, dbo.HoaDon QUANLYto grant select insert on, dbo.PhieuNhap QUANLY to grant select insert on, dbo.PhieuXuat QUANLY to grant select insert on, dbo.ThucUong QUANLY to grant select insert on, dbo.PhieuPhuThu QUANLY to grant select insert on, dbo.NhaCungCap QUANLYto
Thêm user exec sp_addlogin thuyduy 1 QuanLyQuanCaFe, , exec sp_adduser thuyduy user4 QUANLY, ,