Kho dữ liệu là một cơ sở dữ liệu được tập hợp từ nhiều nguồn của một tổ chức và chủ yếu được dùng cho việc báo cáo reporting và phân tích analysis hay Kho dữ liệu là tuyển tập các cơ sở
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÀI THU HOẠCH
HỖ TRỢ RA QUYẾT ĐỊNH
Trang 2TP HCM, tháng 06 năm 2014 NHẬN XÉT CỦA GVHD
Trang 3
BẢNG PHÂN CÔNG
Tổng hợp cơ sở lý thuyết về Hệ hỗ trợ ra quyết định Nguyễn Hữu Lộc
Tìm hiểu SQL Server Business Intelligence 2008 Đoàn Văn Huyên
Phân tích, xây dựng Data Warehouse Đoàn Văn Huyên, Nguyễn Hữu LộcXây dựng OLAP trên SQL Server Business
Intelligence 2008 và xuất các báo cáo, biểu đồ
Đoàn Văn HuyênPhân tích và ra quyết định Đoàn Văn Huyên, Nguyễn Hữu Lộc
Trang 4MỤC LỤC
LỜI MỞ ĐẦU
Trong suốt quá trình hoạt động của một tổ chức, doanh nghiệp có rất nhiều quyết định đòi hỏi các nhà quản trị phải đưa ra chính xác, kịp thời để thúc đẩy sự phát triển của tổ chức, doanh nghiệp đó Có những quyết định rất quan trọng nguy hiểm đến sự tồn vong của tổ chức, doanh nghiệp Vấn đề quyết định càng đặt nặng lên vai của những nhà quản trị Các yếu tố khách quan và chủ quan cũng ảnh hưởng ít nhiều đến những quyết định khó khăn
Từ những vấn đề trên những nhà quản trị đòi hỏi một hệ thống có thể hỗ trợ họ ra quyết định Hệ thống đó phải thật chính xác và khách quan và hỗ trợ nhà quản trị ra quyết định thật chính xác và nhanh chóng Từ đó nhiều hệ hỗ trợ ra quyết định ra đời Đó cũng
là một thành phần quan trọng trong hệ thống quản trị doanh nghiệp thông minh – Business Intelligence (BI)
Trong số những hệ hỗ trợ ra quyết định, có thể nói OLAP là công cụ đơn giản và nhanh chóng nhất Tuy là nó cần các nhà quản trị phải bỏ thêm ít thời gian và trí óc để phân tích các báo cáo thu được, nhưng nó làm việc rất nhanh và chi phí bỏ ra cũng rất thấp Nó thích hợp cho các quyết định kinh doanh dựa trên số liệu thu thập được trong quá trình hoạt động của tổ chức, doanh nghiệp Dữ liệu được cập nhật liên tục và những nhà quản trị có thể phân tích và ra quyết định tức thời Để hoạt động tốt OLAP cần kết hợp với một Data Warehouse (kho dữ liệu) – nơi chứ tất cả dữ liệu cần thiết cho quá trình tạo lập báo cáo, xây dựng bảng biểu OLAP và Data Warehouse có mối quan hệ mật thiết tạo nên một
hệ hỗ trợ ra quyết định mạnh mẽ và đơn giản
Trang 5I HỆ HỖ TRỢ RA QUYẾT ĐỊNH
1 Khái niệm
Hệ hỗ trợ ra quyết định là phương pháp lấy tri thức đúng để cho ra quyết định hợp
lý vào đúng lúc và có mức phí hợp lý Đó là sự kết hợp giữa tri thức và việc tạo lập quyết định (Knowledge – Decision making)
Khái niệm hệ hỗ trợ ra quyết định được đề xuất bởi Michael S.Scott Morton vào những năm 1970 Hệ hỗ trợ ra quyết định bao gồm:
- Phần mềm máy tính
- Chức năng hỗ trợ ra quyết định
- Làm việc với bài toán có cấu trúc yếu
- Hoạt động theo cách tương tác với người dùng
- Được trang bị nhiều mô hình phân tích và mô hình dữ liệu
Trang 6Hình I.1.1: Định nghĩa hệ hỗ trợ ra quyết định
2 Năng lực của hệ hỗ trợ ra quyết định
Hình I.2.1: Năng lực hệ hỗ trợ quyết định
Hệ hỗ trợ quyết định cơ bản hỗ trợ các nhà ra quyết định trong các tình huống nửa cấu trúc và phi cấu trúc bằng cách kết hợp phán xử của con người và xử lý thông tin bằng máy tính Các bài toán như vậy không thể/không thuận tiện giải quyết được chỉ bằng các công cụ máy tính hóa hay các phương pháp định lượng
Phù hợp cho các cấp quản lý khác nhau từ cao đến thấp
Phù hợp cho cá nhân lẫn nhóm Các bài toán ít có tính cấu trúc thường liên đới đến nhiều cá nhân ở các đơn vị chức năng hay mức tổ chức khác nhau cũng như ở các tổ chức khác
Hỗ trợ cho các quyết định tuần tự, liên thuộc, được đưa ra một lần, vài lần hay lặp lại
Hỗ trợ cho các giai đoạn của quá trình ra quyết định: tìm hiểu, thiết kế, lựa chọn và hiện thực
Trang 7Phù hợp cho một số các phong cách và quá trình ra quyết định.
3 Hệ hỗ trợ ra quyết định và hệ thống thông tin
Các hệ thống thông tin quản lý tập trung vào các hoạt động của hệ thống thông tin.Hệ thống thông tin quản lý có các tính chất:
- Tập trung vào thông tin, hướng đến các nhà quản lý cấp điều hành
- Làm việc với dòng thông tin có cấu trúc
Các hệ hỗ trợ quyết định có các tính chất:
- Hướng đến các quyết định, các nhà lãnh đạo
- Tính uyển chuyển, thích ứng với hoàn cảnh và phản ứng nhanh
- Do người dùng khởi động và kiểm soát
- Hỗ trợ các quyết định cá nhân của nhà lãnh đạo
Bảng I.3.1: Các hệ hỗ trợ ra quyết định.
GADS: Geodata Analysis Display System Phân tích và cung cấp tài nguyên địa lý
PMS: Portfolio Management System Tư vấn và quản trị đầu tư
IRIS:Industrial Relations Information Phân tích chất lượng và bố trí nhân lực
trong sản xuất
IFPS:Interactive Financial Planning System Phân tích tài chính, giá thành, sản phẩm
BRANDAID Phân tích thị trường, ngân sách, quảng
cáo
4 Các thành phần của một hệ hỗ trợ ra quyết định
Một cách hình dung về các thành phần của một hệ hỗ trợ ra quyết định (DDS – decision support system) và quan hệ giữa chúng là sử dụng các khái niệm đối thoại
Trang 8DDS cũng như những người sử dụng hệ thống, điều quan trọng là hiểu được các thành phần này được thiết kế như thế nào Người sử dụng cần phải biết có thể yêu cầu cái gì ở DDS Người thiết kế phải biết được DDS có thể cung cấp cái gì.
Hình I.4.1: Mô hình hệ hỗ trợ ra quyết định
Các kỹ thuật mới có nhiều ảnh hưởng đến các thành phần đối thoại, dữ liệu, và mô hình; ví dụ như giao diện đồ họa hay cơ sở dữ liệu quan hệ Ngoài ra trí tuệ nhân tạo cũng cung cấp các khả năng biểu diễn và sử dụng mô hình trong những hình thức mới
Từ cách nhìn của người sử dụng, thành phần đối thoại là toàn bộ hệ thống Cách dùng hệ thống, hướng dẫn cách vận hành của hệ thống và thể hiện các trả lời của hệ thống đều thông qua thành phần đối thoại Bennett gọi các yếu tố này bằng các khái niệm: cơ sở tri thức (knowledge base), ngôn ngữ hành động (action language), và ngôn ngữ trình bày (representation language) Các yếu tố khác
Trang 9nhưn phần cứng và phần mềm, cách thức lưu trữ dữ liệu, các thuật toán được dùng thường không được nhận thức bởi người dùng.
DDS không dùng các dạng dữ liệu thô thu được trong các quá trình giao dịch của các tổ chức Dữ liệu thường phải được tóm tắt, cô đọng trước khi được sử dụng bởi DDS Lý tưởng nhất là công việc này cũng được tự động bằng máy tính Nhưng đôi lúc cũng được thực hiện bằng tay khi không tốn quá nhiều công sức hay công việc đòi hỏi việc xử lý tinh tế của con người Thông thường cần phải dùng một hệ quản trị cơ sở dữ liệu (DBMS)
Các dữ liệu nội (internal data) cũng được cần đến Ví dụ như loại dữ liệu liên quan đến các lĩnh vực của kỹ sư hay của nhà quản lý Các dữ liệu này thường không thể có được qua các quá trình xử lý dữ liệu thông thường được Chúng phải được thu thập, nhập liệu, lưu trữ và cập nhật thông qua các phương pháp và tiến trình đặc biệt Loại dữ liệu này cũng cần dùng đến hệ quản trị cơ sở dữ liệu (DBMS)
Các dữ liệu ngoại (external data): như thông tin thương mại, tài chính của một nền kinh tế, các số liệu công nghiệp cũng đòi hỏi nhiều nỗ lực đặc biệt để có được Nhưng khác với dữ liệu nội, dữ liệu ngoại có thể mua được từ các công ty, tổ chức Loại dữ liệu này được rút trích từ các cơ sở dữ liệu thương mại…
Có nhiều loại mô hình khác nhau được phân chia dựa trên mục đích sử dụng, cách xử lý với tính tình cờ (randomness), tính tổng quát của ứng dụng…
Mục đích của mô hình là tối ưu hóa hay để mô tả Một mô hình dùng để tối ưu hóa là một mô hình trong đó một đại lượng nào đó cần phải được cực tiểu hóa hay cực đại hóa Ví dụ như cực đại hóa lợi nhuận hay cực tiểu hóa chi phí Nói chung loại mô hình dùng để mô tả cho người dùng một hình dung đúng về thực
Trang 10tế, còn theo nghĩa hẹp nó mô tả về cách vận hành của hệ thống và không thực hiện một phép tối ưu nào.
Nói về tính tình cờ, hầu hết các hệ thống đều mang tính xác suất, nghĩa là hành
vi của hệ thống không thể được đoán trước một cách chính xác, các dữ liệu nhập vào đều mang tính xác suất thống kê và các dữ liệu xuất ra cũng vậy Tuy vậy, đa số các mô hình toán học đều là mô hình tất định (determintistic) Các mô hình tiền định thường dễ xây dựng hơn, ít tốn kém về thời gian và tiền bạc hơn
Về tính tổng quát, có mô hình có thể chỉ được dùng với một hệ thống build model), nhưng cũng có những mô hình được xây dựng chung cho nhiều hệ thống khác nhau (ready-build model) Nói chung, custom-build model cung cấp một cái nhìn kỹ hơn về một hệ thống cụ thể, tuy nhiên thường tốn kém hơn để xây dựng vì phải làm từ những việc nhỏ nhất
Trang 11(custom-II DATA WAREHOUSE – KHO DỮ LIỆU
1 Data Warehouse là gì?
Kho dữ liệu là một cơ sở dữ liệu được tập hợp từ nhiều nguồn của một tổ chức và chủ yếu được dùng cho việc báo cáo (reporting) và phân tích (analysis)
hay
Kho dữ liệu là tuyển tập các cơ sở dữ liệu tích hợp, hướng chủ đề, được thiết kế để
hỗ trợ cho chức năng trợ giúp quyết định
2 Các mục tiêu của Data Warehouse
2.1 Truy cập dễ dàng
Thông tin lưu trữ trong data warrehouse phải trực quan và dễ hiểu đối với người dùng Nói cách khác, dữ liệu nên được trình bày thông qua các tên gọi quen thuộc và gần gũi với nghiệp vụ của người dùng
Có thể phân chia businiess user ra 2 loại Người dùng cấp thấp chủ yếu thao tác trên các thông tin chi tiết Chẳng hạn như nhập số liệu về một khách hàng, theo dõi các giao dịch của khách hàng cụ thể đó… Report cho dạng công việc kiểu này thường là thông tin chi tiết về một khách hàng, hoặc một danh sách các khách hàng Những report kiểu này có thể lấy ra trực tiếp từ operational database
Người dùng cấp cao lại chủ yếu xử lý dữ liệu ở mức độ tổng hợp, để từ đó phân tích rồi đưa ra các quyết định mang tính định hướng cho nghiệp vụ Họ không quan tâm đến một khách hàng cụ thể nào cũng như không cần phải để ý
cả một danh sách 1000 khách hàng Thay vào đó, cái làm họ bận tâm là số lượng khách hàng sử dụng dịch tăng/giảm 25% trong quý IV so với quý III cùng năm và tăng/giảm 45% so với cùng quý IV năm ngoái Từ các thông số này, họ mới đưa ra quyết định sẽ làm gì để cải thiện tình hình hoặc đặt ra mục
Trang 12tiêu tăng trưởng 30% cho quý IV năm tới Đây là đối tượng chủ yếu của Data Warehouse.
Do vậy, thông tin cho loại đối tượng này càng dễ hiểu và gần với thực tế càng tốt Một ví dụ dễ thấy là thay vì sử dụng các code, data warehouse nên thể hiện thông tin bằng các description hoặc name
Một điều nữa cần bàn đến là tốc độ truy cập data warehouse phải nhanh Do phải xử lý một số lượng lớn bản ghi cùng một lúc, performance là một trong những yêu cầu phải có của một dw Đây là nơi mà các kỹ thuật tuning database được dịp phát huy hết công suất: query tuning, query hints, indexes, parallel processing, partition, materialized views…
2.2 Thông tin nhất quán
Dữ liệu trong một data warehouse nhìn chung thường đến từ nhiều nguồn khác nhau Do vậy, cùng một thông tin nhưng các nguồn khác nhau có thể trình bày
nó theo các kiểu khác nhau, thậm chí còn sai lệch ít nhiều Một ví dụ đơn giản
là cùng khách hàng tên Huy Nguyen, database A lưu trữ thông tin này trong 2 trường First_Name và Last_Name, trong khi database B có thể chỉ có một trường duy nhất Ho_va_Ten Một cái tên công ty như International Business Trading trong database A được thể hiện đầy đủ như trên, nhưng trong database
B có khi lại được trình bày dưới dạng viết tắt như Intl Biz Trading
Một đặc điểm nữa của dữ liệu database là không có database nào chứa dữ liệu sạch 100% Cho dù có là dữ liệu của một công ty hàng đầu về IT như Google, Amazon, Microsoft… đảm bảo vẫn có lỗi Database càng to càng dễ có dữ liệu không sạch Một ví dụ dễ thấy là một trường Description có thể chứa các ký tự điều khiển CR LF Điều này xảy ra khi người dùng nhấn Enter nhiều lần để tạo
ra các đoạn văn bản trong cùng một ô area box Nhiều lúc dữ liệu sai xuất hiện trong database là do lỗi lập trình Tôi đã gặp một trường hợp như sau Một trường datetime trong Oracle database có giá trị hẳn hoi (not null) nhưng không sao convert được sang kiểu varchar2 Tìm hiểu một hồi mới thấy trong
Trang 13một số bản ghi, giá trị thực của trường đó là… vô định, tức là dữ liệu thì có nhưng nó không mang một giá trị cụ thể nào Lý do có lẽ là một Java developer nào đó khi tạo lập một Date instance … quên mất không assign một giá trị nào cho đối tượng đó Do vậy, đối tượng thì có nhưng giá trị thực trong nó thì vô định Về mặt kỹ thuật mà nói, điều này vẫn hợp lệ nên vẫn được chèn vào database Chỉ khi nào convert dữ liệu thì lỗi này mới xuất hiện, nếu không nó
sẽ “nằm im” trong suốt cả vòng đời của ứng dụng mà không ai biết
Nói vậy để thấy, trước khi được đưa vào data warehouse, dữ liệu cần phải được làm sạch và đảm bảo về chất lượng Có làm sạch rồi thì việc đồng nhất dữ liệu mới trở nên dễ dàng Một nguyên tắc đơn giản được đặt ra cho quá trình này là:
- Nếu dữ liệu có cùng tên, chúng bắt buộc phải cùng chỉ đến một thực thể
- Ngược lại, nếu dữ liệu chỉ đến các thực thể khác nhau, chúng phải được đặt tên khác nhau
Đây chính là những công việc chủ đạo của quá trình ETL (Extract – Transform – Load)
2.3 Thích nghi với thay đổi
Thay đổi là điều không thể tránh khỏi cho bất cứ ứng dụng nào, không riêng gì data warehouse Do vậy, data warehouse cần phải được thiết kế để xử lý những thay đổi có thể xảy ra Nói vậy có nghĩa là khi có thay đổi mới, dữ liệu cũ trong data vẫn phải được bảo tồn tính đúng đắn
Trang 14Công cụ gần nhất và dễ dùng nhất là dựa trên các báo cáo (report) và phân tích Kinh nghiệm của tôi cho thấy người dùng thường tạo ra các trend report để thể hiện xu hướng hoạt động thay đổi như thế nào theo thời gian Đây là một chỉ số quan trọng và thông dụng trong nhiều tổ chức Các KPI (Key Performance Indicators) có lẽ được xây dựng dựa trên thực tế này Một kiểu report nữa hay gặp là dashboard, trong đó thực ra là chứa rất nhiều reports liên quan với nhau được thể hiện dưới dạng các biểu đồ (chart) Lợi thế của dashboard là nó rất trực quan, nhìn vào đó người ta có thể ngay lập tức hình dung được tình hình hoạt động của công ty.
Với data warehouse, người dùng có thể dễ dàng xây dựng các report như trên Đồng thời, từ data warehouse, người ta có thể xây dựng các cube mà không tốn quá nhiều công sức Dựa trên cube, các công cụ phân tích sẽ được dùng để phân tích dữ liệu cực kỳ nhanh chóng và trực quan
2.6 Thành công
Hiển nhiên sản phẩm được tạo ra cũng phải hướng đến thành công Trong trường hợp của data warehouse, nó phải đem lại giá trị thực tế cho người dùng như đã nói ở trên và phải được dùng liên tục thì mới được coi là thành công
Trang 15Việc có hay không có Data Warehouse trong một tổ chức hoàn toàn không mang tính bắt buộc Không có data warehouse, người ta vẫn có thể tạo ra report nhưng dĩ nhiên mất nhiều công sức hơn Để được công nhận, giá trị business mà data warehoue đem lại phải lớn hơn công sức và tiền của bỏ ra đầu
tư vào nó
Trong nhiều tổ chức, business user ban đầu thường không hề có chút ý niệm về data warehouse hoặc thậm chí hoài nghi về nó Nhưng một khi người dùng đã quen với nó, người ta sẽ thích nó và muốn ngày càng có nhiều dữ liệu hơn trong data warehouse đơn giản bởi vì nó cung cấp rất nhiều lựa chọn và hỗ trợ
ra quyết định khá tốt Đó gọi là thành công
3 Cấu trúc dữ liệu cho Data Warehouse
Vì dữ liệu trong kho dữ liệu rất lớn và không có những thao tác như sửa đổi hay tạo mới nên nó được tối ưu cho việc phân tích và báo cáo Các thao tác với dữ liệu của kho dữ liệu dựa trên cơ sở là Mô hình dữ liệu đa chiều (multidimensional data model), được mô hình vào đối tượng gọi là data cube Data cube là nơi trung tâm của vấn đề cần phân tích, nó bao gồm một hay nhiều tập dữ kiện (fact) và các dữ kiện được tạo ra từ nhiều chiều dữ kiện khác nhau (dimention)
Ví dụ: Một thống kê doanh số bán hàng dựa trên ba yếu tố là: địa điểm, thời gian và chủng loại hàng Data cube là vấn đề “Thống kê bán hàng” với ba chiều là ba yếu tố: địa điểm, thời gian và chủng loại hàng Bảng fact là bảng tổng hợp dữ liệu của mối liên quan của doanh số với 3 yếu tố
4 Ngôn ngữ cho Data Warehouse
Ngôn ngữ xử lý phân tích trực tuyến (OLAP - On-Line Analytical Prosessing), rất phù hợp với kho dữ liệu, ngôn ngữ này tương tự với ngôn ngữ truy vấn SQL và tập trung vào các câu lệnh sau:
- Thu nhỏ (roll-up): ví dụ: nhóm dữ liệu theo năm thay vì theo quý
Trang 16- Mở rộng (drill-down): ví dụ: mở rộng dữ liệu, nhìn theo tháng thay vì theo quý.
- Cắt lát (slice): nhìn theo từng lớp một Ví dụ: từ danh mục bán hàng của Q1, Q2, Q3, Q4 chỉ xem của Q1
- Thu nhỏ (dice): bỏ bớt một phần của dữ liệu (tương ứng thêm điều kiện vào câu lệnh WHERE trong SQL)
5 Cấu trúc của một hệ thống Data Warehouse
Bao gồm ba tầng:
- Tầng đáy: Là nơi cung cấp dịch vụ lấy dữ liệu từ nhiều nguồn khác sau đó chuẩn hóa, làm sạch và lưu trữ dữ liệu đã tập tung
- Tầng giữa: cung cấp các dịch vụ để thực hiện các thao tác với kho dữ liệu gọi
là dịch vụ OLAP (OLAP server) Có thể cài đặt bằng Relational OLAP, Multidimensional OLAP hay kết hợp cả hai mô hình trên Hybrid OLAP
- Tầng trên cùng: nơi chứa các câu truy vấn, báo cáo, phân tích
Trang 17Hình II.5.1: Cấu trúc kho dữ liệu
III OLAP – ONLINE ANALYTICAL PROCESSING
1 OLAP là gì?
OLAP là một kỹ thuật sử dụng các thể hiện dữ liệu đa chiều gọi là các khối (cube)
nhằm cung cấp khả năng truy xuất nhanh đến dữ liệu của kho dữ liệu Tạo khối (cube) cho dữ liệu trong các bảng chiều (dimension table) và bảng sự kiện (fact table) trong kho dữ liệu và cung cấp khả năng thực hiện các truy vấn tinh vi và phân tích cho các ứng dụng client
Trong khi kho dữ liệu và data mart lưu trữ dữ liệu cho phân tích, thì OLAP là kỹ thuật cho phép các ứng dụng client truy xuất hiệu quả dữ liệu này OLAP cung cấp nhiều lợi ích cho người phân tích, cho ví dụ như:
- Cung cấp mô hình dữ liệu đa chiều trực quan cho phép dễ dàng lựa chọn, định hướng và khám phá dữ liệu
- Cung cấp một ngôn ngữ truy vấn phân tích, cung cấp sức mạnh để khám phá các mối quan hệ trong dữ liệu kinh doanh phức tạp
- Dữ liệu được tính toán trước đối với các truy vấn thường xuyên nhằm làm cho thời gian trả lời rất nhanh đối với các truy vấn đặc biệt
- Cung cấp các công cụ mạnh giúp người dùng tạo các khung nhìn mới của dữ liệu dựa trên một tập các hàm tính toán đặc biệt
OLAP được đặt ra để xử lý các truy vấn liên quan đến lượng dữ liệu rất lớn mà nếu cho thực thi các truy vấn này trong hệ thống OLTP sẽ không thể cho kết quả hoặc sẽ mất rất nhiều thời gian
2 Mô hình dữ liệu đa chiều
Các nhà quản lý kinh doanh có khuynh hướng suy nghĩ theo “nhiều chiều”
Trang 18làm như sau: “Chúng tôi kinh doanh các sản phẩm trong nhiều thị trường khác
nhau, và chúng tôi đánh giá hiệu quả thực hiện của chúng tôi qua thời gian”.
Những người thiết kế kho dữ liệu thường lắng nghe cẩn thận những từ đó và họ
thêm vào những nhấn mạnh đặc biệt của họ như: “Chúng tôi kinh doanh các sản
phẩm trong nhiều thị trường khác nhau, và chúng tôi đánh giá hiệu quả thực hiện
của chúng tôi qua thời gian”.
Suy nghĩ một cách trực giác, việc kinh doanh như một khối (cube) dữ liệu, với các
nhãn trên mỗi cạnh của khối (xem hình bên dưới) Các điểm bên trong khối là các
giao điểm của các cạnh Với mô tả kinh doanh ở trên, các cạnh của khối là Sản
phẩm, Thị trường, và Thời gian Hầu hết mọi người đều có thể nhanh chóng hiểu và
tưởng tượng rằng các điểm bên trong khối là các độ đo hiệu quả kinh doanh mà
được kết hợp giữa các giá trị Sản phẩm, Thị trường và Thời gian.
T h ò t r ö ô øn g
T h ô øi g i a n
S a ûn p h a åm
Hình III.2.1: Mô hình các chiều dữ liệu kinh doanh
Một khối dữ liệu (datacube) thì không nhất thiết phải có cấu trúc 3 chiều (3-D),
nhưng về cơ bản là có thể có N chiều (N-D) Những cạnh của khối được gọi là các
chiều (dimensions), mà đó là các mặt hoặc các thực thể ứng với những khía cạnh
mà tổ chức muốn ghi nhận Mỗi chiều có thể kết hợp với một bảng chiều
(dimension table) nhằm mô tả cho chiều đó Ví dụ, một bảng chiều của Sản phẩm có
thể chứa những thuộc tính như Ma_sanpham, Mo_ta, Ten_sanpham, Loai_SP,… mà
có thể được chỉ ra bởi nhà quản trị hoặc các nhà phân tích dữ liệu Với những chiều
không được phân loại, như là Thời gian, hệ thống kho dữ liệu sẽ có thể tự động phát
sinh tương ứng với bảng chiều (dimension table) dựa trên loại dữ liệu Cần nói thêm
rằng, chiều Thời gian trên thực tế có ý nghĩa đặc biệt đối với việc hỗ trợ quyết định
Trang 19cho các khuynh hướng phân tích Thường thì nó được mong muốn có một vài tri thức gắn liền với lịch và những mặt khác của chiều thời gian.
Hơn nữa, một khối dữ liệu trong kho dữ liệu phần lớn được xây dựng để đo hiệu quả của công ty Do đó một mô hình dữ liệu đa chiều đặc thù được tổ chức xung quanh
một chủ đề mà được thể hiện bởi một bảng sự kiện (fact table) của nhiều độ đo số
học (là các đối tượng của phân tích) Ví dụ, một bảng sự kiện có thể chứa số mặt
hàng bán, thu nhập, tồn kho, ngân sách,… Mỗi độ đo số học phụ thuộc vào một tập
các chiều cung cấp ngữ cảnh cho độ đo đó Vì thế, các chiều kết hợp với nhau được
xem như xác định duy nhất độ đo, là một giá trị trong không gian đa chiều Ví dụ như một kết hợp của Sản phẩm, Thời gian, Thị trường vào 1 thời điểm là một độ đo
duy nhất so với các kết hợp khác
Các chiều được phân cấp theo loại Ví dụ như chiều Thời gian có thể được mô tả bởi các thuộc tính như Năm, Quý, Tháng và Ngày Mặt khác, các thuộc tính của một
chiều có thể được tổ chức vào một lưới mà chỉ ra một phần trật tự của chiều Vì thế,
cũng với chiều Thời gian có thể được tổ chức thành Năm, Quý, Tháng, Tuần và
Ngày Với sự sắp xếp này, chiều Thời gian không còn phân cấp vì có những tuần
trong năm có thể thuộc về nhiều tháng khác nhau
Vì vậy, nếu mỗi chiều chứa nhiều mức trừu tượng, dữ liệu có thể được xem từ nhiều khung nhìn linh động khác nhau Một số thao tác điển hình của khối dữ liệu như
roll-up (tăng mức độ trừu tượng), drill-down (giảm mức độ trừu tượng hoặc tăng mức chi tiết), slice and dice (chọn và chiếu), và pivot (định hướng lại khung nhìn
đa chiều của dữ liệu), cho phép tương tác truy vấn và phân tích dữ liệu rất tiện lợi
Những thao tác đó được biết như Xử lý phân tích trực tuyến (On-Line Analytical
Processing – OLAP)
Những nhà ra quyết định thường có những câu hỏi có dạng như “tính toán và xếp
hạng tổng số lượng hàng hoá bán được theo mỗi quốc gia (hoặc theo mỗi năm)” Họ cũng muốn so sánh hai độ đo số học như số lượng hàng bán và ngân sách được
Trang 20liệu đa chiều là nó nhấn mạnh sự tổng hợp của các độ đo bởi một hoặc nhiều chiều,
mà đó là một trong những thao tác chính yếu để tăng tốc độ xử lý truy vấn
3 Các mô hình lưu trữ hỗ trợ OLAP
Dịch vụ OLAP hỗ trợ nhiều mô hình lưu trữ dữ liệu khác nhau, mỗi mô hình có các
ưu và khuyết điểm riêng, chúng được sử dụng tuỳ theo mục đích khai thác
3.1 Mô hình Multidimensional OLAP (MOLAP)
Mô hình OLAP đa chiều (MOLAP) lưu trữ dữ liệu cơ sở (là dữ liệu từ các bảng của kho dữ liệu hoặc data mart) và thông tin tổng hợp (là các độ đo được tính toán từ các bảng) trong các cấu trúc đa chiều gọi là các khối (cube) Các cấu trúc này được lưu bên ngoài cơ sở dữ liệu data mart hoặc kho dữ liệu
Hình III.3.1: Mô hình dữ liệu MOLAP
Lưu trữ các khối (cube) trong cấu trúc MOLAP là tốt nhất cho các truy vấn tổng hợp dữ liệu thường xuyên mà cần thời gian hồi đáp nhanh Ví dụ, tổng sản phẩm bán được của tất cả các vùng theo quý
Mô hình MOLAP cho phép thực hiện các truy vấn phân tích dữ liệu tốt nhất vì các đặc điểm sau:
- Thông tin tổng hợp và dữ liệu cơ sở được lưu trữ trong cấu trúc đa chiều
- Các thao tác kết (join), là một trong những thao tác tốn chi phí nhất của mô hình quan hệ, thì không cần thiết
Trang 21- MOLAP sử dụng các thuật toán nén dữ liệu cho phép lưu trữ với ít không gian hơn.
- MOLAP sử dụng chỉ mục bitmap cho hiệu quả thực thi tốt hơn
- MOLAP lấy dữ liệu trong khối (cube) rất nhanh bằng cách sử dụng các xử
lý truy vấn tốc độ cao và cache dữ liệu (data cache) Thông tin nhận được
từ khối (cube) và các bảng OLAP cơ sở chỉ được truy xuất thông tin chi tiết
- MOLAP không xử dụng cơ chế khoá vì dữ liệu là chỉ đọc
- MOLAP có thể được nạp trước vào bộ nhớ cache
- Dữ liệu có thể dễ dàng sao chép đến client cho phân tích không trực tuyến (off-line)
3.2 Mô hình Relational OLAP (ROLAP)
Mô hình OLAP quan hệ (ROLAP) lưu trữ dữ liệu cơ sở và thông tin tổng hợp trong các bảng quan hệ Các bảng này được lưu trữ trong cùng cơ sở dữ liệu như là các bảng của data mart hoặc kho dữ liệu
Hình III.3.2: Mô hình dữ liệu ROLAP
Lưu trữ các khối trong cấu trúc ROLAP là tốt nhất cho các truy vấn dữ liệu