Bài tập lớn học phần hệ quản trị cơ sở dữ liệu đề tài thiết kế và quản trị cơ sở dữ liệucho cửa hàng tạp hóa

Chuyên khảo kinh tế phân tích Bài tập lớn học phần hệ quản trị cơ sở dữ liệu đề tài thiết kế và quản trị cơ sở dữ liệucho cửa, đánh giá các khía cạnh quan trọng, đề xuất hướng

Trường đại học

Khoa Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Bài tập lớn

2021

48
2
0

Phí lưu trữ

30 Point

Tóm tắt

I. Hướng dẫn tổng quan CSDL cho cửa hàng tạp hóa từ A Z

Bài tập lớn học phần hệ quản trị cơ sở dữ liệu với đề tài thiết kế và quản trị cho cửa hàng tạp hóa là một dự án thực tiễn, mô phỏng quá trình chuyển đổi số cho một mô hình kinh doanh truyền thống. Mục tiêu chính là xây dựng một hệ thống có khả năng lưu trữ, truy xuất và quản lý toàn bộ dữ liệu vận hành. Các dữ liệu này bao gồm thông tin hàng hóa, nhà cung cấp, khách hàng, và các giao dịch xuất nhập kho. Một hệ quản trị cơ sở dữ liệu (CSDL) hiệu quả giúp chủ cửa hàng khắc phục các nhược điểm của việc quản lý thủ công, như sai sót trong kiểm kho, chậm trễ trong việc cập nhật giá, và khó khăn trong việc theo dõi khách hàng thân thiết. Hệ thống này không chỉ là một công cụ lưu trữ, mà còn là nền tảng để phân tích dữ liệu bán hàng, từ đó đưa ra các chiến lược kinh doanh phù hợp. Việc triển khai một CSDL chuyên nghiệp cho cửa hàng tạp hóa giúp tự động hóa nhiều quy trình, giảm thiểu chi phí nhân công và tăng cường độ chính xác trong quản lý. Nền tảng của hệ thống này là một thiết kế cơ sở dữ liệu vững chắc, đảm bảo tính toàn vẹn, bảo mật và khả năng mở rộng trong tương lai. Các công nghệ như SQL Server được sử dụng để cài đặt và vận hành, cung cấp các công cụ mạnh mẽ như View để truy vấn và Trigger để tự động hóa các quy trình nghiệp vụ.

1.1. Mục tiêu của việc xây dựng hệ quản trị CSDL

Mục tiêu cốt lõi của dự án là giải quyết các bài toán thực tế tại cửa hàng tạp hóa Nghiệm Thu. Hệ thống phải đáp ứng các yêu cầu nghiệp vụ cụ thể. Thứ nhất, hệ thống cần lưu trữ thông tin khách hàng thân thiết để triển khai các chương trình khuyến mãi, kích cầu tiêu dùng. Thứ hai, một chức năng quan trọng là phải có cảnh báo tồn kho, tự động thông báo khi một mặt hàng nào đó sắp hết, giúp chủ cửa hàng chủ động nhập hàng và tránh tình trạng gián đoạn kinh doanh. Thứ ba, hệ thống phải hỗ trợ điều chỉnh giá bán kịp thời, đảm bảo lợi nhuận và tránh các khoản lỗ không đáng có do biến động giá từ nhà cung cấp. Việc xây dựng một hệ quản trị cơ sở dữ liệu mạnh mẽ là giải pháp để đạt được các mục tiêu trên, thay thế hoàn toàn phương pháp quản lý sổ sách truyền thống.

1.2. Các đối tượng chính trong CSDL cửa hàng tạp hóa

Để quản lý hiệu quả, CSDL cần lưu trữ thông tin về các đối tượng cốt lõi. Hàng Hóa là đối tượng trung tâm, bao gồm các thuộc tính như mã hàng, tên hàng, đơn vị tính. Nhà Cung Cấp lưu trữ thông tin về các đối tác cung ứng sản phẩm. Khách Hàng là bảng ghi nhận dữ liệu khách mua hàng, đặc biệt là khách hàng thân thiết. Các giao dịch được quản lý thông qua các thực thể như Đơn Đặt Hàng, Phiếu Nhập, và Phiếu Xuất. Mối quan hệ giữa các đối tượng này tạo thành một hệ thống logic, phản ánh chính xác quy trình vận hành của cửa hàng. Ví dụ, một Phiếu Nhập sẽ liên kết đến một Đơn Đặt Hàng cụ thể, và Đơn Đặt Hàng đó lại được cung cấp bởi một Nhà Cung Cấp. Việc xác định và định nghĩa rõ ràng các đối tượng này là bước đầu tiên và quan trọng nhất trong quá trình thiết kế CSDL.

II. Thách thức quản lý thủ công và giải pháp CSDL tối ưu

Mô hình quản lý truyền thống tại các cửa hàng tạp hóa bộc lộ nhiều hạn chế, đặc biệt trong bối cảnh cạnh tranh và biến động thị trường. Việc quản lý bằng sổ sách hoặc các file Excel đơn giản thường xuyên dẫn đến tình trạng sai sót dữ liệu, thất thoát hàng hóa và không thể tối ưu hóa hoạt động kinh doanh. Cửa hàng tạp hóa Nghiệm Thu, đơn vị được khảo sát, đối mặt với doanh thu sụt giảm sau dịch COVID và áp lực phải cắt giảm nhân sự. Tuy nhiên, số lượng sản phẩm lớn khiến việc quản lý thủ công trở nên bất khả thi, dẫn đến tình trạng không nhập hàng kịp thời. Đây là lúc giải pháp thiết kế và quản trị cơ sở dữ liệu phát huy vai trò. Một CSDL được xây dựng tốt không chỉ giải quyết vấn đề lưu trữ mà còn cung cấp khả năng tự động hóa và phân tích. Hệ thống cho phép theo dõi chính xác lượng tồn kho theo thời gian thực, quản lý vòng đời của sản phẩm từ lúc đặt hàng nhà cung cấp đến khi bán cho khách hàng. Các báo cáo tự động về doanh thu, lợi nhuận, và các mặt hàng bán chạy giúp chủ cửa hàng có cái nhìn toàn diện để ra quyết định. Việc áp dụng hệ quản trị cơ sở dữ liệu là một bước đi chiến lược, giúp cửa hàng tăng hiệu suất, giảm chi phí và nâng cao năng lực cạnh tranh một cách bền vững.

2.1. Khó khăn khi quản lý cửa hàng tạp hóa truyền thống

Quản lý thủ công gây ra nhiều vấn đề nghiêm trọng. Thứ nhất là sai sót trong quản lý tồn kho. Việc kiểm đếm bằng tay dễ nhầm lẫn, dẫn đến tình trạng hàng hóa trong kho không khớp với sổ sách. Điều này gây ra hai hệ quả: hoặc là không nhập hàng kịp thời khi sản phẩm đã hết, làm mất cơ hội bán hàng; hoặc là nhập thừa hàng, gây tồn đọng vốn. Thứ hai là thiếu khả năng theo dõi khách hàng thân thiết. Không có dữ liệu tập trung, cửa hàng không thể xác định ai là khách hàng trung thành để có chính sách chăm sóc phù hợp. Cuối cùng, việc quản lý hóa đơn xuất nhập và công nợ với nhà cung cấp rất phức tạp, tốn thời gian và dễ xảy ra sai sót, ảnh hưởng trực tiếp đến dòng tiền và lợi nhuận.

2.2. Yêu cầu thiết kế và quản trị CSDL cụ thể cho dự án

Để giải quyết các thách thức trên, hệ thống CSDL phải đáp ứng các yêu cầu cụ thể. Yêu cầu đầu tiên là lưu trữ và truy xuất dữ liệu một cách hiệu quả. Hệ thống phải quản lý thông tin chi tiết về hàng hóa, nhà cung cấp, khách hàng, và toàn bộ lịch sử giao dịch. Yêu cầu thứ hai là tự động hóa cảnh báo. Hệ thống cần có cơ chế, ví dụ như Trigger trong SQL, để tự động gửi thông báo khi lượng tồn kho của một mặt hàng giảm xuống dưới ngưỡng an toàn. Yêu cầu thứ ba là đảm bảo tính toàn vẹn dữ liệu. Các ràng buộc khóa chính, khóa ngoại phải được thiết lập chặt chẽ để ngăn chặn các dữ liệu không hợp lệ, ví dụ như không thể xóa một nhà cung cấp khi vẫn còn đơn đặt hàng liên quan. Đây là những nền tảng quan trọng cho một hệ quản trị cơ sở dữ liệu ổn định.

III. Phương pháp thiết kế cơ sở dữ liệu cửa hàng tạp hóa

Quá trình thiết kế cơ sở dữ liệu là giai đoạn nền tảng, quyết định sự thành công của toàn bộ hệ thống. Phương pháp tiếp cận bao gồm hai bước chính: phân tích và xác định các thực thể (bảng dữ liệu), sau đó xây dựng mô hình quan hệ để liên kết chúng. Việc phân tích yêu cầu từ bài toán thực tế của cửa hàng tạp hóa giúp xác định các đối tượng cần quản lý. Từ đó, các bảng dữ liệu được tạo ra để lưu trữ thông tin cho từng đối tượng. Ví dụ, bảng HANGHOA chứa thông tin sản phẩm, bảng NCC chứa thông tin nhà cung cấp, và bảng KHACHHANG dành cho khách hàng. Các bảng giao dịch như PNHAP (Phiếu Nhập) và PXUAT (Phiếu Xuất) ghi lại các hoạt động hàng ngày. Mỗi bảng được thiết kế với các cột (thuộc tính) hợp lý, kiểu dữ liệu phù hợp (char, nvarchar, datetime, money) và các ràng buộc cần thiết như NOT NULL, UNIQUE, CHECK. Giai đoạn tiếp theo là xây dựng mô hình quan hệ thực thể (ERD). Mô hình này trực quan hóa mối liên kết giữa các bảng thông qua các khóa ngoại, đảm bảo tính nhất quán và toàn vẹn dữ liệu. Chẳng hạn, MaNCC trong bảng DONDH là khóa ngoại tham chiếu đến bảng NCC, đảm bảo mỗi đơn hàng đều phải thuộc về một nhà cung cấp có thật.

3.1. Phân tích và xây dựng các bảng dữ liệu cần thiết

Dựa trên yêu cầu, hệ thống bao gồm các bảng chính. Bảng HANGHOA lưu trữ MaHH, TenHH, DvTinh. Bảng NCC (Nhà Cung Cấp) và KHACHHANG có cấu trúc tương tự, lưu thông tin liên hệ. Các bảng nghiệp vụ cốt lõi bao gồm DONDH (Đơn Đặt Hàng) và các bảng chi tiết như CTDONDH. Tương tự, quy trình xuất nhập được quản lý bởi các cặp bảng PNHAP - CTPNHAPPXUAT - CTPXUAT. Đặc biệt, bảng TONKHO được thiết kế để theo dõi số lượng tồn đầu kỳ, tổng nhập, tổng xuất và tồn cuối kỳ của mỗi mặt hàng theo từng tháng, đây là một bảng quan trọng cho việc quản lý tồn kho. Mỗi bảng đều có một khóa chính để định danh duy nhất mỗi bản ghi và các ràng buộc dữ liệu (CHECK) để đảm bảo tính hợp lệ.

3.2. Xây dựng mô hình quan hệ ERD cho toàn hệ thống

Sau khi có các bảng, mô hình quan hệ được thiết lập để thể hiện các mối liên kết logic. Ví dụ, mối quan hệ một-nhiều (1-N) tồn tại giữa NCCDONDH, nghĩa là một nhà cung cấp có thể có nhiều đơn đặt hàng. Tương tự, một đơn đặt hàng có thể bao gồm nhiều mặt hàng, tạo ra mối quan hệ 1-N giữa DONDHCTDONDH. Các ràng buộc khóa ngoại (FOREIGN KEY) được định nghĩa rõ ràng để thực thi các mối quan hệ này. Ví dụ, CTPNHAP.MaHH tham chiếu đến HANGHOA.MaHH, đảm bảo rằng không thể nhập một mặt hàng không tồn tại trong danh mục. Mô hình quan hệ này không chỉ giúp đảm bảo tính toàn vẹn dữ liệu mà còn là cơ sở để viết các truy vấn SQL phức tạp, kết nối thông tin từ nhiều bảng khác nhau để tạo ra các báo cáo hữu ích.

IV. Hướng dẫn cài đặt CSDL trên SQL Server chi tiết nhất

Sau giai đoạn thiết kế, bước tiếp theo là cài đặt cơ sở dữ liệu trên một hệ quản trị cụ thể, trong dự án này là Microsoft SQL Server. Quá trình cài đặt bao gồm việc tạo CSDL, định nghĩa các bảng dựa trên thiết kế, và chèn dữ liệu ban đầu để kiểm thử. Việc sử dụng các câu lệnh T-SQL (Transact-SQL) là phương pháp chính để thực hiện các tác vụ này. Lệnh CREATE DATABASE được dùng để khởi tạo một cơ sở dữ liệu mới, với các tùy chọn cấu hình về kích thước file dữ liệu (.mdf) và file log (.ldf). Tiếp theo, lệnh CREATE TABLE được sử dụng để xây dựng cấu trúc cho từng bảng đã thiết kế. Trong lệnh này, các cột, kiểu dữ liệu, khóa chính (PRIMARY KEY), khóa ngoại (FOREIGN KEY), và các ràng buộc (UNIQUE, CHECK, DEFAULT) được định nghĩa chi tiết. Ví dụ, trong bảng HANGHOA, ràng buộc UNIQUE(TenHH) đảm bảo không có hai sản phẩm nào trùng tên. Việc cài đặt chính xác các bảng và mối quan hệ là yếu tố sống còn, đảm bảo hệ quản trị cơ sở dữ liệu hoạt động đúng như thiết kế và duy trì được tính toàn vẹn dữ liệu trong suốt quá trình vận hành của cửa hàng tạp hóa.

4.1. Quy trình tạo cơ sở dữ liệu và các bảng quan trọng

Quy trình bắt đầu bằng lệnh CREATE DATABASE QLCuaHang. Sau đó, lần lượt các bảng được tạo ra bằng CREATE TABLE. Ví dụ, create table HANGHOA (MaHH char(4) not null, TenHH nvarchar(100) not null, ..., primary key(MaHH)). Các ràng buộc khóa ngoại được thêm vào để liên kết các bảng, ví dụ trong bảng DONDH, foreign key(MaNCC) references NCC(MaNCC). Quy trình này được thực hiện tuần tự cho tất cả các bảng, từ các bảng gốc như HANGHOA, NCC đến các bảng phụ thuộc như CTDONDH, CTPNHAP. Việc tạo bảng dữ liệu cẩn thận và chính xác theo mô hình quan hệ đã thiết kế là bước quan trọng để đảm bảo hệ thống hoạt động ổn định.

4.2. Kỹ thuật chèn dữ liệu mẫu vào các bảng hệ thống

Sau khi tạo xong cấu trúc bảng, dữ liệu mẫu được chèn vào bằng lệnh INSERT INTO. Dữ liệu này có vai trò quan trọng trong việc kiểm tra tính đúng đắn của các ràng buộc, mối quan hệ và các chức năng sau này như View và Trigger. Việc chèn dữ liệu phải tuân theo thứ tự phụ thuộc của các bảng. Ví dụ, phải chèn dữ liệu vào bảng NCCHANGHOA trước khi chèn vào bảng DONDHCTDONDH, vì các bảng sau tham chiếu đến dữ liệu của các bảng trước. Kỹ thuật này giúp phát hiện sớm các lỗi trong thiết kế CSDL và đảm bảo hệ thống sẵn sàng cho việc vận hành thực tế.

V. Bí quyết tối ưu quản trị CSDL bằng View và Trigger

Để nâng cao hiệu quả quản trị cơ sở dữ liệu, việc sử dụng các tính năng nâng cao như View và Trigger là vô cùng cần thiết. Đây không chỉ là công cụ cho lập trình viên mà còn là bí quyết giúp tự động hóa và bảo mật hệ thống quản lý của cửa hàng tạp hóa. View (khung nhìn) là một bảng ảo được tạo ra từ kết quả của một câu lệnh SELECT. Nó giúp đơn giản hóa các truy vấn phức tạp, che giấu cấu trúc thực của các bảng và cung cấp một lớp bảo mật bằng cách giới hạn quyền truy cập của người dùng vào một tập hợp dữ liệu cụ thể. Ví dụ, một View có thể được tạo để hiển thị doanh thu bán hàng trong ngày mà không cần người dùng phải biết cách kết nối các bảng PXUATCTPXUAT. Trong khi đó, Trigger là các thủ tục được thực thi tự động khi có một sự kiện thay đổi dữ liệu (INSERT, UPDATE, DELETE) xảy ra trên một bảng. Trigger là công cụ mạnh mẽ để thực thi các quy tắc nghiệp vụ phức tạp, kiểm tra ràng buộc toàn vẹn mà các ràng buộc thông thường không thể xử lý, và tự động hóa các hành động. Việc kết hợp View và Trigger giúp hệ thống trở nên thông minh, linh hoạt và an toàn hơn.

5.1. Cách thiết kế View để truy vấn dữ liệu hiệu quả

Trong dự án, nhiều View đã được thiết kế để phục vụ các nhu cầu báo cáo khác nhau. Ví dụ, vw_CtietNhapXuat được tạo để hiển thị tổng số lượng nhập và xuất của từng mặt hàng, giúp việc quản lý tồn kho trở nên trực quan. vw_CtietPXuatX003 hiển thị chi tiết một phiếu xuất cụ thể, bao gồm cả tên khách hàng, bằng cách kết hợp dữ liệu từ nhiều bảng. Việc thiết kế View trong SQL giúp người quản trị hoặc các ứng dụng khác có thể lấy thông tin nhanh chóng mà không cần viết lại các câu lệnh JOIN phức tạp mỗi lần. Điều này không chỉ tiết kiệm thời gian mà còn giảm thiểu nguy cơ sai sót trong quá trình truy vấn dữ liệu.

5.2. Ứng dụng Trigger để tự động hóa các ràng buộc CSDL

Trigger đóng vai trò là người gác cổng cho dữ liệu. Ví dụ, tg_HANGHOA_Them được tạo trên bảng HANGHOA để kiểm tra và ngăn chặn việc thêm mới một sản phẩm có tên đã tồn tại. tg_CTPXUAT_Them2 là một trigger quan trọng, nó sẽ kiểm tra số lượng tồn kho trong bảng TONKHO trước khi cho phép một giao dịch xuất hàng diễn ra. Nếu số lượng xuất vượt quá số lượng tồn, giao dịch sẽ bị hủy bỏ và một thông báo lỗi sẽ được hiển thị. Việc cài đặt trigger tự động như vậy giúp đảm bảo logic nghiệp vụ luôn được tuân thủ, ngăn ngừa các tình huống như bán hàng âm kho, và duy trì sự nhất quán của dữ liệu trong toàn bộ hệ quản trị cơ sở dữ liệu.

VI. Kết luận và định hướng phát triển CSDL trong tương lai

Dự án thiết kế và quản trị cơ sở dữ liệu cho cửa hàng tạp hóa đã hoàn thành các mục tiêu cơ bản, xây dựng một hệ thống quản lý tương đối đầy đủ các chức năng. Hệ thống đã giải quyết được các bài toán cốt lõi như quản lý xuất nhập hàng, theo dõi bán hàng, và thống kê doanh thu. Việc áp dụng một CSDL có cấu trúc giúp cửa hàng dễ dàng quản lý hoạt động, giảm thiểu sai sót và tạo nền tảng cho việc phân tích kinh doanh sau này. Các ưu điểm chính của hệ thống là tính hệ thống hóa, khả năng truy xuất nhanh và quản lý tập trung. Tuy nhiên, dự án vẫn còn một số khuyết điểm cần được cải thiện. Mức độ tối ưu hóa của hệ cơ sở dữ liệu chưa triệt để và vấn đề bảo mật dữ liệu vẫn còn ở mức cơ bản. Đây là những điểm quan trọng cần được chú trọng trong các giai đoạn phát triển tiếp theo. Việc không ngừng cải tiến và cập nhật sẽ giúp hệ quản trị cơ sở dữ liệu thực sự trở thành một công cụ đắc lực, hỗ trợ sự phát triển bền vững của cửa hàng tạp hóa trong môi trường kinh doanh số.

6.1. Đánh giá ưu và nhược điểm của hệ thống CSDL đã xây dựng

Ưu điểm nổi bật của hệ thống là khả năng quản lý toàn diện. Các chức năng từ quản lý hàng hóa, nhà cung cấp, đến hóa đơn xuất nhậpquản lý tồn kho đều được tích hợp. Hệ thống có giao diện logic, dễ sử dụng cho người quản lý. Tuy nhiên, nhược điểm cần khắc phục là hệ CSDL chưa được tối ưu hóa cho hiệu suất cao với lượng dữ liệu lớn. Các truy vấn phức tạp có thể chạy chậm. Quan trọng hơn, vấn đề bảo mật dữ liệu chưa được đầu tư đúng mức, có thể tiềm ẩn rủi ro về an toàn thông tin. Việc nhận diện rõ các điểm mạnh và yếu này là cơ sở để đề ra các hướng phát triển phù hợp.

6.2. Các hướng phát triển để hoàn thiện hệ thống quản trị

Để hoàn thiện hệ thống, một số hướng phát triển cần được xem xét. Thứ nhất, cần tập trung vào việc xây dựng bảo mật dữ liệu cao hơn, bao gồm việc phân quyền người dùng chi tiết, mã hóa dữ liệu nhạy cảm. Thứ hai, cần đề ra các phương án sao lưu và phục hồi dữ liệu (backup and recovery) một cách tự động và định kỳ để phòng tránh các sự cố mất mát dữ liệu. Thứ ba, có thể nghiên cứu và áp dụng các kỹ thuật tối ưu hóa truy vấn, đánh chỉ mục (indexing) để cải thiện hiệu suất hệ thống. Về lâu dài, có thể phát triển thêm các module phân tích dữ liệu kinh doanh thông minh (Business Intelligence) để đưa ra các dự báo và gợi ý chiến lược kinh doanh cho chủ cửa hàng.

20/09/2025

Trích đoạn nội dung tài liệu

KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM BÀI TẬP LỚN HỌC PHẦN: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ĐỀ TÀI: THIẾT KẾ VÀ QUẢN TRỊ CƠ SỞ DỮ LIỆU CHO CỬA HÀNG TẠP HÓA Nhóm sinh viên thực hiện: STT Họ tên Mã SV Mã lớp Điểm Cán bộ coi thi, chấm thi 1 Cán bộ coi thi, chấm thi 2 (Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên) HÀ NỘI - 2021 1 NHẬN XÉT CỦA GIÁO VIÊN 2 MỤC LỤC BẢNG PHÂN CÔNG NHIỆM VỤ.5 DANH MỤC BẢNG.6 PHẦN 1: GIỚI THIỆU BÀI TOÁN.7 PHẦN 2: THIẾT KẾ VÀ QUẢN TRỊ CƠ SỞ DỮ LIỆU.7 A-Thiết kế cơ sở dữ liệu.Các bảng dữ liệu.Mô hình quan hệ.11 B-Cài đặt cơ sở dữ liệu.Tạo CSDL của cửa hàng.Tạo bảng Hàng Hóa.Tạo bảng Nhà Cung Cấp.Tạo bảng Đơn Đặt Hàng.Tạo bảng Chi Tiết Đơn Đặt Hàng.Tạo bảng Phiếu Nhập.Tạo bảng Chi Tiết Phiếu Nhập.Tạo bảng Phiếu Xuất.Tạo bảng Chi tiết Phiếu Xuất.Tạo bảng Tồn Kho.Tạo bảng Khách Hàng.16 II-Chèn dữ liệu vào bảng.Bảng Nhà Cung Cấp.Bảng Đơn Đặt Hàng.Bảng Chi Tiết Đơn Đặt Hàng.Bảng Phiếu Nhập.Bảng Chi Tiết Phiếu Nhập.Bảng Phiếu Xuất.Bảng Chi Tiết Phiếu Xuất.Bảng Khách Hàng.19 III-Các lệnh T_SQL.Thiết kế view.44 PHẦN 3: KẾT LUẬN VÀ ĐỀ XUẤT .Trình bày tóm tắt những nội dung nhóm đã làm được.Hướng phát triển.47 TÀI LIỆU THAM KHẢO.48 4 BẢNG PHÂN CÔNG NHIỆM VỤ Sinh viên thực hiện STT Nhiệm vụ Họ tên Mã sinh viên Khảo sát yêu cầu, thiết kế CSDL (các 1 bảng, mô hình quan hệ), viết báo cáo 2 Thiết kế Trigger 3 Thiết kế Procedure 4 Thiết kế View 5 Thiết kế Function 5 DANH MỤC BẢ Bảng 1. 11: Ràng buộc khóa ngoại. 1: Mô hình quan hệ quản lí bán hàng.11 6 PHẦN 1: GIỚI THIỆU BÀI TOÁN - Giới thiệu đơn vị khảo sát: Cửa hàng tạp hóa Nghiệm Thu có ba nhân viên nhưng sau khi dịch Covid bùng phát thì doanh thu cửa hàng sụt giảm. Chủ cửa hàng muốn cắt giảm nhân công để giảm chi phí quản lí nhưng do có quá nhiều sản phẩm nên không thể quản lí được hết thường xuyên xảy ra tình trạng không kịp thời - Các đối tượng sử dụng cơ sở dữ liệu: chủ cửa hàng tạp hóa - Các đối tượng cần lưu trữ: hàng hóa, khách hàng, nhà cung cấp, hóa đơn xuất nhập hàng hóa.

- Các yêu cầu thiết kế và quản trị cơ sở dữ liệu: + Lưu trữ các khách mua hàng thân thiết để có chương trình khuyến mãi thích hợp để kích cầu thị trường, nhà cung cấp, các hóa đơn xuất nhập hàng hóa + Có thông báo khi mặt hàng tồn kho đạt số lượng báo động + Thông báo để điều chỉnh giá bán kịp thời tránh tình trạng lỗ PHẦN 2: THIẾT KẾ VÀ QUẢN TRỊ CƠ SỞ DỮ LIỆU A-Thiết kế cơ sở dữ liệu I.Các bảng dữ liệu Tên Ý nghĩa Kiểu Độ rộng MaHH Mã hàng hóa Char 4 TenHH Tên hàng hóa nVarchar 100 DvTinh Đơn vị tính nVarchar 10 PhanTram Tỷ lệ phần trăm Real Bảng 1. 1: HANGHOA 7 Tên Ý nghĩa Kiểu Độ rộng SoDH Số đơn hàng Char 4 NgayDH Ngày đặt hàng Datetime MaNCC Mã nhà cung cấp Char 3 Bảng 1. 2: NCC Tên Ý nghĩa Kiểu Độ rộng SoDH Số đơn hàng Char 4 NgayDH Ngày đặt hàng Datetime MaNCC Mã nhà cung cấp Char 3 Bảng 1. 3: DONDH Tên Ý nghĩa Kiểu Độ rộng SoDH Số đơn hàng Char 4 MaHH Mã hàng hóa Char 4 SlDat Số lượng đặt Int Bảng 1.

4: CTDONDH Tên Ý nghĩa Kiểu Độ rộng SoPN Số phiếu nhập hàng Char 4 Ngaynhap Ngày nhập hàng Datetime SoDH Số đơn đặt hàng Char 4 Bảng 1. 5: PNHAP 8 Tên Ý nghĩa Kiểu Độ rộng SoPN Số phiếu nhập hàng Char 4 MaHH Mã hàng hóa Char 4 SlNhap Số lượng nhập hàng Int DgNhap Đơn giá nhập hàng Money Bảng 1. 6: CTPNHAP Tên Ý nghĩa Kiểu Độ rộng SoPX Số phiếu xuất hàng Char 4 Ngayxuat Ngày xuất hàng Datetime MaKH Mã khách hàng char 3 Bảng 1. 7: PXUAT Tên Ý nghĩa Kiểu Độ rộng SoPX Số phiếu xuất hàng Char 4 MaHH Mã hàng hóa Char 4 SlXuat Số lượng xuất hàng Int DgXuat Đơn giá xuất hàng Money Bảng 1.

8: CTPXUAT Tên Ý nghĩa Kiểu Độ rộng Namthang Năm tháng Char 6 9 MaHH Mã hàng hóa Char 4 SlDau Số lượng tồn đầu kỳ Int TongSLN Tổng số lượng nhập Int trong kỳ TongSLX Tống số lượng xuất Int trong kỳ SlCuoi Số lượng tồn cuối kỳ Int Bảng 1. 9: TONKHO Tên Ý nghĩa Kiểu Độ rộng MaKH Mã khách hàng Char 3 TenKH Tên khách hàng nVarchar 100 Diachi Địa chỉ nVarchar 100 Dienthoai Điện thoại Varchar 20 Bảng 1. 10: KHACHHANG STT Bảng Cột Bảng tham chiếu 1 DONDH MaNCC NHACC 2 CTDONDH MaHH HANGHOA 3 CTDONDH SoDH DONDH 10 4 PNHAP SoDH DONDH 5 CTPNHAP MaHH HANGHOA 6 CTPNHAP SoPN PNHAP 7 CTPXUAT MaHH HANGHOA 8 CTPXUAT SoPX PXUAT 9 TONKHO MaHH HANGHOA 10 PXUAT MaKH KHACHHANG Bảng 1. 11: Ràng buộc khóa ngoại II.Mô hình quan hệ Bảng 2.

1: Mô hình quan hệ quản lí bán hàng B-Cài đặt cơ sở dữ liệu I-Tạo bảng 1.Tạo CSDL của cửa hàng CREATE DATABASE QLCuaHang ON PRIMARY (NAME=QLCuaHang_Data, FILENAME='D:\QLCuahang_Data.mdf', 11 SIZE=100MB, MAXSIZE=200MB, FILEGROWTH=10MB) LOG ON (NAME=QLCuaHang_Log, FILENAME='D:\QLCuahang_Log.ldf', SIZE=30MB, MAXSIZE=UNLIMITED, FILEGROWTH=5MB) 2.Tạo bảng Hàng Hóa create table HANGHOA ( MaHH char(4) not null, TenHH nvarchar(100) not null, DvTinh nvarchar(10) null, PhanTram real default 20, unique(TenHH), check(Phantram>=0 and PhanTram<=100), primary key(MaHH) ) 3.Tạo bảng Nhà Cung Cấp create table NCC ( MaNCC char(3) not null, TenNCC nvarchar(100) not null, Diachi nvarchar(100) not null, Dienthoai varchar(20) default 'chưa có', 12 primary key(MaNCC), unique(TenNCC,Diachi), ) 4.Tạo bảng Đơn Đặt Hàng create table DONDH ( SoDH char(4) not null, NgayDH datetime default getdate(), MaNCC char(3) null, primary key(SoDH), foreign key(MaNCC) references NCC(MaNCC) ) 5.Tạo bảng Chi Tiết Đơn Đặt Hàng create table CTDONDH ( SoDH char(4) not null, MaHH char(4) not null, SlDat int null, primary key(SoDH,MaHH), check(SlDat>0), foreign key(MaHH) references HANGHOA(MaHH), foreign key(SoDH) references DONDH(SoDH) ) 6.Tạo bảng Phiếu Nhập create table PNHAP 13 ( SoPN char(4) not null, Ngaynhap datetime default getdate(), SoDH char(4) null, primary key(SoPN), foreign key(SoDH) references DONDH(SoDH) ) 7.Tạo bảng Chi Tiết Phiếu Nhập create table CTPNHAP ( SoPN char(4) not null, MaHH char(4) not null, SlNhap int null, DgNhap money null, primary key(SoPN,MaHH), check(SlNhap>0 and DgNhap>0), foreign key(MaHH) references HANGHOA(MaHH), foreign key(SoPN) references PNHAP(SoPN) ) 8.Tạo bảng Phiếu Xuất create table PXUAT ( SoPX char(4) not null, Ngayxuat datetime default getdate(), MaKH char(3) null, 14 primary key(SoPX) ) 9.Tạo bảng Chi tiết Phiếu Xuất create table CTPXUAT ( SoPX char(4) not null, MaHH char(4) not null, SlXuat int null, DgXuat money null, check(SlXuat>0 and DgXuat>0), primary key(SoPX,MaHH), foreign key(MaHH) references HANGHOA(MaHH), foreign key(SoPX) references PXUAT(SoPX) ) 10.Tạo bảng Tồn Kho create table TONKHO ( Namthang char(6) not null, MaHH char(4) not null, SlDau int default 0, TongSLN int default 0, TongSLX int default 0, SlCuoi as SlDau+TongSLN-TongSLX, check(SlDau>=0 and TongSLN>=0 and TongSLX>=0), primary key(Namthang,MaHH), foreign key(MaHH) 15 references HANGHOA(MaHH) ) 11.Tạo bảng Khách Hàng create table KHACHHANG ( MaKH char(3) not null, TenKH nvarchar(100) not null, Diachi nvarchar(100) not null, Dienthoai varchar(20) default 'chưa có', primary key(MaKH), unique(TenKH,Diachi), ) II-Chèn dữ liệu vào bảng 1.Bảng Nhà Cung Cấp 3.Bảng Đơn Đặt Hàng 4.Bảng Chi Tiết Đơn Đặt Hàng 17 5.Bảng Phiếu Nhập 6.Bảng Chi Tiết Phiếu Nhập 7.Bảng Phiếu Xuất 8.Bảng Chi Tiết Phiếu Xuất 18 9.Bảng Khách Hàng III-Các lệnh T_SQL 1.Thiết kế view 1.Thiết kế view vw_CtietNhapXuat. Hiển thị chi tiết nhập xuất của hàng hóa ,các thông tin hiển thị gồm : Mã hàng hóa,Tên hàng hóa,Tổng số lượng nhập,Tổng số lượng xuất của mặt hàng. Thiết kế view vw_CtietPXuatX003. Hiển thị thông tin chi tiết của phiếu xuất X003, các thông tin hiển thị gồm: Mã vâtNtư, số lượng xuất, đơn giá xuất, ngày xuất, tên khách hàng.Thống kê tình hình nhập hàng và đặt hàng của hàng hóa chi tiết với: Số đơn hàng, Mã hàng hóa, Tên hàng hóa,Tổng toàn bộ số lượng đặt và nhập hàng hóa 1.Hiển thị thông tin giá bán của các mặt hàng hóa chi tiết với: Mã hàng hóa, Tên hàng hóa, đơn vị tính , giá bán 1.

Hiển thị thông tin giá mua của các mặt hàng hóa chi tiết với: Mã hàng hóa,Tên hàng hóa,đơn vị tính và giá mua 20 1. Hiển thị các thông tin chi tiết phiếu nhâpNtrong ngày 02/11/2021, các thông tin hiển thị gồm: Số phiếu nhâp, N mã hàng hóa, tên hàng hóa, số lượng nhâp,N đơn giá nhâp,ngày N nhập.Hiển thị danh sách mã hàng hóa, tên hàng hóa của các hàng hóa được nhâpNvào kho nhưng chưa được xuất lWn nào. Tìm phWn trăm số lượng đã đặt hàng của từng vật tư trên tổng cộng các số lượng đã đặt hàng của toàn bộ vật tư. Dữ liệu hiển thị gồm tên vật tư, tổng số lượng đặt theo vật tư, tổng toàn bộ số lượng đặt, phWn trăm.Thống kê số lượng nhập của các mặt hàng hóa trong từng năm tháng tương ứng(không sử dụng tồn kho),thông tin hiển thị gồm: Mã hàng hóa,Tên hàng hóa,Tổng số lượng nhập,thời gian nhập hàng.Thống kê số lượng xuất của các mặt hàng hóa trong từng năm tháng tương ứng(không sử dụng tồn kho),thông tin hiển thị gồm: Mã hàng hóa,Tên hàng hóa,Tổng số lượng xuất,thời gian xuất hàng.Hiển thị thông tin nhà cung cấp có số đơn đặt hàng cao nhất , thông tin hiển thị gồm: Mã nhà cung cấp,Tên nhà cung cấp,Số lWn đã đặt hàng.

Thống kê số lWn mua hàng của khách,thông tin hiển thị :Mã khách hàng,Tên khách hàng,Địa chỉ,Số điện thoại và số lWn đã mua ở cửa hàng. Hiển thị danh sách các khách hàng gồm các thông tin mã khách hàng, tên khách hàng, địa chỉ của những khách hàng chưa có số điện thoại.Thống kê số phiếu xuất theo tháng ,thông tin hiển thị gồm năm xuất, tháng xuất và tổng số phiếu xuất theo tháng 24 1.Thống kê số phiếu nhập theo tháng ,thông tin hiển thị gồm năm xuất, tháng xuất và tổng số phiếu nhập theo tháng 1. In ra danh sách các hàng hóa (MaHH,TenHH) không bán được trong năm 2021. In ra doanh thu của cửa hàng bán được trong năm 2021 25 1.

Hiển thị hàng hóa (MaHH, TenHH) có tổng số lượng bán ra thấp nhất trong năm 2021.Bảng HANGHOA: _ Xây dựng trigger thêm mới dữ liệu vào bảng HANGHOA với tên tg_HANGHOA_Them. Trong đó cWn kiểm tra ràng buộc dữ liệu hợp lệ: Dữ liệu thêm vào phải là duy nhất Create trigger tg_HANGHOA_Them on HANGHOA for insert as begin declare @TenHH nvarchar(100), @dem int select @TenHH=TenHH from inserted select @dem=COUNT(TenHH) from HANGHOA where TenHH=@TenHH if @dem>=2 26 begin print N'Lỗi trùng tên hàng hóa!' rollback tran end end go _ Xây dựng trigger xóa dữ liệu trong bảng HANGHOA với tên tg_HANGHOA_Xoa. Trong đó cWn kiểm tra ràng buộc dữ liệu: Mã hàng hóa này không tồn tại trong bảng CTPXUAT hoặc CTPNHAP, CTDONDH Create trigger tg_HANGHOA_Xoa on HANGHOA for delete as begin declare @MaHH char(4), @dem int select @MaHH=MaHH from deleted select @dem=COUNT(MaHH) from CTPXUAT where MaHH=@MaHH if @dem>=2 begin print N'Dữ liệu về hàng hóa này đang được sử dụng. Không thể xóa!' rollback tran end select @dem=COUNT(MaHH) from CTPNHAP where MaHH=@MaHH if @dem>=2 begin print N'Dữ liệu về hàng hóa này đang được sử dụng.

Không thể xóa!

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ