Tải bản đầy đủ (.doc) (39 trang)

Bài tập lớn SQL - Hệ thống quản lý thư viện

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.45 MB, 39 trang )

Bài tập lớn SQL Nhóm 10
2009
Lời cảm ơn
Lời đầu tiên cho chúng em xin chân thành cảm ơn Cô giáo: Nguyễn
Phương Nga đã giảng dạy và cung cấp cho chúng em những kiến thức quý báu
về bộ môn SQL Sever2000 đồng thời tạo điều kiện để chúng em hoàn thành bài
tập lớn môn SQL Sever2000.
Nhưng do thời gian và kiến thức còn hạn chế nên bài tập của chúng em
còn nhiều thiếu sót. Chúng em rất mong được sự góp ý của Cô giáo và các bạn
để bài tập của chúng em đợc hoàn thiện tốt hơn.
Chúng em xin chân thành cảm ơn!
Nhóm Sinh Viên Thực hiện:
Vũ Đình Lương
NguyễnTrọng Việt
Dương Văn Thành
Trần Văn Linh
1 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
MỤC LỤC
Lời cảm ơn 1
LỜI GIỚI THIỆU 3
Giới Thiệu SQL Server 2000 4
Phần I: Khảo sát hiện trạng và xác lập dự án 4
1. Khảo sát bài toán 5
2. Mô tả mô hình hoạt động Quản lý thư viện : 6
Phần II: Phân tích bài toán và xây dựng cơ sở dữ liệu 11
1. Mô hình phân cấp chức năng của hệ thống 11
2. Mô hình luồng dữ liệu mức khung cảnh 11
3. Xây dựng cơ sở dữ liệu cho hệ thống: 12
3.1: Dữ liệu của các bảng trong hệ thống: 12


3.2: Mô hình liên kết của các bảng (Diagrams 16
4. Thực hiện các truy vấn, thủ tục, hàm, trigger 16
4.1. Thực hiện các truy vấn: 17
4.2 Tạo các hàm để thống kê: 21
4.3 Tạo các thủ tục lưu trữ và sử dụng các thủ tục đó để thống kê 26
4.4 Sử dụng trigger: 32
PHẦN III: KẾT LUẬN 38
2 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
LỜI GIỚI THIỆU
Ngày nay, sách báo trở thành công cụ và phương tiện chuyển giao tri thức, là
công cụ học tập cần thiết cho sinh viên. Sách báo là nguồn thông tin chủ yếu để thỏa
mãn nhu cầu học tập, giảng dạy và nghiên cứu. Vì vậy, việc tổ chức và khai thác tốt
nguồn thông tin sách báo có ảnh hưởng quyết định tới chất lượng đào tạo bộ phận
nhân lực khoa khọc kỹ thuật cho đất nước.
Đứng trước những nhiệm vụ to lớn trong công cuộc đổi mới phương pháp dạy
và học của nhà trường, hệ thống trung tâm thư viện các trường học càng trở thành một
bộ phận trọng yếu không thể thiếu được trong nhà trường, giúp sinh viên tiếp cận và
khai thác nguồn thông tin đa dạng, phong phú. Vì vậy việc quản lý thư viện cũng
không kém phần quan trọng đặc biệt là việc quản lý sách trong kho, quản lý việc mượn
trả cho sinh viên. Hằng ngày một số lượng lớn sách trong các thư viện được sử dụng
nên việc quản lý sách là rất khó khăn. Do nhu cầu của chúng ta ngày càng tăng nên
việc quản lý sách trong các thư viện lại càng khó khăn hơn.
Hệ thống quản lý thư viện được thiết kế sau đây sẽ phần nào giải quyết khó
khăn trên. Hệ thống còn hỗ trợ các chức năng thông dụng mà nhiệm vụ của thủ thư
hay làm và hỗ trợ việc lưu trữ dữ liệu sách. Việc quản lý sách sẽ tốt hơn, nhanh hơn,
chính xác và an toàn hơn. Mặc dù rất cố gắng để hoàn thành công việc, xong thời gian
có hạn và kinh nghiệm kiến thức chưa nhiều nên việc phân tích thiết kế còn có nhiều
thiếu xót cần được bổ xung. Vì vậy, nhóm thực hiện đề tài mong nhận được ý kiến

đóng góp của thầy cô và bạn bè để đề tài ngày càng hoàn thiện hơn. Cuối cùng thay
cho lời kết, chúng em xin chân thành cảm ơn cô giáo đã tận tình giúp đỡ, hướng dẫn,
sửa chữa trong quá trình thực hiện đề tài này.
3 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
Giới Thiệu SQL Server 2000
SQL Server 2000 là một hệ thống quản lý cơ sở dữ liệu (Relational Database
Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu giữa
Client computer và SQL Server computer. Một RDBMS bao gồm databases, database
engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong
RDBMS.
SQL Server 2000 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn
(Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho
hàng ngàn user. SQL Server 2000 có thể kết hợp "ăn ý" với các server khác như
Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server
SQL Server có 7 editions:
• Enterprise : Chứa đầy đủ các đặc trưng của SQL Server và có thể chạy tốt trên
hệ thống lên đến 32 CPUs và 64 GB RAM. Thêm vào đó nó có các dịch vụ
giúp cho việc phân tích dữ liệu rất hiệu quả (Analysis Services)
• 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.
• Personal: được tối ưu hóa để chạy trên PC nên có thể cài đặt trên hầu hết các
phiên bản windows kể cả Windows 98.
• 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à edition mà các bạn muốn học SQL Server cần có. Chúng ta sẽ dùng
edition này trong suốt khóa học. Edition này có thể cài trên Windows 2000

Professional hay Win NT Workstation.
• Desktop Engine (MSDE): Ðây chỉ là một engine chạy trên desktop và không
có user interface (giao diện). Thích hợp cho việc triển khai ứng dụng ở máy
client. Kích thước database bị giới hạn khoảng 2 GB.
• Win CE : Dùng cho các ứng dụng chạy trên Windows CE
• Trial: Có các tính năng của Enterprise Edition, download free, nhưng giới hạn
thời gian sử dụng.
Phần I: Khảo sát hiện trạng và xác lập dự án
4 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
1. Khảo sát bài toán
Qua quá trình khảo sát thực tế thư viện trường ĐHCN Hà Nội chúng em thu
được một số nội dung sau:
Mô hình quản lý thư viện của trường Đại học công nghiệp Hà Nội
Thư viện trường ĐHCNHN bao gồm 3 phòng riêng có chức năng khác nhau:
Ban quản lý thư viện: Là người điều hành mọi hoạt dộng trong thư viện và là
người lập kế hoạch điều hành kiểm tra hoạt dộng của thư viện.
Phòng đọc sách tại chỗ: Là nơi cho học sinh- sinh viên mượn sách đọc ngay tại
thư viện. Những thông tin chi tiết về độc giả cũng như sách mà độc giả mượn đều
được lưu lại trong quyển"Nhật ký sách mượn hàng ngày" nhằm tránh tình trạng mất
sách.
Phòng mượn sách về nhà: Là nơi cho học sinh- sinh viên, cán bộ công nhân viên
mượn sách mang về nhà. Nếu đối tượng mượn sách là cán bộ công nhân viên trong
trường thì mỗi lần mượn sách về nhà những thông tin về sách mượn sẽ được lưu trong
quyển"Sổ mượn". Mỗi một cán bộ công nhân viên trong nhà trường có một quyển"Sổ
mượn" riêng. Thời gian mượn sách của những cán bộ công nhân viên trong nhà
trường không giới hạn, chỉ khi nào có giấy đòi sách của nhà trường mới phải gửi lại
sách(trường hợp này chỉ xảy ra khi thời gian mượn đã quá lâu, có thể lên tới vài năm
5 Trường ĐHCN Hà Nội Khoa CNTT

Phòng đọc
sách tại chỗ
Phòng mượn
sách về nhà
Phòng báo
tạp chí
Ban quản lý thư viện
Bài tập lớn SQL Nhóm 10
2009
hoặc vài chục năm). Nếu đối tượng là học sinh-sinh viên khi mượn sách sinh viên
cũng phải điền đầy đủ thông tin vào "Sổ mượn" của lớp mình và đây cũng là quyển sổ
chung cho nhiều lớp cùng thuộc một khoa nào đó. Bên cạnh đó nhằm tránh tình trạng
học sinh- sinh viên mượn sách không trả, nhà trường thống nhất với tổ chức thư viện:
Khi mượn sách học sinh- sinh viên phải đặt cược một số tiền tương ứng với giá thành
của quyển sách cần mượn. Số tiền này sẽ được hoàn trả cho độc giả khi độc giả trả
sách. Thời gian mượn sách của học sinh- sinh viên không hạn chế. Bạn có thể mượn
sách cho đến khi nào học xong và phải đặt cọc tiền quyển sách đó cho thư viện. Điều
đáng chú ý là bạn chỉ có thể mượn quyển sách khác khi bạn không mượn thư viện bất
kì quyển sách nào khác.
Phòng báo, tạp chí: Là nơi học sinh-sinh viên mượn báo, tạp chí đọc ngay tại
phòng báo, tạp chí của thư viện. Qua kháo sát thực tế phòng báo, tạp chí trường
ĐHCNHN chúng tôi thấy khó có thể áp dụng tin học vào quản lý được do hàng tuần số
lượng báo, tạp chí ngày càng tăng lên, khả năng sử dụng nhằm để học tập nghiên cứu
là rất ít không cần thiết. Nên trong phần mềm này chúng tôi không đề cập tới việc viết
phần mềm quản lý cho phòng báo, tạp chí.
2. Mô tả mô hình hoạt động Quản lý thư viện
6 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
Mô tả bài toán thực tế:

Mô hình tiến trình hoạt động của hệ thống Quản lý thư viện.
7 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
Từ mô hình tiến trình nghiệp vụ của hệ thống ta xây dựng được mô hình hoạt động
quản lý thư viện như sau:
Mỗi học sinh- sinh viên khi có nhu cầu đọc và mượn sách của thư viện phải làm
đơn xin cấp thẻ thư viện. Trong thẻ thư viện có các thông tin về độc giả: mã thẻ, họ
tên, ảnh của độc giả, ngày sinh, quê quán, lớp, khoa, khoá học. Thông tin về độc giả
cùng mã thẻ và chi tiết các lần mượn trả sách đều được lưu trữ lại.
Tại thư viện, khi sách được nhà xuất bản, công ty phát hành sách chuyến đến theo
"Đơn đặt mua sách "của thư viện, nhân viên thư viện có nhiệm vụ kiểm tra lại đơn
hàng và hoá đơn thanh toán để xác định lại những thông tin về số lượng, đơn giá của
hoá đơn là đúng. Sau đó thông tin về sách nhập cũng như số lượng sách, đơn giá sách,
nhà xuất bản hay công ty phát hành sách sẽ được lưu lại tại Biên bản nhập sách. Sau
đó nhân viên thư tiến hành dán Mã Sách cho sách mượn sau đó đưa sách vào sử dụng.
Thông tin về các sách sẽ được cập nhật khi nhập sách mới, huỷ sách không còn sử
dụng được nữa. Các sách được phân loại theo những thể loại khác nhau và được phân
chia ra làm hai phòng : phòng đọc tại chỗ và phòng mượn về nhà tuỳ ý theo nhu cầu về
sách của từng phòng để đảm bảo có đủ sách cho đọc giả mượn. Độc giả có thể tra cứu
các thông tin về sách cần mượn theo: tên sách, tác giả, lĩnh vực, nhà xuất bản trước khi
mượn sách, để có thể điền đầy đủ thông tin về độc giả cũng như sách cần mượn trong
Phiếu yêu cầu mượn sách.
Khi có nhu cầu mượn sách, đọc giả cần đưa Phiếu yêu cầu mượn sách của mình
cho các nhân viên thư viện. Phiếu yêu cầu có các thông tin: mã thẻTV, tên độc giả,
tên sách mượn, ngày mượn. Nhân viên thư viện sẽ tiến hành kiểm tra xem đọc giả có
thể mượn hay không và còn sách để đáp ứng không?. Nếu thoả mãn yêu cầu mượn độc
giả sẽ được mượn sách và nhận sách. Thông tin về độc giả mượn sách cũng như thông
tin về sách mượn sẽ được lưu trong Phiếu theo dõi mượn-trả. Phiếu theo dõi mượn-
trả sách bao gồm hai phần giống nhau trong đó có lưu các thông tin về sách mượn và

độc giả mượn đồng thời có lưu cả số lượng, số tiền mà độc giả cược sách. Phần cuống
phiếu thư viện giữ, phần còn lại độc giả giữ để khi nào độc giả trả sách thư viện sẽ
kiểm tra và trả lại số tiền đặt cược sách cho độc giả.
8 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
Khi độc giả trả sách, nhân viên thư viện sẽ kiểm tra phần kia của phiếu theo dõi
mượn trả sách do độc giả giữ. Nếu thông tin chính xác nhân viên thư viện nhận lại
sách và trả lại độc giả số tiền mà họ đã đặt cược cho sách mượn.
Cuối tháng, thư viện thống kê tình hình mượn trả sách. Cứ sáu tháng thư viện tổng
kết và đánh giá phụ thuộc vào số đầu sách và số lượng độc giả được phục vụ. Liệt kê
theo thứ tự các sách có số lần mượn để có kế hoạch bổ xung hay huỷ bỏ sách nếu
không có người đọc.
Chú ý:
Nếu đối tượng mượn sách là cán bộ công nhân viên trong trường thì mỗi lần
mượn sách về nhà những thông tin về sách mượn sẽ được lưu trong quyển "Sổ mượn".
Mỗi một cán bộ công nhân viên trong nhà trường có một quyển "Sổ mượn" riêng và
được mượn không quá 5 đơn vị tài liệu và giữ trong sổ mượn không quá 10 đơn vị tài
liệu. Thời gian mượn sách tối đa là 1 tháng, đối với tài liệu giáo trình được mượn trong
suốt quá trình giàng dạy môn học đó.
Nếu đối tượng là học sinh-sinh viên khi mượn sách sinh viên cũng phải điền đầy
đủ thông tin vào "Sổ mượn" của lớp mình và đây cũng là quyển sổ chung cho nhiều
lớp cùng thuộc một khoa nào đó. Mỗi buổi mượn chỉ được mượn sách 1 lần (mượn
không quá 2 đơn vị tài liệu) và trong sổ không quá 6 đơn vị tài liệu. Thời gian mượn
không quá 10 ngày. Tài liêụ là giáo trình được mượn trong suốt thời gian học môn đó
kết thúc môn học phải trả ngay. Bên cạnh đó nhằm tránh tình trạng học sinh- sinh viên
mượn sách không trả Ban quản lý thư viện có đưa ra quy định: Khi mượn sách học
sinh- sinh viên phải đặt cược một số tiền tương ứng với giá thành của quyển sách cần
mượn. Số tiền này sẽ được hoàn trả cho độc giả khi độc giả trả sách. Nếu mượn quá
hạn từ 1-5 ngày phạt 2.000đ/1 đơn vị tài liệu, từ 6 ngày trở lên phạt thêm 5.000đ/1 đơn

vị tài liệu. Khi trả sách, độc giả mới được mượn sách tiếp và được trả lại tiền đặt cược
sách mượn lần trước. Khi mượn sách bằng cách đặt cược tiền, độc giả được mượn
trong thời gian nhất định.
Cứ đến cuối năm học, nhân viên thư viện kiểm tra lại việc mượn trả sách của độc
giả, đặc biệt là những độc giả sắp ra trường. Nếu có độc giả nào đó chưa trả sách thư
viện sẽ làm một giấy nhắc trả sách cho độc giả đó biết để trả lại sách cho thư viện. Nếu
9 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
độc giả vẫn không mang trả sách thư viện sẽ bị treo bằng 1 năm. Sau 1 năm đọc giả sẽ
nhận được bằng khi có chữ ký thanh toán của thư viện.
Mỗi khoa chỉ được mượn 2 ngày trong một tuần theo lịch của thư viện để tránh
tình trạng nhầm lẫn về việc mượn và trả sách.
Nếu việc mượn sách là cần thiết cho môn học mà chưa đến kỳ khoa mình được
mượn sách, học sinh-sinh viên có thể điền vào phiếu mượn sách theo lớp.
Khi trả sách nếu là sách quá hạn thì phải nộp tiền phạt, số tiền phạt cho từng
cuốn được tính bằng 10%(giá sách x số ngày quá hạn). Thông tin về sách trả sẽ được
cập nhật vào danh sách mượn trả.
10 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
Phần II: Phân tích bài toán và xây dựng cơ sở dữ liệu
1. Mô hình phân cấp chức năng của hệ thống
Sơ đồ phân cấp chức năng
2. Mô hình luồng dữ liệu mức khung cảnh.
Mô hình luồng dữ liệu mức khung cảnh cho ta một cái nhìn tổng quát về hoạt
động của hệ thống, ở đây ta có thể thấy được từng đối tượng ảnh hưởng như thế nào
đến hoạt động của hệ thống.
11 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10

2009
3. Xây dựng cơ sở dữ liệu cho hệ thống:
3.1: Dữ liệu của các bảng trong hệ thống:
Dữ liệu bảng Sách:
12 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
Dữ liệu bảng Nhân Viên:
Dữ liệu bảng Nhà Xuất Bản:
Dữ liệu bảng Độc Giả:
13 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
Dữ liệu bảng Lĩnh Vực:
Dữ Liệu bảng Khoa:
Dữ liệu bảng Phiếu Mượn:
14 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
Dữ liệu bảng Chi Tiết Phiếu Mượn:
Dữ liệu bảng Tác Giả:
15 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
3.2: Mô hình liên kết của các bảng (Diagrams
4. Thực hiện các truy vấn, thủ tục, hàm, trigger
16 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
4.1. Thực hiện các truy vấn:

Sau đây chúng em xin đưa ra một số truy vấn tiêu biểu:
Truy vấn về thông tin các độc giả, sách, nhà xuất bản, nhân viên…
Truy vấn về thông tin sách:
Truy vấn về thông tin tác giả:
Truy vấn về thông tin độc giả:
17 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
Truy vấn về cho biết thông tin về nhà xuất bản có mã nhà xuất bản tùy ý:
Truy vấn cho biết thông tin về độc giả, địa chỉ ở lớp nào và mượn sách gì?
18 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
Truy vấn cho biết 5 đầu sách có số lượng mượn nhiều nhất và số lượng mượn là bao
nhiêu?
Truy vấn cho biết phiếu mượn có mã PM007 do ai lập và đưa ra thông tin về sách ghi
trong phiếu mượn đó.
19 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
Truy vấn gom nhóm sách, những sách này được mượn vào tháng nào và số
lượng mượn là bao nhiêu?
Truy vấn thống kê số lượng mượn sách theo từng phiếu mượn và tổng số lượng
sách mà thư viện đã cho mượn.
20 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
Truy vấn cho biết độc giả mượn sách gì và tính số tiền độc giả phải đặt cọc và
tổng tiền thư viện thu được.
Tạo bảng ảo cho biết 5 đầu sách được mượn nhiều nhất và số lượng mượn là bao

nhiêu?
4.2
Tạo
các
hàm
để
thống kê:
21 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
Hàm tạo bảng và đưa ra danh sách sách của nhà xuất bản có mã “nxb001” cung
cấp cho thư viện và một số các thông tin liên quan:
Hàm trả về một bảng thống kê số lượt sách thư viện đã cho mượn của mỗi đầu
sách và cho biết số lượng mượn đó là bao nhiêu?
22 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
Hàm trả về một bảng cho biết mỗi nhà xuất bản đã cung cấp bao nhiêu đầu sách
cho thư viện?
Hàm trả về một bản cho biết nhà xuất bản có mã “nxb001” cung cấp bao nhiêu
đầu sách cho thư viện:
23 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
Hàm trả về một bảng cho biết số lượng mượn của mỗi đầu sách. Sử dụng hàm
này để thống kê sách(hiện có và đã mượn và số lượng còn lại) của mỗi đầu sách.
24 Trường ĐHCN Hà Nội Khoa CNTT
Bài tập lớn SQL Nhóm 10
2009
Hàm trả về một bảng cho biết trong tháng 9 năm 2009 có độc giả nào mượn

sách và mượn sách gi? Số tiền họ phải thanh toán là bao nhiêu?
25 Trường ĐHCN Hà Nội Khoa CNTT

×