sơ đồ ERD , thuộc tính thực thể cơ sở dữ liệu quản lí dữ liệu, Lệnh truy vấn INSERT , DELETE,SELECT, hướng dẫn chi tiết xây dựng mối quan hệ các thực thể, vẽ sơ đồ ERD, bảng thuộc tính thực thể, các lệnh truy vấn thuộc tính
Trang 2MỤC LỤC
PHẦN I: MỞ ĐẦU 2
1 Giới thiệu đề tài 2
2 Mô tả chức năng 3
PHẦN 2: NỘI DUNG THỰC HIỆN 5
2.1 Xác định thực thể 5
2.2 Xác định mối quan hệ 6
2.3 Vẽ sơ đồ ERD 8
2.4 Xác định thuộc tính cho thực thể 9
2.5 Xây dựng cơ sở dữ liệu 16
2.6 Thực hiện truy vấn 21
2.6.2 TRUY VẤN UPDATE 28
2.6.3 TRUY VẤN SELECT 29
2.6.4 TRUY VẤN DELETE 33
PHẦN 3 BÀI HỌC KINH NGHIỆM 34
3.1 Thuận lợi 34
3.2 Khó khăn 34
3.3 Kết luận 34
Trang 3ĐỀ TÀI : QUẢN LÝ THƯ VIỆN PHẦN I: MỞ ĐẦU
1 Gi i thi u đ tài ớ ệ ề
Hoạt động của trung tâm thư viện trong trường đại học Songlong được mô tả như sau:a) Đọc giả muốn mượn sách của thư viện, trước tiên phải đăng ký làm thẻ thưviện Quản lý đọc giả: nhập thông tin đọc giả khi đọc giả đến đăng ký làm thẻ Cácthông tin về đọc giả bao gồm: họ tên, ngày sinh, giới tính, địa chỉ nhà riêng, số điệnthoại nhà riêng, cơ quan công tác, mã đối tượng và những thông tin để xác nhận đọcgiả như số chứng minh thư hay số hộ chiếu Mỗi đọc giả có một định danh duy nhất là:
mã đọc giả Sau khi xác nhận các thông tin về đọc giả hệ thống tạo thẻ đọc giả dựatrên các thông tin đó Trên thẻ đọc giả có các thông tin: mã thẻ, tên đọc giả, ngày sinh,địa chỉ, ngày tạo, ngày hết hạn Các thông tin về đọc giả và thẻ đọc giả được lưu trữlại Mỗi đọc giả chỉ có một thẻ đọc giả và mỗi thẻ đọc giả chỉ thuộc một đọc giả Mỗiđọc giả thuộc một loại đối tượng ưu tiên tuỳ theo công việc và vị trí công tác của họ.Mỗi loại đối tượng ưu tiên có rất nhiều đọc giả Thông tin về loại đối tượng ưu tiênngoài mã đối tượng còn có tên đối tượng và các mô tả khác
b) Khi mượn sách đọc giả được phép mượn với số lượng và thời gian hạn chế tuỳtheo loại đối tượng ưu tiên Nhưng trước khi mượn họ phải trình thẻ đọc giả và không
có sách mượn quá hạn Hoạt động mượn trả sách được thực hiện như sau: Sau khikiểm tra thẻ đọc giả và kiểm tra sách quá hạn, nếu đúng là đọc giả đã đăng ký vàkhông có sách quá hạn, thì các sách mà họ yêu cầu sẽ được kiểm tra xem sách đó đãđược mượn hay chưa nếu sách chưa bị cho mượn thì thông tin về việc mượn sách đượclưu lại trên phiếu mượn Thông tin về phiếu mượn gồm có: số phiếu, ngày mượn, mãthẻ đọc giả và các thông tin chi tiết về các sách mượn: mã sách, số lượng, số ngàyđược mượn
c) Khi đọc giả trả sách thì nhân viên thư viện kiểm tra tình trạng sách trả, và ghinhận việc trả sách của đọc giả Nếu đọc giả trả muộn so với ngày quy định trên phiếumượn thì họ phải chịu một khoản lệ phí theo từng loại sách Mỗi thẻ đọc giả có thể cónhiều phiếu mượn, mỗi phiếu mượn chỉ ghi một thẻ đọc giả Trên mỗi phiếu mượn cóthể mượn nhiều sách, mỗi đầu sách có thể cho mượn nhiều lần Mỗi phiếu mượn domột nhân viên lập, một nhân viên có thể lập nhiều phiếu mượn
Trang 4phạt}
Ngoài ra vào tuần cuối cùng của tháng thư viện cũng tạo các báo cáo thống kê sốlượng sách mượn trong tháng và báo cáo về loại sách đang được yêu thích, số lượngđọc giả mượn sách
f) Việc quản lý sách của thư viện như sau: thường xuyên nhập thêm các đầu sáchdựa trên việc chọn sách từ các danh mục sách mà các nhà cung cấp gửi tới Khi cácsách quá cũ hoặc không còn giá trị sử dụng thì thanh lý sách Ngoài ra có thể sửathông tin về sách khi cần thiết Thông tin về sách bao gồm: mã sách, tên sách, thể loại,tình trạng, năm xuất bản, nhà xuất bản, tác giả Một nhà xuất bản xuất bản nhiều đầusách khác nhau Mỗi đầu sách do một nhà xuất bản xuất bản Một tác giả viết nhiềuđầu sách, một đầu sách do một tác giả viết (nếu có nhiều tác giả cùng viết thì chỉ cầnlưu thông tin người chủ biên) Thông tin về nhà xuất bản gồm có: mã nhà xuất bản, tênnhà xuất bản, địa chỉ, số điện thoại Thông tin về tác giả bao gồm: mã tác giả, tên tácgiả, cơ quan công tác, địa chỉ nhà riêng, số điện thoại
Quản lý thẻ đọc giả, phân loại thẻ đọc giả
Quản lý phiếu mượn
Quản lý sách, phân loại sách
Quản lý nhân viên và tài khoản truy cập
Gửi mail/sms nhắc sách quá hạn
Tìm sách cũ
Lập phiếu thanh lý sách
Quản lý nhà xuất bản
Trang 5 Thống kê số lượng sách mượn trong tháng, quí, năm…
Thống kê các loại sách đang được yêu thích
Liệt kê số lượng đọc giả mượn sách
Ngoài ra, phần mềm cung cấp các chức năng sau
o Backup và Restore Database cho phép sao lưu và phục hồi dữ liệu khicần
o Các báo cáo thống kê phải cho phép xuất ra máy in để lưu giấy
o Sử dụng tài khoản SQL Server để kết nối (Không sử dụng tài khoảnWindow) để cho phép tách riêng Database server, tiện cho việc mởrộng hệ thống phân tán
Trang 6PHẦN 2: NỘI DUNG THỰC HIỆN
2.1 Xác đ nh th c th ị ự ể
Trang 72.2 Xác đ nh m i quan h ị ố ệ
Trang 82.3 Vẽ s đ ERD ơ ồ
Trang 92.4 Xác đ nh thu c tính cho th c th ị ộ ự ể
Thẻ đọc giả
Stt Tên thuộc tính Kiểu dữ liệu notnull Null/ định Mặc Ràng buộc Ghi chú Khóa
2 TenDocGia Nvarchar(50) NotNull
5 DiaChi Nvarchar(255) Not
null
7 NgayHetHan Datetime NotNull >ngaytao
Phiếu mượn
Stt Tên thuộc tính Kiểu dữ liệu notnull Null/ định Mặc Ràng buộc Ghi chú Khóa
6 SoNgayDuocMuon datetime
Trang 10Nhân viên
Stt Tên thuộc tính Kiểu dữ liệu notnull Null/ Mặc định Ràng buộc Ghi chú Khóa
2 TenNhanVien Nvarchar(50) NotNull
4 Ngaysinh Datetime Notnull
5 Ngayvaolam Datetime Null Getdate()
Ràng buộc Ghi chú Khóa
2 TenSach Nvarchar(255) NotNull
3 TheLoai Nvarcha(50) NotNull
4 TinhTrang Nvarchar
7 TacGia Nvarchar(30) NotNull
9 NhaXuatBan Nvarchar(255) NotNull
Trang 11Nhà xuất bản
STT TÊN THUỘC TÍNH
KIỂU DỮ LIỆU
NULL/
NOTN ULL
MẶC ĐỊNH
RÀNG BUỘC
MẶC ĐỊNH
RÀNG BUỘC
GHI
2 TenTacGia Nvarchar(50) NotNull
3 CoQuanCongTac Nvarchar(225) Null
4 DiaChiNhaRieng Nvarchar(225) Null
Trang 12MẶC ĐỊNH
RÀNG BUỘC CHÚ KHÓA GHI
5 NgayLap Datetime Null Getdate() >Ngaymuon
Nhà cung cấp
STT TÊN THUỘC TÍNH KIỂU DỮ LIỆU
NULL/
NOTN ULL
MẶC ĐỊNH
RÀNG BUỘC
GHI
2 TenNhaCungCap Nvarchar(225) NotNull
3 DiaChiNhaCungCap Nvarchar(225) Null
4 SDTNhaCungCap Char(10) Null
Phiếu nhập
Stt Tên thuộc tính Kiểu dữ liệu
Null/
not Null
Mặc định
Ràng buộc
Ghi chú Khóa
Trang 13 Đối tượng ưu tiên
Stt Tên thuộc tính Kiểu dữ liệu
Null/
not Null
Mặc định
Ràng buộc
Ghi chú Khóa
tăng PK
2 TenDTUT Nvarchar(30) NotNull
Ràng buộc Ghi chú Khóa
tăng PK
2 TenDG Nvarchar(50) NotNull
4 Ngaysinh Datetime Not null
6 Diachi Nvarchar(100) Not null
Trang 14Chi tiết phiếu nhập
Stt Tên thuộc tính Kiểu dữ liệu notnull Null/ định Mặc Ràng buộc Ghi chú Khóa
tăng PK
Chi tiết phiếu mượn
Stt Tên thuộc tính Kiểu dữ liệu notnull Null/ định Mặc Ràng buộc Ghi chú Khóa
Trang 15Bộ phận
Stt Tên thuộc tính Kiểu dữ liệu
Null/
not Null
Mặc định
Ràng buộc Ghi chú Khóa
tăng PK
2 TenBP Nvarchar(30) NotNull
Trang 162.5 Xây d ng c s d li u ự ơ ở ữ ệ
LỆNH TẠO CƠ SỞ DỮ LIỆU VÀ CÁC THUỘC TÍNH LIÊN QUAN:
usemaster
createdatabase Quanlithuvien
usedatabase Quanlithuvien
Createtable DoituongUT (
MaDoiTuong int not null identity (1,1),
TenLoaiDoituong Nvarchar(30) not null,
Mota Nvarchar(100) null defaultN'',
primarykey ( Madoituong)
)
Createtable Docgia(
MaDG int not null identity (1,1),
TenDG Nvarchar(30) not null,
Ngaysinh date not null,
sdt varchar(10) null defaultN'',
Gioitinh bit null Default 1,
Diachi Nvarchar (250) not null
CMND varchar(9) not null,
Primarykey ( MaDG)
)
altertable Docgia
addconstraint ck_ngaysinh check (ngaysinh<getdate())
altertable Docgia
addconstraint myuniqueconstraint unique(CMND)
Createtable TheDG(
MaThe int not null
MaDG int not null,
TenDG Nvarchar(30) not null,
MaDoiTuong int not null,
Diachi Nvarchar(250) not null,
Ngaytao date null default getdate(),
Ngayhethan date not null,
Primarykey (Mathe)
)
createtable BP(
MaBP int not null identity(1,1),
TenBP Nvarchar(10) not null,
Mota Nvarchar(50) null defaultN'',
Primarykey (MaBP)
)
createtable NhaCungcap(
MaNCC int not null identity (1,1),
TenNCC Nvarchar(30) not null,
Trang 17primarykey (MaNCC)
)
Createtable Tacgia(
MaTG int not null,
TenTG Nvarchar(30) not null,
Coquan Nvarchar(30) null defaultN'',
Diachi Nvarchar(50) null defaultN'',
SDT varchar(10) not null,
primarykey ( Matg)
)
Createtable NXB(
MaNXB int Not null
TenNXB Nvarchar(30) not null
SDT varchar(10) null defaultN'',
Diachi Nvarchar(50) null defaultN'',
Primarykey (MaNXB)
)
createtable Nhanvien(
MaNV int not null,
HoTen Nvarchar(30) not null,
Ngaysinh date not null,
SDT varchar(10) not null,
Ngayvaolam date null default getdate(),
MaBP int not null,
Chucvu Nvarchar(20) null defaultN'Nhân viên',
Luong money not null,
Mota Nvarchar(100) null defaultN'',
primarykey (MaNV)
)
ALTERTABLE Nhanvien
addconstraint ck_ngayvaolam check(ngayvaolam <=getdate())
ALTERTABLE Nhanvien
addconstraint ck_Nhanvien_ngaysinh check (ngaysinh <getdate())
Createtable Phieumuon(
MaPM int not null,
MaThe int not null,
MaNV int not null,
Ngaymuon date null default getdate(),
Trang 18MaPNT int not null identity (1,1),
MaPM int not null,
Dongiaphat money not null,
MaNV int not null,
ngaylap date null default getdate(),
primarykey (MaPNT)
)
altertable PhieuNhactra
addconstraint ck_Dongiaphat check ( dongiaphat >0)
createtable Sach(
MaSach int not null,
Tensach Nvarchar(50) not null,
Theloai Nvarchar (30) not null,
Tinhtrang Nvarchar(10) not null,
NamXB char(4) not null,
MaTG int not null,
TenTG Nvarchar(30) not null
MaNXB int not null,
TenNXB Nvarchar (50) not null,
primarykey (Masach)
)
createtable Phieunhap(
MaPN int not null
MaNV int not null,
Tongtien money not null,
MaNCC int not null,
Ngaynhap date null default getdate (),
primarykey (MaPN)
)
altertable Phieunhap
addconstraint ck_Tongtien check (tongtien >0)
Createtable Chitietphieunhap(
MaCTPN int not null identity (1,1),
MaSach int not null,
MaPN int not null,
Soluong int not null,
Thanhtien money not null,
primarykey (MaCTPN)
)
altertable Chitietphieunhap
addconstraint ck_chitietphieunhap_soluong check (soluong>=1)
altertable Chitietphieunhap
addconstraint ck_Chitietphieunhap_Thanhtien check (Thanhtien>0)
createtable Chitietphieumuon(
MaCTPM int not null identity (1,1),
MaPM int not null,
Trang 19Soluong int not null,
Thanhtien money not null,
Ghichu Nvarchar(50) null defaultN'',
Primarykey (MaCTPM)
)
altertable chitietphieumuon
addconstraint ck_chitietphieumuon_soluong check (soluong>=1)
altertable chitietphieumuon
addconstraint ck_thanhtien_chitietphieumuon_thanhtien check (thanhtien>0)
ALTERTABLE TheDG
ADDConstraint FK_TheDG_DoituongUT ForeignKey (MaDoituong)
References DoituongUT(MaDoituong)
Ondeletecascade
ALTERTABLE TheDG
ADDConstraint FK_TheDG_Docgia ForeignKey (MaDG)
References Docgia(MaDG)
Ondeletecascade
ALTERTABLE phieumuon
ADDConstraint FK_phieumuon_TheDG ForeignKey (MaThe)
References TheDG(mathe)
Ondeletecascade
Altertable phieumuon
ADDconstraint FK_Phieumuon_Nhanvien Foreignkey (MaNV)
References Nhanvien(MaNV)
Ondeletecascade
ALTERTABLE Phieunhactra
ADDConstraint FK_Phieunhactra_Phieumuon ForeignKey (MaPM)
References Phieumuon(MaPM)
Ondeletecascade
ALTERTABLE Phieunhactra
ADDConstraint FK_Phieunhactra_Nhanvien ForeignKey (MaNV)
References Nhanvien(MaNV)
ALTERTABLE Nhanvien
ADDConstraint FK_Nhanvien_BP ForeignKey (maBp)
Trang 20ALTERTABLE Phieunhap
ADDConstraint FK_phieunhap_Nhanvien ForeignKey (MaNV)
References Nhanvien(Manv)
Ondeletecascade
ALTERTABLE Phieunhap
ADDConstraint FK_phieunhap_NhaCungcap ForeignKey (MaNCC)
References NhaCungcap(MaNCC)
Ondeletecascade
ALTERTABLE chitietPhieunhap
ADDConstraint FK_chitietphieunhap_sach ForeignKey (Masach)
References sach(masach)
Ondeletecascade
ALTERTABLE chitietPhieunhap
ADDConstraint FK_chitietphieunhap_MaPN ForeignKey (MaPN)
References Phieunhap(MaPN)
Ondeletecascade
ALTERTABLE chitietPhieumuon
ADDConstraint FK_chitietphieumuon_Phieumuon ForeignKey (MaPM)
References Phieumuon(MaPM)
Ondeletecascade
ALTERTABLE chitietPhieumuon
ADDConstraint FK_chitietphieumuon_Sach ForeignKey (MaSach)
References Sach(Masach)
Ondeletecascade
Trang 212.6 Th c hi n truy v n ự ệ ấ
2.6.1 TRUY VẤN INSERT
- Đối tượng ưu
tiên -Insertinto DoituongUT values ( N'Học sinh',N'')
Insertinto DoituongUT values ( N'Sinh viên',N'')
Insertinto DoituongUT values ( N'CBVC ',N'')
Insertinto DoituongUT values ( N'Giảng viên',N'')
Insertinto DoituongUT values ( N'Khách vãng lai',N'')
- Đọc giả -
Insertinto Docgia( TenDG, Ngaysinh,sdt,CMND,Diachi) values ( N'Vương Minh Tuấn','1995-03-10','0354403856','241570269',N'Thôn 3, Tân Tiến, Krong Pak, Dak Lak')
Insertinto Docgia( TenDG, Ngaysinh,sdt,CMND,Diachi) values ( N'Nguyễn Đức Thành','1995-09-24','0377192008','241321529',N'Thôn 1, Hòa Tiến, Krong Pak, Dak Lak')
Insertinto Docgia( TenDG, Ngaysinh,sdt,CMND,Diachi) values ( N'Nguyễn Thành Giang','1992-06-11','0350980731','241352041',N'12 Trần Văn Phụ, P.Tân Lợi, TP BMT Dak Lak')
Insertinto Docgia( TenDG, Ngaysinh,sdt,CMND,Diachi) values ( N'Cao Hữu Quốc Trí','1999-08-23','0929120949','241509482',N'Khối 7, Krong Pak, Dak Lak')
Insertinto Docgia( TenDG, Ngaysinh,sdt,CMND,Diachi) values ( N'Đào Ngọc Dũng',
'2000-04-20','0974721191','241902913',N'Km12, Hòa Đông, Dak Lak')
Trang 22-Thẻ Đọc
giả -Insertinto TheDG(MaThe,MaDG,TenDG,MaDoiTuong,Diachi,Ngayhethan) values
( 111,1,N'Vương Minh Tuấn',2,N'Thôn 3, Tân Tiến, Krong Pak, Dak Lak',03')
'2020-03-Insertinto TheDG(MaThe,MaDG,TenDG,MaDoiTuong,Diachi,Ngayhethan) values
( 112,2,N'Nguyễn Đức Thành',2,N'Thôn 1, Hòa Tiến, Krong Pak, Dak Lak',03')
'2020-03-Insertinto TheDG(MaThe,MaDG,TenDG,MaDoiTuong,Diachi,Ngayhethan) values
( 113,3,N'Nguyễn Thành Giang',1,N'12 Trần Văn Phụ, P.Tân Lợi, TP BMT Dak
Lak','2020-03-03')
Insertinto TheDG(MaThe,MaDG,TenDG,MaDoiTuong,Diachi,Ngayhethan) values
( 114,4,N'Cao Hữu Quốc Trí',4,N'Khối 7, Krong Pak, Dak Lak','2020-03-03')
Insertinto TheDG(MaThe,MaDG,TenDG,MaDoiTuong,Diachi,Ngayhethan) values
( 115,5,N'Đào Ngọc Dũng',5,N'Km12, Hòa Đông, Dak Lak','2020-03-03')
Bộ Phận
-insertinto BP( TenBP ) values ( N'Thủ thư')
insertinto BP( TenBP ) values ( N'Thủ kho')
insertinto BP( TenBP ) values ( N'Kế toán')
insertinto BP( TenBP ) values ( N'Giám đốc')
insertinto BP( TenBP ) values ( N'Nhân viên')
Trang 23-Nhà xuất
bản -insertinto NXB(MaNXB, TenNXB) values ( 211,N'Nhà xuất bản Trẻ')
insertinto NXB(MaNXB, TenNXB) values ( 212,N'Nhà xuất bản Văn học')
insertinto NXB(MaNXB, TenNXB) values ( 213,N'Nhà xuất bản Kim Đồng')
insertinto NXB(MaNXB, TenNXB) values ( 214,N'Nhà xuất bản Tổng hợp TPHCM ')
insertinto NXB(MaNXB, TenNXB) values ( 215,N'Nhà xuất bản giáo dục')
Tác giả
-insertinto Tacgia(MaTG,TenTG,SDT) values ( 311,N'Nguyễn Anh Hùng',
'0123468765')
insertinto Tacgia(MaTG,TenTG,SDT) values ( 312,N'Lê Thị Riêng','0125167458')
insertinto Tacgia(MaTG,TenTG,SDT) values ( 313,N'Nam Cao','0979362514')
insertinto Tacgia(MaTG,TenTG,SDT) values ( 314,N'Anh Khang','035556846')
insertinto Tacgia(MaTG,TenTG,SDT) values ( 315,N'Du Phong','0125468979')
Trang 24Nhà cung cấp
-insertinto NhaCungcap( TenNCC ) values ( N' NXB Giáo dục Việt Nam')
insertinto NhaCungcap( TenNCC ) values ( N' NXB Đại học Sư phạm Hà Nội')
insertinto NhaCungcap( TenNCC ) values ( N' NXB Đại học Sư phạm TPHCM')
insertinto NhaCungcap( TenNCC ) values ( N' NXB Đại học Quốc gia Hà Nội')
insertinto NhaCungcap( TenNCC ) values ( N' NXB Đại học Sư phạm Huế')
- Nhân viên -
insertinto Nhanvien( MaNV,HoTen,Ngaysinh,SDT,MaBP,Luong) values
( 2001,N'Nguyễn Thành','1994-02-12','0351631838', 5, 3000000)
insertinto Nhanvien( MaNV,HoTen,Ngaysinh,SDT,MaBP,Luong) values
( 2002,N'Hoàng Anh Tuấn','1991-03-23','0987112467', 3, 9000000)
insertinto Nhanvien( MaNV,HoTen,Ngaysinh,SDT,MaBP,Luong) values
( 2003,N'Vương Việt Hoàng','1995-01-28','0354132329', 1, 6000000)
insertinto Nhanvien( MaNV,HoTen,Ngaysinh,SDT,MaBP,Luong) values
( 2004,N'Nguyễn Công Phượng','2000-06-30','0974612325', 2, 4000000)
insertinto Nhanvien( MaNV,HoTen,Ngaysinh,SDT,MaBP,Luong) values
( 2005,N'Nguyễn Văn Toàn','1994-12-23','0123516498', 4, 10000000)