Xây dựng và quản trị cơ sở dữ liệu thị trường chứng khoánngân hàng cụ thể là Bài toán quản lý cung cấp dịch vụ Internet banking của ngân hàng. Qua đó cần phải xây dựng và quản trị cơ sở dữ liệu để quản lý một cách tốt nhất
TRƯỜNG ĐẠI HỌC THƯƠNG MẠI Khoa: HTTT Kinh Tế & TMĐT BÀI THẢO LUẬN Học phần: Quản trị sở liệu Đề tài: Xây dựng quản trị sở liệu thị trường chứng khoán/ngân hàng Giảng viên hướng dẫn: Nghiêm Thị Lịch Lớp học phần: 2005ECIT2521 Nhóm trình bày: Nhóm 20 Hà Nội, tháng 04 năm 2020 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 Mơ tả tốn 1.2 Mô hình phân cấp chức 1.3 Quá trình thiết kế mơ hình thực thể liên kết (ER) 1.4 Mơ hình quan hệ CHƯƠNG 2: CÀI ĐẶT CSDL TRÊN HỆ QUẢN TRỊ CSDL 2.1 Tạo Database Table .6 2.1.1 Tạo Database 2.1.2 Tạo bảng khách hàng 2.1.3 Tạo bảng tài khoản 2.1.4 Tạo bảng giao dịch 2.1.5 Tạo bảng loại giao dịch 2.2 Nhập liệu cho bảng .7 2.2.1 Bảng khách hàng .7 2.2.2 Bảng tài khoản 2.2.3 Bảng giao dịch 2.2.4 Bảng loại giao dịch 2.3 Thiết lập ràng buộc CHƯƠNG 3: KHAI THÁC CSDL 10 3.1 Query 10 3.2 View 12 3.3 Trigger 14 3.4 Procedure 16 3.5 Function 18 3.6 Phân quyền 19 CHƯƠNG I: MÔ TẢ VÀ XÁC ĐỊNH CÁC CHỨC NĂNG CỦA BÀI TỐN 1.1 Mơ tả tốn Bài tốn quản lý cung cấp dịch vụ Internet banking ngân hàng Một ngân hàng ABC cung cấp dịch vụ internet banking tới khách hàng với loại giao dịch khác 1.2 Thông tin khách hàng lưu trữ gồm: Mã khách hàng (duy nhất), họ tên, giới tính, ngày sinh, địa chỉ, số điện thoại, số cước công dân Mỗi tài khoản sở hữu khách hàng khách hàng tạo tối đa tài khoản, khách hàng sử dụng thẻ “tín dụng” “ghi nợ” để liên kết với tài khoản cá nhân Thơng tin tài khoản lưu trữ bao gồm: Mã tài khoản (duy nhất), mã khách hàng, ngày tạo tài khoản, loại thẻ liên kết số dư tài khoản Một tài khoản thực nhiều giao dịch, giao dịch thực tài khoản Thông tin giao dịch bao gồm: Mã giao dịch (duy nhất), mã tài khoản, ngày giao dịch, loại giao dịch, số tiền giao dịch Ngoài ra, giao dịch tương ứng với loại giao dịch, loại giao dịch nhiều giao dịch sử dụng Mơ hình phân cấp chức 1.3 Q trình thiết kế mơ hình thực thể liên kết (ER) Bước 1: Xác định tập thực thể Thông qua toán, tập thực thể xác định bao gồm: Khách hàng, Tài khoản, Giao dịch, Loại giao dịch Bước 2: Xác định mối quan hệ thực thể Bước 3: Xác định tập thuộc tính, gắn thuộc tính cho tập thực thể mối liên kết KHACHHANG(MaKH, HoTen, GioiTinh, NgaySinh, DiaChi, SDT, CCCD) TAIKHOAN(MaTK, NgayTao, SoDu, LoaiTheLK) GIAODICH(MaGD, SoTienGD, NgayGD) LOAIGIAODICH(MaLoaiGD, TenLoaiGD) Bước 4: Xác định miền giá trị cho thuộc tính Thực thể: Khách hàng Column Name MaKH HoTen GT NgaySinh SDT DiaChi CCCD Data Type char(7) nvarchar(30) nvarchar(3) date char(10) nvarchar(60) char(14) Allow Null no no no no no no no Note Mã khách hàng Họ tên Giới tính Ngày sinh Số điện thoại Địa Căn cước công dân Thực thể: Tài khoản Column Name MaTK NgayTao SoDu LoaiTheLK Data Type char(6) date int nvarchar(20) Allow Null no no no no Note Mã tài khoản Ngày tạo Số dư Loại thẻ liên kết Thực thể: Giao dịch Column Name MGD SoTienGD NgayGD Data Type char(8) int date Allow Null no yes no Note Mã giao dịch Số tiền giao dịch Ngày giao dịch Thực thể: Loại giao dịch Column Name MaLoaiGD TenLoaiGD Data Type char(7) nvarchar(40) Allow Null no no Note Mã loại giao dịch Tên loại giao dịch Bước 5: Xác định thuộc tính khóa KHACHHANG(MaKH, HoTen, GioiTinh, NgaySinh, DiaChi, SDT, CCCD) TAIKHOAN(MaTK, NgayTao, SoDu, LoaiTheLK) GIAODICH(MaGD, SoTienGD, NgayGD) LOAIGIAODICH(MaLoaiGD, TenLoaiGD) Bước 6: Xác định bậc tối thiểu bậc tối đa cho mối quan hệ Một tài khoản sở hữu khách hàng Một khách hàng sở hữu hai tài khoản Một giao dịch thực từ tài khoản Một tài khoản khơng thực giao dịch thực nhiều giao dịch Một loại giao dịch khơng sử dụng giao dịch sử dụng nhiều giao dịch Một giao dịch thuộc loại giao dịch Bước 7: Vẽ mơ hình ER 1.4 Mơ hình quan hệ Dựa vào quy tắc chuyển đổi từ mơ hình ER sang mơ hình quan hệ, mơ hình ER sau chuyển đổi thành mơ hình quan hệ thể hình dưới: Các thuộc tính thực thể sau chuyển đổi có số thay đổi sau: KHACHHANG(MaKH, HoTen, GioiTinh, NgaySinh, DiaChi, SDT, CCCD) TAIKHOAN(MaTK, NgayTao, SoDu, LoaiTheLK, MaKH) GIAODICH(MaGD, SoTienGD, NgayGD, MaTK, MaLoaiGD) LOAIGIAODICH(MaLoaiGD, TenLoaiGD) CHƯƠNG 2: CÀI ĐẶT CSDL TRÊN HỆ QUẢN TRỊ CSDL 2.1 Tạo Database Table 2.1.1 Tạo Database create database QLNH; 2.1.2 Tạo bảng khách hàng use QLNH; create table KHACHHANG ( MaKH char(7) primary key, HoTen nvarchar(30) not null, GT nvarchar(3) not null, NgaySinh date not null, SDT char(10) not null, DiaChi nvarchar(60) not null, CCCD char(14) not null ); go 2.1.3 Tạo bảng tài khoản use QLNH; create table TAIKHOAN ( MaTK char(7) primary key, MaKH char(7) not null, NgayTao date not null, SoDu int , LoaiTheLK nvarchar(11) not null ); go 2.1.4 Tạo bảng giao dịch use QLNH; create table GIAODICH ( MGD char(8) primary key, MaTK char(7) not null, MaLoaiGD char(7) not null, SoTienGD int , NgayGD date not null ); go 2.1.5 Tạo bảng loại giao dịch use QLNH; create table LOAIGIAODICH ( MaLoaiGD char(7) primary key, TenLoaiGD nvarchar(40) not null ); go 2.2 Nhập liệu cho bảng 2.2.1 Bảng khách hàng 2.2.2 Bảng tài khoản 2.2.3 Bảng giao dịch 2.2.4 Bảng loại giao dịch 2.3 Thiết lập ràng buộc Khóa ngồi liên kết bảng khách hàng tài khoản use QLNH; alter table dbo.TAIKHOAN add constraint FK_KHACHHANG_TAIKHOAN foreign key (MaKH) references dbo.KHACHHANG(MaKH); Khóa ngồi liên kết bảng tài khoản bảng giao dịch alter table dbo.GIAODICH add constraint FK_TAIKHOAN_GIAODICH foreign key (MaTK) references dbo.TAIKHOAN(MaTK); Khóa ngồi liên kết bảng giao dịch bảng loại giao dịch use QLNH; alter table dbo.GIAODICH add constraint FK_LoaiGD_GIAODICH foreign key (MaLoaiGD) references dbo.LOAIGIAODICH(MaLoaiGD); 10 CHƯƠNG 3: KHAI THÁC CSDL 3.1 Query Đưa thông tin số lần thực loại giao dịch năm 2019, xếp theo thứ tự tăng dần số lần thực hiện, trùng xếp theo thứ tự giảm dần trường tên loại giao dịch select LOAIGIAODICH.MaLoaiGD, LOAIGIAODICH.TenLoaiGD, count(GIAODICH.MGD) as N'số lần thực hiện' from LOAIGIAODICH inner join GIAODICH on LOAIGIAODICH.MaLoaiGD = GIAODICH.MaLoaiGD where year(GIAODICH.NgayGD) = 2019 group by LOAIGIAODICH.MaLoaiGD, LOAIGIAODICH.TenLoaiGD order by count(GIAODICH.MGD) asc, LOAIGIAODICH.TenLoaiGD desc go Hiển thị thơng tin khách hàng có tài khoản liên kết với thẻ “Ghi nợ” theo thứ tự giảm dần số dư tài khoản đếm số giao dịch thực tài khoản use QLNH select KHACHHANG.MaKH, TAIKHOAN.MaTK, HoTen, SoDu, LoaiTheLK, count(MGD) 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 LoaiTheLK =N'Ghi nợ' group by KHACHHANG.MaKH, HoTen, LoaiTheLK, SoDu, TAIKHOAN.MaTK order by SoDu desc 11 Đưa thông tin giao dịch thực gần với số tiền giao dịch từ 20 triệu trở nên Thông tin đưa 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 QLNH select top percent GIAODICH.MGD, 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 > 20000000 order by GIAODICH.NgayGD desc 12 3.2 View - Tạo View chứa thông tin tài khoản chưa thực giao dịch create view Vtkgd as select dbo.TAIKHOAN.MaTK, TAIKHOAN.MaKH, TAIKHOAN.NgayTao, TAIKHOAN.SoDu, TAIKHOAN.LoaiTheLK from dbo.TAIKHOAN left join dbo.GIAODICH on dbo.TAIKHOAN.MaTK = dbo.GIAODICH.MaTK where dbo.GIAODICH.MGD is null go Tạo view chứa thông tin khách hàng thành phố Hồ Chí Minh tạo tài khoản năm 2018 Thông tin bao gồm: mã khách hàng, tên khách hàng, giới tính, sđt, địa chỉ, mã tài khoản, ngày tạo tài khoản use QLNH create view v_KH as select KHACHHANG.MaKH, HoTen, GT, DiaChi, TAIKHOAN.MaTK, TAIKHOAN.NgayTao from dbo.KHACHHANG inner join dbo.TAIKHOAN on dbo.KHACHHANG.MaKH = dbo.TAIKHOAN.MaKH where dbo.KHACHHANG.DiaChi = N'Thành phố Hồ Chí Minh' and year(TAIKHOAN.NgayTao) = 2018 go 13 Tạo view chứa thông tin số lần thực giao dịch tài khoản Thông tin đưa bao gồm: Mã KH, tên KH, mã TK, ngày tạo, số dư, số lần thực giao dịch use QLNH create view v_kh_tk_gd as select KHACHHANG.MaKH, HoTen, TAIKHOAN.MaTK, NgayTao, SoDu, count(GIAODICH.MGD) as N'số lần giao dịch' from dbo.TAIKHOAN inner join dbo.KHACHHANG on dbo.TAIKHOAN.MaKH = dbo.KHACHHANG.MaKH inner join dbo.GIAODICH on dbo.TAIKHOAN.MaTK = dbo.GIAODICH.MaTK group by TAIKHOAN.MaTK, KHACHHANG.MaKH, HoTen, NgayTao, SoDu go 14 3.3 Trigger Tạo trigger hiển thị thông tin khách hàng sau thêm, xóa sửa liệu use QLNH create trigger tr_KH_up_in_de on dbo.KHACHHANG for insert, delete, update as select * from dbo.KHACHHANG go 15 Khi tạo tài khoản, số dư tài khoản phải lớn 50.000 đồng use QLNH CREATE TRIGGER sodu ON dbo.TAIKHOAN AFTER INSERT AS IF UPDATE (SoDu) BEGIN DECLARE @tk nchar(10) SET @tk = (SELECT MaTK FROM inserted) DECLARE @tien money SET @tien = (SELECT SoDu from dbo.TAIKHOAN where dbo.TAIKHOAN.MaTK = @tk) IF (@tien