Chương 1: KHO DỮ LIỆU VÀ PHÂN TÍCH DỮ LIỆU TRỰC TUYẾN 1. Hệ thống xử lý giao dịch trực tuyến (OLTP) Hầu hết các doanh nghiệp trên thế giới đã và đang áp dụng công nghệ thông tin trong việc lưu trữ và quản lý dữ liệu. Hệ thống OLTP (On-Line Transaction Processing: Hệ thống xử lý giao dịch trực tuyến) ra đời với khả năng lưu trữ dữ liệu lâu dài, hướng giao dịch (Transaction-oriented) nên được áp dụng rất phổ biến vì dữ liệu mà các doanh nghiệp thực hiện tác nghiệp chủ yếu đều dưới dạng các giao dịch. Cũng vì vậy mà hầu hết các hệ quản trị CSDL phổ biến hiện nay như: Oracle, SQL Server, DB2, MySQL,.
đều hỗ trợ OLTP. CSDL trong các hệ OLTP thường được thiết kế thoả mãn 3NF hoặc cao hơn. Đặc điểm của hệ thống OLTP là lưu toàn bộ các dữ liệu giao dịch chi tiết hàng ngày, điều đó cũng có nghĩa là mức độ tổng quát, trừu tượng của dữ liệu này rất thấp. Với công cụ SQL, OLTP có thể nhanh chóng trả lời được những câu hỏi dạng: Tổng doanh thu từ mặt hàng A trong 6 tháng đầu năm là bao nhiêu, hay Mặt hàng nào bán chạy nhất trong 6 tháng đầu năm,.
Tuy nhiên đứng trên góc độ của nhà quản lý họ cần hệ thống trả lời những câu hỏi dạng: Đưa ra danh sách 10 mặt hàng có doanh thu tốt nhất của từng quý từ trước cho tới nay, với mỗi mặt hàng, chỉ ra tháng nào trong quý mặt hàng đó có doanh thu lớn nhất (1). Hay nếu doanh thu của mặt hàng A tăng thì có thể dự đoán doanh thu của mặt hàng B tăng hay giảm với xác suất là bao nhiêu (2). Với câu hỏi dạng (1) hệ thống OLTP gặp rất nhiều khó khăn khi trả lời, để trả lời chúng một cách nhanh chóng chúng ta cần phải sử dụng những công cụ chuyên dụng và cao cấp hơn như OLAP (xem 1. Còn với những câu hỏi dạng (2) thì việc hệ thống OLTP trả lời là một điều viễn tưởng, muốn trả lời câu hỏi dạng này chúng ta cần phải sử dụng công cụ đặc biệt là Data mining (xem Chương 2).
Kho dữ liệu (Data warehouse) Data warehouse (Kho dữ liệu) được đề xuất bởi W.Inmon vào đầu những năm 1990, là nơi lưu trữ thông tin tích hợp từ nhiều nguồn (Multi-sources), hướng chủ đề (Subject- oriented), mang tính lịch sử (Time-variant), ổn định (Nonvolatile), hỗ trợ truy vấn (Query), phân tích (Analyse) thông tin và trợ giúp ra quyết định (Decision-making support) [105]. Qua khái niệm trên ta thấy dữ liệu và thông tin sẽ được trích rút từ nhiều nguồn khác nhau với các định dạng khác nhau. Nếu người sử dụng muốn thực hiện các truy vấn, hệ thống sẽ chỉ thực hiện tìm kiếm dữ liệu tại Data warehouse một cách thống nhất thay vì Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng TIEU LUAN MOI download : skknchat@gmail.com 9 tìm kiếm trên các CSDL (Cơ sở dữ liệu) nguồn bằng các công cụ chuyên biệt tương ứng, từ đó tiết kiệm nhiều thời gian xử lý của người sử dụng.1: Kiến trúc tiêu biểu của Data warehouse. Hệ thống Data warehouse gồm có 3 thành phần chính sau: 1.
Các CSDL nguồn: Dữ liệu thô sẽ được tập hợp từ nhiều nơi: bên trong, bên ngoài, tự có, đi mua, dữ liệu di sản lịch sử hay dữ liệu hoạt động hiện tại (Operational database), các dữ liệu này và mọi sự thay đổi của chúng sẽ được quản lý bởi một phân hệ giám sát đặc biệt (Monitor / Wrapper modules). Ở đây, dữ liệu được tập hợp từ rất nhiều nguồn: bản thân doanh nghiệp, bên ngoài doanh nghiệp, thậm chí là đi mua,. được lưu trữ trên rất nhiều loại khuôn dạng: Oracle, DB2, SQL Server, Microsoft Access, ., thậm chí là Microsoft Excel file hay Text file. Tất cả dữ liệu này và mọi sự thay đổi của chúng sẽ được quản lý bởi phân hệ Monitor / Wrapper.
Lõi của Data warehouse: Tại đây, dữ liệu sẽ được tổng hợp từ các nguồn dữ liệu trên, thông thường từ các khuôn dạng khác nhau thành một dạng thống nhất và trở thành trung tâm lưu trữ của toàn bộ hệ thống. Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng TIEU LUAN MOI download : skknchat@gmail.com 10 Ở đây, dữ liệu thô được Trích chọn (Extract), Làm sạch (Clean), Chuyển đổi (Transform) trước khi được Tải (Load) vào Data warehouse. Phân hệ Monitor / Wrapper sẽ thực hiện định kỳ cập nhật những thay đổi (Refresh) sao cho đảm bảo sự nhất quán dữ liệu. Các Data mart (CSDL chuyên đề) cũng được hình thành tại đây, xuất phát từ nhu cầu cụ thể tập trung phân tích một lĩnh vực chuyên biệt mà người sử dụng quan tâm.
Dữ liệu sẽ được trích rút từ Data warehouse hình thành nên các Data mart giúp việc truy vấn và phân tích được nhanh chóng, tập trung và tối ưu hơn. Các công cụ phân tích: Các công cụ này hỗ trợ các truy vấn, tạo báo cáo, OLAP, thậm chí là hỗ trợ khai phá dữ liệu (phân tích xu hướng, dự đoán, đưa ra các luật. - Các công cụ này cho phép người sử dụng dễ dàng, chủ động khai thác và tạo các câu truy vấn (query), tạo lập báo cáo, tạo lập các bản phân tích một cách nhanh chóng với độ chính xác cao mà không cần yêu cầu kiến thức về CSDL. - Cho phép xoay chiều và tạo các báo cáo theo nhiều dạng khác nhau như dạng bảng ngang (Horizontal), bảng dọc (Vertical), bảng chéo (Cross), cũng như các dạng đồ thị khác nhau.
- Cung cấp các công cụ thao tác với dữ liệu như Drill (phân tích dữ liệu theo chiều sâu), Roll up (tổng hợp), Slice (cắt lát dữ liệu), Dice (cắt khối dữ liệu) hay Pivot (xoay dữ liệu). - Các công cụ đặc biệt giúp phân tích xu hướng, dự đoán, đưa ra các luật, tri thức. Hệ thống phân tích dữ liệu trực tuyến (OLAP) 1. Giới thiệu Mặc dù dữ liệu được lưu trữ trong Data warehouse đã được trích chọn, làm sạch và chuyển đổi về khuôn dạng chuẩn, xong việc truy vấn và đặc biệt là việc phân tích thông tin trên một khối lượng dữ liệu khổng lồ đòi hỏi phải có những công cụ đặc biệt.
Kỹ thuật OLAP (OnLine Analytical Processing: Xử lý phân tích dữ liệu trực tuyến) được hiểu là một tập hợp những những kỹ thuật được phát triển để phân tích dữ liệu trong Data warehouse [102] đáp ứng được các tiêu chí: Trực tuyến (Online), nhanh chóng, trực quan và hiệu quả đối với phân tích dữ liệu đa chiều. OLAP thực hiện một quá trình tạo ra và quản lý dữ liệu đa chiều phục vụ cho phân tích một cách trực quan, nó cho phép truy vấn trên một CSDL khổng lồ một cách nhanh chóng và hiệu quả đáng kể so với kỹ thuật truy vấn kinh điển bằng SQL trên CSDL quan hệ. Để thực hiện được điều đó, OLAP- engine (cơ chế OLAP) phải thực hiện tính toán trước các toán tử nhóm (Aggregation operator) đồng thời tổ chức lại dữ liệu và kết quả tính toán dưới dạng các Khối dữ liệu đa chiều (Data-cube). Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng TIEU LUAN MOI download : skknchat@gmail.com 11 Việc thực hiện OLAP bao gồm 3 giai đoạn: - Truy vấn dữ liệu từ Data warehouse.
- Xây dựng Data-cube. - Phân tích trực tuyến dựa trên Data-cube. Khái niệm Data-cube (Khối dữ liệu đa chiều) lần đầu tiên được đề xuất bởi J. Gray và các cộng sự [101], nó bao gồm các chiều dữ liệu và các thước đo, cho phép người sử dụng nhìn vào dữ liệu được lưu trữ trong Data warehouse qua nhiều góc độ và nhiều chiều dữ liệu.
Ví dụ, chúng ta cùng xem xét một Data-cube có 3 chiều dữ liệu Product, Supplier, Customer và 1 thước đo là SalesTotal qua hình sau: Hình 1.2: Minh hoạ Data-cube. Data-cube ở trên có thể được thể hiện qua biểu thức SQL sau: select Product, Supplier, Customer, Sum(SalesNumber) as SaleTotal from Sales group by Product, Supplier, Customer with cube ; OLAP-engine sẽ thực hiện tính toán trước các toán tử nhóm và lưu trữ dữ liệu tính toán này vào các trường bổ sung, ký hiệu là “Any” hoặc “*” như minh hoạ sau: Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng TIEU LUAN MOI download : skknchat@gmail.com 12 * c1 c2 c3 * p1 56 4 50 110 p2 11 8 1 20 c1 c2* c367 *12 51 130 Sales(*,*,*) s2 p1 44 4 48 p2 1 1 Sales(p1,*,s2) c1 c2 * c3 44 *4 1 49 p1 12 50 62 s1 p2 11 8 19 * 23 8 50 81 Hình 1.3: Minh hoạ dữ liệu được tính toán và lưu trữ bởi OLAP-engine. Sau khi xây dựng xong Data-cube, OLAP cung cấp một số thao tác giúp người sử dụng phân tích dữ liệu gồm: - Roll-up (Cuộn) thực hiện tính toán gộp theo một hoặc nhiều chiều dữ liệu. - Drill-down (Đào sâu) thao tác này ngược lại với Roll-up, nó cung cấp các dữ liệu ở mức chi tiết theo các chiều dữ liệu.
- Slice (Cắt lát) thực hiện “cắt” lấy một “lát” dữ liệu theo 1 chiều nào đó của Data- cube. - Dice (Cắt khối) thực hiện “cắt” lấy một “khối con” dữ liệu của Data-cube. - Pivot (Xoay) cho phép xoay Data-cube theo các chiều dữ liệu, từ đó cung cấp cho người sử dụng nhiều góc nhìn vào dữ liệu. Các thao tác trên Data-cube được minh hoạ qua hình sau: Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng TIEU LUAN MOI download : skknchat@gmail.4: Các thao tác cơ bản trong OLAP.
Mô hình tổ chức dữ liệu (Data model) Hầu hết các hệ quản trị CSDL hiện nay là CSDL quan hệ và ở các dạng chuẩn hoá nhất định (3NF hoặc cao hơn), tuy nhiên nếu sử dụng trực tiếp CSDL quan hệ để phân tích trực tuyến sẽ gặp rất nhiều khó khăn, đặc biệt là về tốc độ. Để có thể phân tích trực tuyến, dữ liệu cần thiết phải được tính toán trước (chấp nhận dư thừa) và tổ chức lại dưới dạng đặc biệt. Hầu hết Data warehouse hiện nay đều lưu trữ dữ liệu theo mô hình dữ liệu đa chiều (Multidimensional data model) dạng lược đồ hình sao (Star schema) hoặc dạng lược đồ bông tuyết (Snowflake schema). Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng TIEU LUAN MOI download : skknchat@gmail.
Lược đồ hình sao (Star schema) Mô hình Star schema (Lược đồ hình sao) được đề xuất bởi R. Kimball [108], là mô hình phổ biến nhất hiện nay. Mỗi Star schema chứa 1 bảng dữ liệu chi tiết (Fact table) và một vài bảng chiều dữ liệu (Dimension table).