MỤC LỤC
PHẦN 1: MƠ TẢ BÀI TỐN QUẢN LÝ THƯ VIỆN.......................................................3
1. Thực trạng thư viện hiện nay.........................................................................................3
2. Quy trình hoạt động của thư viện..................................................................................4
3. Các yêu cầu cụ thể.......................................................................................................11
PHẦN 2: THIẾT KẾ CSDL QUAN NIỆM........................................................................12
1 . Xác định các thực thể.................................................................................................12
2. Xác định các thuộc tính và gắn với thực thể...............................................................12
3. Xác định các mối liên kết, thuộc tính trên mỗi liên kết...............................................12
4. Mơ hình thực thể liên kết ER......................................................................................14
PHẦN 3: THIẾT KẾ CSDL LOGIC.................................................................................15
1. Mơ hình CSDL quan hệ...............................................................................................15
PHẦN 4: CÂU LỆNH TRUY VẤN...................................................................................16
1. Khởi tạo bảng..............................................................................................................16
2. Nhập dữ liệu................................................................................................................19
3. Truy vấn dữ liệu...........................................................................................................27
5. Tạo khung nhìn............................................................................................................43
6. Tạo chỉ mục.................................................................................................................46
PHẦN 1: MƠ TẢ BÀI TỐN QUẢN LÝ THƯ VIỆN
1. Thực trạng thư viện hiện nay
Thơng qua q trình nghiên cứu tìm hiểu thơng tin cũng như khảo sát trực tiếp tại
các thư viện lớn và nổi tiếng ở Hà Nội, ta có thể nhận thấy các khâu quản lý mượn trả
sách, quản lý độc giả, thủ thư, nhà cung cấp tại thư viện còn nhiều tồn đọng cần được giải
quyết.
Thư viện chúng em tiến hành khảo sát là một thư viện có tên Trí Nhàn quy mơ
trung bình phục vụ chủ yếu cho đối tượng là sinh viên và người đi làm có niềm đam mê
đọc sách. Thư viện gồm 3 tầng với diện tích khoảng 200m . Khơng gian đọc sách được
thiết kế theo phong cách hiện đại, thoáng mát, yên tĩnh với 50 chỗ ngồi phục vụ cho độc
giả đọc tại chỗ. Nguồn tài liệu phong phú với hơn 2.000 đầu sách khác nhau thuộc đủ thể
loại cho độc giả thoải mái lựa chọn. Tài liệu được bố trí trên các giá sách bao quanh
phịng: tầng 1 gồm hơn 600 đầu sách kinh tế, khoa học đời sống, báo và tạp chí, âm nhạc
hội họa; tầng 2 gồm 700 đầu sách tin học, ngoại ngữ, từ điển các loại; tầng 3 với gần 700
đầu sách chính trị xã hội, văn học nước ngoài, văn học trong nước, ...
2
Kho sách lớn và thường xuyên được bổ sung, cập nhật nguồn lực thông tin để đáp
ứng nhu cầu nghiên cứu, học tập cũng như giải trí của độc giả. Khi đó, vấn đề tổ chức xử
lý, phân loại, sắp xếp các đầu sách; lưu trữ thông tin về nhà cung cấp và bảo quản, quản lý
tài liệu tốn rất nhiều thời gian và cơng sức để hồn thành và có thể dẫn đến nhiều sai sót
trong mỗi khâu.
Hàng ngày, lượng độc giả đến thư viện đọc sách cũng như mượn trả sách tương đối
lớn, trung bình khoảng 100 lượt/ngày. Công tác quản lý việc mượn trả sách thủ công dùng
công cụ excel gây quá tải, không thuận tiện cho độc giả khi phải tự tìm nhiều cuốn sách
đồng thời có thể dẫn đến nhầm lẫn khơng đáng có. Danh mục sách thường xuyên thay đổi
rất khó để cập nhật kịp thời, đảm bảo cung cấp thông tin cho độc giả. Vấn đề quản lý và
lưu trữ thông tin của độc giả cũng gặp nhiều bất cập và khó nắm bắt.
Việc thống kê, tổng hợp bảng biểu báo cáo gặp nhiều khó khăn khi phải tự tìm lại và
tổng hợp dữ liệu cũ cũng như lập báo cáo một cách thủ công tốn nhiều thời gian, điều này
không đảm bảo cung cấp thơng tin được kịp thời, chính xác, đầy đủ, dễ hiểu dẫn đến sự chậm
trễ, kém hiệu quả của nhà quản lý trong việc xây dựng kế hoạch dài hạn và ngắn hạn, tổ chức
điều phối và ra chiến lược xây dựng toàn bộ hệ thống thư viện.
Với sự phát triển không ngừng cùng xu thế ứng dụng cơng nghệ thơng tin trong
quản lý hiện nay, thì việc nâng cao chất lượng quản lý thư viện bằng việc ứng dụng công
nghệ hiện đại là hồn tồn hợp lý và vơ cùng cần thiết, giúp cho công tác quản lý trở nên
khoa học, đạt hiệu quả cao và thuận tiện hơn nhiều so với việc làm thủ công trên Excel
bằng giấy tờ.
2. Quy trình hoạt động của thư viện
*Quy trình nhập sách:
Khi cần bổ sung thêm sách, thủ thư sẽ lập danh sách những sách cần mua tiến hành
đặt sách. Khi nhà xuất bản gửi sách tới, thủ thư kiểm tra xem sách có đảm bảo u cầu
khơng, nếu đảm bảo thì mới nhận sách, nếu khơng đảm bảo sẽ u cầu trả lại sách cho nhà
xuất bản. Sau đó thủ thư tiến hành cập nhật thông tin cho các loại sách, đánh dấu và sắp
xếp sách cho thuận tiện để độc giả mượn.
*Quy trình mượn trả sách:
Khi độc giả có nhu cầu mượn sách, thủ thư sẽ tiếp nhận yêu cầu cũng như thẻ thẻ
thư viện và sách độc giả muốn mượn. Sau đó, thủ thư sẽ tiến hành kiểm tra tính hợp lệ của
thẻ (hạn sử dụng). Nếu thẻ đã hết hạn, thủ thư sẽ yêu cầu độc giả gia hạn thêm cho thẻ.
Sau khi hoàn tất gia hạn thẻ, thủ thư sẽ tiến hành lập phiếu mượn sách và cập nhật thơng
tin vào hệ thống.
*Quy trình trả sách
Khi khách hàng trả tài liệu, thủ thư sẽ tiếp nhận yêu cầu nhận phiếu mượn sách và
tài liệu. Sau đó thủ thư sẽ kiểm tra thông tin trong hệ thống và kiểm tra tình trạng sách.
Quá trình kiểm tra nếu có hư hỏng sẽ yêu cầu cầu khách hàng bồi thường theo quy định.
Ngược lại, thủ thư sẽ cập nhật trả sách cho phiếu mượn và lưu thông tin vào hệ thống.
Quy trình nhập sách
Cơng việc
Kiểu
Gửi u cầu nhập Thủ cơng và
sách đến nhà xuất trên hệ thống
bản
Người
thực hiện
Mô tả chi tiết
Thủ thư
Đầu vào: Thủ thư rà soát, lựa chọn
các đầu sách gần nhập
Thực hiện: Thêm thông tin vào hệ
thống, gửi yêu cầu nhập sách đến
nhà xuất bản
Đầu ra: Danh sách sách cần nhập
Kiểm tra sách
Thủ công
Thủ thư
Đầu vào: Sách nhập từ nhà xuất abnr
Thực hiện: Kiểm tra số lượng, chất
lượng sách
Đầu ra: Sách có đạt u cầu hay
khơng
Gửi u cầu trả Hệ thống
sách cho nhà xuất
bản
Thủ thư
Đầu vào: Sách nhập không đạt yêu
cầu
Thực hiện: Gửi yêu cầu trả sách cho
nhà xuất bản
Đầu ra: Yêu cầu nhà xuất bản đổi
sách nhập
Cập nhật thông tin Hệ thống
sách mới
Thủ thư
Đầu vào: Sách nhập đạt yêu cầu
Thực hiện: Cập nhật thông tin sách
mới vào cơ sở dữ liệu
Đầu ra: Danh mục sách đã nhập
Quy trình mượn sách
Công việc
Kiểu
Người
thực hiện
Mô tả chi tiết
Nhận yêu cầu mượn
sách từ độc giả
Thủ công và
trên hệ thống
Thủ thư
Đầu vào: Yêu cầu mượn sách
Thực hiện: Nhận thẻ, sách mượn
từ độc giả
Đầu ra: Thông tin thẻ, sách mượn
Kiểm tra thẻ
Thủ công và
trên hệ thống
Thủ thư
Đầu vào: Thông tin thẻ, sách
mượn
Thực hiện: Kiểm tra thẻ với
thông tin trên hệ thống
Đầu ra: Thẻ có cịn hiệu lực hay
khơng
Thơng báo gia hạn
thẻ
Thủ công
Thủ thư
Đầu vào: Thẻ đã hết hiệu lực
Thực hiện: Hỏi độc giả có gia hạn
thẻ hay khơng
Đầu ra: Độc giả có hoặc đồng ý
gia hạn
Gia hạn thẻ cho độc
giả
Thủ công và
trên hệ thống
Thủ thư
Đầu vào: Thẻ đã hết hiệu lực, độc
giả đồng ý gia hạn
Thực hiện: Gia hạn thẻ cho độc
giả
Đầu ra: Thẻ đã được gia hạn
Lập phiếu mượn
Hệ thống
Thủ thư
Đầu vào: Thẻ cịn hạn, thơng tin
sách mượn
Thực hiện: Lập phiếu mượn trên
hệ thống
Đầu ra: Phiếu mượn sách
Cập nhật tình trạng
sách
Hệ thống
Thủ thư
Đầu vào: Phiếu mượn sách
Thực hiện: Cập nhật phiếu mượn
sách trên hệ thống
Đầu ra: Danh sách sách mượn,
danh sách độc giả mượn sách
Quy trình trả sách
Công việc
Kiểu
Người thực Mô tả chi tiết
hiện
Nhận yêu cầu trả
sách từ độc giả
Thủ công và
trên hệ thống
Thủ thư
Đầu vào: Yêu cầu trả sách
Thực hiện: Nhận thẻ, sách trả từ
độc giả
Đầu ra: Thông tin thẻ, sách trả
Kiểm tra sách trả
Thủ công và
trên hệ thống
Thủ thư
Đầu vào: Thông tin thẻ, sách trả
Thực hiện: Kiểm tra với thơng tin
trên hệ thống
Đầu ra: Tình trạng sách trả
Yêu cầu bồi thường Thủ công
Thủ thư
Đầu vào: Sách trả bị hỏng, mất, …
Thực hiện: Yêu cầu khách hàng
bồi thường, nộp phạt
Đầu ra: Phí bồi thường
Lập phiếu phạt
Hệ thống
Thủ thư
Đầu vào: Thông tin độc giả vi
phạm
Thực hiện: Lập phiếu phạt trên hệ
thống
Đầu ra: Phiếu phạt, danh sách độc
giả vi phạm
Cập nhật
mượn
phiếu Hệ thống
Thủ thư
Đầu vào: Độc giả trả sách còn
nguyên vẹn
Thực hiện: Cập nhật phiếu mượn
trên hệ thống
Đầu ra: Danh sách sách mượn,
danh sách độc giả mượn sách
3. Các yêu cầu cụ thể
* Với nhà quản lý:
•
•
•
•
Hỗ trợ người quản lý tìm kiếm các thơng tin về các đầu sách, thơng tin về hóa đơn,
độc giả, tình hình kho hàng sách…
Hỗ trợ đắc lực cho người quản lý giúp người quản lý nhận định một cách tổng thể
nhất về tình hình hoạt động của thư viện
Hỗ trợ cơng việc tìm kiếm của người quản lý 1 cách tốt nhất và nhanh nhất có thể.
Tạo các báo cáo cần thiết cho nhà quản lý: báo cáo kết quả hoạt động kinh doanh,
báo cáo nhập sách, báo cáo danh mục tài liệu, ...
*Với thủ thư:
•
•
Hỗ trợ thủ thư tìm kiếm các thơng tin liên quan đến sách như tên sách, tên tác giả,
năm xuất bản, nhà xuất bản, số lượng,. để nhân viên kịp thời có thơng tin cho độc
giả.
Hỗ trợ thủ thư tìm kiếm các loại sách, tên sách một cách nhanh chóng, thống kê số
lượng sách còn tồn trong kho.
•
•
•
Giúp thủ thư tìm kiếm thơng tin độc giả, nhà cung cấp một cách nhanh chóng,
chính xác.
Nhập số liệu một cách nhanh chóng, chính xác.
Đảm bảo cơng việc lưu trữ chuẩn xác, tìm kiếm các thơng tin về khách hàng, nhà
cung cấp nhanh chóng, chính xác.
*Với độc giả:
•
•
•
Trợ giúp làm thủ tục làm thẻ thư viện, thủ tục mượn sách nhanh chóng, chính xác.
Tìm kiếm thơng tin sách cho độc giả nếu độc giả có u cầu tìm kiếm và kiểm tra
xem sách đó cịn hàng hay khơng.
Thay đổi thơng tin độc giả khi cần.
*Với nhà xuất bản:
•
•
•
Xuất hóa đơn cho nhà xuất bản
Tìm kiếm thơng tin sách mà nhà xuất bản đã cung cấp cho thư viện
Thay đổi thông tin nhà xuất bản nếu cần thiết.
PHẦN 2: THIẾT KẾ CSDL QUAN NIỆM
1 . Xác định các thực thể
•
Sách
•
Tác Giả
•
Vị Trí
•
Thể Loại
•
Nhà Xuất Bản
•
Phiếu Nhập
•
Độc Giả
•
Thủ Thư
•
Phiếu Mượn
•
Phiếu Phạt
2. Xác định các thuộc tính và gắn với thực thể
•
SÁCH (Mã Sách, Tên Sách, Năm Xuất Bản)
•
TÁC GIẢ (Mã Tác Giả, Tên Tác Giả, Năm Sinh)
•
VỊ TRÍ (Mã Vị Trí, Tên Vị Trí)
•
•
•
•
•
•
•
•
THỂ LOẠI (Mã Thể Loại, Tên Thể Loại)
NHÀ XUẤT BẢN (Mã NXB, Tên NXB, Địa chỉ, SĐT)
PHIẾU NHẬP (Số Phiếu Nhập, Ngày Nhập)
ĐỘC GIẢ (Số Thẻ, Ngày Bắt Đầu, Ngày Hết Hạn, Tên Độc Giả, SĐT)
THẺ THƯ VIỆN (Số Thẻ, Ngày Bắt Đầu, Ngày Hết Hạn)
THỦ THƯ (Mã Thủ Thư, Tên Thủ Thư, Ngày Sinh, Địa Chỉ, SĐT)
PHIẾU MƯỢN (Số Phiếu Mượn, Ngày Mượn, Ngày Trả)
PHIẾU PHẠT (Số Phiếu Phạt, Ngày Phạt, Mức Phạt)
3. Xác định các mối liên kết, thuộc tính trên mỗi liên kết
•
SÁCH - TÁC GIẢ: 1 cuốn sách có thể do nhiều tác giả viết, và một tác giả có thể
viết nhiều cuốn sách, liên kết giữa sách và tác giả có thuộc tính vai trị và vị trí
•
SÁCH - VỊ TRÍ: 1 vị trí có thể có nhiều cuốn sách nhưng 1 cuốn sách chỉ thuộc 1 vị
trí duy nhất
•
SÁCH - THỂ LOẠI: 1 thể loại có thể có nhiều cuốn sách nhưng 1 cuốn sách chỉ
thuộc 1 thể loại duy nhất
•
SÁCH - NHÀ XUẤT BẢN: 1 nhà xuất bản có thể xuất bản nhiều cuốn sách nhưng
1 cuốn sách chỉ thuộc 1 nhà xuất bản duy nhất
•
SÁCH - PHIẾU MƯỢN: 1 cuốn sách có thể lập được nhiều phiếu mượn và 1 phiếu
mượn có thể mượn được nhiều cuốn sách, liên kết giữa sách và phiếu mượn có
thuộc tính tình trạng sách
•
PHIẾU MƯỢN - ĐỘC GIẢ: 1 độc giả có thể lập được nhiều phiếu mượn nhưng 1
phiếu mượn chỉ do 1 độc giả duy nhất
•
PHIẾU MƯỢN - THỦ THƯ: 1 thủ thư có thể lập được nhiều phiếu mượn nhưng 1
phiếu mượn chỉ được lập bởi 1 thủ thư duy nhất
•
PHIẾU MƯỢN - PHIẾU PHẠT: 1 phiếu mượn chỉ có thể lập được 1 phiếu phạt và
1 phiếu phạt chỉ thuộc về 1 phiếu mượn duy nhất
•
PHIẾU PHẠT - THỦ THƯ: 1 thủ thư có thể lập được nhiều phiếu phạt nhưng 1
phiếu phạt chỉ được lập bởi 1 thủ thư duy nhất
4. Mơ hình thực thể liên kết ER
PHẦN 3: THIẾT KẾ CSDL LOGIC
1. Mơ hình CSDL quan hệ
PHẦN 4: CÂU LỆNH TRUY VẤN
1. Khởi tạo bảng
USE MASTER
GO
IF EXISTS (SELECT * FROM SYS.DATABASES WHERE NAME = 'QLTHUVIEN')
DROP DATABASE QLTHUVIEN
GO
CREATE DATABASE QLTHUVIEN
GO
USE QLTHUVIENN
GO
• Tạo bảng NHÀ XUẤT BẢN CREATE TABLE NHAXUATBAN (
MANXB CHAR (9) PRIMARY KEY,
TENNXB NVARCHAR (30) NOT NULL,
SDT CHAR (12)
)
• Tạo bảng VỊ TRÍ
CREATE TABLE VITRI (
MAVT CHAR (9) PRIMARY KEY,
TENVT NVARCHAR (30) NOT NULL
)
• Tạo bảng THỂ LOẠI CREATE TABLE THELOAI (
MATL CHAR (9) PRIMARY KEY,
TENTL NVARCHAR (30) NOT NULL
)
• Tạo bảng TÁC GIẢ CREATE TABLE TACGIA (
MATG CHAR (9) PRIMARY KEY,
TENTG NVARCHAR (30) NOT NULL,
NAMSINH INT
)
• Tạo bảng SÁCH
CREATE TABLE SACH (
MASACH CHAR (9) PRIMARY KEY,
TENSACH NVARCHAR (30) NOT NULL,
NAMXB CHAR (4),
MATL CHAR (9) FOREIGN KEY (MATL) REFERENCES dbo.THELOAI(MATL),
MAVT CHAR (9) FOREIGN KEY (MAVT) REFERENCES dbo.VITRI(MAVT)
)
• Tạo bảng SÁNG TÁC (quan hệ n-n giữa SÁCH - TÁC GIẢ)
CREATE TABLE SANGTAC (
MASACH CHAR (9) FOREIGN KEY (MASACH) REFERENCES
dbo.SACH(MASACH),
MATG CHAR (9) FOREIGN KEY (MATG) REFERENCES dbo.TACGIA(MATG),
VITRI NVARCHAR (30),
VAITRO NVARCHAR (30),
CONSTRAINT ST_TGS_PK PRIMARY KEY (MASACH, MATG)
)
• Tạo bảng THỦ THƯ
CREATE TABLE THUTHU (
MATT CHAR (9) PRIMARY KEY,
TENTT NVARCHAR (30) NOT NULL,
NGSINH DATE,
DCHI NVARCHAR (50),
SDT
CHAR (12)
)
• Tạo bảng PHIẾU NHẬP
CREATE TABLE PHIEUNHAP (
SOPN CHAR (9) PRIMARY KEY,
NGAYNHAP DATE,
MANXB CHAR (9) FOREIGN KEY (MANXB) REFERENCES
dbo.NHAXUATBAN(MANXB),
MATT CHAR (9) FOREIGN KEY (MATT) REFERENCES dbo.THUTHU(MATT)
)
• Tạo bảng CHI TIỂT PHIẾU NHẬP (quan hệ n-n giữa SÁCH - PHIẾU
NHẬP) CREATE TABLE CT_PHIEUNHAP (
SOPN CHAR (9) FOREIGN KEY (SOPN) REFERENCES
dbo.PHIEUNHAP(SOPN),
MASACH CHAR (9) FOREIGN KEY (MASACH) REFERENCES
dbo.SACH(MASACH),
SOLUONG INT,
DONGIA INT,
CONSTRAINT CTPN_PNS_PK PRIMARY KEY (SOPN, MASACH)
)
• Tạo bảng ĐỘC GIẢ
CREATE TABLE DOCGIA (
SOTHE CHAR (9) PRIMARY KEY,
NGAYBD DATE,
NGAYHH DATE,
TENDG NVARCHAR (30) NOT NULL,
SDT CHAR (12),
)
• Tạo bảng PHIẾU MƯỢN CREATE TABLE PHIEUMUON (
SOPM CHAR (9) PRIMARY KEY,
NGAYMUON DATE,
NGAYTRA DATE,
SOTHE CHAR (9) FOREIGN KEY (SOTHE) REFERENCES
dbo.THETHUVIEN(SOTHE),
MATT CHAR (9) FOREIGN KEY (MATT) REFERENCES dbo.THUTHU(MATT)
)
• Tạo bảng CHI TIẾT PHIẾU MƯỢN (quan hệ n-n giữa SÁCH - PHIẾU
MƯỢN)
CREATE TABLE CT_PHIEUMUON (
SOPM CHAR (9) FOREIGN KEY (SOPM) REFERENCES
dbo.PHIEUMUON(SOPM),
MASACH CHAR (9) FOREIGN KEY (MASACH) REFERENCES
dbo.SACH(MASACH), SOLUONG INT,
TINHTRANG NCHAR (10) CHECK (TINHTRANG IN (N'Đang mượn’, N’Đã
trả')),
CONSTRAINT CTPM_PMS_PK PRIMARY KEY (SOPM, MASACH)
)
• Tạo bảng PHIẾU PHẠT CREATE TABLE PHIEUPHAT (
SOPP CHAR (9) PRIMARY KEY,
NGAYPHAT DATE,
S0PM CHAR (9) FOREIGN KEY (S0PM) REFERENCES
dbo.PHIEUMUON(SOPM),
MATT CHAR (9) FOREIGN KEY (MATT) REFERENCES dbo.THUTHU(MATT)
)
• Tạo bảng CHI TIẾT PHIẾU PHẠT (quan hệ n-n giữa SÁCH - PHIẾU
PHẠT) CREATE TABLE CT_PHIEUPHAT (
SOPP CHAR (9) FOREIGN KEY (SOPP) REFERENCES
dbo.PHIEUPHAT(SOPP),
MASACH CHAR (9) FOREIGN KEY (MASACH) REFERENCES
dbo.SACH(MASACH),
SOLUONG INT,
LYDO NCHAR (4) CHECK (LYDO IN (N'Hỏng',N'Mất')),
CONSTRAINT CTPP_PPS_PK PRIMARY KEY (SOPP, MASACH)
)
2. Nhập dữ liệu
•
BẢNG NHÀ XUẤT BẢN
•
BẢNG TÁC GIẢ
•
BẢNG VỊ TRÍ
•
BẢNG THỂ LOẠI
•
BẢNG THỦ THƯ
•
BẢNG ĐỘC GIẢ
•
BẢNG SÁCH
•
BẢNG SÁNG TÁC
•
BẢNG PHIẾU NHẬP
•
BẢNG CHI TIẾT PHIẾU NHẬP
•
BẢNG PHIẾU MƯỢN
•
BẢNG CHI TIẾT PHIẾU MƯỢN
•
BẢNG PHIẾU PHẠT
•
BẢNG CHI TIẾT PHIẾU PHẠT
3. Truy vấn dữ liệu
Câu 1. Xuất ra Báo cáo những cuốn sách đang được mượn
SELECT SACH.MASACH, TENSACH, NAMXB, NGAYMUON, NGAYTRA
FROM SACH JOIN CT_PHIEUMUON ON
SACH.MASACH=CT_PHIEUMUON.MASACH
JOIN PHIEUMUON ON CT_PHIEUMUON.SOPM=PHIEUMUON.SOPM
WHERE TINHTRANG=N'Đang mượn'
Câu 2. Xuất ra Báo cáo những cuốn sách được nhập trong quý 1/2021
SELECT SACH.MASACH, SACH.TENSACH, PHIEUNHAP.SOPN,
PHIEUNHAP.NGAYNHAP, CT_PHIEUNHAP.SOLUONG