Nhu cầu và tầm quan trọng của dự án: Với sự phát triền mạnh mẽ của các ngân hàng, ngày càng nhiều các chi nhánh rải rác tại khắp cả nước được thành lập, do đó nhu cầu quản lý dữ liệu về
Trang 1BÁO CÁO BÀI TẬP LỚN MÔN CƠ SỞ DỮ LIỆU PHÂN TÁN
2 Phan Toàn Chung
3 Lê Văn Tuấn
Trang 2MỤC LỤC
1 Tên đề tài: 3
2 Đặt vấn đề: 3
2.1 Nhu cầu và tầm quan trọng của dự án: 3
2.2 Các chức năng chính của hệ thống 3
2.3 Các vị trí thực hiện dự án 3
2.4 Chức năng của mỗi vị trí 3
2.5 Các kịch bản về dữ liệu và ứng dụng cần thiết 4
3 Phân tích hệ thống thông tin 4
3.1 Mức ra quyết định 4
3.2 Mức trung gian (mức xử lý, trung chuyển thông tin) 4
3.3 Mức tác nghiệp 5
4 Phân tích chức năng: 5
4.1 Phân hệ quản lý thông tin khách hàng, tài khoản khách hàng 5
4.2 Phân hệ quản lý dữ liệu giao dịch 5
5 Phân tích thực thể: 6
6 Thiết kế cơ sở dữ liệu phân tán cho hệ thống quản lý cơ sở dữ liệu các chi nhánh ngân hàng: 8
6.1 Thiết kế sơ đồ tổng thể của hệ thống: 8
6.2 Thiết kế phân mảnh: 8
6.3 Thiết kế định vị: 10
6.4 Thiết kế sơ đồ ánh xạ địa phương: 10
6.5 Thiết kế vật lý tại các trạm: 11
7 Quản trị cơ sở dữ liệu phân tán cho hệ thống: 13
7.1 Xây dựng hệ thống mạng cho hệ thống: 13
7.2 Quá trình cài đặt hệ thống với SQL Server 2008: 14
Trang 31 Tên đề tài :
“HỆ THỐNG QUẢN LÝ CƠ SỞ DỮ LIỆU TÀI KHOẢN TRONG NGÂN HÀNG”
2.1 Nhu cầu và tầm quan trọng của dự án:
Với sự phát triền mạnh mẽ của các ngân hàng, ngày càng nhiều các chi nhánh rải rác tại khắp cả nước được thành lập, do đó nhu cầu quản lý dữ liệu về khách hàng và các giao dịch càng được chú trọng Việc đặt cơ sở dữ liệu tại các chi nhánh là khá tốn kém và khó quản lý, do đó Hệ thống quản lý cơ sở dữ liệu các chi nhánh ngân hàng giúp cho các ngân hàng giảm thiểu chi phí quản lý dữ liệu cũng như giúp cho việc truy cập dữ liệu cũng nhanh chóng và thuận tiện hơn
Hệ thống quản lý cơ sở dữ liệu các chi nhánh ngân hàng phục vụ cho việc quản lý thông tin khách hàng, tài khoản và quản lý các giao dịch tại các chi nhánh Các chi nhánh có thể sử dụng toàn bộ dữ liệu của cả hệ thống và tổng công ty có thể quản lý được dữ liệu của tất cả các chi nhánh Khách hàng có thể thực hiện giao dịch tại tất cả các chi nhánh trên cả nước
2.2 Các chức năng chính của hệ thống
- Quản lý thông tin khách hàng, tài khoản khách hàng
- Quản lý dữ liệu giao dịch
2.3 Các vị trí thực hiện dự án
Cơ sở dữ liệu được phân ra thành 3 vị trí
- Vị trí 1: dữ liệu được đặt tại miền Bắc (Hà Nội)
- Vị trí 2: dữ liệu được đặt tại miền Trung (Đà Nẵng)
- Vị trí 3: dữ liệu được đặt tại miền Nam (Thành phố Hồ Chí Minh)
2.4 Chức năng của mỗi vị trí
- Vị trí 1: Server chi nhánh, dùng để quản trị CSDL tại Hà Nội
- Vị trí 2: Server chi nhánh, dùng để quản trị CSDL tại Đà Nẵng
- Vị trí 3: Server chi nhánh, dùng để quản trị CSDL tại TP Hồ Chí Minh
Trang 42.5 Các kịch bản về dữ liệu và ứng dụng cần thiết
Kịch bản :
Khác hàng A mở tài khoản tại ngân hàng ở Hà Nội, nộp tiền vào tài khoản của mình ở Hà Nội Khi đó hệ thống sẽ đồng bộ CSDL của Server tại Hà Nội với các Server chi nhánh Đà Nẵng và TP Hồ Chí Minh Khách hàng A đi du lịch tại Đà Nẵng và muốn rút tiền trong tài khoản của mình tại Đà Nẵng Khi đó, ngân hàng chi nhánh tại Đà Nẵng sẽ truy cập vào CSDL của mình để lấy thông tin và tài của khách hàng A để thực hiện giao dịch Giao dịch xong ngân hàng chi nhánh lưu lại thông tin giao dịch vào CSDL của mình và đồng bộ dữ liệu với CSDL tại Hà Nội
và TP Hồ Chí Minh
3 Phân tích hệ thống thông tin
Công việc chính của việc xây dựng hệ thống quản lý dữ liệu ngân hàng là phải xác định được yêu cầu, nghiệp vụ trọng tâm của hệ thống thông tin đang xét, xác định kiến trúc của hệ thống thông tin (các mức thông tin) và chức năng cơ bản của các mức thông tin trong hệ thống, đồng thời cũng xác định được sự ảnh hưởng quan lại giữa các mức thông tin
Nhìn chung, kiến trúc và chức năng cơ bản của hệ thống gồm:
Quản lý thông tin khách hàng, tài khoản ngân hàng gồm các chức năng như thêm, sửa thông tin khách hàng, mở tài khoản ngân hàng
Quản lý giao dịch gồm các chức năng gửi tiền, rút tiền, chuyển tiền
3.1 Mức ra quyết định
Đây là mức xử lý thông tin đầu tiên của hệ thống, mức này do ban lãnh đạo hoặc người ủy quyền quyết định được ban lãnh đạo chỉ định Thông tin đầu vào của hệ thống là việc quyết định kỳ hạn gửi tiền, gửi tiền Kết quả cuối cùng (đầu ra) của hệ thống là quyết định các chỉ thị, quyết định chỉ đạo hoạt động của hệ thống quản lý cơ sở dữ liệu các chi nhánh ngân hàng
3.2 Mức trung gian (mức xử lý, trung chuyển thông tin)
Đây là mức thực hiện xử lý, hỗ trợ cho các mức ra quyết định của ban lãnh đạo Thông tin đầu vào của mức này đều là thông tin (sản phẩm là thông tin sau khi đã
xử lý) Các thông tin đầu ra của mức này lại là thông tin đầu vào cho mức ra quyết định và mức tác nghiệp của hệ thống
Trang 53.3 Mức tác nghiệp
Đây là mức thấp nhất của hệ thống, chịu trách nhiệm thực hiện nhiệm vụ quản
lý cơ sở dữ liệu, mức tác nghiệp chịu sự điều khiển của hệ thống quyết định Thông tin đầu vào của hệ thống tác nghiệp là các thông tin từ hệ thống quyết định, thông tin đầu ra là dữ liệu về khách hàng, thống kê các giao dịch gửi tiền, rút tiền, chuyển tiền của toàn bộ các chi nhánh
Ba mức của hệ thống như mô tả ở trên cần phải được xây dựng trên một nền tảng công nghệ thông tin trong mội trường thống nhất, có sự tương tác, phản hồi trong quá trình vận chuyển hệ thống đảm bảo cho hệ thống hoạt động hiệu quả Ngoài ra hệ thống phải vận hành tốt trên hệ thống mạng và phải có cơ chế đồng bộ
dữ liệu tại các địa phương
4.1 Phân hệ quản lý thông tin khách hàng, tài khoản khách hàng
Công việc chính là thêm thông tin khách hàng vào hệ thống, sửa đổi thông tin khách hàng, mở tài khoản ngân hàng cho khách hàng
4.2 Phân hệ quản lý dữ liệu giao dịch
Quản lý giao dịch là phần quan trọng nhất của hệ thống
Công việc chính là quản lý dữ liệu các giao dịch gửi tiền, rút tiền, chuyển tiền, như là thêm giao dịch, sửa đổi giao dịch, thống kê các giao dịch
Trang 65 Phân tích thực thể:
a Các thực thể:
1 Thực thể CHI_NHANH dùng để lưu trữ thông tin về các chi nhánh:
MA_CHI_NHANH Mã chi nhánh
TEN_CHI_NHANH Tên chi nhánh
2 Thực thể KHACH_HANG dùng để lưu trữ thông tin về các khách hàng:
MA_CHI_NHANH Mã chi nhánh
3 Thực thể TAI_KHOAN dùng để lưu trữ thông tin về các tài khoản
MA_CHI_NHANH Mã chi nhánh
NGAY_TAO Ngày tạo tài khoản
4 Thực thể GIAO_DICH dùng để lưu trữ thông tin về các giao dịch:
MA_GIAO_DICH Mã giao dịch
LOAI_GIAO_DICH Loại giao dịch: gửi, rút, chuyển
TK_THUC_HIEN Tài khoản thực hiện giao dịch
TK_NHAN Tài khoản nhận nếu là giao dịch chuyển tiền
5 Thực thể ATM dùng để lưu trữ thông tin các cây ATM
MA_CHI_NHANH Mã chi nhánh quản lý ATM
Trang 7b Mô hình thực thể quan hệ:
Hình 5.1: Mô hình quan hệ thực thể
(1,1)
(1,1) (1,1)
MA_CHI_NHAN
H TEN_KH CMT NGAY_SINH DIA_CHI SDT
TK_THUC_HIEN TK_NHAN
Thuộc
c (1,1)
(1,1)
Trang 86 Thiết kế cơ sở dữ liệu phân tán cho hệ thống
quản lý cơ sở dữ liệu các chi nhánh ngân hàng:
6.1 Thiết kế sơ đồ tổng thể của hệ thống:
Hình 6.1: Sơ đồ tổng thể của hệ thống
Owner(L1) = CHI_NHANH và Member(L1) = KHACH_HANG
Owner(L2) = CHI_NHANH và Member(L2) = TAI_KHOAN
Owner(L3) = KHACH_HANG và Member(L3) = TAI_KHOAN
Owner(L4) = TAI_KHOAN và Member(L4) = GIAO_DICH
Owner(L5) = CHI_NHANH và Member(L5) = ATM
CHI_NHANH(MA_CHI_NHANH, TEN_CHI_NHANH, DIA_CHI)
GIAO_DICH(MA_GIAO_DICH, THOI_GIAN, LOAI_GIAO_DICH,
SO_TIEN, TK_THUC_HIEN, TK_NHAN)
KHACH_HANG(MA_KH, MA_CHI_NHANH, TEN_KH, CMT,
NGAY_SINH, DIA_CHI, SDT)
TAI_KHOAN(SO_TK, MA_KH, MA_CHI_NHANH, LOAI_TK,
NGAY_TAO, SO_DU) L2
L4
L3 L1
ATM(MA_ATM, DIA_CHI, CHI_NHANH) L5
Trang 9Phân mảng ngang nguyên thủy và phân mảnh ngang dẫn xuất để chia quan
hệ tổng thể thành 3 mảnh đặt tại 3 vị trí như sau:
- Vị trí 1: Dữ liệu đặt tại Hà Nội
- Vị trí 2: Dữ liệu đặt tại Đà Nẵng
- Vị trí 3: Dữ liệu đặt tại Thành phố Hồ Chí Minh
Để phân mảnh, chúng tôi chọn quan hệ tổng thể CHI_NHANH làm tiêu chí
để phân mảnh, phân thành 3 mảnh đặt tại 3 vị trí để quản lý các chi nhánh ở các vùng lân cận, sau đó dựa vào các mảnh của chi nhánh sẽ dẫn xuất đến sự phân mảnh của các quan hệ tổng thể còn lại
Phân rã quan hệ CHI_NHANH thành các mảnh ngang CHI_NHANH_1, CHI_NHANH_2, CHI_NHANH_3 được định nghĩa như sau:
- CHI_NHANH_1 = 𝜎 MA_CHI_NHANH=’Các mã chi nhánh mà vị trí 1 quản lý’ (CHI_NHANH)
- CHI_NHANH_2 = 𝜎 MA_CHI_NHANH=’Các mã chi nhánh mà vị trí 2 quản lý’ (CHI_NHANH)
- CHI_NHANH_3 = 𝜎 MA_CHI_NHANH=’Các mã chi nhánh mà vị trí 3 quản lý’ (CHI_NHANH)
Phân rã quan hệ KHACH_HANG thành các mảnh KHACH_HANG_1, KHACH_HANG_2, KHACH_HANG_3 được định nghĩa như sau:
- KHACH_HANG_1 = KHACH_HANG ⋈ CHI_NHANH_1
- KHACH_HANG_2 = KHACH_HANG ⋈ CHI_NHANH_2
- KHACH_HANG_3 = KHACH_HANG ⋈ CHI_NHANH_3
Phân rã quan hệ TAI_KHOAN thành các mảnh TAI_KHOAN_1,
TAI_KHOAN_2, TAI_KHOAN_3 được định nghĩa như sau:
- TAI_KHOAN_1 = TAI_KHOAN ⋈ CHI_NHANH_1
- TAI_KHOAN_2 = TAI_KHOAN ⋈ CHI_NHANH_2
- TAI_KHOAN_3 = TAI_KHOAN ⋈ CHI_NHANH_3
Phân rã quan hệ GIAO_DICH thành các mảnh GIAO_DICH_1,
GIAO_DICH_2, GIAO_DICH_3 được định nghĩa như sau:
- GIAO_DICH_1 = GIAO_DICH ⋈ TAI_KHOAN_1
- GIAO_DICH_2 = GIAO_DICH ⋈ TAI_KHOAN_2
- GIAO_DICH_3 = GIAO_DICH ⋈ TAI_KHOAN_3
Trang 106.3 Thiết kế định vị:
Hình 6.2: Sơ đồ định vị của các mảnh tại các vị trí.
6.4 Thiết kế sơ đồ ánh xạ địa phương:
Hình 6.3: Các đoạn và hình ảnh vật lý của một quan hệ tổng thể
R: Gồm các quan hệ tổng thể là CHI_NHANH, KHACH_HANG,
R1 R2 R3
R1 R2 R3
Trang 116.5 Thiết kế vật lý tại các trạm:
Trong quá trình thiết kế phân mảnh cho hệ thống, chúng tôi chỉ sử dụng phân mảnh ngang để phân tán dữ liệu tạo nên cấu trúc vật lý của các bảng dữ liệu tại các trạm đều giống nhau Các bảng dữ liệu tương ứng với các thực thể
và mối quan hệ có trong hệ thống như sau:
Các ký hiệu dùng để mô tả:
- Null: N (No, không được rỗng), Y (Yes, có thể rỗng)
- PK (Primary key – khóa chính)
- AI (Tự động tăng)
- FK (Fogrein key – khóa ngoại)
STT Tên bảng Ý nghĩa
1 CHI_NHANH Chi nhánh, chứa thông tin liên quan đến
chi nhánh phục vụ cho công tác quản lý chi nhánh
2 KHACH_HANG Khách hàng, chứa thông tin liên quan đến
khách hàng phục vụ cho công tác quản lý khách hàng
3 TAI_KHOAN Tài khoản, chứa thông tin liên quan đến
tài khoản phục vụ cho công tác quản lý tài khoản
4 GIAO_DICH Giao dịch, chứa thông tin liên quan đến
giao dịch phục vụ cho công tác quản lý giao dịch
5 ATM ATM, chứa thông tin liên quan đến ATM
phục vụ cho công tác quản lý ATM
Bảng: Danh mục các bảng dữ liệu của hệ thống
Cấu trúc các bảng dữ liệu trong hệ thống:
Bảng CHI_NHANH (Chi nhánh, chứa thông tin liên quan đến chi nhánh):
STT Tên trường Kiểu dữ liệu, độ
rộng
1 MA_CHI_NHANH Varchar(5) N Mã chi nhánh(PK)
2 TEN_CHI_NHANH Varchar(255) N Tên chi nhánh
3 DIA_CHI Varchar(255) N Địa chỉ chi nhánh
Mã chi nhánh gồm 6 ký tự có dạng “XXYYYY”, trong đó:
- XX là HN nếu chi nhánh đó thuộc vị trí 1 (Hà Nội) quản lý
- XX là DN nếu chi nhánh đó thuộc vị trí 2 (Đà Nẵng) quản lý
- XX là SG nếu chi nhánh đó thuộc vị trí 3 (TP Hồ Chí Minh) quản lý
- YYYY là số thứ tự khi có một chi nhánh mới được thêm vào
Trang 12Bảng KHACH_HANG (Khách hàng, chứa thông tin liên quan đến khách hàng):
STT Tên trường Kiểu dữ liệu, độ
rộng
2 MA_CHI_NHANH Integer N Mã chi nhánh(FK)
Mã khách hàng gồm 10 ký tự có dạng “XXYYYYYYYYYY”, trong đó:
- XX là HN nếu khách hàng đó thuộc vị trí 1 (Hà Nội) quản lý
- XX là DN nếu khách hàng đó thuộc vị trí 2 (Đà Nẵng) quản lý
- XX là SG nếu khách hàng đó thuộc vị trí 3 (TP Hồ Chí Minh) quản lý
- YYYYYYYYYY là số thứ tự khi có một khách hàng mới được thêm vào Bảng TAI_KHOAN (Tài khoản, chứa thông tin liên quan đến tài khoản):
STT Tên trường Kiểu dữ liệu, độ
rộng
3 MA_CHI_NHANH Integer N Mã chi nhánh (FK)
Mã tài khoản gồm 10 ký tự có dạng “XXYYYYYYYYYY”, trong đó:
- XX là HN nếu tài khoản đó thuộc vị trí 1 (Hà Nội) quản lý
- XX là DN nếu tài khoản đó thuộc vị trí 2 (Đà Nẵng) quản lý
- XX là SG nếu tài khoản đó thuộc vị trí 3 (TP Hồ Chí Minh) quản lý
- YYYYYYYYYY là số thứ tự khi có một tài khoản mới được thêm vào
Bảng GIAO_DICH (Giao dịch, chứa thông tin liên quan đến giao dịch):
STT Tên trường Kiểu dữ liệu, độ
rộng
1 MA_GIAO_DICH Integer N Mã giao dịch(PK, AI)
2 THOI_GIAN Datetime N Thời gian thực hiện giao
dịch
3 LOAI_GIAO_DICH Integer N Loại giao dịch (1: Gửi, 2:
Rút, 3: Chuyển)
5 TK_THUC_HIEN Integer N Mã tài khoản thực hiện (FK)
Trang 13Bảng ATM (ATM, chứa thông tin liên quan đến ATM)
STT Tên trường Kiểu dữ liệu, độ
rộng
3 MA_CHI_NHANH Iinteger N Mã chi nhánh quản lý ATM
Mã ATM gồm 10 ký tự có dạng “XXYYYYYYYYYY”, trong đó:
- XX là HN nếu ATM đó thuộc vị trí 1 (Hà Nội) quản lý
- XX là DN nếu ATM đó thuộc vị trí 2 (Đà Nẵng) quản lý
- XX là SG nếu ATM đó thuộc vị trí 3 (TP Hồ Chí Minh) quản lý
- YYYYYYYYYY là số thứ tự khi có một ATM mới được thêm vào
7 Quản trị cơ sở dữ liệu phân tán cho hệ thống: 7.1 Xây dựng hệ thống mạng cho hệ thống:
Để triển khai được hệ thống phân tán cho hệ thống quản lý cơ sở dữ liệu các chi nhánh ngân hàng thì ta phải đầu tư hạ tầng mạng theo mô hình Client
Server Sau khi phân tích hệ thống chủ yếu dựa theo tần suất sử dụng và phạm
vi địa lý đề xuất số lượng Server và Client để cài đặt SQL Server như sau: Một server đóng vai trò Server trung tâm đặt tại Hà Nội, dùng để lưu tất cả các bản cao của các bảng dữ liệu ở các Server chi nhánh Server trung tâm này quản lý đến các Server chi nhánh và phân quyền truy cập CSDL hệ thống Do vậy Server trung tâm phải đủ mạnh
Một Server đặt tại chi nhánh Hà Nội đóng vai trò là Client trong hệ thống Server chi nhánh này dùng để quản trị CSDL tại chi nhánh Hà Nội và cũng chứa tất cả các bản sao của các bảng dữ liệu ở Server trung tâm và Server chi nhánh tại Hà Nội
Một Server đặt tại chi nhánh Đà Nẵng đóng vai trò là Client trong hệ thống Server chi nhánh này dùng để quản trị CSDL tại chi nhánh Đã Nẵng và cũng chứa tất cả các bản sao của các bảng dữ liệu ở Server trung tâm và Server chi nhánh tại Đà Nẵng
Một Server đặt tại chi nhánh TP Hồ Chí Minh đóng vai trò là Client trong
hệ thống Server chi nhánh này cũng dùng để quản trị CSDL tại chi nhánh TP
Hồ Chí Minh và cũng chứa tất cả các bản sao của các bảng dữ liệu ở Server trung tâm và Server chi nhánh tại TP Hồ Chí Minh
Trang 147.2 Quá trình cài đặt hệ thống với SQL Server 2008:
Mở cổng (port) trên các máy chủ để có thể truy xuất tới nhau mà không bị tường lửa chặn: Trong phần Advanced Settings của Firewall, tạo một Inbound Rule mới:
Trang 17Mở công cụ Sql Server Configuration Manager để config lại IP cho các máy chủ:
- Ở máy chủ chính, ta điền IP của máy chủ chính và các máy trạm
- Ở các máy trạm chúng ta chỉ cần điền IP của máy trạm đó và máy chủ chính Sau đó khởi động lại máy chủ
Mở công cụ SQL Server Managerment Sutdio
Tạo Linked server để các máy chủ có thể dùng để truy vấn dữ liệu lẫn nhau:
Trang 18Điền tên Linked server và tên host của máy chủ muốn kết nối đến:
Chọn chế độ xác thực:
Trang 19Cấu hình để thực hiện phân tán CSDL:
Tạo Publication: