Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
Trường Đại Học Công Nghiệp Hà Nội
Khoa Công Nghệ Thông Tin
----------
BÀI TẬP LỚN:THIẾT KẾ CƠ SỞ DỮ LIỆU
Đề tài: Quản lý thư viện trường đại học Thành Đô.
Giáo viên hướng dẫn:
Th.s Nguyễn Thị Thanh Huyền
Lớp: Hệ thống thông tin – K7
Nhóm 2:
Thân Văn Hiệp
Nguyễn Thanh Luân
Hà Nội,Ngày 14 Tháng 01 Năm 2016
1
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
Mục Lục
2
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
Lời nói đầu
Quản lý Thư viện của một trường đại học là một trong những công việc hết sức phức
tạp và khó khăn nếu quản lý bằng tay, nhất là quản lí mượn trả của thư viện. Chính vì
vậy, công nghệ thông tin với những công cụ thích hợp, được phát triển, xây dựng để hỗ
trợ cho công tác quản lý này.
Các công cụ được phát triển để hỗ trợ quản lý hiện nay như về phía cơ sở dữ liệu có
SQL Server 2000, My SQL, Oracle, Access,... Từ các cơ sở dữ liệu xây dựng bằng các hệ
quản trị cơ sở dữ liệu trên, ta có thể dễ dàng quản lý các vấn đề đặt ra cho kế toán, quản
lý một cửa hàng, một doanh nghiệp, một trường học,và quản lý thư viện của trường trung
học phổ thông dựa trên các công cụ có sẵn của hệ quản trị cơ sở dữ liệu, hoặc là sử
dụng các ngôn ngữ lập trình khác như VB, C#, VB.NET,… để sử dụng cơ sở dữ liệu đó.
Đề tài quản lí của nhóm 2 chúng em là : “Quản lí thư viện trường đại học”. Nhóm chúng
em cũng xin chân thành cảm ơn cô Nguyễn Thi Thanh Huyền đã dẫn dắt nhóm chúng
em để hoàn thành được bài tập này.
3
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
Chương I: XÁC ĐỊNH NHIỆ M VỤ VÀ MỤC TIÊU CỦA HỆ THỐNG
− 1. Phỏng vấn Độc giả và nhà quản lý.
Nhà quản lý
• Anh (chị) cho biết mục tiêu chức năng của thư viện là gì?
• Anh (chị) cần những thông tin gì trong phiếu báo cáo thống kê về tình hình
sách?
• Anh (chị) cần những thông tin gì trong phiếu báo cáo thống kê về độc giả
nợ sách?
• Anh (chị) cần những thông tin gì về nhà cung cấp sách?
• Anh (chị) muốn lưu trữ thông tin về các nhân viên như thế nào?
• Anh (chị) muốn bảo mật thông tin gì?
Thủ thư
• Anh (chị) cần những thông tin gì trong phiếu mượn sách ?
• Anh (chị) muốn lưu trữ thông tin về độc giả như thế nào?
• Anh (chị) muốn phân loại sách như thế nào?
• Anh (chị) muốn quản lý nhật ký mượn trả sách của độc giả như thế nào?
• Anh (chị) muốn thông tin gì về sách được mượn nhiều nhất và ít nhất
trong quý?
• Anh (chị) cần thông tin gì về sách tồn kho ?
• Anh (chị) cần những thông tin gì về độc giả quá hạn?
• Anh (chị) cần những thông tin gì về độc giả mượn nhiều nhất trong tháng?
• Anh (chị) muốn lưu trữ thông tin về các loại sách như thế nào?
• Anh (chị) cần những thông tin gì về sách quá thời hạn?
• Anh (chị) cần những thông tin gì về độc giả?
Độc giả
• Anh (chị) cần những thông tin gì về sách ?
• Anh (chị) cần những thông tin gì về các loại sách thư viện nhập về?
−
2. Mục tiêu của hệ thống
Tin học hóa hệ thống hiện tại để việc quản lý thư viện đạt hiệu quả tốt nhất.
4
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
− 3. Nhiệm vụ của hệ thống
•
•
•
•
•
•
•
•
Lưu trữ thông tin về nhà cung cấp
Lưu trữ thông tin độc giả
Lưu trữ thông tin về sách
Thống kê về số lượng sách
Thống kê về độc giả nợ sách
Lưu trữ thông tin phiếu mượn
Lưu trữ thông tin về phiếu phạt
Thống kê doanh thu
5
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
Chương 2: PHÂN TÍCH DỮ LIỆU
Thu thập mẫu tài liệu xuất, mẫu hiển thị trên màn hình, trên website, trên các báo cáo
bằng mấu giấy của thư viện.
− 1. Thẻ độc giả
Bước 1: Liệt kê các trường dữ liệu
Mã Số thẻ, Ngày cấp, Họ và Tên,Lớp, Ngày Sinh, Nam/Nữ, Địa chỉ, Hạn Dùng
Bước 2: Loại bỏ các trường dư thừa,thay thế và bổ sung
• Thay thế:
− Mã Số Thẻ = MaSoThe
− Ngày cấp=NgayCap
− Họ và Tên = TenDG
− Ngay Sinh=NgaySinh
− Nam/Nữ=GioiTinh
− Địa chỉ=DiachiDG
− Hạn dùng=HanDung
− Lớp=TenLop
6
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
• Bổ sung thuộc tính định danh:
− MaLop,MaDG
Bước 3: Xác định các phụ thuộc hàm
MaSoThe->MaDG, HanDung, NgayCap
MaLop->TenLop
MaDG- >TenDG, NgaySinh, DiachiDG, GioiTinh, MaLop
Khóa:MaSoThe
Bước 4: Tách về 3NF
0NF
MaSoThe
MaDG
TenDG
DiaChiDG
HanDung
NgayCap
NgaySinh
GioiTinh
MaLop
TenLop
1NF
MaSoThe
MaDG
TenDG
DiaChiDG
HanDung
NgayCap
NgaySinh
GioiTinh
MaLop
TenLop
2NF
MaSoThe
MaDG
TenDG
DiaChiDG
HanDung
NgayCap
NgaySinh
GioiTinh
MaLop
TenLop
3NF
MaLop
TenLop
MaSoThe
MaDG
HanDung
NgayCap
MaDG
MaLop
TenDG
DiaChiDG
GioiTinh
NgaySinh
Đặt Tên
LOP
THETHUVIEN
DOCGIA
7
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
− 2. Phiếu mượn sách
Bước 1:Liệt kê các trường dữ liệu
Số, Mã Số Thẻ, Họ và Tên, Tên Sách, Mã Sách, Tác Giả, Nhà Xuất Bản, Mã Sách,
Tên sách, Người Mượn, Ngày Mượn, Hẹn Ngày Trả, Nhân Viên, Số Lượng
8
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
Bước 2: Loại bỏ các trường dư thừa, thay thế và bổ sung
Loại bỏ: Nhân Viên, Người Mượn
Thay thế:
Số = SoPM
Mã Số Thẻ = MaSoThe
Họ và Tên = TenDG
Tác giả = TenTG
Mã sách = MaSach
Ngày Mượn=NgayMuon
Hẹn Ngày Trả=NgayTra
Số Lượng=SoLuongM
Nhà Xuất Bản=TenNXB
Bổ sung thuộc tính định danh: MaTG, MaNXB, MaDG
Bước 3: Xác định các phụ thuộc hàm
SoPM ->MaSoThe, NgayMuon, NgayTra, MaSach, MaTG, MaNXB
MaSoThe- >MaDG
MaDG -> TenDG
MaSach ->TenSach, MaTG, MaNXB
MaTG ->TenTG
MaNXB->TenNXB
{SoPM, MaSach}- >SoLuongM
Khóa Chính: SoPM
9
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
Bước 4: Tách 3NF
0NF
SoPM
MaSoThe
MaDG
TenDG
MaSach
TenSach
MaTG
TenTG
NgayMuon
NgayTra
MaNXB
TenNXB
SoLuongM
1NF
SoPM
MaSoThe
NgayMuon
TenDG
MaDG
NgayTra
2NF
SoPM
MaSoThe
NgayMuon
TenDG
MaDG
NgayTra
3NF
SoPM
MaDG
MaSoThe
NgayMuon
NgayTra
Đặt Tên
MaDG
TenDG
DOCGIA
SoPM
MaSach
TenSach
MaTG
TenTG
MaNXB
TenNXB
SoLuongM
SoPM
MaSach
SoLuongM
SoPM
MaSach
SoLuongM
CTPMUON
MaSach
MaTG
MaNXB
TenSach
TenTG
TenNXB
MaSach
MaTG
MaNXB
TenSach
MaTG
TenTG
MaNXB
TenNXB
SACH
PHIEUMUON
TACGIA
NXB
10
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
− 3. Phiếu Nhắc Trả Sách
Bước 1:Liệt kê các trường dữ liệu
Số, Kính gửi bạn đọc, số thẻ, địa chỉ, TT, Mã sách, Tên sách, Hạn trả, Đơn giá,
Ngày tháng năm
Bước 2: Loại bỏ các trường dư thừa, thay thế và bổ sung
Loại bỏ:TT
Thay thế:
−
−
−
−
−
−
Số=SoPNTS
Kính gửi bạn đọc=TenDG
Số thẻ=MaSoThe
Địa chỉ=DiachiDG
Mã Sách=MaSach
Tên sách=TenSach
11
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
− Hạn trả=NgayTra
− Đơn Giá=DonGia
− Ngày tháng năm=NgayNTS
Bổ sung thuộc tính định danh: MaDG
Bước 3: Xác định các phụ thuộc hàm
− SoPNTS->NgayNTS, MaSoThe, MaDG, MaSach
− MaSoThe- >MaDG
− MaSach->TenSach, DonGia
− MaDG->TenDG, DiachiDGa
− {SoPNTS, MaSach}- >NgayTra
Bước 4:Tách về 3NF
0NF
SoPNTS
MaSoThe
MaDG
TenDG
DiaChiDG
MaSach
TenSach
DonGia
NgayTra
NgayNTS
1NF
SoPNTS
MaSoThe
MaDG
TenDG
DiaChiDG
NgayNTS
MaSach
SoPNTS
TenSach
DonGia
NgayTra
2NF
SoPNTS
MaSoThe
MaDG
TenDG
DiaChiDG
NgayNTS
SoPNTS
MaSach
NgayTra
MaSach
TenSach
DonGia
3NF
SoPNTS
MaDG
MaSoThe
NgayNTS
Đặt Tên
PHIEUNHACTRASACH
MaDG
TenDG
DiaChiDG
MaSach
TenSach
DonGia
SoPNTS
MaSach
NgayTra
DOCGIA
SACH
CTPNHACTRASACH
12
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
− 4. Phiếu Thống kê sách nhập
−
−
Bước 1:Liệt kê các t
rường dữ liệu
Số, STT, Tên Sách, Tác Giả, Nhà XB, Năm XB, Số Lượng, Đơngiá, Thành Tiền, Tổng
Tiền, Ngày tháng năm
Bước 2: Loại bỏ các trường dư thừa,thay thế và bổ sung
Loại bỏ:
STT, Thành Tiền, Tổng Tiền
Thay thế:
− Số=SoPTKSN
13
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
−
−
−
−
−
−
−
Nhóm 2
Tên Sách=TenSach
Tác Giả=TenTG
Nhà XB=TenNXB
Năm XB=NamXB
Số Lượng=SoLuongN
Đơn Giá=DonGia
Ngày tháng năm=NgayNhap
Bổ sung thuộc tính định danh
MaSach,MaNXB,MaTG
Bước 3: Xác định các phụ thuộc hàm
SoPTKSN->NgayNhap, MaSach, MaTG, MaNXB
MaSach->TenSach, DonGia, MaNXB, MaTG, NamXB
MaNXB->TenNXB
MaTG->TenTG
{SoPTKSN, MaSach}- >SoLuongN
Khóa Chính: SoPTKSN
Bước 4:Tách về 3NF
0NF
SoPTKSN
MaSach
MaNXB
MaTG
SoLuongN
NgayNhap
TenSach
DonGia
TenTG
TenNXB
NamXB
1NF
SoPTKSN
NgayNhap
SoPTKSN
MaSach
MaNXB
MaTG
SoLuongN
NgayNhap
TenSach
DonGia
TenTG
TenNXB
NamXB
2NF
SoPTKSN
NgayNhap
SoPTKSN
MaSach
SoLuongN
MaSach
MaTG
MaNXB
NamXB
TenSach
DonGia
MaTG
TenTG
MaNXB
TenNXB
3NF
SoPTKSN
NgayNhap
SoPTKSN
MaSach
SoLuongN
MaSach
MaTG
MaNXB
NamXB
TenSach
DonGia
MaTG
TenTG
MaNXB
TenNXB
Đặt Tên
TKSN
CTPTKSN
SACH
TACGIA
NXB
14
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
15
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
− 5. Phiếu Phạt
Bước 1:Liệt kê các trường dữ liệu
Số, Kính gửi bạn đọc, Số thẻ, Địa chỉ, TT, Mã Sách, Tên Sách, ĐơnGiá, Số Tiền
Phạt
Tổng số tiền phạt, Ngày tháng năm
Bước 2: Loại bỏ các trường dư thừa,thay thế và bổ sung
Loại bỏ: TT, Tổng số tiền phạt
Thay thế:
−
−
−
Số=SoPP
Kính gửi bạn đọc=TenDG
Số thẻ=MaSoThe
16
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
−
−
−
−
−
−
Nhóm 2
Địa chỉ=DiachiDG
Mã Sách=MaSach
Tên Sách=TenSach
Đơn giá=DonGia
Số Tiền phạt=SoTienPhat
Ngày tháng năm=NgayPhat
Bổ sung thuộc tính định danh: MaDG
Bước 3: Xác định các phụ thuộc hàm
SoPP-> MaSoThe, MaDG, MaSach, NgayPhat
MaSoThe- >MaDG
MaDG->TenDG, DiachiDG
MaSach->TenSach, DonGia, SoTienPhat
Bước 4:Tách về 3NF
0NF
SoPP
MaSoThe
MaDG
MaSach
NgayPhat
TenDG
DiaChiDG
TenSach
DonGia
SoTienPhat
1NF
SoPP
MaSoThe
MaDG
NgayPhat
TenDG
DiaChiDG
SoPP
MaSach
TenSach
DonGia
SoTienPhat
2NF
SoPP
MaSoThe
MaDG
NgayPhat
TenDG
DiaChiDG
SoPP
MaSach
SoTienPhat
MaSach
TenSach
DonGia
3NF
SoPP
MaDG
MaSoThe
NgayPhat
Đặt Tên
PHIEUPHAT
MaDG
TenDG
DiaChiDG
MaSach
TenSach
DonGia
SoPP
MaSach
SoTienPhat
DOCGIA
SACH
CTPHIEUPHA
T
17
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
− 6. Tổng hợp các bảng dữ liệu
• DOCGIA(MaDG, MaLop , TenDG, DiachiDG, NgaySinh, GioiTinh)
• THETHUVIEN(MaSoThe, MaDG, HanDung, NgayCap)
• LOP(MaLop, TenLop)
• SACH(MaSach, MaTG, MaNXB, TenSach, DonGia, NamXB)
• TACGIA(MaTG,TenTG)
• NHAXUATBAN(MaNXB, TenNXB)
• PHIEUMUON(SoPM, MaDG, MaSoThe, NgayMuon, NgayTra)
• CTPMUON(SoPM, MaSach, SoLuongM)
• PHIEUNHACTRASACH(SoPNTS, MaDG, MaSoThe, NgayNTS)
• CTPNHACTRASACH(SoPNTS, MaSach, NgayTra)
• TKSN(SoPTKSN, NgayNhap)
• CTPTKSN(SoPTKSN, MaSach, SoLuongN)
• PHIEUPHAT(SoPP, MaDG, MaSoThe, NgayPhat)
• CTPPHAT (SoPP, MaSach, SoTienPhat)
18
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
Chương 3: TẠO BẢNG CSDL
− 1. Lập từ điển dữ liệu
19
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
20
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
21
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
22
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
− 2. Tạo các bảng CSDL Vật lý
−
Bảng THETHUVIEN
−
Tên Trường
Kiểu dữ liệu
Notnull
Khóa chính/khóa
phụ
PK/FK
1
MaSoThe
nvarchar(50)
x
PK
Mã Đọc giả
2
3
4
MaDG
NgayCap
HanDung
nvarchar(50)
nvarchar(50)
Date
x
x
x
FK
Mã Đọc Giả
Ngày Cấp
Hạn Dùng
Tên Trường
Kiểu dữ liệu
Notnull
Khóa chính/khóa
phụ
PK/FK
Mô tả
1
MaDG
nvarchar(50)
x
PK
Mã Đọc giả
2
3
4
5
6
TenDG
DiachiDG
NgaySinh
GioiTinh
MaLop
nvarchar(50)
nvarchar(50)
Date
Bit
nvarchar(50)
x
x
x
x
x
STT
Mô tả
−
Bảng DOCGIA
STT
Tên Đọc giả
Địa chỉ đọc giả
Ngày sinh
Giới tính
Mã lớp
Bảng LOP
STT
Tên Trường
Kiểu dữ liệu
Notnull
Khóa chính/khóa
phụ
PK/FK
Mô tả
23
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
1
2
MaLop
TenLop
nvarchar(50)
nvarchar(50)
Nhóm 2
x
x
PK
Mã lớp
Tên lớp
Bảng SACH
STT
Tên Trường
Kiểu dữ liệu
Notnull
1
2
3
4
5
6
MaSach
TenSach
MaTG
MaNXB
DonGia
NamXB
nvarchar(50)
nvarchar(50)
nvarchar(50)
nvarchar(50)
Money
Nvarchar(50)
x
x
x
x
x
x
Khóa chính/khóa
phụ
PK/FK
PK
Mô tả
Mã sách
Tên sách
Mã tác giả
Mã Nhà xuất bản
Đơn Giá
Năm Xuất Bản
Bảng TACGIA
STT
Tên Trường
Kiểu dữ liệu
Notnull
1
2
MaTG
TenTG
nvarchar(50)
nvarchar(50)
x
x
Khóa chính/khóa
phụ
PK/FK
PK
Mô tả
Mã tác giả
Tên tác giả
Bảng NHAXUATBAN
STT
Tên Trường
Kiểu dữ liệu
Notnull
1
2
MaNXB
TenNXB
nvarchar(50)
nvarchar(50)
x
x
Khóa chính/khóa
phụ
PK/FK
PK
Mô tả
Mã nhà xuất bản
Tên nhà xuất bản
Bảng PHIEUNHACTRASACH
STT
Tên Trường
Kiểu dữ liệu
Notnull
Khóa chính/khóa
phụ
PK/FK
Mô tả
24
Bài Tập Lớn:Thiết kế cơ sở dữ liệu
Nhóm 2
1
SoPNTS
nvarchar(50)
x
2
3
4
MaDG
NgayNTS
MaSoThe
nvarchar(50)
Date
navarchar(50)
x
x
x
PK
Số phiếu nhắc trả
sách
Mã Đọc giả
Ngày nhắc trả sách
Mã Số Thẻ
Bảng CTPNHACTRASACH
STT
Tên Trường
Kiểu dữ liệu
Notnull
Khóa chính/khóa
phụ
PK/FK
1
SoPNTS
nvarchar(50)
x
PK
nvarchar(50)
Date
x
x
FK
2
3
MaSach
NgayTra
Bảng TKSN
STT
Tên Trường
Kiểu dữ liệu
Notnull
1
2
SoPN
NgayNhap
nvarchar(50)
Date
x
x
Khóa chính/khóa
phụ
PK/FK
PK
Mô tả
Số phiếu nhắc trả
sách
Mã Sách
Ngày trả
Mô tả
Số phiếu nhập
Ngày nhập
Bảng CTPTKSN
STT
Tên Trường
Kiểu dữ liệu
Notnull
1
2
3
SoPN
MaSach
SoLuongN
nvarchar(50)
nvarchar(50)
Int
x
x
x
Khóa chính/khóa
phụ
PK/FK
PK
FK
Mô tả
Số phiếu nhập
Mã Sách
Số lượng nhập
Bảng PHIEUMUON
STT
Tên Trường
Kiểu dữ liệu
Notnull
Khóa chính/khóa
Mô tả
25