Xây dựng phần mềm quản lý thư việnHì nh 4: Mô hì nh hệ thố ng quả n lý thư việ n SELECT nm.. CREATE PROC Prd_Thongke_Sach AS BEGIN DECLARE @TongQH INT SELECT @TongQH= SELECT COUNTMaNMFRO
Trang 11download by : skknchat@gmail.com
Trang 2Xây dựng phần mềm quản lý thư viện
nế u chỉ là m trê n giấ y tờ thì rấ t khó khă(n trong việ c quả n lý , sử
a đổ i dữ liệ u và dễ) gâ y mấ t má t, bả o mậ t thô ng tin Chí nh vì thế đò i hỏ i cầ n phả i có mộ t hệ thố ng chặ( t chẽ , hợ p lý mớ i đả
m bả o đượ c việ c quả n lý dễ)dà ng đá p ứ ng đượ c nhu cầ u cầ n thiế t hiệ n nay
Thế kỷ XXI là thế kỷ bù ng nổ mạ nh mẽ củ a ngà nh khoa họ c kỹ thuậ
t nó i chung và ngà nh CNTT nó i riê ng Ngà y nay, việ c ứ ng dụ ng tin họ c trong cô ng tá c quả n lý phá t triể n rấ t mạ nh, ứ ng dụ ng tin họ c giú p cho
cô ng tá c quả n lý ngà y cà ng hiệ u quả hơn, gó p phầ n nâ ng cao hiệ u quả trong cô ng việ c, đưa ra cá c bá o cá o, số liệ u thố ng kê , Đồ ng thờ
i, trong cô ng việ c củ a nhà quả n lý tiế t kiệ m đượ c nhiề u thờ i gian, cô ng
sứ c, việ c quả n lý dễ)dà ng và bả o mậ t hơn.
Nhờ có sự phá t triể n củ a CNTT mà hiệ n nay đã có nhiề u phầ
n mề m ứ ng dụ ng quả n lý đượ c ra đờ i ví dụ như: Quả n lý nhâ n sự , quả n lý khá ch sạ n, quả n lý ngâ n hà ng, Vậ y tạ i sao ta khô ng thể kế t hợ p tin họ c trong việ c quả n lý thư việ n để khiế n cho việ cquả n lý trở nê n dễ)dà ng hơn
Vớ i nhữ ng lý do trê n nhó m đã quyế t đị nh chọ n đề tà i “ ” vớ i
mong muố n tì m hiể u về lĩ nh vự c quả n lý nó i chung mà mụ cQu n ả đí
chlýchí nhth vi n ư ệ là quả n lý sá ch củ a thư việ n Đạ i họ c Thủ y Lợ i nó i
riê ng để đá p ứ ng đượ c nhu cầ u thự c tế củ a con ngườ i Mụ c tiê u củ
a bà i bá o cá o là nê u rõ cá c đặ( c tả yê u cầ u củ a hệ thố ng, phâ n tí
ch, thiế t kế để xâ y dự ng đượ c phầ n mề m quả n lý thư việ n trê n phụ
c vụ cho việ c quả n lý hoà n toà n tự độ ng trê n má y tí nh
Trang 32download by : skknchat@gmail.com
Trang 4Xây dựng phần mềm quản lý thư viện
Trang 53download by : skknchat@gmail.com
Trang 6Xây dựng phần mềm quản lý thư viện
CH ƯƠ NG I: BÀI TOÁN Đ T RA VÀ YÊU C U C A H TH NG Ặ Ầ Ủ Ệ Ố
n lớ n như thư việ n trườ ng Đạ i họ c Thủ y Lợ i thì số lượ ng sá ch là rấ
t nhiề u đồ ng thờ i để quả n lý đượ c số sá ch đó cũ ng cầ n số lượ ng nhâ n viê n nhiề u Đặ( c biệ t nhữ ng thá ng đầ u kỳ họ c thì số lượ ngsinh viê n đế n để mượ n giá o trì nh rấ t đô ng Vì vậ y yê u cầ u đặ( t
ra là : Ph i ả làm sao đ ti t ki m đ ể ế ệ ượ c th i gian, ngu n nhân l c, thông tin ờ ồ ự
Tì m1.3Cáchhiể u th c ứ quytắAcgi i ả nghiệ pquy t ế vụ ,bàicá ctoán:yê u cầ
u đặ( t ra củ a đề bà i Cá c ngô n ngữ lậ p trì nh và cơ sở dữ liệ u.BắAt tay và o xâ y dự ng ứ ng dụ ng Tiế n hà nh kiể m tra và chạ ythử Thay đổ i
1.4 Phát bi u nghi p v c a ể ệ ụ ủ Khibàingườ itoán:mượ n (sinh viê n) đế n mượ n sá ch Nế u
thô ng
tin khô ngQu n ả đá plý ứ ngm ượ yê utr : n, ả cầ u đượ c mượ n (chưa đó ng tiề n) thì đưa
ra thô ng bá o từ chố i, nế u đá p ứ ng đượ c thì lậ p phiế u mượ n cho ngườ i mượ n (sinh viê n) Khi ngườ i mượ n trả sá ch, phiế u trả sẽ đượ c lậ p cho ngườ i mượ n dự
a trê n sự so khớ p.
Sinh viê n đang họ c tạ i trườ ng sẽ đượ c lưu thô
ng tin ở trê n hệ thố ngQu n ả Đồ nglýđ c ộ thờ igi : ả hệ thố ng sẽ sẽ quả
n lý cá c giao dị ch thô ng tin liê n quan tớ i độ c giả
Nhậ p mớ i thô ng tin sá ch, sử a chữ a thô ng
tin, xó a bỏ nhữ ng sá ch khô ngQu n ả cò nlýsách:đượ c sử dụ ng.
tin nhâ nQu nả viê nlý nhân viên: Admin có quyề n thao tá c quả n lý thê m, sử a, xó a
thô ng
Trang 74download by : skknchat@gmail.com
Trang 8Xây dựng phần mềm quản lý thư Lấ y viện thô ng tin từ cá c bả ng cầ n thiế t trong giao dị ch
để đưa raQu n ả số liệ u:lý thôngTổ ngđộ ck : ế giả , số đọ c giả đang mượ n, số độ
c giả quá hạ n trả , số độ c giả chưa đó ng phí , sá ch đang mượ n, sá ch tồ n, sá
quyề n Qtruy n ả cậ plý và o(admin):tấ tcả cá c chứ c nă(ng củ a hệ thố
ng, bao gồ m quả n lý nhâ n viê n, quả n lý cá c đầ u sá ch, thố ng kê sốlượ ng sinh viê n đế n mượ n sá ch, cậ p nhậ t bổ xung, sử a đổ i hoặ( c
xó a khi cầ n thiế t
Trang 9Nhâ n viê n sẽ tiế p nhậ n thô ng tin yê u cầ u mượ n sá ch củ a sinh
viê n, hướ ngNhân dẫ)nviên:cho sinh viê n sử dụ ng phầ n mề m củ a hệ thố ng, tì m kiế
m sá ch khi
5download by : skknchat@gmail.com
Trang 10có Xâyyê udựngcầ u,phầnghimềmnợ quảnvà xuấ tlýthưfileviệnexcel danh sá ch củ a nhữ ng sá ch đã mượ n, trả
và cò n
cm ượ n):cấ p sẵIn, xem trự c tiế p trạ ng thá i củ a mì nh đang mượ n bao nhiê
u quấ n sá ch và cò n nợ bao nhiê u.
CH ƯƠ NG 3: XÂY D NG MÔ HÌNH LIÊN K T TH C TH Ự Ế Ự Ể tblSach
Id_S, NgayM, NgayT, GhiChuM, ChiChuT,tblLichSuId_NM, Id_LichSu)
3.2 Xây d ng mô hình ER: ự
Trang 11tblLichSu
tblSach
Có
Trang 12download by : skknchat@gmail.com
Trang 13Xây dựng phần mềm quản lý thư viện
Trang 14Xây dựng phần mềm quản lý thư viện
Hì nh 4: Mô hì nh hệ thố ng quả n lý thư việ n
SELECT nm Id , nm MaNM , nm TenNM ,
nm NgaySinh , CASE WHEN nm GioiTinh = 1 THEN
N'Nam'
WHEN nm.GioiTinh=0 THEN N'Nữ ' END AS
GioiTinh,Khoa,DiaChi, CASE WHEN Dp=1 THEN N'Đã Đó
Trang 158download by : skknchat@gmail.com
Trang 16Xây dựng phần mềm quản lý thư viện
2 Thố ng kê cá c sá ch đang đượ c mượ n bở i 1 sinh viê n nà o đó
CREATE PROCEDURE [dbo] [Prd_tracudocgia]
EXEC dbo.Prd_tracudocgia @MaNM = N'SV06' nvarchar(50)
3 Thô ng kê tổ ng số sá ch cò n lạ i, số lượ ng sá ch đang mượ n và
số lượ ng sá ch quá hạ n
CREATE PROC Prd_Thongke_Sach
AS BEGIN
DECLARE @TongQH INT
SELECT @TongQH= (SELECT COUNT(MaNM)FROM dbo.tblQuaHan1)
SELECT dbo.Fun_TongSoSach () AS
END
Chạ y thử :
9
Trang 17download by : skknchat@gmail.com
Trang 184Xây Th dựngt cphầntìmềmkiếmquảnsáchlýtưm tviện quy n sách nào ó.
CREATE PROC Prd_TK_SelectMaS
, dbo tblLoaiSach SELECT s MaS AS ls , ls WHERE MaL , TenSls MaL , NXB =, NamXBs MaL AND(, GiaSachMaS FROM LIKE
@MaSdbo tblSach + '%' OR AS TenSs
END END
Ch y th :
EXEC Prd_TK_SelectMaS 'S01'
5.Th ng kêdanh sách sinh viên m n sách trong m t ngày
b t kì CREATE PROC sinhvien_ms
@thang int
AS
DECLARE cur_ct cursor
SCROLL FOR
SELECT Id_NM, TenNM
FROM dbo.tblHDMuon, dbo.tblNM
WHERE (month (NgayM) = @thang) AND
(dbo.tblHDMuon.Id_NM=dbo.tblNM.Id) OPEN cur_ct
fetch first from cur_ct WHILE
@@fetch_status =0 BEGIN
fetch next from cur_ct END
CLOSE cur_ctDEALLOCATE
cur_ct Ch y th :
10
Trang 19download by : skknchat@gmail.com
Trang 20EXECXâydựngsinhvienpầnmềm_msquản'10'lý thư viện
6.Thủ tụ c tự cậ p nhậ t mã số hó a đơn khi thê m mộ
t hó a đơn mớ i create PROCEDURE Prd_MaSoHD
AS BEGIN
DECLARE @Dem INT
INT
SELECT @Dem = COUNT(SoHDMuon) FROM
dbo.tblHDMuon SELECT @Dem1 =
COUNT(SoHDMuon ) FROM dbo.tblLichSu IF
SELECT 1 AS SoHD
ELSE BEGIN
IF @Dem=0 AND @Dem1 !=0
SELECT MAX(SoHDMuon)+1 AS SoHD FROM
dbo.tblLichSu IF @Dem!=0 AND @Dem1 =0
SELECT MAX(SoHDMuon)+1 AS SoHD FROM
dbo.tblHDMuon IF @Dem!=0 AND @Dem1 !=0
IF ( SELECT MAX ( SoHDMuon ) AS SoHD FROM
dbo tblLichSu )>=( SELECT MAX ( SoHDMuon ) AS SoHD FROM
dbo tblHDMuon )
SELECT MAX(SoHDMuon)+ 1 AS SoHD FROM dbo.tblLichSu
ELSE SELECT MAX(SoHDMuon)+1 AS SoHD FROM dbo.tblHDMuon
Trang 2111download by : skknchat@gmail.com
Trang 22Xây dựng phần mềm quản lý thư viện
nào óc a m t sinh viên nào ó
CREATE function Fun_Soluongloaisach(@MaS
nvarchar(50),@Id int ) RETURNS int
as
begin declare @tong int
select @tong =(select COUNT( MaS)
FROM
dbo.tblSach,dbo.tblLoaiSach,dbo.tblLichSu
WHERE dbo.tblSach.MaS=@MaS AND
dbo.tblSach.MaL=tblLoaiSach.MaL AND Id =dbo.tblLichSu.Id_S AND
declare @tong int
select @tong =(select COUNT(id_S) from
Ch y th :
SELECT dbo.Fun_TongSoSachChoMuon()
3 Hàm tr vềgiátr tính t ng s sách còn l i trong kho
Trang 2312download by : skknchat@gmail.com
Trang 24Xây dựng phần mềm quản lý thư viện
create function Fun_TongSoSach()
returns int
as
begin declare @tong int
select @tong=(select COUNT
Ch y th :
SELECT dbo.Fun_TongSoSach ()
4 Hàm tr vềb ng tính s l ng sách theo t ng lo i sách
CREATE FUNCTION SLSACHTHEOLOAI()
RETURNS @kq TABLE ( MaL nvarchar(50), SLSach int)
AS BEGIN
INSERT INTO @kq SELECT MaL, COUNT(MaS) FROM
dbo.tblSach GROUP BY MaL
1 T o view li t kêthông tin các c gi m n sách quáh n
CREATE VIEW tblQuaHan1
AS SELECT dbo.tblNM.MaNM, dbo.tblNM.TenNM, dbo.tblNM.NgaySinh,
dbo.tblNM.Khoa, dbo.tblNM.DiaChi, dbo.tblNM.DongPhi, dbo.tblNM.GhiChu
dbo.tblSach ON dbo
Trang 25download by : skknchat@gmail.com
Trang 26Xây dựng phầndbomềm.tblChiTietHDMuonquảnlýthưviện ON dbo.tblSach.Id =
dbo ON dbo tblChiTietHDMuon tblNM Id = dbo tblHDMuonId_S INNER Id JOIN _NMdbo ON tblNM INNER JOIN
dbo tblHDMuon
dbo.tblChiTietHDMuon.SoHD_Muon = dbo tblHDMuon.SoHDMuon
WHERE (DATEDIFF(dd, dbo.tblHDMuon.NgayM, GETDATE()) > 120Chạ y thử :
SELECT * FROM dbo.tblQuaHan1
2 Tạ o vew chứ a thô ng tin sá ch đang đượ c mượ n
bở i sinh viê n CREATE VIEW dbo.DGM
AS SELECT nm.Id, nm.MaNM, nm.TenNM, s.MaS, ls.MaL, ls.TenS,
ls.NXB, ls.NamXB, ls.GiaSach
FROMdbo.tblNM AS nm INNER JOINdbo.tblHDMuon AS m ON nm.Id =
m.Id_NM INNER JOIN dbo tblChiTietHDMuon AS ctm ON
m.SoHDMuon = ctm SoHD_Muon INNER JOIN dbo.tblSach AS s ON
ctm.Id_S = s.Id INNER JOIN dbo.tblLoaiSach AS ls ON s.MaL = ls.MaLChạ y thử :
SELECT * FROM dbo.DGM
3 Tạ o view chứ a thô ng tin cơ bả n về giao đị ch mượ n củ a sinh viê n
CREATE VIEW
SELECT MaNM, TenNM, MaNV,TenNV, NgayM
FROM dbo.tblNV,dbo.tblNM, dbo.tblChiTietHDMuon, dbo.tblHDMuon
14
Trang 27download by : skknchat@gmail.com
Trang 28WHERE Xâydựng phần ( dbo mềm tblNV quản Id lý =
dbo thưviện tblHDMuon Id_NV ) AND
( dbo tblNM id = dbo tblHDMuon Id_NM )
AND
(dbo.tblHDMuon.SoHDMuon=dbo.tblChiTietHDMuon.SoHD_Muon)
Ch y th :
SELECT * FROM THONGTINS_M
14.4TRIGGERTrigger không cho phép thêm phiếu m n nếu ngày m n
l n h n ngày hi n t i ng c l i chèn 1 b n ghi m i vào b ng HDMuon
CREATE TRIGGER Them_HDM
ON dbo.tblHDMuon
FOR INSERT AS
DECLARE @Id_NM INT
DECLARE @Id_NV INT
DECLARE @SoDMuon INT
DECLARE @NgayM DATE
DECLARE @GhiChu NVARCHAR(50)
SELECT @NgayM= NgayM FROM dbo.tblHDMuon
WHERE SoHDMuon IN ( SELECT SoHDMuon FROM Inserted)
IF(@NgayM >GETDATE())
BEGIN
PRINT N'D li u nh p vào không úng-Vui lòng ki m tra l i'
ROLLBACK TRAN END
ELSE IF (NOT EXISTS (SELECT SoHDMuon FROM
BEGIN
INSERT INTO dbo.tblHDMuon
( Id_NM, Id_NV, SoHDMuon, NgayM, GhiChu )
15
Trang 29download by : skknchat@gmail.com
Trang 30VALUESXâydựngphần(@Idmềm_NMquản, lýIdthư_NMviện- int
@Id_NV, Id_NV - int
@SoDMuon@NgayM, ,NgayM SoHDMuon-date - int
@GhiChu GhiChu - nvarchar(200)
DECLARE @tong int
UPDATE dbo.tblSach
SET @tong = dbo.SLSACHTHEOLOIAI()
FROM dbo.tblSach
WHERE MaS= (SELECT MaS FROM inserted)
3 TRIGGERS t c p nh t thông tin vào b ng l ch s sau khi cógiao d ch
mu n - tr di )n ra
CREATE TRIGGER dbo.Add_tblLichsu
ON tblTra FOR INSERT
AS BEGIN
DECLARE @dem INT
SELECT @dem=COUNT (Id_S) FROM
dbo.tblChiTietHDMuon WHERE Id_S =(SELECT Id_S
FROM Inserted)
IF @dem!=0
BEGIN
DECLARE @Id_NM INT
DECLARE @Id_NV_T INT
DECLARE @Id_NV_M INT
DECLARE @SoHDMuon INT DECLARE @Id_S INT DECLARE @NgayM
DATE
Trang 3116download by : skknchat@gmail.com
Trang 32DECLARE Xâydựngphần @NgayT mềmquản DATE lýthư DECLARE viện @GhiChuM NVARCHAR ( 500 )
DECLARE @GhiChuT NVARCHAR(500)
SELECT @Id_NV_T = Id_NV FROM Inserted
SELECT @Id_NV_M = Id_NV FROM dbo.tblHDMuon ,dbo.tblChiTietHDMuon
WHERE (dbo.tblHDMuon.SoHDMuon=dbo.tblChiTietHDMuon.SoHD_Muon AND
dbo.tblChiTietHDMuon.Id_S = (SELECT Id_S FROM Inserted))
SELECT @SoHDMuon = SoHD_Muon FROM dbo.tblChiTietHDMuon WHERE Id_S=(SELECT Id_S FROM Inserted)
SELECT @Id_S = Id_S FROM Inserted
SELECT @NgayM = NgayM FROM dbo.tblHDMuon,dbo.tblChiTietHDMuon
WHERE (dbo.tblHDMuon.SoHDMuon=dbo.tblChiTietHDMuon.SoHD_Muon AND
dbo.tblChiTietHDMuon.Id_S = (SELECT Id_S FROM Inserted))
SELECT @NgayT = NgayT FROM Inserted
SELECT @GhiChuM =GhiChu FROM dbo.tblHDMuon,dbo.tblChiTietHDMuon
WHERE (dbo.tblHDMuon.SoHDMuon=dbo.tblChiTietHDMuon.SoHD_Muon AND
dbo.tblChiTietHDMuon.Id_S = (SELECT Id_S FROM Inserted))
SELECT @GhiChuT = GhiChu FROM Inserted
SELECT @Id_NM = Id_NM FROM dbo.tblHDMuon,dbo.tblChiTietHDMuon
WHERE (dbo.tblHDMuon SoHDMuon=dbo.tblChiTietHDMuon.SoHD_Muon
ANDdbo.tblChiTietHDMuon.Id_S = (SELECT Id_S FROM Inserted))
INSERT dbo.tblLichSu
( Id_NV_M , Id_NV_T , SoHDMuon , Id_S , NgayM , NgayT , GhiChuM , GhiChuT , Id_NM ) VALUES
( @Id_NV_M , @Id_NV_T , @SoHDMuon , @Id_S , @NgayM , @NgayT @GhiChuM , @GhiChuT , @Id_NM )
DELETE dbo.tblTra WHERE Id_S = (SELECT Id_S FROM Inserted)
DELETE dbo.tblChiTietHDMuon WHERE Id_S = ( SELECT Id_S FROM
Inserted) DECLARE @Index INT
SELECT @Index = COUNT(SoHD_Muon) FROM dbo.tblChiTietHDMuon WHERE
IF(@Index=0)
DELETE dbo.tblHDMuon WHERE SoHDMuon=@SoHDMuon
17download by : skknchat@gmail.com
Trang 33ENDXâydựngELSEphần mềm quản lý thư viện
ROLLBACK TRAN END GO
ph i vào Roles,
ch nB1: new - > new Database Roles Add các Roles: ADMIN,
NHANVIEN t ng ng
B2: Gán quyền cho Roles:
- Roles ADMIN: cócác quyền db_accessadmin, db_backupoperator, db_datareader, db_datawriter, db_owner, db_securityadmin,
db_ddladmin
- Roles NHANVIEN cócác quyền db_datareader, db_datawriter,
db_owner B3: Viết Query phân quyền, thêm login, xóa quyền
c a roles
CREATE PROC [dbo] [phanquyen]
@manv nvarchar(10), @hoten nvarchar(50), @sdt
numeric(18, 0), @passnv nvarchar(3), @diachi
nvarchar(100 ), @quyen nvarchar(50)As begin
insert into tblNV(MaNV,TenNV, SDT, PassNV, DiaChi,
Quyen) values (@manv,@hoten,@sdt,
@passnv,@diachi,@quyen)
@manv,@manv if(@quyen)='ADMIN'
begin exec sp_addrolemember
end begin exec sp_addrolemember
[them_login]
@manv nvarchar(10),@pass nvarchar(50)
Trang 34a begin transaction
declare @themlog nvarchar(300)
set @themlog ='create login ['+@manv+'] with password=
'''+ @pass+''+',default_database=[QLTHUVIEN]' exec (@themlog)
declare @themuser nvarchar(300)
18download by : skknchat@gmail.com
Trang 35setXây dựng@themuserphầnmềm= 'createquảnlýthưuserviện['+@manv+']
GRANT ALL ON tblHDMuon TO ADMIN
GRANT ALL ON tblChiTietHDMuon TO ADMIN
GRANT ALL ON tblTra TO ADMIN
GRANTGRANT ALLALL ONON tblSachtblLoaiSachTOADMINTOADMINGRANTGRANT ALLALL ONON tblNMLichSu TOTO ADMINADMIN
GRANTGRANT ALLALL ONON tblNVtblHDMuonTOADMINTONHANVIEN
GRANTGRANT ALLALL ONON tblCHitTietMuontblTra TO NHANVIEN TO NHANVIEN
GRANTGRANT ALLALL ONON tblSachtblLoaiSachTONHANVIENTONHANVIEN
GRANT ALL ON tblNM TO NHANVIEN
GRANT select, INSERT ON tblHDMuon TO NHANVIEN
GRANT SELECT ON tblLoaiSach TO NHANVIEN
19download by : skknchat@gmail.com
Trang 36Xây dựng phần mềm quản lý thư viện
Sau thờ i gian phâ n tí ch, thiế t kế và lậ p trì nh, nhó m đã hoà n thà nh cơ bả n hệ
gó p ý củ a cô để nhó m chú ng em có thể phá t triể n hệ thố ng nà y hoà n thiệ n
Demo giao di n ệ
- Trong tương lai, nhó m muố n phá t triể n hệ thố ng nà y thê m mộ t số chứ c
5.3 H ướ ng phát tri n ể
nă(ng để đá p ứ ng yê u cầ u thự c tế như: quả n lý việ c nhậ p
xuấ t suấ t, cho sinh viê n tự đă(ng nhậ p và o hệ thố ng để
xem thô ng tin, xâ y dự ng website cho phé p sinh viê n có thể
xem và tì m hiể u trướ c khi đế n mượ n sá ch,… đưa hệ thố ng
và o triể n khai thự c tế tạ i thư việ n
Trang 3720download by : skknchat@gmail.com
Trang 38Xây dựng phần mềm quản lý thư viện
CH ƯƠ NG 6: TÀI LI U THAM KH O Ệ Ả
n Hù ng
https://www.youtube.com/watch?v=7_UE_iC1-9c&feature=youtu.be&list=PLIbobkdH1ftS5_L858q3BXfsexe-HWprG
2 Lậ p trì nh mô hì nh 3 lớ p từ cơ bả n đế n nâ ng
cao Đạ i Phi Lê https://www.youtube.com/watch?
Trang 3921download by : skknchat@gmail.com