Xem mẫu

  1. 1 Project mẫu Hệ Thống quản lý thanh tóan đơn đặt hàng Order Payment Managing System Tình trạng hiện tại của hệ thống FriendHood là một công ty chuyên đảm nhiệm việc xử lý đơn đặt hàng và quản lý việc thanh tóan của khách hàng cho một nhà máy sản xuất các vật dụng bằng da rất nổi tiếng Hiện tại, FriendHood vẫn còn quản lý công việc của họ rất thủ công. Họ sử dụng những file riêng lẻ để lưu các chi tiết về khách hàng và đơn đặt hàng. Quy trình họat động của họ như sau: dữ liệu của đơn đặt hàng được điền vào mẫu Order Processing (hình 1) và được dùng để phân tích. Sau đó họ sẽ chuyển các dũ liệu liên quan đến đơn đặt hàng và việc chuyển hàng cho khách từ mẫu trên vào file Orders, còn dữ liệu liên quan đến sản phẩm thì họ lưu vào file Products. Đơn đặt hàng có thể được thanh tóan bằng tiền mặt (cash) hay thẻ tín dụng (credit card). Khi một khách hàng (Customer) thanh tóan, thì file Payments được cập nhật với
  2. 2 các dữ liệu sau: mã thanh tóan (payment code), mã đơn đặt hàng (order code), số tiền đã trả (payment amount), ngày trả, kiểu trả và số thẻ tín dụng, tên người giữ thẻ, ngày hết hạn nếu khách hàng trả tiền qua thẻ tín dụng FriendHood quyết định phải máy tính hóa việc quản lý dữ liệu và xử lý đơn đặt hàng của họ, để tăng tốc việc đáp ứng yêu cầu khách hàng. FriendHood cũng muốn theo dõi cả việc nhân viên nào của họ đã xử lý các đơn đặt hàng của khách Yêu cầu thực hiện: 1. Xây dựng mô hình liên kết thực thể và mô hình quan hệ của CSDL 2. Tạo CSDL với các ràng buộc, rule và các giá trị mặc định thích hợp trong mỗi bảng 3. Tạo các thủ tục và trigger cần thiết 4. Viết 1 số lệnh truy vấn để test các đối tượng có đáp ứng yêu cầu không Viết script chứa các lệnh thực hiện cho mỗi câu trên Tiến độ thực hiện: Tìm hiểu hệ thống Tuần 5 Xây dựng mô hình quan hệ thực Tuần 6,7 thể và mô hình quan hệ Tạo CSDL với các ràng buộc, rule, Tuần 8,9 giá trị mặc định Tạo trigger, thủ tục cần thiết Tuần 10,11 Viết các lệnh truy vấn để kiểm tra Tuần 12,13 tính hợp lệ của các đố tương Viết báo cáo và hòan chỉnh các Tuần 14,15 script
  3. 3 TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỀ TÀI HỆ THỐNG QUẢN LÝ THANH TÓAN ĐƠN ĐẶT HÀNG Môn học : Hệ Cơ sở dữ liệu GV hướng dẫn: Nhóm: 3 - Lớp: Thành viên của nhóm: 1. ............ 2. ........... 3. ........... 4. ........... Năm học 2010 - 2011
  4. 4 Phần I: Thiết kế Cơ sở dữ liệu 1. Tóm tắt hệ thống: FriendHood là một công ty chuyên đảm nhiệm việc xử lý đơn đặt hàng và quản lý việc thanh tóan cho một nhà máy sản xuất các vật dụng đồ da hàng đầu thế giới. Công ty hiện vẫn quản lý mọi việc hòan tòan thủ công từ khâu nhận đơn đặt hàng, xử lý và phân lọai các mặt hàng đã đặt, sau đó theo dõi vịêc thanh tóan của khách, có thể bằng tiền mặt họăc qua thẻ tín dụng …… 2. Nguyên tắc nghiệp vụ: Đưa ra các nguyên tắc nghiệp vụ từ việc tìm hiểu phân tích hệ thống 3. Mô hình liên kết thực thể a. Các kiểu thực thể CÁC THỰC THỂ (ENTITIES) …… b. Các thuộc tính: - Thuộc tính mỗi thực thể, kể cả thuộc tính phức hợp, đa trị,… - Thuộc tính khóa mỗi thực thể
  5. 5 THUỘC TÍNH CỦA CÁC THỰC THỂ (ATTRIBUTES)
  6. 6 c. Mô hình thực thể kết hợp: ….. 4. Mô hình quan hệ: - Chuyển từ mô hình ER thành mô hình quan hệ - Xác định các khóa, các loại ràng buộc - Xác định các phụ thuộc hàm - Chuẩn hóa dữ liệu, chuyển tất cả các bảng sang dạng chuẩn 3NF
  7. 7 CÁC BẢNG (TABLES)
  8. 8 CHUẨN HÓA BẢNG 1. Các bảng đã đạt dạng chuẩn 1NF và 2NF Đưa ra các phụ thuộc hàm của các bảng để chứng minh bảng đã ở chuẩn 2NF 2. Trong bảng Orders, khóa chính là Order-Code. Thuộc tính không khóa Ship- Method ngòai việc phụ thuộc vào khóa chính thì nó còn phụ thuộc cả vào thuộc tính Ship-Method-ID . Order-Code --> Cust-Code, Emp-Code, Order-Dt, ...., Ship-Method-ID, Ship-Method Ship-Method-ID --> Ship-Method Do đó, để bảng Orders đạt 3NF chúng ta cần tạo thêm bảng mới Shipment Methods . 3. Tương tự, trong bảng Payments , thuộc tính Payment-Mode phụ thuộc vào Payment-Mode-ID ngòai việc phụ thuộc vào khóa chính Payment-Code. Bởi vậy chúng ta cần tạo thêm bảng mới Payment Modes. 4. Ngòai ra, thuộc tính Cardholders-Name và CreditCardExpiry-Dt phụ thuộc vào CreditCard-No ngòai việc phụ thuộc vào khóa chính Payment-Code . Bởi vậy, chúng ta cần tạo thêm table Credit Cards . Mô hình sau khi chuẩn hóa sẽ gồm các bảng đạt 3NF như sau :
  9. 9 KHÓA CHÍNH VÀ CÁC KHÓA NGỌAI:
  10. 10
  11. 11 MỐI LIÊN HỆ GIỮA CÁC TABLE Phần 2: Thực thi cơ sở dữ liệu 1. Tạo cơ sở dữ liệu và các bảng: - Cơ sở dữ liệu FriendHood được tạo trong SQL server với 2 tập tin cơ bản là: FriendHood.mdf và FriendHood.ldf ( xem script CreateFriendHoodDatabase.sql)
  12. 12 - Dựa vào yêu cầu hệ thống, các bảng của CSDL này đã được xây dựng như sau: Bảng Customers a. Trường Cust_Id là khóa chính và được tạo tự động b. Các trường FirstName, LastName, Address, City, State, và Phone không nên để trống c. Trường Phone nên có dạng sau 0000-000-000. Bảng Employees a. Trường Emp_Id là khóa chính và được tạo tự động b. Trường Phone nên theo dạng 0000-000-000. c. Trường Title (chức vụ) nên là 1 trong các chức vụ sau: ‘Executive’, ’Senior Executive’, ‘Manager’, ’Chairman’. d. Các trường FirstName và LastName không nên đề trống Bảng Products a. Trường Product_Id là khóa chính và nên có định dạng sau: ‘P[0-9][0-9][0-9]’ b. Trường Unit Price phải lớn hơn 0 c. Các trường còn lại không nên để trống Bảng PaymentMethods a. Trường PaymentMethod_Id là khóa chính và nên có dạng sau ‘PM[0-9][0-9][0-9]’ b. Trường description không nên để trống Bảng ShipmentMethods a. Trường ShipmentMethod_Id là khóa chính và nên có dạng sau :‘SH[0-9][0-9][0-9]’ b. Trường description không nên để trống Bảng Orders a. Trường Order_Id là khóa chính và nên có dạng sau ‘O[0-9][0-9][0-9]’ b. Các trường shipment name, shipment address, shipment city, shipment state, shipment phone, shipment country, shipment date, freight charge, và tax không nên để trống c. Trường phone nên có dạng ‘[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9]’ d. Trường Order date nên có giá trị mặc định lả ngày hiện hành e. Các trường Freight charge (cước phí), Tax (thuế) phải lớn hơn 0 f. Trường Shipment Date không thể sớm hơn trưởng order date. Bảng OrderDetails
  13. 13 a. Trường OrderDetail_Id là khóa chính và được tạo tự động b. Trường quantity (số lượng) và discount (chiết suất) không được để trống c. Trường Total cost được tính tự động d. Trường Quantity phải lớn hơn 0 e. Bảng Orderdetails có khóa ngoại là Order_Id vàa tuân theo quy luật bảo tòan tham chiếu Bảng Payments a. Trường Payment_Id là khóa chính và được tạo tự động b. Trường payment amount phải lớn hơn 0 và bằng tổng của trường total costs của cùng 1 đơn đặt hàng trong bảng OrderDetails table. Nếu không bằng nhau, thi giao dịch này sẽ bị từ chối và sẽ hiển thị báo lỗi cho người dùng c. Trường shipment date phải chậm hơn payment date ( ngày thanh tóan), mặc định là 2 ngày d. Trường payment date phải sau order date (ngày đặt hàng). e. Trường Credit card number (số thẻ tín dụng) nên có định dạng sau ‘[0-9][0-9][0-9]- [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9]’. f. Các trường payment amount và payment date không nên để trống g. Nếu trường payment method là ‘Credit Card’ thì phải bảo đảm được là trường credit card details không được để trống h. Ngày Expiry date (ngày hết hạn) của thẻ tín dụng phải sau ngày hiện hành Bổ sung các constraint, rule và default (nếu có). Lý do tạo ra.. 2. Quy tắc nghiệp vụ và các trigger: 3. Xây dựng các truy vấn: 4. Xây dựng các trigger: Để thể hiện quy tắc nghiệp vụ thứ ….. của công ty, ta cần xây dựng trigger như sau: …….. Script để xây dựng các bảng được ghi lại trong các tập tin sau:  CreateFriendHoodObjects.sql: chứa các lệnh tạo bảng. Nó cũng chứa lệnh insert để thêm 1 vài bản ghi mẫu vào các bảng  CreateFriendHoodConstraints.sql: chứa các constraint, rule và defauft của 1 số bảng.  CreateFriendHoodProcedures.sql: chứa một vài thủ tục và trigger của CSDL  CreateFriendHoodIndexes.sql: chứa các lệnh tạo chỉ mục để tăng tốc thực thi cho 1 số lệnh truy vấn hay dùng
  14. 14  ErrorDetectionForProceduresandTriggers.sql: chứa các lệnh dùng để kiểm tra tính hợp lệ của các đối tượng trong CSDL