Qua tìm hiểu về hiện trạng hệ thống phần mềm nghiệp vụ và nhu cầu sử dụng báo cáo phân tích để hỗ trợ việc ra quyết định kinh doanh tại Ngân hàng TMCP Ocean bank. Tôi nhận thấy:
Hệ thống giao dịch nghiệp vụ vào thời điểm đầu và cuối tháng bị quá tải làm ảnh hưởng đến chất lượng phục vụ khách hàng của đơn vị. Nguyên nhân là do số lượng báo cáo quản trị tăng đột biến.
Hệ thống báo cáo chạy trên core banking có định dạng excel, pdf và thời gian lấy dữ liệu dưới 03 tháng là không phù hợp với nhu cầu về phân tích báo cáo.
Hình 2. 3: Sơ đồ hệ thống dữ liệu tại Ocean Bank.
Nhu cầu thực tế cần một giải pháp nhằm tách biệt hệ thống báo cáo với hệ thống giao dịch và cung cấp một công cụ mạnh hiệu quả thực hiện việc phân tích dữ liệu dễ dàng với khoảng thời gian tính theo năm. Việc xây dựng một kho dữ liệu trung tâm hoàn chỉnh đòi hỏi một đội ngũ chuyên gia lớn. Qua tìm hiểu và đánh giá các giải pháp, tôi đặt ra bài toán “là “Nghiên cứu và xây dựng kho dữ liệu sản phẩm tại Ngân hàng TMCP Đại Dương dựa trên nền tảng hệ quản trị CSDL Oracle 10g”.
34 2.2. Xây dựng kho dữ liệu
2.2.1. Đặc tả các thông tin cơ bản của dự án:
Bước đầu tiên trong việc phát triển các kho dữ liệu là chọn dữ liệu phù hợp từ nguồn dữ liệu. Có hai lý do chính cho việc thực hiện này: Việc đẩy toàn bộ dữ liệu vào kho dữ liệu là không khả thi (chi phí, khẳ năng so với nhu cầu sử dụng). Do đó, ta phải dựa các yêu cầu về dữ liệu từ hoạt động phân tích. Tất cả các quyết định liên quan đến mô hình kho dữ liệu xem xét các mục đích và mục tiêu về dữ liệu. Thứ hai, bước này đã kiềm chế phạm vi của mô hình kho dữ liệu để chỉ rằng cần thiết trong dự án. Kể từ khi bước này được thiết kế để phục vụ như một cái phễu để loại bỏ xem xét các yếu tố dữ liệu không cần thiết trong kho dữ liệu.
Ngoài ra ta phải xác định được các thông tin yêu cầu về dữ liệu trong kho dữ liệu để làm cơ sở cho việc quyết định thông tin nào sẽ được đẩy vào kho dữ liệu và cách thức thiết lập kho để đáp ứng yêu cầu.
Việc thiết kế kho dữ liệu phải căn cứ trên yêu cầu về “mong muốn dữ liệu” của người dùng cụ thể. Nhưng khi đặt câu hỏi “Bạn muốn dữ liệu gì trong kho dữ liệu” thì hầu hết doanh nghiệp đều trả lời “tất cả”. Chính vì vậy, thay vì hỏi các câu hỏi thì chúng ta cần tập trung câu hỏi về việc việc “dữ liệu sẽ được sử dụng như thế nào?”, “cần dữ liệu như thế nào để trả lời cho câu hỏi kinh doanh” Với Ocean bank, Việc xây dựng kho dữ liệu cần đáp ứng các yêu cầu sau:
Tạo sự tách biệt giữa hệ thống báo cáo phân tích và hệ thống giao dịch để đảm bảo sự ổn định cho hệ thống giao dịch phục vụ khách hàng.
Kho dữ liệu về hoạt động nghiệp vụ cho vay và huy động: dữ liệu được tổ chức phải giúp thực hiện các lệnh truy vấn phức tạp với số lượng dữ liệu xem xét lớn (mức độ hàng năm), dễ dàng thao tác cho người dùng cuối.
Tính nhất quán về dữ liệu tại mọi thời điểm: dữ liệu được tổ chức đảm bảo các đối tượng dữ liệu phải nhất quán. Qua đó đảm bảo sự ổn định, chính xác của số liệu cho việc phân tích.
Thông có kho dữ liệu phải trả lời được câu hỏi như sự biến động của 2 hoạt động nghiệp vụ theo thời gian, theo thông tin về kỳ hạn, lãi suất, loại khách hàng, vị trí địa lý… qua đó giúp rút ra các dự báo cho tương lai để hỗ trợ Ban Lãnh đạo ra quyết định.
Phạm vi dự án chỉ tập trung vào 2 nghiệp vụ huy động, cho vay của ngân hàng:
Nghiệp vụ huy động thực hiện trên 03 hệ thống. Core Banking do giao dịch viên thực hiện và Mplus (smart phone) & Internet Banking do
35
khách hàng thực hiện. Nhưng toàn bộ dữ liệu cuối cùng vẫn được hạch toán vào core.
Nghiệp vụ cho vay thực hiện trên hệ thống Core Banking do giao dịch viên thực hiện.
Dữ liệu đẩy vào kho dữ liệu chỉ tập trung trên hệ thống Core Banking về thông tin tài khoản cho vay & huy động và các thông tin liên quan như: lãi suất, số dư, sản phẩm, nhóm nợ, khách hàng, ngày tạo tài khoản, ngày hết hạn… Ngoài ra bổ sung thêm các thông tin tham khảo.
2.2.2. Phân tích nghiệp vụ.
Với yêu cầu của bài toán. Nguồn dữ liệu được triết xuất từ hệ thống core banking gồm 02 hoạt động cơ bản ngân hàng cho vay và huy động.
M o b i B a n k in g C o re B a n k in g In te rn e t B a n k in g
Hình 2. 4: Luồng nghiệp vụ huy động.
Nghiệp vụ huy động là việc tạo tài khoản tiền gửi trên hệ thống được thực hiện từ 03 hệ thống và căn cứ trên loại tài khoản khách hàng chọn để quyết định các thông tin cơ bản như lãi suất, thời hạn gửi, thời điểm nhận lãi…
Hình 2. 5: Luồng nghiệp vụ cho vay.
Nghiệp vụ cho vay trên hệ thống được tạo từ 02 hệ thống gồm: hệ thống thẻ visa (gồm thanh toán giao dịch mua hàng, đặt phòng… thực hiện theo phương thức quẹt thẻ máy pos, giao dịch điện tử..) và theo khoản vay được thiết lập trên core banking.
Về mặt tổ chức dữ liệu, core banking flexcube tại Ocean Bank được thiết lập với cơ sở dữ liệu quan hệ Oracle 10g và theo các module gồm:
36
Time deposit current account (TDCASA): là nghiệp vụ thiết lập cho hoạt động tiền gửi tiết kiệm và tài khoản thanh toán.
Money Market (MM): là nghiệp vụ thiết lập tiền gửi hoặc cho vay trên thị trường 2.
Retial Lending (CL): là nghiệp vụ cho vay của ngân hàng.
Sổ cái GL: sổ cái các tài khoản kế toán.
Một số phân hệ khác: SE (trái phiếu, tín phiếu, cổ phiếu), FX (kinh doanh tiền tệ)…
Trong phạm vi đề tài thì cần xem xét các đối tượng sau:
CIF (Khách hàng): là cá nhân hoặc tổ chức sử dụng các sản phẩm dịch vụ của ngân hàng như gửi tiền, vay tiền… của ngân hàng.
BRANCH (Phòng giao dịch): là nơi khách hàng thực hiện dịch vụ như mở tài khoản tích kết, nộp tiền…
MAIN_BRANCH (Chi nhánh): thông tin để xác định phòng giao dịch thuộc chi nhánh nào.
BRN_DISTRICT, BRN_CITY, BRN_TERRITORY, BRN_REGION: để xác định phòng giao dịch về mặt đía lý thuộc vùng miên nào.
CIF_CLASS (Phân loại khách hàng): thông tin về phân loại khách hàng theo hệ thống như: khách hàng cá nhân, khách doanh nghiệp…
ACC_CLASS (Phân loại tài khoản tiền gửi) là các gói sản phầm như cho huy động với đặc thù riêng biệt như kỳ hạn, lãi suât…
TD_ACCOUNT: thông tin về các tài khoản tiền gửi (tiết kiệm, thanh toán) như số dư, mã tài khoản, chủ tài khoản, lãi suất, kỳ hạn…
RATE: là lãi suất ngân hàng trả cho chủ tài khoản tiền gửi.
LSNB: là lãi suất mua bán vốn giử phòng giao dịch và hội sở. Lợi nhuận tiền gửi, cho vay của phòng giao dịch chính là chênh lệch giữa lsnb và rate.
PRODUCT: quy định loại sản phẩm với các đặc thù riêng về lãi suất, kỳ hạn, loại ưu đãi..
ACC_LOAN: thông tin về tài khoản vay của khách hàng như số tài khoản, người vay, số tiền vay, định kỳ giải ngân…
CONTRACT: là các thông tin về hợp đồng tiền gửi
37
Hình 2. 6: Mô hình thực thể của nghiệp vụ huy động & cho vay trên core.
Nghiệp vụ huy động và cho vay tại ngân hàng ocean bank thiết lập trên core tại 2 phân hệ: TDCASA từ thị trường 1 (thị trường giữa ngân hàng với người dân), MM từ thị trường 2 ( thị trường liên ngân hàng giữa ngân hàng và tổ chức tín dụng khác).
Danh sách các bảng dữ liệu:
CUST_ACCOUNTS: Danh sách các tài khoản tiết kiệm, thanh toán và các thuộc tính như số tài khoản, ngày mở tài khoản, loại sản phẩm, bộ cung cụ tính lãi, chi nhánh mở tài khoản, tài khoản hạch toán vào GL nào…
ACCOUNT_CLASS: Định nghĩa một sản phẩm tiền gửi như tiền gửi linh hoạt (có thể rút trong kỳ), tiền gửi tích lũy (định kỳ hàng tháng gửi 1 số tiền vào)… mỗi loại sản phẩm có lãi suất, kỳ hạn… khác nhau.
PR_INT_ACLASS: Bộ tính lãi áp dụng cho một sản phẩm căn cứ theo ngày ban hành.
CCY: Danh sách mã tiền tệ trong hệ thống (hệ thống luôn có bảng tham chiếu tỉ giá phục vụ việc tính toán quy đổi theo đơn vị tiền tệ yêu cầu)
ICTM_ACC_UDEVALS: Bảng lưu thông tin cụ thể một tài khoản trong 1 kỳ hạn sẽ ăn theo biểu lãi suất nào.
ICTM_ACC: Lưu thông tin về các kỳ hạn của tài khoản.
BRANCH: Danh sách phòng giao dịch.
TDCASA_BALANCE: Thông tin lịch sử về tài khoản được lưu định kỳ vào cuối ngày như số dư, lãi suất…
CUSTOMER: Danh sách khách hàng với định danh là CIF (mỗi khách hàng chỉ có duy nhất 1 CIF)
CONTRACT_MASTER: Danh sách các hợp đồng tiền gửi của tổ chức tín dụng, tổ chức kinh tế cùng các thông tin về số hợp đồng, ngày gửi, ngày đáo hạn…
38
PRODUCT_ACCROLE: Bộ lãi suất áp dụng cho với hợp đồng tiền gửi bên MM.
GLTM_GLMASTER: Danh sách các tài khoản GL.
ACCOUNT_APPS_MASTER: Danh sách các tài khoản vay cùng với các thông tin như CIF, loại sản phẩm, bộ tính lãi, ngày vay, ngày đáo hạn…
TCKT_BALANCE: Lưu thông tin lịch sửa về tài khoản vay hàng ngày như số dư, lãi suất, hạch toán vào GL…
CUST_ACCOUNTS PK,FK4 BRN PK,FK4 ACC PK,FK3 CUSTOMER_NO PK,FK2 ACCOUNT_CLASS BRANCH_CODE CUST_AC_NO CUST_NO CCY AC_OPEN_DATE DR_GL CR_GL PRODUCT_CODE CCY PK,FK1 BRN PK,FK1 ACC PK,FK1 CUSTOMER_NO PK,FK1 ACCOUNT_CLASS CCY_CODE CCY_NAME COUNTRY ACCOUNT_CLASS PK ACCOUNT_CLASS DESCRIPTION DEFAULT_TENOR_DAYS DEFAULT_TENOR_MONTHS DEFAULT_TENOR_YEARS CLOSE_ON_MATURITY PR_INT_ACLASS PK,FK2 BRN PK,FK2 ACC PK,FK2 CUSTOMER_NO PK,FK1,FK2 ACCOUNT_CLASS PRODUCT_CODE ACLASS CCY UDE_EFF_DT UDE_ID UDE_VALUE RATE_CODE ICTM_ACC_UDEVALS PK,FK1 CUSTOMER_NO PK,FK1 ACCOUNT_CLASS PK,FK1 BRN PK,FK1 ACC PROD UDE_EFF_DT UDE_ID UDE_VALUE RATE_CODE TDCASA_BALANCE PK,FK3 BRN PK,FK3 ACC PK,FK2,FK3 CUSTOMER_NO PK,FK3 ACCOUNT_CLASS DAY_TO_RUN ACCTNO CURRENCY AC_BRANCH RATE LSNB CUR_BALANCE CUSTOMER PK CUSTOMER_NO CUSTOMER_TYPE CUSTOMER_NAME1 ADDRESS NATIONALITY LOCAL_BRANCH UNIQUE_ID_VALUE BRANCH PK,FK1,FK2 BRN PK,FK1,FK2 ACC PK,FK1,FK2 CUSTOMER_NO PK,FK1,FK2 ACCOUNT_CLASS BRN_CODE BRN_NAME BRN_ADDR PARENT_BRANCH BRN_STRESS BRN_CITY BRN_CONTRY CONTRACT_MASTER PK,FK2 PRODUCT_CODE PK,FK1 BRN PK,FK1 ACC PK,FK1 CUSTOMER_NO PK,FK1 ACCOUNT_CLASS BRANCH CONTRACT_REF_NO PRODUCT COUNTERPARTY CURRENCY BOOKING_DATE VALUE_DATE MATURITY_DATE VERSION_NO ICTM_ACC PK BRN PK ACC INT_START_DATE MATURITY_DATE NEXT_MATURITY_DATE GLTM_GLMASTER PK,FK2 PRODUCT_CODE PK,FK1 BRN PK,FK1 ACC PK,FK1 CUSTOMER_NO PK,FK1 ACCOUNT_CLASS GL_CODE GL_DESC PARENT_GL PRODUCT_ACCROLE PK PRODUCT_CODE ACCOUNTING_ROLE ROLE_TYPE STATUS ACCOUNT_HEAD ACTB_HISTORY1 PK ACR_SEQUEST BRANCH TRN_REF_NO DR_CR_IND ACC_NO CCY LCY_AMOUNT FCY_AMOUNT TRN_DT VALUE_DT FK1 PRODUCT_CODE FK1,FK2 BRN FK1,FK2 ACC FK1,FK2 CUSTOMER_NO FK1,FK2 ACCOUNT_CLASS
39
Hình 2.6 là mô hình dữ liệu nghiệp vụ được mô tả các thực thể được lựa chọn để đẩy dữ liệu vào kho dữ liệu. Để dễ quan sát mối quan hệ các thực thể, NLLV đã chủ động không vẽ các quan hệ không cần thiết.
2.2.3. Xây dựng kho dữ liệu trung tâm. 2.2.3.1. Phương pháp thiết kế. 2.2.3.1. Phương pháp thiết kế.
Với kiến trúc kho dữ liệu đề xuất và căn cứ khối lượng dữ liệu, kho dữ liệu sẽ được xây dựng theo phương pháp tổng hợp của 2 cách tiếp cận và được phát triển theo nhu cầu cụ thể của từng giao đoạn. Cụ thể như sau:
Xây dựng kho dữ liệu quan hệ ban đầu gồm các dữ liệu cần thiết cho kho dữ liệu cục bộ đầu tiên.
Xây dựng kho dữ liệu cục bộ đầu tiên.
Khi nhu cầu kinh doanh phát sinh. Tiến hành bổ sung dữ liệu cần thiết cho kho dữ liệu cục bộ mới vào kho dữ liệu.
Xây dựng kho dữ liệu cục bộ tiếp theo.
Quá trình trên thực hiện lặp để đảm bảo kho dữ liệu phát triển và đáp ứng nhu cầu kinh doanh ở từng giai đoạn. Ngoài ra, theo tài liệu “Mastering Data Warehouse Design” Wiley Publishing phát hành thì để đảm tính hiệu quả kho dữ liệu nên được thiết lập qua 08 bước sau:
Lựa chọn dữ liệu phù hợp : yêu cầu, phạm vi, nguồn dữ liệu…
Thêm thông tin thời gian vào dữ liệu: do OTLP là hệ thống phản ánh dữ liệu hiện trạng còn kho dữ liệu là dữ liệu phản ánh quá trình thời gian.
Thêm thông tin tính toán dữ liệu: các thông tin hỗ trợ việc xử lý thông tin như ngày làm việc hoặc ngày nghỉ, ngày thuộc tuần nào? Tháng nào.. mục đích phục vụ việc cải thiện hiệu suất.
Quyết định mục độ chi tiết của dữ liệu sẽ đẩy vào kho dữ liệu.
Thực hiện việc tính toán các dữ liệu tổng hợp và lưu trữ sẵn sàng để phục vụ truy vấn dữ liệu.
Gộp các thực thể có chung mục đích để tối ưu hệ thống.
Tạo mảng dữ liệu theo nhu cầu kinh doanh về phân tích dữ liệu.
Phân chia dữ liệu. 2.2.3.2. Kiến trúc kho dữ liệu.
Để đáp ứng các yêu cầu đặt ra về việc sử dụng và vận hành kho dữ liệu. NLV đề xuất sử dụng kiến trúc kho dữ liệu với vùng đệm làm sạch dữ liệu và kho dữ liệu cục bộ.
40
Hình 2. 8: Kiến trúc kho dữ liệu Ocean Bank.
Kiến trúc kho dữ liệu sẽ gồm:
Nguồn dữ liệu: chiết suất lấy từ hệ thống giao dịch core banking và file dữ liệu (do Ban kế toán xây dựng).
Vùng đệm: là vùng hệ thống bảng tạm để thực hiện việc làm sạch, tích hợp và thêm giá trị thời gian vào dữ liệu. Và thực hiện việc sao lưu dữ liệu.
Kho dữ liệu: Sau khi dữ liệu đã được làm sạch sẽ được nạp vào kho dữ liệu. Sau đó thêm các dữ liệu phục vụ cho tính toán và dữ liệu tổng hợp theo yêu cầu phân tích. Sử dụng cơ sở dữ liệu quan hệ.
Kho dữ liệu cục bộ: Là cơ sở dữ liệu tổ chức theo mô hình chiều với dữ liệu được nạp từ kho dữ liệu trung tâm.
Người dùng: là người sử dụng đầu cuối sử dụng dữ liệu. Lí do chọn kiến trúc trên cho kho dữ liệu:
Vùng đệm: Giúp đơn giả hóa và lưu nhất ký xử lý của quá trình ETL dữ liệu vào kho. Do vùng đệm đã thực hiện các công việc phức tạp trong việc tính toán và đảm bảo tính nhất quán của dữ liệu.
Kho dữ liệu cục bộ: được tổ chức theo mô hình chiều giúp đơn giản và dễ dàng cho người dùng sử dụng. Ẩn đi sự phức tạp và giảm sự ảnh hưởng đến việc sử dụng của người dùng khi kho dữ liệu thay đổi.
Để đảm bảo tính chính xác và hiệu năng hệ thống. Kho dữ liệu sẽ định kỳ làm mới 01 lần/ ngày. Hệ thống sẽ tiến hành lấy dữ liệu từ nguồn core đẩy vào kho dữ liệu sau quá trình đóng ngày cũ và mở ngày mới. Mô hình chiết xuất dữ liệu như hình dưới đây.
41
Hình 2. 9: Mô hình giải pháp luồng dữ liệu.
2.2.3.3. Nguồn dữ liệu cho kho dữ liệu cho việc chiết xuất.
Thông qua việc làm rõ yêu cầu của kho dữ liệu ở mục 2.2.1 và mục 2.2.3 ta đã xác định được các thực thể dữ liệu cần được đẩy vào kho dữ liệu từ dữ liệu nguồn và chi tiết nguồn dữ liệu như bảng dưới.
Thực thể Nguồn Bảng dữ liệu chiết xuất Khóa
CIF Core Banking sttm_customer Customer_no
BRANCH Core Banking Ot_branch Branch_code
MAIN_BRANCH Core Banking it_main_sub Sub_branch BRN_DISTRICT,
BRN_CITY,
BRN_TERRITORY, BRN_REGION
Core Banking Ot_branch Branch_code
CIF_CLASS Core Banking OJB_Customer_Class Customer_no ACC_CLASS Core Banking Sttm_account_class Account_class TD_ACCOUNT Core Banking Sttm_customer_account Account_no RATE Core Banking ICTMS_PR_INT_UDEVALS Product_code,
aclass, ccy, eff_dt, rate_code, branch.
LSNB Core Banking ICTMS_LSNB Product_code,
aclass, ccy_code, eff_dt, rate_code, branch.
PRODUCT Core Banking Sttm_product_code Product_code ACC_LOAN Core Banking cltb_account_apps_master Account_number CONTRACT Core Banking Sttm_contract_master Contract_ref_no GL_CODE Core Banking GLTM_GLMASTER gl_code
42
Dữ liệu tham khảo cần bổ sung vào kho dữ liệu để nhằm mục đích tra cứu và xác thực tính đứng đắn của dữ liệu như bộ tính lãi product code và danh sách phân loại tài khoản. Vì việc xác định lãi suất của một tài khoản khi mở sẽ phụ