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à
Trang 1Project 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 các dữ liệu sau: mã thanh tóan (payment code), mã đơn đặt hàng (order code), số tiền
Trang 2đã 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:
Xây dựng mô hình quan hệ thực
thể và mô hình quan hệ
Tuần 6,7
Tạo CSDL với các ràng buộc, rule,
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
tính hợp lệ của các đố tương
Tuần 12,13
Viết báo cáo và hòan chỉnh các
script
Tuần 14,15
Trang 3TRƯỜ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 .
Trang 4Năm học 2010 - 2011
Trang 5Phầ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ể
Trang 6THUỘC TÍNH CỦA CÁC THỰC THỂ (ATTRIBUTES)
Trang 7c 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
Trang 8CÁC BẢNG (TABLES)
Trang 9CHUẨ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 :
Trang 10KHÓA CHÍNH VÀ CÁC KHÓA NGỌAI:
Trang 12Phần 2: Thực thi cơ sở dữ liệu
1 Tạo cơ sở dữ liệu và các bảng:
Trang 13- 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)
- 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
Trang 14Bảng OrderDetails
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
Trang 15 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
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