Tải bản đầy đủ (.docx) (23 trang)

Bài tập lớn: 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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (246.18 KB, 23 trang )

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



×