Professional Documents
Culture Documents
Hôm nay, đúng vào lúc 8h10 ngày 10/10/2020, nhóm 14 tiến hành thảo luận nhóm
học phần Quản trị cơ sở dữ liệu với những nội dung sau đây:
Cả nhóm đều tham gia thảo luận và thống nhất ý kiến phân công để hoàn thành bài
thảo luận.
Nhóm trưởng chốt ý tưởng cũng như nhiệm vụ sau đó phân chia cụ thể cho từng thành
viên trong nhóm.
Buổi thảo luận kết lúc vào lúc 20h30 cùng ngày
Biên bản thảo luận đọc trước tất cả các thành viên trong nhóm. Cả nhóm đồng ý với
những gì đã viết.
Hôm nay, đúng vào lúc 19h30 ngày 19/10/2020, nhóm 14 tiến hành thảo luận
nhóm học phần Quản trị cơ sở dữ liệu với những nội dung sau đây:
Thành phần tham dự: tất cả thành viên nhóm 14
Nội dung thảo luận :
- Các thành viên thảo luận online
- Thêm ý tưởng cho bài thảo luận
- Các thành viên trình bày bài làm hôm trước đã thống nhất
Nhóm trưởng chỉnh sửa , tổng hợp bài làm nhỏ của các thành viên thành bài hoàn
chỉnh
Buổi thảo luận kết lúc vào lúc 22h cùng ngày
Biên bản thảo luận đọc trước tất cả các thành viên trong nhóm. Cả nhóm đồng ý với
những gì đã viết.
MỤC LỤC
CHƯƠNG I: MÔ TẢ VÀ XÁC ĐỊNH CÁC CHỨC NĂNG CỦA BÀI TOÁN...........1
1.1 Mô tả bài toán....................................................................................................1
1.2 Mô hình phân cấp chức năng............................................................................2
1.3 Quá trình thiết kế mô hình thực thể liên kết (ER)..........................................2
1.4 Mô hình quan hệ................................................................................................7
CHƯƠNG 2: CÀI ĐẶT CSDL TRÊN HỆ QUẢN TRỊ CSDL......................................8
2.1 Tạo Database và các Table................................................................................8
2.1.1 Tạo Database.................................................................................................8
2.1.2 Tạo bảng Khách hàng....................................................................................8
2.1.3 Tạo bảng Tài khoản.......................................................................................8
2.1.4 Tạo bảng Giao dịch.......................................................................................8
2.1.5 Tạo bảng Loại giao dịch................................................................................8
2.2 Nhập dữ liệu cho bảng.......................................................................................8
2.2.1 Nhập dữ liệu cho bảng Khách hàng...............................................................9
2.2.2 Nhập dữ liệu cho bảng Tài khoản..................................................................9
2.2.3 Nhập dữ liệu cho bảng Giao dịch................................................................10
2.2.4 Nhập dữ liệu cho bảng Loại giao dịch.........................................................10
2.3. Thiết lập các ràng buộc..................................................................................10
CHƯƠNG 3: KHAI THÁC CSDL................................................................................11
3.1 Query................................................................................................................11
3.2 View..................................................................................................................13
3.3 Trigger..............................................................................................................15
3.4 Procedure.........................................................................................................17
3.5 Function............................................................................................................19
3.6 Phân quyền.......................................................................................................21
CHƯƠNG I: MÔ TẢ VÀ XÁC ĐỊNH CÁC CHỨC NĂNG CỦA BÀI TOÁN
1
1.2 Mô hình phân cấp chức năng
Quản lý khách hàng Quản lý tài khoản Quản lý giao dịch Báo cáo
1.Cập nhật 1.Cập nhật tài 1.Tạo mới giao 1.bc Thông tin
thông tin khách khoản dịch khách hàng
hàng
2.Thêm/
2.Cập nhật giao 2. Thông tin
sửa/xóa thông 2. Xóa tài khoản
dịch tài khoản
tin khách hàng
3. Tìm kiếm
3. Tìm kiếm tài 3. Tìm kiếm 3. Thông tin
thông tin khách
khoản giao dịch giao dịch
hàng
4.Thống kê
giao dịch
2
1.3 Quá trình thiết kế mô hình thực thể liên kết (ER)
Bước 1: Xác định tập các thực thể.
Thông qua bài toán, tập các thực thể được xác định bao gồm: Khách hàng, Tài khoản,
Giao dịch, Loại giao dịch.
1 n
Khách hàng Sở hữu
Tài khoản
1 n
Tài khoản Thực Giao dịch
hiện
n 1
Giao dịch Thuộc Loại giao dịch
Bước 3: Xác định tập thuộc tính, gắn các thuộc tính cho tập thực thể và mối liên kết.
KHACHHANG (MaKH, HoTen, GioiTinh, NgaySinh, DiaChi, SDT, CCCD)
TAIKHOAN (MaTK, Ngaylap, Loaithe, SoDuTK)
GIAODICH (MaGD, SoTienGD, NgayGD)
LOAIGIAODICH (MaLoaiGD, TenLoaiGD)
Bước 4: Xác định miền giá trị cho các thuộc tính.
Thực thể: Khách hàng
Column Name Data Type Allow Nul Note
MaKH char(5) no Mã khách hàng
HoTen nvarchar(35) no Họ tên
GT nvarchar(5) no Giới tính
NgaySinh date no Ngày sinh
SDT char(10) no Số điện thoại
3
DiaChi nvarchar(10) no Địa chỉ
CCCD char(15) no Căn cước công dân
(1,1)
Khách hàng Sở hữu Tài khoản
Một khách hàng có thể sở hữu một hoặc nhiều tài khoản.
4
(1,n)
Khách hàng Sở hữu Tài khoản
(1,1)
Tài khoản Thực hiện Giao dịch
Một tài khoản có thể không được thực hiện giao dịch nào hoặc được thực hiện nhiều
giao dịch.
(0,n)
Tài khoản Thực hiện Giao dịch
Một loại giao dịch có thể không được sử dụng trong một giao dịch nào hoặc được sử
dụng trong nhiều giao dịch.
(0,n)
Giao dịch Thuộc Loại giao dịch
(1,1)
Giao dịch Thuộc Loại giao dịch
5
1.4 Mô hình quan hệ
Dựa vào các quy tắc chuyển đổi từ mô hình ER sang mô hình quan hệ, mô hình ER
sau khi chuyển đổi thành mô hình quan hệ được thể hiện trong hình dưới:
6
Các thuộc tính của thực thể sau khi chuyển đổi cũng có một số thay đổi như sau:
KHACHHANG (MaKH, HoTen, GioiTinh, NgaySinh, DiaChi, SDT, CCCD)
TAIKHOAN (MaTK, Loaithe, Ngaylap, SoDuTK, MaKH)
GIAODICH (MaGD, SoTienGD, NgayGD, MaTK, MaloaiGD)
LOAIGIAODICH (MaLoaiGD, TenLoaiGD)
7
2.1.2 Tạo bảng Khách hàng
USE QLNH
CREATE TABLE KHACHHANG(
MaKH char(5) Primary key,
HoTen nvarchar(35) NOT NULL,
NgaySinh date NOT NULL,
GT nvarchar(5) NOT NULL,
DiaChi nvarchar(10) NOT NULL,
SDT char(10) NOT NULL,
CCCD char(15)NOT NULL,
);
8
2.2.1 Nhập dữ liệu cho bảng Khách hàng
9
2.2.3 Nhập dữ liệu cho bảng Giao dịch
10
CHƯƠNG 3: KHAI THÁC CSDL
3.1 Query
1.Đưa ra thông tin về số lần được thực hiện của mỗi loại giao dịch trong năm
2020, sắp xếp theo thứ tự tăng dần của số lần được thực hiện, nếu trùng nhau thì
sắp xếp theo thứ tự tăng dần của trường tên loại giao dịch.
2. Hiển thị thông tin khách hàng có tài khoản được liên kết với thẻ “Ghi nợ” theo
thứ tự tăng dần của số dư tài khoản được thực hiện trên mỗi tài khoản đó.
USE QuanlyDichVu2
SELECT KHACHHANG.MaKH, TAIKHOAN.MaTK, HoTen,SoDu, LoaiThe,
COUNT (MaGD) AS 'SỐ LẦN GIAO DỊCH'
FROM TAIKHOAN
INNER JOIN KHACHHANG ON TAIKHOAN.MaKH = KHACHHANG.MaKH
INNER JOIN GIAODICH ON TAIKHOAN.MaTK = GIAODICH.MaTK
WHERE LoaiThe =N'Ghi nợ'
GROUP BY KHACHHANG.MaKH, HoTen, LoaiThe, SoDu, TAIKHOAN.MaTK
ORDER BY SoDu asc
11
3. Đưa ra thông tin giao dịch được thực hiện gần đây nhất với số tiền giao dịch từ
2 triệu trở nên. Thông tin đưa ra bao gồm: mã giao dich, mã tài khoản, tên loại
giao dịch, số tiền giao dịch, ngày giao dịch.
use QuanlyNH
SELECT TOP 1 PERCENT GIAODICH.MaGD, GIAODICH.MaTK,
LOAIGIAODICH.TenLoaiGD, GIAODICH.SoTienGD, GIAODICH.NgayGD
FROM dbo.GIAODICH
INNER JOIN dbo.LOAIGIAODICH on dbo.GIAODICH.MaLoaiGD =
dbo.LOAIGIAODICH.MaLoaiGD
WHERE dbo.GIAODICH.SoTienGD > 2000000
ORDER BY GIAODICH.NgayGD desc
4. Hiển thị thông tin top 3 khách hàng có tổng số tiền giao dịch lớn nhất ở Nam
Định và Hà Nội
12
FROM TAIKHOAN
INNER JOIN KHACHHANG ON TAIKHOAN.MaKH = KHACHHANG.MaKH
INNER JOIN GIAODICH ON TAIKHOAN.MaTK = GIAODICH.MaTK
WHERE DiaChi = N' Hà Nội'
GROUP BY KHACHHANG.MaKH, HoTen, KHACHHANG.DiaChi
ORDER BY sum (SoTienGD) desc
3.2 View
1.Tạo view với bảng khách hàng
create view khachhang_test
as
select MaKH, Hoten, Ngaysinh, SDT
FROM KHACHHANG
SELECT * FROM khachhang_test
13
3.Tạo view chứa thông tin các khách hàng ở Nam Định tạo tài khoản trong năm
2018. Thông tin gồm có: MaKH, TenKH, GT, Diachi, MaTK, Ngaylap
create view khnd
as
select KHACHHANG.MaKH, KHACHHANG.HoTen, KHACHHANG.GT,
KHACHHANG.DiaChi, TAIKHOAN.MaTK, TAIKHOAN.NgayLap
FROM KHACHHANG
INNER JOIN TAIKHOAN ON KHACHHANG.MaKH = TAIKHOAN.MaKH
WHERE KHACHHANG.DiaChi = N'Nam Định' and year(TAIKHOAN.NgayLap) =
2018
SELECT * FROM khnd
4.Xóa view
14
DROP VIEW khnd
5. Tạo bảng thông tin gồm MaKH với Mã giao dịch là MGDO1 và Số dư lớn hơn
2000000
3.3 Trigger
1.Tạo trigger hiển thị thông tin khách hàng sau khi thêm, xóa hoặc sửa dữ liệu
15
use QLNH
create trigger tr_KH
on dbo.KHACHHANG
for insert, delete, update
as
select * from dbo.KHACHHANG
go
16
2.Kiểm tra số dư trong thẻ ngân hàng
create trigger trg_checkTK
on TaiKhoan
for insert, update
as
if (select Sodu from inserted) <5000000
begin
print N'Số dư tối thiểu phải từ 5000000';
rollback transaction end
17
3.4 Function
1.Nhập vào tên khách hàng cho biết tuổi của khách hàng
CREATE FUNCTION fun_TinhtuoiKH ( @Hoten nvarchar(40))
RETURNS INT
AS
BEGIN
DECLARE @Tuoi INT
SELECT @Tuoi= year(getdate())-year(Ngaysinh)
FROM KHACHHANG
WHERE Hoten=@Hoten
RETURN @Tuoi
END
Thực hiện thủ tục
go
PRINT dbo.fun_TinhtuoiKH (N'Vũ Thị Kim Thư')
Kết quả
3.Kiểm tra năm sinh của Khách hàng có phải năm nhuận không
Kết quả
19
3.5 Procedure
1.Tạo stored procedure dùng để thêm dữ liệu vào bảng Khachhang
Thực thi:
exec Sp_ThemKhachHang '035', N'Phạm Ngọc Ánh', '2001/07/23', N'Nữ', N'Hà
Nội', '0362143886', '152242587'
20
2. Cập nhật lại giao dịch có mã giao dịch
3.Tạo thủ tục: Hiển thị danh sách gồm MaKH, HoTen, , MaGD, SoTienGD,của
những khách hàng có SoTienGD lớn hơn số tiền chỉ định, nếu không có thì hiển
thị thông báo không có khách hàng nào.
USE QuanlyDichVu
CREATE USER Thanhviennhom14 for login Nhom14
2.Trao quyền SELECT, INSERT, UPDATE và DELETE trên bảng GDV cho
người dùng tên là Thanhviennhom14
GRANT SELECT, INSERT, UPDATE ON GD to Thanhviennhom14
22
3.Thu hồi quyền DELETE trên bảng nhanvien của người dùng tên là
Thanhviennhom14:
REVOKE Insert ON GD to Thanhviennhom14
23