ASSIGNMENT
DBI202 - DATABASE SYSTEM OF BOOK
AND STATIONARY MANAGEMENT
FPT UNIVERSITY
1
*Mục lục
………………………………………………
…..2
I. Giới thiệu bài toán
1. Mô tả bài toán
………………………………………………………3
2. Mục tiêu quản lý
…………………………………………………..4
II. Mô hình thực thể - liên hệ.
1. Xác định thực thể - thuộc tính
…………………………….4
2. Lập mô hình thực thể - liên hệ
……………………………5
III. Từ điển dữ liệu.
1. Định nghĩa các bảng
…………………………………………….7
2
Book and stationery Management System
database
1. Mô tả bài toán
- Sách và văn phòng phẩm có những thuộc tính chung như ID, giá tiền, [số
lượng], thể loại, [trạng thái là “1” (có sẵn) hoặc “0” (không có sẵn)], nhà
xuất bản (sách), [thời gian (nhập, xuất kho)].
+ Sách có thể mua hoặc mượn. Giá mượn sẽ cao hơn giá sách, nhưng nếu khi
trả sách thì người mượn sẽ được hoàn lại 50% số tiền mượn. Nếu quá hạn
trả sách, thì người mượn sẽ phải trả thêm phí.
+ Sách sẽ nằm bên phải và văn phòng phẩm sẽ nằm ở bên trái.
+ ID sẽ phụ thuộc vào tên loại sản phẩm.
+ Giá tiền là số nguyên lớn hơn 0.
- Số lượng sách sẽ giảm khi có người mua. Với sách mượn, thì người mượn
và sách mượn sẽ được lưu vào một danh sách mượn.
- Khách hàng sẽ có thuộc tính ID, số điện thoại, email, số lần mua (Xác định là
khách hàng quen thuộc).
- Mỗi năm sẽ có những ngày đặc biệt, mỗi quyển sách mua với giá tiền hơn
200k thì sẽ được tặng thêm một văn phòng phẩm bất kì. Ngày đặc biệt sẽ có
các thuộc tính: ID, tên ngày, ngày.
- Nếu có loại sách mới hoặc quyển sách mới nhân viên phải nhập vào cơ sở
dữ liệu để giới thiệu với khách hàng.
- Cập nhật các bài viết về sách và tin tức thị trường về sách, tin khuyến mãi.
- Cập nhập tác giả khi có sách mới và tác giả mới, công việc này giúp cho việc
tra cứu sách dễ dàng hơn.
- Bán có 2 hình thức: Bán trực tiếp và bán online.
+ Bán online sẽ có thêm một số thuộc tính như mã vận đơn, thời gian
giao hàng, phí ship.
+ Bán trực tiếp tại quầy, giá bán theo giá gốc.
3
- Để dễ dàng mua sách sẽ có thêm 1 người hỗ trợ, người hỗ trợ sẽ có thuộc
tính ID, số điện thoại, ngày (mua, mượn, trả).
- Một khách hàng có thể mượn nhiều sách, nhưng 1 sách chỉ có duy nhất một
khách hàng mượn.
- Mượn sẽ bao gồm thông tin ID của khách hàng, ID mượn, ngày trả, giá tiền,
số lượng, phí quá hạn.
- Ưu đãi sẽ dành cho các khách hàng quen thuộc, ưu đãi bao gồm: ID của
khách hàng, mã ưu đãi, loại ưu đãi.
- Phân loại sẽ giúp phân biệt giữa sách và văn phòng phẩm, phân loại sẽ bao
gồm, ID của sách và văn phòng phẩm, tên loại.
- Hàng tồn kho sẽ bao gồm: ID Sách và văn phòng phẩm, ID người hỗ trợ, Số
lượng, ngày nhập kho.
Các Entity: Sách và văn phòng phẩm, Khách hàng, Người hỗ trợ, Yêu cầu,
Hàng tồn kho, Mượn, Ưu đãi, Phân Loại, Ngày đặc biệt.
Mối quan hệ:
+ Sách và văn phòng phẩm - Ngày đặc biệt: nhiều - 1.
+ Sách và văn phòng phẩm - Phân loại: nhiều - 1.
+ Sách và văn phòng phẩm - Khách hàng: nhiều - nhiều, liên kết với
nhau qua bảng Mua và Mượn.
+ Khách hàng - Ưu đãi: 1 - nhiều
+ Người hỗ trợ - Sách và văn phòng phẩm: nhiều - nhiều, liên kết với
nhau qua bảng Hàng tồn kho.
Yêu cầu của Cửa hàng:
- Danh sách những khách hàng mượn sách.
- Tính số ngày mượn còn lại của khách mượn, biết rằng: số ngày mượn còn lại
= ngày trả - ngày thực tế (Hay còn gọi là ngày lấy từ máy).
- Chỉ ra những khách hàng mượn sách quá hạn nếu số ngày mượn còn lại của
khách mượn < 0.
- Hàng tháng, Quản lí số lượng yêu cầu và mượn để quản lí số sách và văn
phòng phẩm còn lại.
- Danh sách khách hàng nằm trong diện ưu tiên.
2. Mục tiêu quản lý
- Quản lý sách và văn phòng phẩm và theo dõi số lượng của chúng.
- Quẩn lí các khách hàng, liệt kê ra danh sách các khách hàng mượn sách, các
khách hàng nằm trong diện ưu tiên,
Yếu tố đầu ra quan trọng
- Danh sách các khách hàng mượn sách quá hạn.
- Danh sách số lượng sách và văn phòng phẩm còn lại trong hàng tồn kho.
- Danh sách khách hàng nằm trong diện ưu tiên.
II. Mô hình thực thể - liên hệ
4
1. Xác định thực thể - thuộc tính
Dựa vào mô tả bài toán và mục tiêu quản lý, ta có thể đưa ra một số thực thể và các
thuộc tính của thực thể đó như sau:
- Sách và văn phòng phẩm (Sản phẩm): Mã SP, giá tiền, thể loại, nhà xuất bản
(sách), Mã NĐB, Mã PL.
- Khách hàng: Mã KH, số điện thoại, email.
- Người hỗ trợ: Mã NHT, số điện thoại, ngày (mua, mượn, trả).
- Mua: ngày mua, tổng cộng, trạng thái, hình thức, Mã KH, Mã SP.
- Hàng tồn kho: số lượng, ngày nhập kho, Mã KH, Mã NHT.
- Mượn: ngày trả, giá tiền, số lượng, phí quá hạn, Mã KH, Mã SP.
- Ưu đãi: Mã UĐ, loại ưu đãi, Mã KH.
- Phân Loại: Mã PL, Tên.
- Ngày đặc biệt: Mã NĐB, tên ngày, ngày.
2. Lập mô hình thực thể - liên hệ
*Một số ký hiệu dùng trong mô hình:
- Thuộc tính khóa/ định danh
- Thuộc tính mô tả/ bản tả
- Thực thể
- Thực thể yếu
- Mối liên hệ
- Độ kết nối (lực lượng) =1
- Độ kết nối = N
Với mô hình đơn giản, ta vẽ thuộc tính theo ký hiệu trên, nhưng nếu mô hình phức
tạp, có thể liệt kê các thuộc tính ngay dưới thực thể mà nó mô tả.
Ta có mô hình:
5
6
III. Từ điển dữ liệu
1. Định nghĩa các bảng
a. Bảng KHACHHANG
Tên trường Kiểu dl Default Check Key/Index/Ràng buộc
Mã KH Varchar(5) Primary key
Số điện thoại Varchar(10) Unique
Email Varchar(50) Not null
Ví dụ:
Mã PB Số điên thoại Email
KH01 0911087822 NV05
KH02 0911087833 NV02
KH03 0911087844 NV01
Câu lệnh tạo bảng :
CREATE TABLE KHACHHANG (
MaKH VARCHAR(5) PRIMARY KEY NOT NULL,
PhoneNo VARCHAR(10) UNIQUE,
Email VARCHAR(50) NOT NULL
);
b. Bảng NGAYDACBIET
7
Tên
Kiểu dl Default Check Key/Index/Ràng buộc
trường
Mã NDB Varchar(6) Primary key
Tên ngày NVarchar(25) Unique
Ngày date Unique
Ví dụ:
Mã NDB Tên ngày Ngày
NDB01 World Book Day 23/4
NDB02 Bloomsday 16/6
NDB03 National Tom Sawyer 4/7
Days
Câu lệnh tạo bảng :
CREATE TABLE NGAYDACBIET (
MaNDB VARCHAR(6) PRIMARY KEY,
NgayDB DATE UNIQUE,
name_NDB NVARCHAR(25) UNIQUE
);
c. Bảng PHANLOAI
Tên Kiểu dl Defa Check Key/Index/Ràng buộc
8
trường ult
Mã PL Varchar(5) Primary key
Tên NVARCHAR(50) Not null
Ví dụ:
Mã PL Tên
PL01 Sách
PL02 Văn phòng phẩm
Câu lệnh tạo bảng :
CREATE TABLE PHANLOAI (
MaPL VARCHAR(5) PRIMARY KEY,
[name_PL] NVARCHAR(50) NOT NULL
);
d. Bảng UUDAI
Tên Kiểu dl Default Check Key/Index/Ràng buộc
trường
Mã UD Varchar(5) Primary key
NVarchar(50) Not null
Loại ưu
đãi
Varchar(5) Foreign key, tham chiếu tới
Mã KH
KHACHHANG(Mã KH)
Ví dụ:
Mã UD Loại ưu đãi Mã KH
9
UD01 Giảm 20% giá tiền KH01
UD02 Mượn sách miễn phí KH02
trong vòng 1 tháng
UD03 Tặng kèm 1 văn phòng KH03
phẩm khi mua 1 sách
bất kì
Câu lệnh tạo bảng :
CREATE TABLE UUDAI (
MaUD VARCHAR(5) PRIMARY KEY,
[name_UD] NVARCHAR(50) NOT NULL,
MaKH VARCHAR(5) FOREIGN KEY REFERENCES
KHACHHANG(MaKH)
);
e. Bảng SANPHAM
Tên trường Kiểu dl Default Check Key/Index/Ràng buộc
Mã SP Varchar(5) Primary key
Int Not null
Giá tiền
NVarchar(50) Not null
Thể loại
NVarchar(50)
Nhà xuất bản
Varchar(6) Foreign key, tham chiếu
Mã NDB
tới NGAYDACBIET(Mã
NDB)
Varchar(5) Foreign key, tham chiếu
Mã PL tới PHANLOAI(Mã PL)
Ví dụ:
Mã SP Giá tiền Thể loại Nhà xuất Mã NDB Mã PL
10
bản
SP01 250000 Trinh thám Agatha NDB01 PL01
Christie
SP02 300000 Thiếu nhi Kim Đồng NDB01 PL01
SP03 200000 Bút bi NDB03 PL02
Câu lệnh tạo bảng :
CREATE TABLE SANPHAM (
MaSP VARCHAR(5) PRIMARY KEY,
GiaTien INT NOT NULL,
TheLoai NVARCHAR(50) NOT NULL,
NXB NVARCHAR(50),
MaNDB VARCHAR(6) FOREIGN KEY REFERENCES
NGAYDACBIET(MaNDB),
MaPL VARCHAR(5) FOREIGN KEY REFERENCES PHANLOAI(MaPL)
);
f. Bảng NGUOIHOTRO
Tên Kiểu dl Default Check Key/Index/Ràng buộc
trường
Mã NHT Varchar(5) Primary key
Char(10) 0 to 9 Unique
Số điện
thoại
11
Date Not null
Ngày
làm
Ví dụ:
Mã Số điện thoại
Ngày (Mua,
NHT
mượn trả)
NHT01 0933087833 10/2/2023
NHT02 0933087834 5/6/2023
NHT03 0933087835 7/9/2023
Câu lệnh tạo bảng :
CREATE TABLE NGUOIHOTRO (
MaNHT VARCHAR(5) PRIMARY KEY,
PhoneNoNHT VARCHAR(10) UNIQUE,
NgayLam DATE UNIQUE
);
g. Bảng HANGTONKHO
Tên trường Kiểu dl Default Check Key/Index/Ràng buộc
Primary key, Foreign key
Mã NHT Varchar(5) tham chiếu tới
NGUOIHOTRO(Mã NHT)
Primary key, Foreign key
Mã SP Varchar(5) tham chiếu tới
SANPHAM(Mã SP)
Số lượng Int
Ngày nhập Date Not null
12
kho
Ví dụ:
Mã Mã SP Số lượng Ngày nhập
NHT kho
NHT01 SP02 5 8/7/2022
NHT03 SP01 6 15/5/2022
NHT02 SP03 7 18/7/2022
Câu lệnh tạo bảng :
CREATE TABLE HANGTONKHO (
MaNHT VARCHAR(5) FOREIGN KEY REFERENCES
NGUOIHOTRO(MaNHT),
MaSP VARCHAR(5) FOREIGN KEY REFERENCES
SANPHAM(MaSP),
SoLuong INT,
NgayNhap DATE NOT NULL
PRIMARY KEY (MaNHT,MaSP)
);
h. Bảng MUA
Tên trường Kiểu dl Default Check Key/Index/Ràng buộc
Primary key, Foreign key
Mã SP Varchar(5) tham chiếu tới
SANPHAM(Mã SP)
Primary key, Foreign key
Mã KH Varchar(5) tham chiếu tới
NGUOIHOTRO(Mã NHT)
Ngày mua Date Not null
Số lượng Int Not null
Hình thức NVarchar(10)
13
Ví dụ:
Mã SP Mã KH Ngày mua Số lượng Hình thức
SP01 KH02 16/3/2023 5 Online
SP02 KH03 17/3/2023 6 Offline
SP03 KH01 18/3/2023 7
Câu lệnh tạo bảng :
CREATE TABLE MUA (
MaSP VARCHAR(5) FOREIGN KEY REFERENCES
SANPHAM(MaSP),
MaKH VARCHAR(5) FOREIGN KEY REFERENCES
KHACHHANG(MaKH),
NgayMua DATE NOT NULL,
SoLuong INT NOT NULL,
HinhThuc NVARCHAR(10)
PRIMARY KEY (MaSP,MaKH)
);
i. Bảng MUON
Tên trường Kiểu dl Default Check Key/Index/Ràng buộc
Primary key, Foreign key
Mã SP Varchar(5) tham chiếu tới SANPHAM(Mã
SP)
Primary key, Foreign key
Mã KH Varchar(5) tham chiếu tới
NGUOIHOTRO(Mã NHT)
Ngày trả Date Not null
Số lượng Int Not null
Phí quá hạn Int
Ví dụ:
14
Mã SP Mã KH Ngày trả Số lượng Phí quá hạn
SP02 KH01 18/4/2023 2 50000
SP03 KH02 16/5/2023 3 100000
SP01 KH03 16/6/2023 4
Câu lệnh tạo bảng :
CREATE TABLE MUON (
MaSP VARCHAR(5) FOREIGN KEY REFERENCES SANPHAM(MaSP),
MaKH VARCHAR(5) FOREIGN KEY REFERENCES KHACHHANG(MaKH),
NgayTra DATE NOT NULL,
SoLuong INT NOT NULL,
PhiQuaHan INT
PRIMARY KEY (MaSP,MaKH)
);
15