lOMoARcPSD|38544120
TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
----------------------
BÁO CÁO BÀI TẬP LỚN
MÔN: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
<NHÓM 1>
Đề tài: Quản Lý Thu Tiền Điện Hàng Tháng
Giáo Viên Hướng Dẫn: Nguyễn Thị Tâm
Sinh Viên Thực Hiện: Trần Phi Hùng – 2010A03
Đinh Diệu Thúy – 2010A05
Nguyễn Thị Ngọc Anh – 2010A05
Năm 2021 - 2022
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
MỤC LỤC
I.PHÁT TRIỂN BÀI TỐN ................................................................................ 3
II. MƠ HÌNH THỰC THỂ LIÊN KẾT .............................................................. 4
1.Xác định đối tượng thực thể:......................................................................... 4
2 .Mơ hình thực thể liên kết.............................................................................. 4
3. Mơ hình CSDL quan hệ:............................................................................... 6
4. Diagram ......................................................................................................... 8
III. TẠO CƠ SỞ DỮ LIỆU ................................................................................. 8
IV. Thực hiện các truy vấn.................................................................................16
1.Truy vấn dữ liệu............................................................................................16
2. Xây dựng VIEW cho CSDL ........................................................................20
3. Tạo Procedure ..............................................................................................26
4. Tạo Trigger ..................................................................................................38
V. Tạo login, user, phân quyền...........................................................................43
1
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
PHÂN CÔNG VÀ KẾ HOẠCH THỰC HIỆN
HỌ VÀ TÊN CÔNG VIỆC ĐÁNH GIÁ
Trần Phi Hùng - Nhập dữ liệu vào bảng Hoàn thành
- Tạo PROCEDURE
Đinh Diệu Thúy - Tạo Login, User, Phân Hoàn thành
Nguyễn Thị Ngọc Anh Hoàn thành
quyền
- Tạo Database
- Nhập dữ liệu vào bảng
- Tạo VIEW
- Tạo PROCEDURE
- Tạo TRIGGER
2
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
I.PHÁT TRIỂN BÀI TOÁN
Công ty quản lý hệ thống tiền điện sinh hoạt:
- Một cơng ty điện lực có nhu cầu quản lý việc tính, in hóa đơn và thu
tiền điện hóa đơn.
- Hệ thống quản lý tiền điện sinh hoạt gồm nhiều công ty, mỗi công ty
gồm có : Mã công ty,số điện thoại ,địa chỉ, tên công ty ,
- Mỗi cơng ty có các nhân viên: Mã nhân viên, tên nhân viên, địa
chỉ,giới tính, số điện thoại,trình độ học vấn, lương
- Ở mỗi cơng ty lại có các chủ hộ sử dụng điện sẽ có một: Mã khách
hàng, địa chỉ, số điện thoại, họ tên, giới tính.
- Mỗi chủ hộ lại có mộthoặc nhiều hóa đơn riêng sẽ có : Mã hóa đơn,
ngày lập, mã khách hàng, họ tên, số điện thoại, địa chỉ, mã lượng
điện, số điện cũ ,số điện mới, mã nhân viên.
- Số lượng điện tiêu thụ sẽ có: Mã lượng điện, ngày tháng năm, số điện
cũ, số điện mới.
Cứ sau mỗi tháng các cơng ty điện sẽ gửi hóa đơn thanh toán tiền điện cho
các chủ hộ(Khách hàng).
Mỗi khách hàng khi thanh toán tiền điện xong sẽ được nhận hóa đơn bằng
giấy được các công ty gửi về tận nhà. Mỗi hóa đơn sẽ có thơng tin giống như
các thông tin trên hóa đơn điện tử.
3
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
II. MƠ HÌNH THỰC THỂ LIÊN KẾT
1. Xác định đối tượng thực thể:
• NhanVien: iMaNV , sTenNV, sGioiTinh, sSDT, fBacLuong, sDiaChi
• ChuHo: sMaKH, sTenKH, sDiachi, sSDT, sGioitinh
• LuongDienTieuThu: sMaluongdien, dNgaytinhluongdien, dSodiencu,
dSodienmoi
• HoaDon: sMaHD, iMaNV, dNgaylap, sMaKH, sTenKH, sSDT,
sDiachi, fDonGia
• CongTy: sMaCT, sTenCT, sSDT, sDiachi
2 .Mơ hình thực thể liên kết
Mọi liên kết quan hệ giữa các thực thể sẽ được mô tả ở sơ đồ ER
4
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
DiaChi DienThoai DiaChi
MaCongTy
MaNV
TenCongTy SoDienThoai
TenNV
NHANVIEN
MaCongTy HoTen
n 1
MaHoaDon
L숃⌀P MaKhachHang
n
1
DonGia HOADON
CONGTY
1 NgayLap
SoDienCu
n
C漃Ā
Maluongdien
n C伃Ā
LUONGDIENTIEUTHU
Maluongdien 1
CHUHO
SoDienMoi
MaKhach NamSinh
Hang
DiaChi HoTen
5
SoDienThoai
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
3. Mơ hình CSDL quan hệ:
- NhanVien: iMaNV , sTenNV, sGioiTinh, sSDT, fBacLuong, sDiaChi
- ChuHo: sMaKH, sTenKH, sDiachi, sSDT, sGioitinh
- LuongDienTieuThu: sMaluongdien, dNgaytinhluongdien, dSodiencu,
dSodienmoi
- HoaDon: sMaHD, iMaNV, dNgaylap, sMaKH, sTenKH, sSDT,
sDiachi, fDonGia
- CongTy: sMaCT, sTenCT, sSDT, sDiachi
❖ Các bảng xác định cấu trúc như sau :
• CongTy : Lưu trữ thơng tin của công ty
STT Tên thuộc Kiểu dữ liệu Ràng buộc Ghi chú
tính Mã công ty
Tên công ty
1 sMaCT Varchar(10) PK Số điện thoại Cty
Địa chỉ CTy
2 sTenCT Nvachar(50)
3 sSDT Varchar(12)
4 sDiachi Nvarchar(50)
• NhanVien: Lưu trữ thơng tin nhân viên
STT Tên thuộc Kiểu dữ liệu Ràng buộc Ghi chú
tính
1 iMaNV INT PK Mã nhân viên
2 sMaCT Varchar(10) FK,tham chiếu bảng Mã công ty
CONGTY
3 sTenNV Nvarchar(50) Tên nhân viên
4 sGioiTinh Bit Chỉ nhận giá trị true Giới tính
hoặc false
5 sSDT Vachar(12) Số điện thoại
Địa chỉ
6 sDiachi Nvarchar(50) Bậc lương
7 fBacLuong Float
• ChuHo: Lưu trữ thơng tin chủ hộ
6
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
STT Tên thuộc Kiểu dữ liệu Ràng buộc Ghi chú
tính
1 sMaKH Varchar(50) PK Mã khách
hang
2 sTenKH Nvarchar(30) Tên khách
hang
3 sGioiTinh Bit Chỉ nhận giá trị true Giới tính
hoặc false
4 sSDT Vachar(12) Số điện thoại
5 sDiaChi Nvarchar(50) Địa chỉ
• LuongDienTieuThu : lưu trữ thông tin lượng điện tiêu thụ
STT Tên thuộc Kiểu dữ liệu Ràng buộc Ghi chú
PK
tính Mã lượng
điện
1 sMaluongdien Varchar(10) Tính từ
ngày
2 dTungay Date Đến ngày
Số điện cũ
3 dDenngay Date Denngay>Tungay Số điện mới
4 fSoDienCu Float Ghi chú
5 fSoDienMoi Float Mã hóa
đơn
• HoaDon: Lưu trữ thơng tin hóa đơn Mã nhân
STT viên
1 Tên thuộc Kiểu dữ liệu Ràng buộc Ngày
tính Varchar(10) PK lậpHĐ
Mã khách
sMaHD hàng
Họ tên KH
2 iMaNV Varchar(10) FK, tham chiếu bảng Số điện
thoại KH
NHANVIEN
3 dNgayLap Date
4 sMaKH Varchar(10) FK,tham chiếu bảng
KHACHHANG
Nvarchar(50)
5 sTenKH Varchar(12)
6 sSDT
7
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
7 sDiaChi Nvarchar(50) Địa chỉ
8 sMaluongdien Varchar(10) FK,tham chiếu bảng Mã lượng
LUONGDIENTIEUTHU điện
9 fDonGia Float Đơn giá
của hóa
đơn
4. Diagram
III. TẠO CƠ SỞ DỮ LIỆU
--Tao DATABASE
CREATE DATABASE BTL_QLThuTienDienHangThang
ON(
NAME = 'QLThuTienDienHangThang',
FILENAME = 'E:\BTL-SQLServer-
QLThuTienDienHangThang.mdf',
SIZE = 100MB,
MAXSIZE = unlimited,
FILEGROWTH = 10%
8
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
)
USE BTL_QLThuTienDienHangThang
-----------TẠO BẢNG---------------------
--CÔNG TY
CREATE TABLE tblCongTy
(
sMaCT VARCHAR(10) PRIMARY KEY,
sTenCT NVARCHAR(50),
sSDT VARCHAR(10),
sDiaChi NVARCHAR(50)
)
--NHÂN VIÊN
CREATE TABLE tblNhanVien
(
iMaNV INT NOT NULL,
sMaCT VARCHAR(10),
sTenNV NVARCHAR(50),
sGioiTinh BIT,
sSDT VARCHAR(10),
fBacLuong FLOAT
)
ALTER TABLE tblNhanVien
ADD CONSTRAINT PK_iMaNV PRIMARY KEY(iMaNV),
CONSTRAINT FK_nhanVien_congTy FOREIGN KEY(sMaCT)
REFERENCES dbo.tblCongTy
--CHỦ HỘ
CREATE TABLE tblChuHo
(
sMaKH VARCHAR(10) PRIMARY KEY,
sTenKH NVARCHAR(50),
sGioiTinh BIT,
sSDT VARCHAR(10),
sDiaChi NVARCHAR(50)
)
--LƯỢNG ĐIỆN TIÊU THỤ
9
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
CREATE TABLE tblLuongDienTieuThu KEY,
(
sMaLuongDien VARCHAR(10) PRIMARY
dTuNgay DATE,
dDenNgay DATE,
fSoDienCu FLOAT,
fSoDienMoi FLOAT,
sMaKH VARCHAR(10)
)
--HÓA ĐƠN
CREATE TABLE tblHoaDon
(
sMaHD VARCHAR(10) NOT NULL,
iMaNV INT NOT NULL,
dNgayLap DATE,
sMaKH VARCHAR(10),
sTenKH NVARCHAR(50),
sSDT VARCHAR(10),
sDiaChi NVARCHAR(50),
sMaLuongDien VARCHAR(10)
)
DROP TABLE dbo.tblHoaDon
ALTER TABLE tblHoaDon
ADD CONSTRAINT PK_sMaHD PRIMARY KEY(sMaHD),
CONSTRAINT FK_hoaDon_nhanVien FOREIGN KEY(iMaNV)
REFERENCES dbo.tblNhanVien(iMaNV),
CONSTRAINT FK_hoaDon_KH FOREIGN KEY(sMaKH)
REFERENCES dbo.tblChuHo,
CONSTRAINT FK_hoaDon_luongDien FOREIGN KEY(sMaLuongDien)
REFERENCES dbo.tblLuongDienTieuThu
ALTER TABLE dbo.tblLuongDienTieuThu
ADD CONSTRAINT FK_Chuho_luongdien FOREIGN KEY(sMaKH)
REFERENCES dbo.tblChuHo
ALTER TABLE dbo.tblLuongDienTieuThu
ADD CHECK (dTuNgay < dDenNgay)
10
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
ALTER TABLE dbo.tblLuongDienTieuThu
ADD CHECK (fSoDienCu < fSoDienMoi)
ALTER TABLE dbo.tblNhanVien
ADD Diachi NVARCHAR(50)
ALTER TABLE tblHoaDon
ADD fDonGia FLOAT
- Thêm bản ghi cho các bảng
--THÊM DỮ LIỆU CHO BẢNG CÔNG TY
INSERT INTO tblCongTy
VALUES('CT1', N'Lazzer Electric', '0834563458', N'Minh Khai
N'Quận 7 -
- Hà Nội'),
('CT2', N'Emate', '0942348635',
TP Hồ Chí Minh')
--THÊM DỮ LIỆU CHO CHỦ HỘ
INSERT INTO tblChuHo
VALUES('KH1', N'Trần Phi Hùng', 0, '0356489645', N'Hải
Dương'),
('KH2', N'Nguyễn Đức Nghĩa', 0, '0356778896', N'Nam
Định'),
11
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
('KH3', N'Đinh Diệu Thúy', 1, '0335931718', N'Hà
Nội'),
N'Nguyễn Ngọc Anh', 1, '0245346534', N'Hà
('KH4',
Nội'), N'Lê Thanh Hà', 1, '0991823711', N'Ninh
('KH5', N'Nguyễn Văn Đức', 0, '0982913237', N'TP Hồ
Bình'),
N'Phạm Gia Hưng', 0, '0391823619', N'Bắc
('KH6',
Chí Minh'), N'Đặng Phương Thảo', 1, '0981273981', N'Hà
('KH7',
Giang'),
('KH8',
Nội')
--THÊM DỮ LIỆU BẢNG NHÂN VIÊN
INSERT INTO tblNhanVien
VALUES(1, 'CT1', N'Nguyễn Thị Lan', 1, '0345823759', 3.0,
N'Hải Phòng'),
(2, 'CT1', N'Nguyễn Văn Trường', 0, '0269857759', 3.0,
N'Quảng Ninh'),
12
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
(3, 'CT2', N'Nguyễn Kim Anh', 1, '0145859379', 3.0,
N'Hải Dương'), 0, '0348937920', 3.0,
0, '0929313277', 3.0,
(4, 'CT2', N'Trần Văn Dũng', 1, '0928371276', 3.0,
N'Bắc Ninh'), 0, '0391283719', 3.0,
0, '0823971987', 3.0,
(5, 'CT1', N'Phạm Hoàng Giang',
N'Hà Nội'),
(6, 'CT1', N'Nguyễn Hà Linh',
N'Hà Nội'),
(7, 'CT2', N'Nguyễn Tiến Đạt',
N'TP Hồ Chí Minh'),
(8, 'CT2', N'Vũ Minh Hiếu',
N'An Giang')
--THÊM DỮ LIỆU VÀO BẢNG LƯỢNG ĐIỆN
--tháng 7
INSERT INTO tblLuongDienTieuThu
VALUES('MD10', '2021-6-28', '2021-7-28', 48, 100, 'KH2'),
('MD11', '2021-6-28', '2021-7-28', 67, 128, 'KH1'),
('MD12', '2021-6-28', '2021-7-28', 53, 133, 'KH3'),
('MD13', '2021-6-28', '2021-7-28', 24, 90, 'KH4'),
('MD14', '2021-6-28', '2021-7-28', 35, 100, 'KH5'),
13
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
('MD15', '2021-6-28', '2021-7-28', 46, 130, 'KH6'),
('MD16', '2021-6-28', '2021-7-28', 50, 102, 'KH7'),
('MD17', '2021-6-28', '2021-7-28', 54, 109, 'KH8')
--tháng 8
INSERT INTO tblLuongDienTieuThu
VALUES('MD20', '2021-7-28', '2021-8-28', 100, 102, 'KH2'),
('MD21', '2021-7-28', '2021-8-28', 128, 138, 'KH1'),
('MD22', '2021-7-28', '2021-8-28', 133, 136, 'KH3'),
('MD23', '2021-7-28', '2021-8-28', 90, 100, 'KH4'),
('MD24', '2021-7-28', '2021-8-28', 100, 123, 'KH5'),
('MD25', '2021-7-28', '2021-8-28', 130, 135, 'KH6'),
('MD26', '2021-7-28', '2021-8-28', 102, 110, 'KH7'),
('MD27', '2021-7-28', '2021-8-28', 109, 111, 'KH8')
--THÊM DỮ LIỆU BẢNG HÓA ĐƠN
--tháng 7
14
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
INSERT INTO tblHoaDon
VALUES('HD10', 1, '2021-7-29', 'KH2', N'Nguyễn Đức Nghĩa',
'0356778896', N'Nam Định','MD10',10000),
('HD11', 2, '2021-7-29', 'KH1', N'Trần Phi Hùng',
'0356489645', N'Hải Dương','MD11',20000),
('HD12', 5, '2021-7-29', 'KH3', N'Đinh Diệu Thúy',
'0335931718', N'Hà Nội', 'MD12',15000),
('HD13', 6, '2021-7-29', 'KH4', N'Nguyễn Ngọc Anh',
'0245346534', N'Hà Nội', 'MD13',17000),
('HD14', 3, '2021-7-29', 'KH5', N'Lê Thanh Hà',
'0991823711', N'Ninh Bình','MD14',30000),
('HD15', 4, '2021-7-29', 'KH6', N'Nguyễn Văn Đức',
'0982913237', N'TP Hồ Chí Minh', 'MD15',40000),
('HD16', 7, '2021-7-29', 'KH7', N'Phạm Gia Hưng',
'0391823619', N'Bắc Giang','MD16',22000),
('HD17', 8, '2021-7-29', 'KH8', N'Đặng Phương Thảo',
'0391823619', N'Hà Nội', 'MD17',37000)
--tháng 8
INSERT INTO tblHoaDon
VALUES('HD20', 1, '2021-8-29', 'KH2', N'Nguyễn Đức Nghĩa',
'0356778896', N'Nam Định', 'MD20',34000),
('HD21', 2, '2021-8-29', 'KH1', N'Trần Phi Hùng',
'0356489645', N'Hải Dương', 'MD21',50000),
('HD22', 5, '2021-8-29', 'KH3', N'Đinh Diệu Thúy',
'0335931718', N'Hà Nội', 'MD22',19000),
('HD23', 6, '2021-8-29', 'KH4', N'Nguyễn Ngọc Anh',
'0245346534', N'Hà Nội', 'MD23',16000),
('HD24', 3, '2021-8-29', 'KH5', N'Lê Thanh Hà',
'0991823711', N'Ninh Bình', 'MD24',23000),
('HD25', 4, '2021-8-29', 'KH6', N'Nguyễn Văn Đức',
'0982913237', N'TP Hồ Chí Minh', 'MD25',14000),
('HD26', 7, '2021-8-29', 'KH7', N'Phạm Gia Hưng',
'0391823619', N'Bắc Giang', 'MD26',11000),
('HD27', 8, '2021-8-29', 'KH8', N'Đặng Phương Thảo',
'0391823619', N'Hà Nội', 'MD27',11000)
15
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
IV. Thực hiện các truy vấn
1. Truy vấn dữ liệu
C, Truy vấn lấy dữ liệu từ một bảng (1 bảng: 5 câu) &
(nhiều bảng: 5 câu)*/
-- Câu 1 : Lấy thông tin nhân viên có giới tính là nữ
SELECT * FROM dbo.tblNhanVien
WHERE sGioiTinh = 1
16
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
-- Câu 2 : lấy thông tin họ tên nhân viên của công ty 1
SELECT * FROM dbo.tblNhanVien
WHERE sMaCT = 'CT1'
-- Câu 3: lấy thông tin họ tên nhân viên của cơng ty 2 và
giới tính là nam
SELECT * FROM dbo.tblNhanVien
WHERE sGioiTinh = 0 AND sMaCT = 'CT2'
--Câu 4 : Lấy thơng tin hóa đơn được lập bởi nhân viên có
mã là 2 và lập vào tháng 8
SELECT * FROM dbo.tblHoaDon
WHERE iMaNV = 2 AND MONTH(dNgayLap)= 8
-- Câu 5: Đếm số lần lập hóa đơn của nhân viên 1
SELECT iMaNV,COUNT(*) AS 'Số lần lập hóa đơn' FROM
dbo.tblHoaDon
WHERE iMaNV = 1
GROUP BY iMaNV
17
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
-- Câu 6 Xuất ra mã và tên khách hàng được lập hóa đơn bởi
nhân viên 1
SELECT tblChuHo.sMaKH,tblChuHo.sTenKH FROM
dbo.tblNhanVien ,dbo.tblChuHo,dbo.tblHoaDon
WHERE tblChuHo.sMaKH =tblHoaDon.sMaKH AND tblHoaDon.iMaNV
= tblNhanVien.iMaNV
AND tblNhanVien.iMaNV = 1
-- Câu 7: Xuất ra thông tin khác hàng và lượng điện tiêu thụ
trong tháng 7
SELECT tblChuHo.sMaKH,sTenKH,(fSoDienMoi-fSoDienCu)AS
'Lượng điện tiêu thụ' FROM dbo.tblChuHo JOIN
dbo.tblLuongDienTieuThu
ON tblLuongDienTieuThu.sMaKH = tblChuHo.sMaKH AND
MONTH(dTuNgay) = 6
18
Downloaded by Uy vu Nguyen ()
lOMoARcPSD|38544120
---- Câu 8: Xuất ra thông tin khác hàng và lượng điện tiêu
thụ trong tháng 8 và sắp xếp theo thứ tự giảm dần
SELECT tblChuHo.sMaKH,sTenKH,(fSoDienMoi-fSoDienCu)AS
'Lượng điện tiêu thụ' FROM dbo.tblChuHo JOIN
dbo.tblLuongDienTieuThu
ON tblLuongDienTieuThu.sMaKH = tblChuHo.sMaKH AND
MONTH(dTuNgay) = 7
ORDER BY [Lượng điện tiêu thụ] DESC
-- Câu 9: Xuất ra khách hàng có lượng điện tiêu thụ cao nhất
trong tháng 8
SELECT tblChuHo.sMaKH, sTenKH,(fSoDienMoi-fSoDienCu) AS
thụ'
'Lượng điện tiêu thụ' FROM dbo.tblChuHo,
dbo.tblLuongDienTieuThu
WHERE tblLuongDienTieuThu.sMaKH = tblChuHo.sMaKH
AND (fSoDienMoi-fSoDienCu)=
(SELECT MAX(fSoDienMoi-fSoDienCu)AS 'Lượng điện tiêu
FROM dbo.tblLuongDienTieuThu )
19
Downloaded by Uy vu Nguyen ()