CREATEPROC Chuadongphi ASBEGIN SELECT nm.Id, nm.MaNM, nm.TenNM, nm.NgaySinh, CASEWHEN nm.GioiTinh=1 THEN N'Nam' WHEN nm.GioiTinh=0 THEN N'N 'ữ ENDAS GioiTinh,Khoa,DiaChi, CASEWHEN Dp=1 T
Trang 1TR ƯỜ NG Đ I H C TH Y L I Ạ Ọ Ủ Ợ KHOA CÔNG NGH THÔNG TIN Ệ
-BÀI T P L N Ậ Ớ MÔN H QU N TR C S D LI U Ệ Ả Ị Ơ Ở Ữ Ệ
Đ TÀI: Ề XÂY D NG PH N M M QU N LÝ TH VI N Ự Ầ Ề Ả Ư Ệ
Nhóm sinh viên th c hi n: ự ệ
1. Tr n Hoàng Anh – L p 57TH2 ầ ớ
2. Vũ Th H ị ườ ng – L p 57TH2 ớ
Gi ng viên h ả ướ ng d n: ẫ Th.S Nguy n Ng c Quỳnh Châuễ ọ
Trang 2HÀ N I, 10/2017 Ộ
L I NÓI Đ U Ờ Ầ
Hi n nay, s phát tri n c a xã h i và n n kinh t th trệ ự ể ủ ộ ề ế ị ường ngày càng
được m r ng Vì v y trong công tác qu n lý, ki m soát tình hình doanh thu, s ở ộ ậ ả ể ố
lượng, 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 c qu 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 “ớ ữ ế ị ọ ề Qu n lý th vi n ả ư ệ ”
v i mong mu n tìm hi u v lĩnh v c qu n lý nói chung mà m c đích chính 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.ụ ụ ệ ả ự ộ
KHOA CÔNG NGHỆ THÔNG TIN
- -BÀI TẬP LỚN MÔN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
ĐỀ TÀI: QUẢN LÝ THƯ VIỆN
Giảng viên hướng dẫn: Nguyễn Ngọc Quỳnh Châu Nhóm sinh viên thực hiện : Nhóm 1
Trần Hoàng Anh- 57TH2
Vũ Thị Hường- 57TH2
Đỗ Văn Minh- 57TH2
Hà N i, ngày 10 tháng 10 năm 2017 ộ
Trang 3M C L C Ụ Ụ
CH ƯƠ NG I: BÀI TOÁN Đ T RA VÀ YÊU C U C A H TH NG Ặ Ầ Ủ Ệ Ố
1.1 Gi i thi u bài toán ớ ệ :
Nh chúng ta đã bi t, trong m t ư ế ộ h th ng ệ ố th vi 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ọ ố ượng sinh 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 tin c y, b o m t đ ậ ả ậ ượ c h th ng qu n lý,…? ệ ố ả
1.2 Yêu c u chung c a bài toán: ầ ủ
Đ c t các yêu c u, ch c năng: ặ ả ầ ứ Qu n lý đ c gi m ả ộ ả ượ n - tr sách, qu n ả ả
lý các đ u sách, qu n lý ghi n đ i v i đ c gi quá h n tr sách ho c làm ầ ả ợ ố ớ ộ ả ạ ả ặ
m t sách và tìm ki m sách ấ ế
1.3 Cách th c gi i quy t bài toán: ứ ả ế
Tìm hi u quy t c nghi p v , các 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 t tay vào xây d ng ng d ng Ti n hành ki m tra vàơ ở ữ ệ ắ ự ứ ụ ế ể
ch y th Thay đ i.ạ ử ổ
1.4 Phát bi u nghi p v c a bài toán: ể ệ ụ ủ
Qu n lý m ả ượ n, tr : ả Khi người mượn (sinh viên) đ n mế ượn sách N u ế thông tin không đáp ng yêu 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ượ d a trên s so n ự ự
kh p.ớ
Qu n lý đ c gi : ả ộ ả Sinh viên đang h c t i trọ ạ ường sẽ đượ ưc l u thông tin ở trên h th ng Đ ng th i h th ng sẽ sẽ qu n lý các giao d ch thông tin liên quan ệ ố ồ ờ ệ ố ả ị
t i đ c gi ớ ộ ả
Trang 4Qu n lý sách: ả Nh p m i thông tin sách, s a ch a thông tin, xóa b nh ng ậ ớ ử ữ ỏ ữ sách không còn đượ ử ục s d ng
Qu n lý nhân viên: ả Admin có quy n thao tác qu n lý thêm, s a, xóa thông ề ả ử tin nhân viên
Qu n lý thông k : ả ế L y thông tin t các b ng c n thi t trong giao d ch đ ấ ừ ả ầ ế ị ể
đ a ra s li u: T ng đ c 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ách quá h n ch a tr ồ ạ ư ả
CH ƯƠ NG II: PHÂN TÍCH H TH NG Ệ Ố 2.1 Phân tích ch c năng c a h th ng ứ ủ ệ ố
Hình 1: Mô hình ch c năng h th ngứ ệ ố
2.2 Ng ườ ử ụ i s d ng h th ng: ệ ố
Qu n lý (admin): ả Qu n lý ch u trách nhi m chính trong vi c qu n lý, có quy nả ị ệ ệ ả ề truy c p vào t t c các ch c năng c a h th ng, bao g m qu n lý nhân viên,ậ ấ ả ứ ủ ệ ố ồ ả
Trang 5qu 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.ử ổ ặ ầ ế
Nhân viên: Nhâ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ướng d n cho sinh viên s d ng ph n m m c a h th ng, tìm ki m sách khi cóẫ ử ụ ầ ề ủ ệ ố ế yêu c u, ghi n và xu t file excel danh sách c a nh ng sách đã mầ ợ ấ ủ ữ ượn, tr và cònả
n l i.ợ ạ
Sinh viên (ng ườ i m ượ n): Sinh viên tương tác v i h th ng thông qua mã sinhớ ệ ố viên c a mình đã đủ ược c p s n, 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 Ự Ế Ự Ể 3.1 Xác đ nh các th c th toàn v n: ị ự ể ẹ
tblLoaiSach (MaL, TenS, NXB, NamXB, GiaSach)
tblSach (ID, MaL, MaS)
tblNV (ID , MaNV, TenNV, SDT, PassNV, DiaChi, Quyen)
tblNM (ID, MaNM, TenNM, GioiTinh, NgaySinh, Khoa, DiaChi, GhiChu, DongPhi)
tblTra (ID_NV, NgayT, GhiChu )
tblHDMuon (SoHDMuon, ID_NM, ID_NV, NgayM, GhiChu)
tblChiTietHDMuon(ID_S, SoHDMuon)
tblLichSu (Id_NV_M, Id_NV_T, SoHDMuon, Id_S, NgayM, NgayT, GhiChuM, ChiChuT,
Id_NM, Id_LichSu)
3.2 Xây d ng mô hình ER: ự
1 N
1 1
1
N
N
N
1
1
N
N N
1
Hình 2: Mô hình liên k t th c th ERế ự ể
tblNV
Có
L pậ
G mồ
tblLichSu
tblHDMuon
Có
tblSach
Có
Có
tblLoaiSach tblChiTietHDMuo
n
Trang 63.3 Xây d ng mô hình quan h ự ệ
Hình 3: Mô hình quan hệ
3.4 Mô hình h th ng ệ ố
Hình 4: Mô hình h th ng qu n lý th vi nệ ố ả ư ệ
CH ƯƠ NG 4: M T S CÂU L NH SQL Ộ Ố Ệ
Trang 74.1 Th t c (PROCEDURE) ủ ụ
1. Th t c th ng kê các đ c gi ch a đóng phí mủ ụ ố ộ ả ư ượn sách
CREATEPROC Chuadongphi
ASBEGIN
SELECT nm.Id, nm.MaNM, nm.TenNM, nm.NgaySinh,
CASEWHEN nm.GioiTinh=1 THEN N'Nam'
WHEN nm.GioiTinh=0 THEN N'N 'ữ ENDAS GioiTinh,Khoa,DiaChi,
CASEWHEN Dp=1 THEN N'Đã Đóng'
WHEN Dp=0 THEN N'Ch a Đóng'ư ENDAS Dp,GhiChu FROM dbo.tblNM AS nm
WHERE Dp=0
END
Ch y th : ạ ử
EXEC Chuadongphi
2. Th ng kê các sách đang đố ược mượn b i 1 sinh viên nào đó.ở
CREATEPROCEDURE [dbo].[Prd_tracudocgia]
@MaNM NVARCHAR(50)
AS
BEGIN
SELECT*FROM dbo.DGM WHERE MaNM=@MaNM
END
Ch y th :ạ ử
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.ạ
Trang 8CREATEPROC Prd_Thongke_Sach
ASBEGIN
DECLARE @TongQH INT
SELECT @TongQH=(SELECTCOUNT(MaNM)FROM dbo.tblQuaHan1)
SELECT dbo.Fun_TongSoSach()AS TongS,dbo.Fun_TongSoSachChoMuon()AS
SachCM,dbo.Fun_TongSoSach()-dbo.Fun_TongSoSachChoMuon()AS SachTK
,@TongQH AS QuaH
END
Ch y th :ạ ử
EXEC Prd_Thongke_Sach
4. Th t c tìm ki m sách m t quy n sách nào đó.ủ ụ ế ộ ể
CREATEPROC Prd_TK_SelectMaS
@MaS NVARCHAR(50)
AS BEGIN
IF(@MaS=' ' )
SELECT N'Ch a có'ư AS MaS ,N'Ch a có'ư AS MaL,N'Ch a có'ư AS TenS,N'Ch a ư có' AS NXB,N'Ch a có'ư AS NamXB,N'Ch a có'ư AS GiaSach
ELSEBEGIN
SELECT s.MaS,ls.MaL,TenS,NXB,NamXB,GiaSach FROM dbo.tblSach AS s
,dbo.tblLoaiSach AS ls WHERE ls.MaL=s.MaL AND( MaS LIKE @MaS+'%' OR TenS
LIKE '%'+@MaS+'%')
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ìộ ấ
CREATEPROC sinhvien_ms
Trang 9@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
fetchfirstfrom cur_ct
WHILE@@fetch_status=0
BEGIN fetchnextfrom cur_ct END
CLOSE cur_ctDEALLOCATE cur_ct
Ch y th :ạ ử
EXEC sinhvien_ms'10'
6 Th t c t c p nh t mã s hóa đ n khi thêm m t hóa đ n m i ủ ụ ự ậ ậ ố ơ ộ ơ ớ
createPROCEDURE Prd_MaSoHD
AS BEGIN
DECLARE @Dem INT
DECLARE @Dem1 INT
SELECT @Dem =COUNT(SoHDMuon)FROM dbo.tblHDMuon
SELECT @Dem1 =COUNT(SoHDMuon)FROM dbo.tblLichSu
IF @Dem=0 AND @Dem1=0
SELECT 1 AS SoHD
ELSE BEGIN
IF @Dem=0 AND @Dem1 !=0
SELECTMAX(SoHDMuon)+1 AS SoHD FROM dbo.tblLichSu
IF @Dem!=0 AND @Dem1 =0
SELECTMAX(SoHDMuon)+1 AS SoHD FROM dbo.tblHDMuon
Trang 10IF @Dem!=0 AND @Dem1 !=0
IF (SELECTMAX(SoHDMuon)AS SoHD FROM dbo.tblLichSu)>=(SELECT
MAX(SoHDMuon)AS SoHD FROM dbo.tblHDMuon)
SELECTMAX(SoHDMuon)+1 AS SoHD FROM dbo.tblLichSu
ELSESELECTMAX(SoHDMuon)+1 AS SoHD FROM dbo.tblHDMuon
ENDEND
Ch y th :ạ ử
EXEC dbo.Prd_MaSoHD
4.2 Hàm (FUNCTION)
1 Hàm tr v giá tr tính s l n mả ề ị ố ầ ượn m t quy n sách nào đó c a m t sinh viên ộ ể ủ ộ nào đó
CREATEfunction Fun_Soluongloaisach(@MaS nvarchar(50),@Id int)
RETURNSint
as
begin
declare @tong int
select @tong =(selectCOUNT( 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 Id_NM=@Id)
return @tong END
Ch y th :ạ ử
SELECT dbo Fun_Soluongloaisach ( 'S01','113')
2 Hàm tr v giá tr tính t ng s sách đang b mả ề ị ổ ố ị ượn mượn
CREATEFUNCTION Fun_TongSoSachChoMuon()
Trang 11as begin
declare @tong int
select @tong =(selectCOUNT(id_S)from tblChiTietHDMuon)
return @tong
END
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ả ề ị ổ ố ạ
createfunction Fun_TongSoSach()
returnsint
as
begin declare @tong int
select @tong=(selectCOUNT(id)from tblSach)
return @tong
end
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ừ ạ
CREATEFUNCTION SLSACHTHEOLOAI()
RETURNS @kq TABLE ( MaL nvarchar(50), SLSach int)
ASBEGIN
INSERTINTO @kq SELECT MaL,COUNT(MaS) FROM dbo.tblSach
GROUPBY MaL
RETURNEND
Ch y th :ạ ử
SELECT MaL, SLSach FROM dbo.SLSACHTHEOLOAI()
Trang 124.3 View
1 T o view li t kê thông tin các đ c gi mạ ệ ọ ả ượn sách quá h nạ
CREATEVIEW tblQuaHan1
AS SELECT dbo.tblNM.MaNM, dbo.tblNM.TenNM, dbo.tblNM.NgaySinh,
dbo.tblNM.Khoa, dbo.tblNM.DiaChi, dbo.tblNM.DongPhi, dbo.tblNM.GhiChu
FROM dbo.tblLoaiSach INNERJOIN
dbo.tblSach ON dbo.tblLoaiSach.MaL = dbo.tblSach.MaL INNERJOIN
dbo.tblChiTietHDMuon ON dbo.tblSach.Id =
dbo.tblChiTietHDMuon.Id_S INNERJOIN dbo.tblNM INNERJOIN dbo.tblHDMuon
ON dbo.tblNM.Id = dbo.tblHDMuon.Id_NM ON
dbo.tblChiTietHDMuon.SoHD_Muon = dbo.tblHDMuon.SoHDMuon
WHERE (DATEDIFF(dd, dbo.tblHDMuon.NgayM,GETDATE())> 120
Ch 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ở
CREATEVIEW 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 INNERJOINdbo.tblHDMuon AS m ON nm.Id = m.Id_NM
INNERJOIN dbo.tblChiTietHDMuon AS ctm ON m.SoHDMuon = ctm.SoHD_Muon
INNERJOIN dbo.tblSach AS s ON ctm.Id_S = s.Id INNERJOIN dbo.tblLoaiSach AS ls
ON s.MaL = ls.MaL
Ch y th :ạ ử
SELECT*FROM dbo.DGM
Trang 133 T o view ch a thông tin c b n v giao đ ch mạ ứ ơ ả ề ị ượn c a sinh viên.ủ
CREATEVIEW THONGTINS_M
AS
SELECT MaNM, TenNM, MaNV,TenNV, NgayM
FROM dbo.tblNV,dbo.tblNM, dbo.tblChiTietHDMuon, dbo.tblHDMuon
WHERE (dbo.tblNV.Id=dbo.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
4.4 Trigger
1 TRIGGER 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.ả ớ ả
CREATETRIGGER Them_HDM
ON dbo.tblHDMuon
FORINSERT 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)
Trang 14IF(@NgayM >GETDATE())
BEGIN
PRINT N'D li u nh p vào không đúng-Vui lòng ki m tra l i'ữ ệ ậ ể ạ
ROLLBACKTRAN END
ELSEIF (NOTEXISTS(SELECT SoHDMuon FROM dbo.tblHDMuon
WHERE SoHDMuon=@SoDMuon))
BEGIN
INSERTINTO dbo.tblHDMuon
( Id_NM, Id_NV, SoHDMuon, NgayM, GhiChu )
VALUES (@Id_NM , Id_NM - int
@Id_NV, Id_NV - int
@SoDMuon, SoHDMuon - int
@NgayM, NgayM - date
@GhiChu GhiChu - nvarchar(200)
) END
2 TRIGGER cho phép t c p nh t s lự ậ ậ ố ượng sách theo t ng lo i sách sau khi có ừ ạ giao d ch tr sách.ị ả
CREATETRIGGER UPDATE_SLS
ON tblSach
FORINSERT
AS
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.ả ễ
CREATETRIGGER dbo.Add_tblLichsu
ON tblTra FORINSERT
AS BEGIN
Trang 15DECLARE @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
DECLARE @NgayT DATE DECLARE @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 AND
dbo.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)
Trang 16VALUES ( @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
SoHD_Muon =@SoHDMuon
IF(@Index=0)
DELETE dbo.tblHDMuon WHERE SoHDMuon=@SoHDMuon
END ELSE
ROLLBACKTRAN END GO
4.5
Phân Quy n: ề
B1: Vào Database QLTHUVIEN -> Security -> Roles -> Kích chu t ph i vào Roles,ộ ả
ch n 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ế ề ề ủ
CREATEPROC [dbo].[phanquyen]
@manv nvarchar(10), @hoten nvarchar(50), @sdt numeric(18, 0),
@passnv nvarchar(3), @diachi nvarchar(100), @quyen nvarchar(50)
As begin
insertinto tblNV(MaNV,TenNV, SDT, PassNV, DiaChi, Quyen)values
(@manv,@hoten,@sdt, @passnv,@diachi,@quyen)
exec sp_addlogin@manv,@manv exec sp_grantdbaccess@manv,@manv
if(@quyen)='ADMIN'
begin exec sp_addrolemember'ADMIN',@manv end
else