- BỘ CÔNG NGHIỆP
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HCM KHOA CÔNG NGHỆ THÔNG TIN
A %
BAO CÁO ĐỎ ÁN MÔN
HỆ CƠ SỞ DỮ LIỆU
TÊN pỏ Án: QUẢN LÝ THƯ VIỆN TRƯỜNG ĐẠI HỌC
TP Hồ Chí Minh, tháng 12 năm 2009
Trang 2Phần I: Thiết kế Cơ sớ dữ liệu quán lý thư viện 1 Tóm tắt hệ thống:
Một trường đại học vừa khánh thành I thư viện hiện đại với nhiều trang thiết bị và phương tiện sử dụng hiện đại
Đối tượng phục vụ của thư viện là giảng viên và sinh viên tồn trường Thơng tin đầy đủ của giảng viên và sinh viên sẽ hiển thị trên màn hình thủ thư khi máy quét thẻ đọc thẻ Sách báo trong
thư viện với đầy đủ các thể loại, đáp ứng nhu cầu phong phú của người đọc, bao gồm sách kinh tế, kỹ thuật, chính trị, ngoại văn, tài liệu luận văn, các tạp chí, báo cáo khoa học
Hình thức mượn cho sinh viên và giảng viên cũng rất phong phú: có thể mượn sách in, báo, tạp chí, đề tài tốt nghiệp sinh viên ra trường, có thể mượn đĩa CD chứa dữ liệu Đồng thời giảng viên, sinh viên có thê tra cứu tại chỗ đề tìm ebook cũng được lưu trữ và phân loại chỉ tiết
Nội quy thư viện cũng nghiêm ngặt.Khi người mượn xuất trình thẻ và sách cần mượn, thủ thư sẽ
cho sách và thẻ qua máy quét (scanner) để đọc mã, truy cập vào Cơ sở dữ liệu, để hiền thị thông
tin đầy đủ về người mượn và sách được mượn Thời hạn mượn tối đa là I tháng Sau 1 tháng nêu
người mượn vẫn muốn mượn tiếp, thì phải đem sách đến thư viện đề gia hạn Nếu quá thời gian quy định thì sẽ bị phát tiền Tiền phạt dựa vào cứ chậm 10 ngày thì phạt số tiền bằng với 1/10 giá
quyền sách bị mượn quá hạn
Mỗi đầu sách thường có nhiều hơn 1 cuốn Người thủ thư cần quản lý hết về số lượng sách báo
hiện tại có trong thư viện, danh sách những người đang giữ sách và mã sách đã được mượn
2 Nguyên tắc nghiệp vụ: ( business rule)
Các loại sách báo, tạp chí trong thư viện đành cho giảng viên, học sinh trong trường Mỗi giảng viên, sinh viên trong trường chỉ được mượn tối đa 2 quyển sách và sau khi trả mới cho mượn sách tiếp hoặc quyên sách đó chưa có giảng viên, sinh viên mượn
Mỗi quyền sách có thời gian mượn tối đa là 1 tháng Nếu quá hạn phải đến thư viện xin gia hạn
thêm, nếu quá thời gian quy định, người mượn sẽ bị phạt tiền Số tiền bị phạt được tính 1/10 giá
trị quyền sách nếu cứ trễ 10 ngày
Với mỗi quyền sách chỉ được viết bởi duy nhất một tác giả Với một tác giả đó thì có thể viết một hoặc nhiều cuốn sách khác nhau
Một quyền sách chỉ thuộc duy nhất một thé loại sách trong kho sách Trong thư viện, mỗi thể loại
được cất giữ với nhiều đầu sách khác nhau cùng một chủ đề
Va một quyên sách như thế chỉ được xuất bản bởi một nhà xuất bản Trong khi đó, một nhà xuất
bản sẽ xuất bản nhiều quyền sách khác nhau thuộc nhiều thê loại khác nhau
3 Mơ hình liên kết thực thế
a Các kiêu thực thê
Trang 3Number of entities: 5 Names of entities: 1 Customers 2 Orders 3 Products 4 Payments 5 Employees b Các thuộc tính: —
Trang 4THUỘC TÍNH CỦA CÁC THỰC THẺ (ATTRIBUTES)
Attributes:
The attributes of the regular entities are:
Trang 5c Mơ hình thực thể kết hợp: | EMPLoYEEs | Se) QD CREDITCARDEXPIRY- OT RDHOLDERS
Trang 6CAC BANG (TABLES)
Number of Tables: 6
Customers [Entity] Orders [Entity] Order Details [Relationship]
Customers Orders Order Details Cust-Code Order-Code OrderDetail-ID First-Name Cust-Code Order-Code
Last-Name Emp-Code Prod-Code Address Order-Dt Quantity Country Ship-Name Discount Zip-Code Ship-Address Total-Cost Phone-No Ship-Country Ship-Phone Ship-Dt Ship-Method-ID Ship-Method Freight-Charge Sales-Tax
The Order Details table is formed because of a many-to-many relationship between the Orders and Products entities
Products [Entity] Payments [Entity] Employees [Entity]
Products Payments Employees Prod-Code Payment- Code Emp-Code Prod-Name Order-Code First-Name
Description Payment-Amount Last-Name Unit-Price Payment-Dt Title
Trang 7CHUAN HOA BANG
1 Các bảng đã đạt dạng chuẩn INF và 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 tinh Ship-Method-ID
Order-Code > Cust-Code, Emp-Code, Order-Dt, , Ship-Method-ID, Ship-Method
Ship-Method-ID > Ship-Method
Do do, dé bang 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 CardholdersName 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
Trang 8KHĨA CHÍNH VÀ CÁC KHÓA NGOAI:
Customers
Primary key: Cust-Code Orders
Primary key: Order-Code
Foreign keys: Cust-Code, Emp-Code, Ship-Method-ID
Order Details
Primary key: OrderDetail-ID
Foreign keys: Order-Code, Prod-Code Shipment Methods
Primary key: Ship-Method-ID
Products
Primary key: Prod-Code Payments
Primary key: Payment-Code
Foreign keys: Order-Code, Payment-Mode-ID Payment Modes
Primary key: Payment-Mode-ID
Employees
Primary key: Emp-Code
Trang 9MOI LIEN HE GIU'A CAC TABLE
Order Details Products
Customers Orders
Field Name Field Name Field Name
Field Name
OrderDetail-ID Prod-Code
cuat-Cad ust-Code Order-Code Be
Order-Code Prod-Name Cust-Code First-Name ¬ 4 Prod-Cede Description Emp-Code Last-Name Quantity Unit-Price Order-Dt Address Discount Ship-Name Country Total-Cost Ship-Address Zip-Code Ci ng Ship-Cauntry Shipment Methods Ship-Phone Field Name Ship-Dt Ship- Ship-Method-ID TM meuosrp Ship-Method Freight-Charge Payments Sales-Tax Employees Field Name Field Name Payment-Code Emp-Code Order-Code > First-Name Payment-Amount Last-Name Payment-Dt Title Pi M Payment-Mode-ID Ti Phone-No CreditCard-No Lites Payment- CardHolders-Narme Mode-TD
CreditCardExpiry-Dt Pavenent: ode
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ở đữ liệu FriendHood được tạo trong SQL server với 2 tập tin cơ bản là: FriendHood.mdf và
EriendHood.Idf ( 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:
Trang 10a Trường Cust_Id là khóa chính và được tạo tự động | b Cac truong FirstName, LastName, Address, City, State, va Phone không nên đê trông
c Truong 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à l 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 Truong PaymentMethod_Id 1a 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 Truong ShipmentMethod_Id 1a 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 Truong 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, va tax khong nén dé 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
Truong OrderDetail_Id là khóa chính và được tạo tự động
Truong quantity (sé lượng) và discount (chiết suất) không được để trống Trường Total cost được tính tự động
Trường Quantity phải lớn hơn 0
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
°
eo
Trang 11Bảng Payments
® Trường Payment_Id là khóa chính và được tạo tự động
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 I đơn
đặt hàng trong bảng OrderDetails table Nếu không bằng nhau, thi giao địch này sẽ bị từ
chối và sẽ hiển thị báo lỗi cho người dùng
Trường shipment date phải cham hon payment date ( ngay thanh tóan), mặc định là 2 ngày Truong payment date phai sau order date (ngay dat hang)
Truong Credit card number (sé thẻ tín dụng) nên co dinh dang sau “[0-9][0-9][0-9]-[0-9][0-
9][0-9][0-9]-[0-9][0-9][0-9]’
Cac truéng payment amount va payment date khéng nén dé tréng
Nếu trường payment method là ‘Credit Card’ thi phải bảo đảm được là trường credit card
details không được để trống
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
2 Quy tắc nghiệp vụ và các trigger:
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 I 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 dé tang tốc thực thi cho 1 số
lệnh truy vân hay dùng