TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
--o0o--
LỚP HỆ THỐNG THÔNG TIN – KHÓA 7
Bài tập lớn : Cơ sở dữ liệu phân tán
Đề tài : Thiết kế và cài đặt cơ sở dữ liệu phân tán bằng hệ quản trị cơ sở
dữ liệu SQL Server cho quản lí giao dịch tại ngân hàng theo phân mảng
ngang trên địa chỉ ở Đà Nẵng, Hà Nội, Sài Gòn
Người thực hiện :
- Lê Tuấn Ngọc : Thiết kế CSDLPT, Xây dựng CSDLPT trong
HQT CSDL SQL Server, Cài đặt hệ thống
- Nguyễn Thị Nguyên : Thiết kế CSDLPT
- Lê Thị Duyên : Thiết kế CSDLPT
Giáo viên hướng dẫn :
- Th.S. Nguyễn Thị Thanh Huyền
MỤC LỤC
I. LỜI NÓI ĐẦU
Ngân Hàng TMCP Công Thương Việt Nam (VietinBank) được thành lập từ
năm 1988 sau khi tách ra từ Ngân hàng Nhà nước Việt Nam.
Là Ngân hàng thương mại lớn, giữ vai trò quan trọng, trụ cột của ngành
Ngân hàng Việt Nam.
Có hệ thống mạng lưới trải rộng toàn quốc với 01 Sở giao dịch, 151 Chi
nhánh và trên 1000 Phòng giao dịch/ Quỹ tiết kiệm. Các chi nhánh được
phân theo 3 khu vực chính trên cả nước là Hà Nội, Đà Nẵng và Sài Gòn.
Các hoạt động chính của ngân hàng
Huy động vốn
- Nhận tiền gửi không kỳ hạn và có kỳ hạn bằng VNĐ và ngoại tệ
của các tổ chức kinh tế v à dân cư.
- Nhận tiền gửi tiết kiệm với nhiều hình thức phong phú và hấp
dẫn: Tiết kiệm không kỳ hạn và có kỳ hạn bằng VNĐ và ngoại tệ,
Tiết kiệm dự thưởng,Tiết kiệm tích luỹ...
- Phát hành kỳ phiếu, trái phiếu...
Cho vay, đầu tư
-
Cho vay ngắn hạn bằng VNĐ và ngoại tệ
Cho vay trung, dài hạn bằng VNĐ và ngoại tệ
Tài trợ xuất, nhập khẩu; chiết khấu bộ chứng từ hàng xuất.
Đồng tài trợ và cho vay hợp vốn đối với những dự án lớn, thời
gian hoàn vốn dài
Cho vay tài trợ, uỷ thác theo chương trình: Đài Loan (SMEDF);
Việt Đức (DEG, KFW) và các hiệp định tín dụng khung
Thấu chi, cho vay tiêu dùng.
Hùn vốn liên doanh, liên kết với các tổ chức tín dụng và các định
chế tài chính trong nước và quốc tế
Đầu tư trên thị trường vốn, thị trường tiền tệ trong nước và quốc
tế
Bảo lãnh
- Bảo lãnh, tái bảo lãnh (trong nước và quốc tế): Bảo lãnh dự thầu;
Bảo lãnh thực hiện hợp đồng; Bảo lãnh thanh toán.
Thanh toán và Tài trợ thương mại
- Phát hành, thanh toán thư tín dụng nhập khẩu; thông báo, xác
nhận, thanh toán thư tín dụng nhập khẩu.
- Nhờ thu xuất, nhập khẩu (Collection); Nhờ thu hối phiếu trả ngay
(D/P) và nhờ thu chấp nhận hối phiếu (D/A).
- Chuyển tiền trong nước và quốc tế
- Chuyển tiền nhanh Western Union
- Thanh toán uỷ nhiệm thu, uỷ nhiệm chi, séc.
- Chi trả lương cho doanh nghiệp qua tài khoản, qua ATM
- Chi trả Kiều hối…
Ngân quỹ
- Mua, bán ngoại tệ (Spot, Forward, Swap…)
- Mua, bán các chứng từ có giá (trái phiếu chính phủ, tín phiếu kho
bạc, thương phiếu…)
- Thu, chi hộ tiền mặt VNĐ và ngoại tệ...
- Cho thuê két sắt; cất giữ bảo quản vàng, bạc, đá quý, giấy tờ có
giá, bằng phát minh sáng chế.
Thẻ và ngân hàng điện tử
- Phát hành và thanh toán thẻ tín dụng nội địa, thẻ tín dụng quốc tế
(VISA, MASTER CARD…)
- Dịch vụ thẻ ATM, thẻ tiền mặt (Cash card).
- Internet Banking, Phone Banking, SMS Banking
Hoạt động khác
- Khai thác bảo hiểm nhân thọ, phi nhân thọ
- Tư vấn đầu tư và tài chính
- Cho thuê tài chính
- Môi giới, tự doanh, bảo lãnh phát hành, quản lý danh mục đầu tư,
tư vấn, lưu ký chứng khoán
- Tiếp nhận, quản lý và khai thác các tài sản xiết nợ qua Công ty
Quản lý nợ và khai thác tài sản.
Để hoàn thiện các dịch vụ liên quan hiện có nhằm đáp ứng nhu cầu ngày
càng cao của khách hàng, đồng thời tạo đà cho sự phát triển và hội nhập
với các nước trong khu vực và quốc tế, VietinBank luôn có tầm nhìn chiến
lược trong đầu tư và phát triển, tập trung ở 3 lĩnh vực:
- Phát triển nguồn nhân lực
- Phát triển công nghệ
- Phát triển kênh phân phối
Với quy mô lớn như hiện nay, công tác quản lý giao dịch tại các chi nhánh
của ngân hàng gặp rất nhiều khó khăn, do nhu cầu thu thập, lưu trữ, xử lý
và trao đổi thông tin ngày càng tăng, các hệ thống xử lý tập trung này đã
bộc lộ rất nhiều nhược điểm.
Vì thế xây dựng một hệ thống phân tán để thay thế hệ thống tập trung
truyền thống là điều tất yếu, nhóm chúng em đề xuất “Thiết kế và cài đặt
cơ sở dữ liệu phân tán bằng hệ quản trị cơ sở dữ liệu SQL Server cho quản
lí giao dịch tại ngân hàng theo phân mảng ngang trên địa chỉ ở Đà Nẵng,
Hà Nội, Sài Gòn”.
I. NỘI DUNG CHÍNH
Thiết kế và cài đặt cơ sở dữ liệu phân tán bằng hệ quản trị cơ sở dữ liệu
SQL Server cho quản lí giao dịch tại ngân hàng theo phân mảng ngang trên
địa chỉ ở Đà Nẵng, Hà Nội, Sài Gòn
- Trạm 1 : Các chi nhánh khu vực Hà Nội
- Trạm 2 : Các chi nhánh khu vực Đà Nẵng
- Trạm 3 : Các chi nhánh khu vực Sài Gòn
Nội dung chính gồm 3 chương :
- Chương 1 : Thiết kế CSDL phân tán cho hệ thống
- Chương 2 : Xây dựng CSDL phân tán trong hệ quản trị CSDL
- Chương 3 : Cài đặt hệ thống trên CSDL phân tán
1. Thiết kế CSDL phân tán cho hệ thống
1.1. Khảo sát nghiệp vụ
Khi khách hàng đến sử dụng dịch vụ của ngân hàng thì khách hàng sẽ nhận
được một mẫu đăng kí sử dụng dịch vụ (Một trong số các dịch vụ mà ngân
hàng cung cấp). Đối với mỗi loại dịch vụ có một mẫu phiếu đăng kí riêng,
nhưng các mẫu phiếu đăng kí có các nội dung chung sau:
Số phiếu: .........................................................................................................
Mã DV:............................................................................................................
Tên khách:.......................................................................................................
Địa chỉ:............................................................................................................
Mã khách:........................................................................................................
Số tài khoản:....................................................................................................
Ngày đăng kí TK:… …………. (Các nội dung riêng của từng dịch vụ).
Ngày đăng kí sử dụng dịch vụ:........................................................................
Mã NV:...........................................................................................................
Tên NV:...........................................................................................................
Sau khi nhân phiếu đăng kí sử dụng dịch vụ từ khách hàng. Nhân viên tiếp
nhận cập nhật thông tin của khách hàng vào cơ sở dữ liệu khách hàng. Sau
đó cập nhật mã khách hàng và các thông tin riêng của dich vụ vào cơ sở dữ
liệu của dịch vụ đó. Cuối cùng, khách hàng nộp tiền (nếu cần) và nhận biên
lai giao dịch.
1.2. Bài toán
Hệ thống thực hiện chức năng quản lý giao dịch tại các chi nhánh phân
mảnh theo ba nhóm khu vực.
Hệ thống quản lý dịch vụ ngân hàng là một phần của hệ thống quản lý ngân
hàng, vậy nó phải liên kết với hệ thống lớn đó để ngân hàng có thể hoạt
động tốt.
Chính vì thế ứng dụng quản lý mà ta cần thiết kế phải có khả năng truy cập
và cập nhật vào cơ sở dữ liệu từ xa, đồng thời cũng có các chức năng in ấn
báo cáo.
Hiện nay có rất nhiều ngôn ngữ có thể làm được các công việc trên. Tuy
nhiên nhóm em thấy Visual C# là thích hợp hơn cả. Sau đây nhóm em xin
trình bày tư tưởng cài đặt hệ thống.
Hệ thống gồm 2 chương trình:
- Server: đặt tại một máy tính có địa chỉ mạng xác định có nhiệm
vụ nhận các yêu cầu cập nhật cũng như lấy thông tin từ các máy
client của ngân hàng đặt tại các địa điểm khác nhau.
- Máy trạm : đặt trên các máy tính của các chi nhánh. Chương trình
client có một giao diện xuất nhập tốt bao gồm các nút và các form
nhập dữ liệu.
1.3. Thiết kế cơ sở dữ liệu tập trung cho hệ thống
1.4. Thiết kế mô hình csdl phân tán cho hệ thống
1.4.1. Phân mảnh dữ liệu
Phân mảnh ngang nguyên thủy cho bảng ChiNhanh theo giá trị DiaChi:
Các vị từ đơn giản có thể dùng được là:
p1: DiaChi = “Hà Nội”
p2: DiaChi = “Đà Nẵng”
p3: DiaChi = “Sài Gòn”
Tập vị từ đơn giản khởi đầu là Pr = {p 1, p2, p3}. Áp dụng thuật toán
COM_MIN với i = 1 làm giá trị khởi đầu tạo ra Pr’ = {p 1, p2, p3} là tập đầy
đủ và cực tiểu.
Có thể định nghĩa vị từ hội sơ cấp tạo ra M dựa trên Pr’ như sau:
m1: p1 ^ p2
m2: p1 ^ p3
m3: p2 ^ p3
m4: p1 ^ p2 ^ p3
m5: p1 ^ ¬(p2 ^ p3) ≡ p1 ^ p1 ≡ p1
m6: p2 ^ ¬(p1 ^ p3) ≡ p2 ^ p2 ≡ p2
m7: p3 ^ ¬(p1 ^ p2) ≡ p3 ^ p3 ≡ p3
Kết quả phân mảnh ngang nguyên thủy ChiNhanh tạo ra 3 mảnh
ChiNhanh = { ChiNhanh1, ChiNhanh2, ChiNhanh3 }
ChiNhanh1= σ DiaChi = “Hà Nội” (ChiNhanh)
ChiNhanh2= σ DiaChi = “Đà Nẵng” (ChiNhanh)
ChiNhanh3 = σ DiaChi = “Sài Gòn” (ChiNhanh)
Phân mảnh ngang dẫn xuất ChiNhanh – KhachHang ta được 3 trạm:
KhachHang1 = KhachHang |›‹ ChiNhanh1
KhachHang2 = KhachHang |›‹ ChiNhanh2
KhachHang3 = KhachHang |›‹ ChiNhanh3
Phân mảnh ngang dẫn xuất ChiNhanh – NhanVien ta được 3 trạm:
NhanVien1 = NhanVien |›‹ ChiNhanh1
NhanVien2 = NhanVien |›‹ ChiNhanh2
NhanVien3 = NhanVien |›‹ ChiNhanh3
Phân mảnh ngang dẫn xuất ChiNhanh – PhieuChuyenTien ta được 3
trạm:
PhieuChuyenTien1 = PhieuChuyenTien |›‹ ChiNhanh1
PhieuChuyenTien2 = PhieuChuyenTien |›‹ ChiNhanh2
PhieuChuyenTien3 = PhieuChuyenTien |›‹ ChiNhanh3
Phân mảnh ngang dẫn xuất ChiNhanh – PhieuNopTien ta được 3
trạm:
PhieuNopTien1 = PhieuNopTien |›‹ ChiNhanh1
PhieuNopTien2 = PhieuNopTien |›‹ ChiNhanh2
PhieuNopTien3 = PhieuNopTien |›‹ ChiNhanh3
Phân mảnh ngang dẫn xuất ChiNhanh – PhieuRutTien ta được 3
trạm:
PhieuRutTien1 = PhieuRutTien |›‹ ChiNhanh1
PhieuRutTien2 = PhieuRutTien |›‹ ChiNhanh2
PhieuRutTien3 = PhieuRutTien |›‹ ChiNhanh3
Sau khi phân mảnh ta có 3 trạm như sau:
- Trạm 1
- Trạm 2
- Trạm 3
1.4.2. Mô tả về sử dụng dữ liệu cho mỗi chi nhánh
- Server : Có quyền thay đổi thông tin, cập nhật toàn bộ dữ liệu trên hệ
thống
- Máy trạm : Mỗi trạm (chi nhánh) chỉ được cập nhật dữ liệu trong
phạm vi chi nhánh đó
1.4.3. Mô tả quá trình nghiệp vụ cho mỗi chi nhánh
- Chức năng cập nhật dữ liệu dịch vụ có nhiệm vụ tiếp nhận các điều
chỉnh về dịch vụ từ bộ phận quản lý cấp trên và cập nhật nó vào hệ
thống. Công việc này bao gồm: Thêm một dịch vụ mới vào hệ thống
và thay đổi một dịch vụ đang cung cấp (Ví dụ: tăng giảm lãi suất,
thời hạn trả lãi,…).
- Chức năng quản lý sử dụng dịch vụ: là nơi giao tiếp với khách hàng
và có nhiệm vụ cập nhật thông tin của khách hàng cũng như các
thông tin về sử dụng dịch vụ của khách hàng.
- Chức năng thống kê báo cáo có nhiệm vụ tổng hợp và báo cáo thông
tin theo yêu cầu của bộ phận quản lý cấp trên.
2. Xây dựng CSDL phân tán trong hệ quản trị CSDL SQL Server
2.1. Cấu trúc các bảng dữ liệu
2.1.1. Bảng Chi nhánh
Tên trường
Kiểu dữ liệu
Mô tả
MaChiNhanh
Int
Mã chi nhánh
TenChiNhanh
Nvarchar(250)
Tên chi nhánh
DiaChi
Nvarchar(250)
Địa chỉ
DienThoai
Nvarchar(50)
Điện thoại
2.1.2. Bảng Phòng ban
Tên trường
Kiểu dữ liệu
Mô tả
MaPhongBan
Int
Mã phòng ban
TenPhongBan
Nvarchar(250)
Tên phòng ban
DienThoai
Nvarchar(50)
Điện thoại
Tên trường
Kiểu dữ liệu
Mô tả
MaChucVu
Int
Mã chức vụ
TenChucVu
Nvarchar(250)
Tên chức vụ
PhuCapChucVu
Decimal(18,0)
Phụ cấp chức vụ
2.1.3. Bảng Chức vụ
2.1.4. Bảng Khách hàng
Tên trường
Kiểu dữ liệu
Mô tả
SoTaiKhoan
Varchar(10)
Số tài khoản
TenTaiKhoan
Nvarchar(250)
Tên tài khoản
DiaChi
Nvarchar(250)
Địa chỉ
DienThoai
Nvarchar(50)
Điện thoại
ToChuc
Nvarchar(250)
Tổ chức
TrangThai
bit
GhiChu
Nvarchar(250)
Trạng thái
2.1.5. Bảng Nhân viên
Tên trường
Kiểu dữ liệu
Mô tả
MaNhanVien
Varchar(10)
Mã nhân viên
TenNhanVien
Nvarchar(250)
Tên nhân viên
NgaySinh
Date
Ngày sinh
GioiTinh
Nchar(5)
Giới tính
DiaChi
Nvarchar(250)
Địa chỉ
DienThoai
Nvarchar(50)
Điện thoại
MaChiNhanh
Int
Mã chi nhánh
MaPhongBan
Int
Mã phòng ban
MaChucVu
Int
Mã chức vụ
2.1.6. Bảng Phiếu chuyển tiền
Tên trường
Kiểu dữ liệu
Mô tả
MaPhieuChuyenTien
Int
Mã nhân viên
NgayLap
Date
Tên nhân viên
MaChiNhanh
Int
Ngày sinh
SoTaiKhoanGui
Varchar(10)
Giới tính
SoTaiKhoanNhan
Varchar(10)
Địa chỉ
SoTien
Decimal(18,0)
Điện thoại
PhiChuyenTien
Decimal(18,0)
Mã chi nhánh
MaNhanVien
Varchar(10)
Mã phòng ban
GhiChu
Nvarchar(250)
Mã chức vụ
2.1.7. Bảng Phiếu nộp tiền
Tên trường
Kiểu dữ liệu
Mô tả
MaPhieuNopTien
Int
Mã phiếu nộp tiền
NgayLap
Date
Ngày lập
MaChiNhanh
Int
Mã chi nhánh
SoTaiKhoan
Varchar(10)
Số tài khoản
HoTenNguoiNop
Nvarchar(250)
Họ tên người nộp
DiaChiNguoiNop
Nvarchar(250)
Địa chỉ người nộp
NoiDungNop
Nvarchar(250)
Nội dung nộp
SoTien
Decimal(18,0)
Số tiền nộp
PhiNopTien
Decimal(18,0)
Phí nộp tiền
MaNhanVien
Varchar(10)
Mã nhân viên
GhiChu
Nvarchar(250)
Ghi chú
2.1.8. Bảng Phiếu rút tiền
Tên trường
Kiểu dữ liệu
Mô tả
MaPhieuRutTien
Int
Mã phiếu rút tiền
NgayLap
Date
Ngày lập
MaChiNhanh
Int
Mã chi nhánh
SoTaiKhoan
Varchar(10)
Số tài khoản
SoTien
Decimal(18,0)
Số tiền nộp
PhiNopTien
Decimal(18,0)
Phí nộp tiền
MaNhanVien
Varchar(10)
Mã nhân viên
GhiChu
Nvarchar(250)
Ghi chú
2.2. Mô hình CSDL phân tán
2.2.1. Một số Trigger
--======================================
--======================================
-- Create T-SQL--Trigger
Createtrg_ChiNhanh_Tram1
T-SQL Trigger trg_NhanVien_Tram1
--======================================
--======================================
USE VietinBank1
USE VietinBank1
GO
GO
--======================================
--======================================
-- Create T-SQL Trigger trg_PhieuNopTien_Tram1
-- Create T-SQL Trigger trg_PhieuChuyenTien_Tram1
--======================================
--======================================
--======================================
USE
VietinBank1
-- Create
T-SQL Trigger trg_PhieuRutTien_Tram1
USE
VietinBank1
2.3. Một số truy vấn phân tán trong hệ quản trị CSDL
GO
--======================================
GO
IF
OBJECT_ID
('trg_PhieuNopTien_Tram1','TR')
IS NOT NULL
2.3.1.
Tạo
Link Server
USE
VietinBank1
IF OBJECT_ID
('trg_PhieuChuyenTien_Tram1','TR')
IS NOT NULL
DROP TRIGGER trg_PhieuNopTien_Tram1
GO
DROP TRIGGER trg_PhieuChuyenTien_Tram1
IF OBJECT_ID ('trg_PhieuRutTien_Tram1','TR') IS NOT NULL
DROP TRIGGER trg_PhieuRutTien_Tram1
USE2.3.2.
master Thực hiện đồng bộ dữ liệu từ Server
GO
exec sp_addlinkedserver @server = 'LINK_ChiNhanh1', @srvproduct = '', @provider = 'SQLNCLI',
@datasrc = ‘CHINHANH1', @catalog = ‘VietinBank1’
GO 3. Cài đặt hệ thống trên CSDL phân tán
exec sp_addlinkedserver @server = 'LINK_ChiNhanh2', @srvproduct = '', provider = 'SQLNCLI',
EXEC msdb.dbo.sp_start_job
N’SERVER-PC-VietinBank-rep-ChiNhanh1’
@datasrc
= ‘CHINHANH2',
@catalog
‘VietinBank2’
3.1. Yêu
cầu phần
cứng
và =phần
mềm
EXEC msdb.dbo.sp_start_job N’SERVER-PC-VietinBank-rep-ChiNhanh2’
3.2. Thiết kế giao
diện chương trình trên các trạm
EXEC msdb.dbo.sp_start_job
N’SERVER-PC-VietinBank-rep-ChiNhanh3’
3.3. Cài đặt và thử nghiệm