HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
BÀI TẬP LỚN MÔN
CƠ SỞ DỮ LIỆU
XÂY DỰNG CSDL QUẢN LÝ CỬA HÀNG BÁN ĐIỆN THOẠI
MỤC LỤC
ỨNG DỤNG CỦA HỆ CƠ SỞ DỮ LIỆU .............................................................................. 2
I.
YÊU CẦU VỀ DỮ LIỆU CẦN ĐƯỢC LƯU TRỮ ........................................................... 2
II.
1.
Xác định các thực thể ........................................................................................................... 2
2.
Các qui định ràng buộc........................................................................................................ 2
CÁC THAO TÁC TRÊN CƠ SỞ DỮ LIỆU ...................................................................... 2
III.
1.
Lưu trữ .................................................................................................................................. 2
2.
Tra cứu. ................................................................................................................................. 3
3.
Thống kê. ............................................................................................................................... 3
4.
Báo cáo .................................................................................................................................. 3
5.
Tính toán ............................................................................................................................... 3
LƯỢC ĐỒ QUAN HỆ ER ................................................................................................... 4
IV.
ÁNH XẠ LƯỢC ĐỒ ER SANG MÔ HÌNH QUAN HỆ (15 lược đồ) ................................ 6
V.
VI.
CHUẨN HÓA LƯỢC ĐỒ ................................................................................................... 8
VII.
LƯỢC ĐỒ QUAN HỆ SAU CHUẨN HÓA (17 LƯỢC ĐỒ) ......................................... 11
VIII.
CÀI ĐẶT HỆ THỐNG .................................................................................................. 12
1.
Cài đặt cơ sở dữ liệu ........................................................................................................... 13
2.
Các ứng dụng của cơ sở dữ liệu ........................................................................................ 23
IX.
HƯỚNG DẪN SỬ DỤNG HỆ CƠ SỞ DỮ LIỆU ............................................................ 32
1
I.
ỨNG DỤNG CỦA HỆ CƠ SỞ DỮ LIỆU
Hệ cơ sở dữ liệu quản lý cửa hàng bán điện thoại được xây dựng phục
vụ việc lưu trữ, thống kê, tính toán, tra cứu, báo cáo về hàng hóa, khách
hàng, loại hóa đơn, hóa đơn, các nhà cung cấp, nhân viên của cửa hàng
và các sản phẩm được khách hàng mang tới sửa chữa.
II.
YÊU CẦU VỀ DỮ LIỆU CẦN ĐƯỢC LƯU TRỮ
1. Xác định các thực thể
Người (NguoiID, hoTen, gioiTinh, ngaySinh, email, cmnd, sdt,
diaChi)
Nhân viên (NV_NguoiID, chucVu, luong)
Khách hàng (KH_NguoiID)
Nhà cung cấp (maNhaCC, tenNhaCC, sdt, diaChi)
Mặt hàng (maHang, tenHang, giaNhap, giaBan, BH)
Loại hóa đơn (maLoaiHD, tenLoaiHD)
Hóa đơn (maHD, maLoaiHD, NV_NguoiID, ngayLap)
Trạng thái bảo hành (maTrangThai, tenTrangThai)
Sản phẩm bảo hành (maBH, KH_NguoiID, tenSP, ngayNhan,
ngayTra, maTrangThai, noiDungBH, phiBH)
2. Các qui định ràng buộc
Mỗi khách hàng có thể mua hàng nhiều lần, có nhiều hóa đơn xuất
Mỗi hóa đơn xuất chỉ của một khách hàng
Mỗi nhà cung cấp có thể cung cấp hàng nhiều lần, có nhiều hóa đơn
nhập.
Mỗi hóa đơn nhập chỉ nhập hàng từ một nhà cung cấp
Mỗi sản phẩm có thể nằm trên nhiều hóa đơn xuất và hóa đơn nhập
Mỗi hóa đơn nhập hoặc hóa đơn xuất có thể có nhiều sản phẩm
Mỗi khách hàng có thể có thể có nhiều sản phẩm bảo hành
Mỗi sản phẩm bảo hành chỉ có một trạng thái bảo hành
Một trạng thái bảo hành có thể ở nhiều sản phẩm bảo hành
III.
CÁC THAO TÁC TRÊN CƠ SỞ DỮ LIỆU
1. Lưu trữ
Danh sách các mặt hàng
Danh sách khách hàng
Danh sách nhà cung cấp
2
Danh sách nhân viên
Danh sách sản phẩm sửa chữa
Xuất/nhập hàng hóa
2. Tra cứu.
Thông tin khách hàng
Thông tin nhà cung cấp
Thông tin nhân viên
Thông tin hàng hóa
Thông tin về sản phẩm sửa chữa
3. Thống kê.
Lượng hàng tồn kho
Doanh số bán hàng của từng loại mặt hàng qua từng tháng
Doanh thu từng tháng của từng loại mặt hàng
Tổng doanh thu của cửa hàng qua từng tháng
Danh sách các mặt hàng được sửa chữa được sắp xếp theo thời gian
sắp phải trả khách giảm dần
Nhà cung cấp cung cấp nhiều sản phẩm nhất
Mặt hàng được mua nhiều nhất
Mặt hàng chưa được mua lần nào
Danh sách khách hàng thân thiết
…..
4. Báo cáo
Doanh thu qua từng tháng
Số lượng hàng hóa còn lại của mỗi mặt hàng qua từng tháng
5. Tính toán
Tổng giá trị của mỗi lần mua hàng của một khách hàng = Tổng (Số
lượng * Giá nhập) của mỗi sản phẩm bán
Tổng giá trị của mỗi lần nhập hàng từ một nhà cung cấp = Tổng (Số
lượng * Giá nhập) của mỗi sản phẩm nhập về
Tồn kho = Số lượng nhập – Số lượng bán
3
IV.
LƯỢC ĐỒ QUAN HỆ ER
4
Ngày sinh
Địa chỉ
SĐT
Giới tính
CMND
Họ tên
Email
người ID
Người
Ngày nhận
Nội dung BH
Tên sản phẩm
Lương
ngheNghiep
Chức vụ
Ngày trả
Mã BH
d
Nhân viên
Phí BH
Khách hàng
SP bảo hành
Có
Có
Lập
Mã hàng
Tên hàng
Mã trạng
thái
Số lượng
Giá nhập
Số lượng
Trạng thái
bảo hành
Mã HĐ
Ngày lập
Hóa đơn
Mặt hàng
Mua
Tên trạng
thái
Giá bán
bảo hành
Nhà cung cấp
Cung cấp
Thuộc
Mã loại HĐ
Tên loại HĐ
Số lượng
Loại hóa đơn
Mã nhà cc
Tên nhà cc
Địa chỉ CC
sdtCC
5
V.
ÁNH XẠ LƯỢC ĐỒ ER SANG MÔ HÌNH QUAN HỆ
(15 lược đồ)
Người
nguoiID
hoTen
gioiTinh
Người_SĐT
nguoi ID
sdt
Nhân viên
NV-nguoi ID
Khách hàng
KH-nguoi ID
ngaySinh
luong
email
cmnd
diachi
chucVu
ngheNghiep
Hóa đơn
maHD
maLoaiHD
Mặt hàng
maHang
Mua
maHD
tenHang
maHang
NV-nguoi ID
soLuong
ngayLap
giaNhap
KH_nguoiID
giaBan
BH
số lượng
Loại hóa đơn
maLoaiHD tenLoaiHD
Nhà cung cấp
maNhaCC tenNhaCC
Nhà cung cấp _Địa chỉ
maNhaCC diachiCC
Nhà cung cấp_Điện thoại
maNhaCC
sdtCC
Cung cấp
maNhaCC
maHD
maHang
số lượng
Sản phẩm bảo hành
maBH
tenSP ngayNhan ngayTra
KH-nguoi ID
maTrangThai
Trạng thái bảo hành
maTrangThai tenTrangThai
6
Nội dung bảo hành
maBH
KH-nguoi ID
noiDungBH
phiBH
7
VI.
CHUẨN HÓA LƯỢC ĐỒ
1. Người (nguoiID, hoTen, gioiTinh, ngaySinh, email, cmnd, diaChi,
sdt)
F (nguoiID hoTen, gioiTinh, ngaySinh, email, cmnd, diaChi, sdt;
email nguoiID, hoTen, gioiTinh, ngaySinh, cmnd, diaChi,
sdt;
cmnd nguoiID, hoTen, gioiTinh, ngaySinh, email, diaChi,
sdt)
K (nguoiID, email, cmnd)
1NF
R1(nguoiID, hoTen, gioiTinh, nguoiID hoTen, gioiTinh,
ngaySinh, email, cmnd,
ngaySinh, email, cmnd,
diaChi)
diaChi
R2(nguoiID, sdt)
nguoiID sdt
Đã thỏa mãn chuẩn 2NF, 3NF
Sau chuẩn hóa ta có:
R1(nguoiID, email, cmnd, hoTen, gioiTinh, ngaySinh,
diaChi, email, cmnd)
R2(nguoiID, sdt)
2. Khách hàng (KH-nguoi ID, ngheNghiep)
K (KH-nguoi ID)
Đã đạt chuẩn 3NF
R (KH-nguoi ID, ngheNghiep)
3. Nhân viên (NV-nguoiID, chucvu, luong)
F (NV-nguoiID chucVu, luong
chucVu luong)
K (NV-nguoiID)
Đã đạt chuẩn 1NF
2NF
R (NV-nguoiID, chucVu, luong) NV-nguoiID chucVu,
luong
3NF
R1 (NV-nguoiID, chucVu)
NV-nguoiID chucVu
R2 (chucVu, luong)
chucVu luong
8
4. Hóa đơn (maHD, maLoaiHD, NV_nguoiID, ngayLap)
F (maHDmaLoaiHD, NV_nguoiID, ngayLap)
K (maHD)
Đã đạt chuẩn 3NF
maHD maLoaiHD,
NV_nguoiID, ngayLap
R (maHD, maLoaiHD, NV_nguoiID,
ngayLap)
5. Hàng (maHang, tenHang, soLuong, giaNhap, giaBan, baoHanh)
F (maHangtenHang, soLuong, giaNhap, giaBan, baoHanh)
K (maHang)
Đã đạt chuẩn 3NF
R (maHang, tenHang, soLuong,
giaNhap, giaBan,
baoHanh)
maHangtenHang, soLuong,
giaNhap, giaBan, baoHanh
6. Mua (maHD, maHang, KH_nguoiID, soluong)
F (maHD, maHang, KH_nguoiID soluong)
K (maHD, maHang, KH_nguoiID)
Đã đạt chuẩn 3NF
R (maHD, maHang, KH_nguoiID,
soluong)
maHD, maHang, KH_nguoiID
soluong
7. Loại hóa đơn (maLoaiHD, tenLoaiHD)
F (maLoaiHDtenLoaiHD)
K (maLoaiHD)
Đã đạt chuẩn 3NF
R (maLoaiHD,
tenLoaiHD)
maLoaiHDtenLoaiHD
8. Nhà cung cấp (maNhaCC, tenNhaCC, diachiCC, sdtCC)
F (maNhaCCtenNhaCC, diachiCC, sdtCC)
K (maNhaCC)
1NF
R1 (maNhaCC, tenNhaCC,
diachiCC)
R2 (maNhaCC, sdtCC)
R3 (maNhaCC, diachiCC)
maNhaCCtenNhaCC,
diachiCC
9
Đã đạt chuẩn 3NF
9. Cung cấp (maNhaCC, maHD, maHang, soluong)
F (maNhaCC, maHD, maHang soluong)
K (maNhaCC, maHD, maHang)
Đã đạt chuẩn 3NF
R (maNhaCC, maHD, maHang,
soluong)
maNhaCC, maHD, maHang
soluong
10.Sản phẩm bảo hành (maBH, tenSP, ngayTra, ngayNhan,
noiDungBH, phiBH, KH_nguoiID, maTrangThai)
F (maBH, KH_nguoiIDtenSP, ngayTra, ngayNhan, noiDungBH,
phiBH, maTrangThai;
noiDungBH phiBH)
K (maBH, KH_nguoiID)
1NF
R1 (maBH, tenSP, ngayTra,
ngayNhan, KH_nguoiID,
maTrangThai)
maBH, KH_nguoiID tenSP,
ngayTra, ngayNhan,
maTrangThai
R2 (maBH, KH_nguoiID,
noiDungBH, phiBH)
maBH, KH_nguoiID
noiDungBH
noiDungBH phiBH
Đã đạt chuẩn 2NF
3NF
R1 (maBH, tenSP, ngayTra,
ngayNhan, KH_nguoiID,
maTrangThai)
maBH, KH_nguoiID tenSP,
ngayTra, ngayNhan, maTrangThai
R2 (maBH, KH_nguoiID,
noiDungBH)
maBH, KH_nguoiID noiDungBH
R3 (noiDungBH, phiBH)
noiDungBH phiBH
11.Trạng thái bảo hành (maTrangThai, tenTrangThai)
F (maTrangThai tenTrangThai)
K (maTrangThai)
Đã đạt chuẩn 3NF
R (maTrangThai, tenTrangThai)
maTrangThai tenTrangThai
10
VII.
LƯỢC ĐỒ QUAN HỆ SAU CHUẨN HÓA (17 LƯỢC ĐỒ)
Người
nguoiID
email
cmnd
Người-SĐT
nguoi ID
Nhân viên
NV-nguoi ID
Chức vụ
chucVu
Khách hàng
KH-nguoi ID
hoTen
ngaySinh
gioiTinh
diaChi
sdt
chucVu
luong
ngheNghiep
11
Hóa đơn
maHD maLoaiHD
NV-nguoi ID
ngayLap
Loại hóa đơn
maLoaiHD tenLoaiHD
Mua
KH-nguoi ID
maHD
maHang
soluong
maHD
maHang
soluong
Cung cấp
maNhaCC
Nhà cung cấp
maNhaCC tenNhaCC
SĐT nhà CC
maNhaCC
sdtcc
Địa chỉ nhà CC
maNhaCC
diachiCC
Mặt hàng
maHang
tenHang
Sản phẩm bảo hành
maSPBH
tenSP
soLuong
ngayNhan
giaNhap
ngayTra
giaBan
maTrangThai
BH
KH-nguoi ID
Trạng thái bảo hành
maTrangThai tenTrangThai
Nội dung bảo hành
maSPBH
KH-nguoi ID
noiDungBH
Phí bảo hành
noiDungBH
VIII.
phiBH
CÀI ĐẶT HỆ THỐNG
12
Quá trình xây dựng CSDL sử dụng phần mềm Microsoft Access
1. Cài đặt cơ sở dữ liệu
1.1. Bảng NGUOI
CREATE TABLE NGUOI(
NguoiID char(255) NOT NULL PRIMARY KEY,
hoTen char(255),
gioiTinh char(255),
ngaySinh Date,
email char(255) UNIQUE,
cmnd int UNIQUE,
diaChi char(255));
1.2. Bảng NGUOI_SDT
CREATE TABLE NGUOI_SDT
(
NguoiID char(255) ,
SDT int,
CONSTRAINT pk_Personsdt PRIMARY KEY (NguoiID, SDT),
FOREIGN KEY (NguoiID) REFERENCES NGUOI(NguoiID)
);
13
1.3. Bảng KHACHHANG
CREATE TABLE KHACHHANG(
KH_NguoiID char(255) PRIMARY KEY,
FOREIGN KEY (KH_NguoiID) REFERENCES NGUOI(NguoiID)
);
1.4. Bảng CHUCVU
CREATE TABLE CHUCVU(
chucVu char(255) NOT NULL PRIMARY KEY,
luong int
);
14
1.5. Bảng NHANVIEN
CREATE TABLE NHANVIEN(
NV_NguoiID char(255) PRIMARY KEY,
chucVu char(255) NOT NULL,
FOREIGN KEY (NV_NguoiID) REFERENCES NGUOI(NguoiID)
);
1.6. Bảng NHACUNGCAP
CREATE TABLE NHACUNGCAP(
maNhaCC char(255) NOT NULL PRIMARY KEY ,
tenNhaCC char(255) NOT NULL
);
15
1.7. Bảng NHACUNGCAP_DIACHI
CREATE TABLE NHACUNGCAP_DIACHI(
maNhaCC char(255) NOT NULL,
diaChi char(255),
CONSTRAINT pk_ccsdt PRIMARY KEY (maNhaCC, diaChi),
FOREIGN KEY (maNhaCC) REFERENCES NHACUNGCAP(maNhaCC)
);
1.8. Bảng NHACUNGCAP_SDT
CREATE TABLE NHACUNGCAP_SDT(
maNhaCC char(255) NOT NULL,
SDT int,
CONSTRAINT pk_ccdc PRIMARY KEY (maNhaCC, SDT),
FOREIGN KEY (maNhaCC) REFERENCES NHACUNGCAP(maNhaCC)
);
16
1.9. Bảng LOAIHOADON
CREATE TABLE LOAIHOADON(
maLoaiHD char(255) NOT NULL PRIMARY KEY,
tenLoaiHD char(255) NOT NULL UNIQUE
);
1.10. Bảng HOADON
CREATE TABLE HOADON(
maHD char(255) NOT NULL PRIMARY KEY,
maLoaiHD char(255) NOT NULL ,
NV_NguoiID char(255) NOT NULL ,
ngayLap Date NOT NULL,
FOREIGN KEY (maLoaiHD) REFERENCES LOAIHOADON(maLoaiHD),
FOREIGN KEY (NV_NguoiID) REFERENCES NHANVIEN(NV_NguoiID)
);
17
1.11. Bảng MATHANG
CREATE TABLE MATHANG(
maHang char(255) NOT NULL PRIMARY KEY,
tenHang char(255) NOT NULL UNIQUE,
giaNhap int NOT NULL ,
giaBan int NOT NULL,
BH int
);
18
1.12.
Bảng CUNGCAP
CREATE TABLE CUNGCAP(
maNhaCC char(255) NOT NULL,
maHD char(255) NOT NULL,
maHang char(255) NOT NULL,
soLuong int NOT NULL,
CONSTRAINT pk_ccsp PRIMARY KEY (maNhaCC, maHD, maHang),
FOREIGN KEY (maNhaCC) REFERENCES NHACUNGCAP(maNhaCC),
FOREIGN KEY (maHD) REFERENCES HOADON(maHD),
FOREIGN KEY (maHang) REFERENCES MATHANG(maHang)
);
19
1.13. Bảng MUA
CREATE TABLE MUA(
maHD char(255) NOT NULL,
maHang char(255) NOT NULL,
KH_NguoiID char(255) NOT NULL,
soLuong int NOT NULL,
CONSTRAINT pk_muasp PRIMARY KEY (KH_NguoiID, maHD, maHang),
FOREIGN KEY (KH_NguoiID) REFERENCES KHACHHANG(KH_NguoiID),
FOREIGN KEY (maHD) REFERENCES HOADON(maHD),
FOREIGN KEY (maHang) REFERENCES MATHANG(maHang)
);
20
1.14. Bảng PHIBH
CREATE TABLE PHIBH(
noiDungBH char(255) NOT NULL PRIMARY KEY,
phiBH int NOT NULL
);
1.15. Bảng TRANGTHAIBH
CREATE TABLE TRANGTHAIBH(
maTrangThai char(255) NOT NULL PRIMARY KEY,
tenTrangThai char(255) NOT NULL UNIQUE
);
21
1.16. Bảng SANPHAMBH
CREATE TABLE SANPHAMBH(
maBH char(255) NOT NULL,
KH_NguoiID char(255) NOT NULL,
tennSP char(255),
ngayNhan Date NOT NULL,
ngayTra Date,
maTrangThai char(255) NOT NULL,
PRIMARY KEY(maBH, KH_NguoiID),
FOREIGN KEY (KH_NguoiID) REFERENCES KHACHHANG (KH_NguoiID)
);
1.17. Bảng NOIDUNGBH
CREATE TABLE NOIDUNGBH(
maBH char(255) NOT NULL,
KH_NguoiID char(255) NOT NULL,
noiDungBH char(255),
PRIMARY KEY (maBH, KH_NguoiID),
FOREIGN KEY (maBH, KH_NguoiID) REFERENCES SANPHAMBH (maBH,
KH_NguoiID)
);
22
2. Các ứng dụng của cơ sở dữ liệu
1. Liệt kê tên, tuổi, địa chỉ, chức vụ, tiền lương của các nhân viên trong
công ty
SELECT hoTen, gioiTinh, (YEAR(DATE())-YEAR(ngaySinh)) AS Tuoi, diaChi,
NHANVIEN.chucVu, luong
FROM NGUOI, NHANVIEN, CHUCVU
WHERE NguoiID= NV_NguoiID
AND CHUCVU.chucVu=NHANVIEN.chucVu;
2. Cho biết danh sách các đối tác cung cấp hàng
SELECT tenNhaCC, diaChi, SDT
FROM NHACUNGCAP, NHACUNGCAP_DIACHI, NHACUNGCAP_SDT
WHERE NHACUNGCAP.maNhaCC = NHACUNGCAP_DIACHI.maNhaCC
AND NHACUNGCAP.maNhaCC = NHACUNGCAP_SDT.maNhaCC;
23
3. Liệt kê danh sách khách hàng
SELECT hoTen, gioiTinh, ngaySinh, email, cmnd, diaChi
FROM NGUOI, KHACHHANG
WHERE NguoiID=KH_NguoiID;
4. Liệt kê thông tin về khách hàng sửa chữa điện thoại
SELECT hoTen AS KhachHang, tennSP AS MatHang, ngayNhan, ngayTra, tenTrangThai
AS TrangThai, NOIDUNGBH.noiDungBH AS NoiDung, phiBH AS PhiSuaChua
FROM NGUOI, SANPHAMBH, PHIBH, TRANGTHAIBH, NOIDUNGBH
WHERE NguoiID = SANPHAMBH.KH_NguoiID
AND NOIDUNGBH.maBH = SANPHAMBH.maBH
AND NOIDUNGBH.KH_NguoiID =SANPHAMBH.KH_NguoiID
AND PHIBH.noiDungBH=NOIDUNGBH.noiDungBH
AND TRANGTHAIBH.maTrangThai=SANPHAMBH.maTrangThai
ORDER BY ngayTra DESC;
24