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

Tiểu luận môn hệ hỗ trợ quyết định ỨNG DỤNG DATA WAREHOUSE VÀ OLAP HỖ TRỢ RA QUYẾT ĐỊNH

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 (1.27 MB, 43 trang )

ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÀI THU HOẠCH
HỆ HỖ TRỢ RA QUYẾT ĐỊNH
GVHD: PGS. TS. ĐỖ PHÚC
HVTH: ĐOÀN VĂN HUYÊN CH1301091
NGUYỄN HỮU LỘC CH1301023
ỨNG DỤNG
DATA WAREHOUSE VÀ OLAP
HỖ TRỢ RA QUYẾT ĐỊNH
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
TP HCM, tháng 06 năm 2014NHẬN XÉT CỦA GVHD




























HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 2
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
BẢNG PHÂN CÔNG
Công việc Người thực hiện
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 Data Warehouse, OLAP Nguyễn Hữu Lộc
Tìm hiểu SQL Server Business Intelligence 2008 Đoàn Văn Huyên
Thu thập dữ liệu Đ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ộc
Xâ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ên
Phân tích và ra quyết định Đoàn Văn Huyên, Nguyễn Hữu Lộc
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 3
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
MỤ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.
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 4
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
I. 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.


HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 5
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
Hì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.
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 6
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
Phù 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.
Tên Lĩnh vực ứng dụng
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
PROJECTOR Hoạch định kế hoạch tài chính
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
(dialog), dữ liệu (data) và mô hình (model). Đối với những người thiết kế hệ thống
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 7
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
DDS 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.
• Thành phần đối thoạ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
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 8
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
như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.
• Thành phần dữ liệu:
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…
• Thành phần mô hình:
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

HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 9
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
tế, 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 (custom-
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.
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 10
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
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
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 11
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
tiê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
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 12
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
mộ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.
2.4 Bảo mật
Dữ liệu trong data warehouse đến từ nhiều nguồn khác nhau, do vậy hiển nhiên
việc bảo đảm những thông tin không lộ ra ngoài là một yêu cần thiết yếu. Để lộ
dữ liệu của một database đã là cực kỳ nghiêm trọng. Để lộ dữ liệu từ nhiều
database là thảm họa.
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 13
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
2.5 Hỗ trợ ra quyết định
Đây có thể nói là mục tiêu quan trọng nhất của doanh nghiệp khi xây dựng data
warehouse. Mặc dù có những trường hợp xây dựng một cơ sở dữ liệu tập trung
để thu thập data từ nhiều nguồn khác nhau, nhưng tôi cho rằng những trường
hợp như vậy nên gọi là data integration (tích hợp dữ liệu) chứ không phải data
warehouse. Một doanh nghiệp trước khi xây dựng data warehouse, nên tự đặt
câu hỏi liệu data warehouse đó có giúp ích gì trong việc ra quyết định kinh
doanh của doanh nghiệp không. Nói một cách nôm na trong phạm vi của data
warehouse, người ta muốn dựa vào thông tin để từ đó thấy được cần phải làm
những gì để kinh doanh đạt kết quả tốt nhất.
Cô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.
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 14
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
Việ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ý.
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 15
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
- 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
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 16
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
Hì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”
(multidimensionally). Ví dụ như họ có khuynh hướng mô tả những gì mà công ty
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 17
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
là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
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 18
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
cho 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
tổng hợp bởi cùng các chiều. Như vậy, một đặc tính để phân biệt của mô hình dữ
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 19
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
liệ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.
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 20
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
- 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
không thường xuyên. Ví dụ như nếu 80% người dùng truy vấn chỉ dữ liệu
trong vòng một năm trở lại đây, các dữ liệu cũ hơn một năm sẽ được đưa vào
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 21
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc

một cấu trúc ROLAP để giảm không gian đĩa bị chiếm dụng, hơn nữa còn để
loại trừ dữ liệu trùng lắp. Lưu trữ dữ liệu trong cấu trúc ROLAP cung cấp các
lợi ích sau:
- ROLAP cho phép Cube Builder tự động tạo chỉ mục.
- ROLAP ánh xạ các tổng hợp có sẵn từ data mart hoặc kho dữ liệu. OLAP
Manager được phép xử dụng các tổng hợp có sẵn để tổng hợp mà không
cần tính toán lại cho mỗi truy vấn.
- ROLAP tạo đòn bẩy cho hệ quản trị cơ sở dữ liệu quan hệ nhằm cho các
nhà quản trị hệ thống duy trì nó hiệu quả hơn.
- ROLAP hỗ trợ Microsoft SQL Server, Oracle, Access và Open Database
Connectivity (ODBC).
3.3 Mô hình Hybird OLAP (HOLAP)
Mô hình OLAP lai (HOLAP) là sự kết hợp giữa MOLAP và ROLAP.
Hình III.3.3: Mô hình dữ liệu HOLAP
Lưu trữ các khối (cube) trong cấu trúc HOLAP là tốt nhất cho các truy vấn
tổng hợp dữ liệu thường xuyên dựa trên một lượng lớn dữ liệu cơ sở. Ví dụ,
chúng ta sẽ lưu trữ dữ liệu bán hàng theo hàng quý, hàng năm trong cấu trong
MOLAP và dữ liệu hàng tháng, hàng tuần và hàng ngày trong cấu trúc ROLAP.
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 22
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
Lợi ích của việc lưu trữ trong cấu trúc HOLAP là:
- Lấy dữ liệu trong khối (cube) nhanh hơn bằng cách sử dụng xử lý truy vấn
tốc độ cao của MOLAP.
- Tiêu thụ ít không gian lưu trữ hơn MOLAP.
- Tránh trùng lắp dữ liệu.
3.4 So sách các mô hình
Bảng III.3.1: Bảng so sánh tổng hợp ba mô hình lưu trữ hỗ trợ OLAP
MOLAP ROLAP HOLAP
Lưu trữ dữ liệu cơ sở Khối Bảng quan hệ Bảng quan hệ
Lưu trữ thông tin tổng hợp Khối Bảng quan hệ Khối

Hiệu suất thực hiện truy vấn Nhanh nhất Chậm nhất Nhanh
Tiêu thụ không gian lưu trữ Nhiều Thấp Trung bình
Chi phí bảo trì Cao Thấp Trung bình
4. Kiến trúc khối (cube) của OLAP
Đối tượng chính của OLAP là khối (cube), một thể hiện đa chiều của dữ liệu chi tiết
và tổng hợp. Một khối bao gồm một nguồn dữ liệu (Data source), các chiều
(Dimensions), các độ đo (Measures) và các phần dành riêng (Partitions). Các khối
được thiết kế dựa trên yêu cầu phân tích của người dùng. Một kho dữ liệu có thể hỗ
trợ nhiều khối khác nhau như khối Bán hàng, khối Bảng kiểm kê,…
Dữ liệu nguồn của một khối chỉ ra nơi chứa kho dữ liệu cung cấp dữ liệu cho khối.
Các chiều (dimension) được ánh xạ từ các thông tin của các bảng chiều (dimension
table) trong kho dữ liệu vào các mức phân cấp, ví dụ như chiều Địa lý thì gồm các
mức như Lục địa, Quốc gia, Tỉnh-Thành phố. Các chiều có thể được tạo một cách
độc lập và có thể chia sẻ giữa các khối nhằm xây dựng các khối dễ dàng và để chắc
chắn rằng thông tin tổng hợp cho phân tích luôn ổn định. Ví dụ, nếu một chiều chia
sẻ một phân cấp sản phẩm và được sử dụng trong tất cả các khối thì cấu tạo của
thông tin tổng hợp về sản phẩm sẽ ổn định giữa các khối sử dụng chiều đó.
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 23
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
Một chiều ảo (virtual dimension) là một dạng đặc biệt của chiều mà ánh xạ các
thuộc tính từ các thành viên (member) của một chiều khác để sau đó có thể được sử
dụng trong các khối. Ví dụ, một chiều ảo của thuộc tính kích thước sản phẩm cho
phép một khối (cube) tổng hợp dữ liệu như số lượng sản phẩm bán được theo kích
thước, hoặc như số lượng áo bán được theo kiểu và theo kích thước. Các chiều ảo
(virtual dimension) và các thuộc tính thành viên được đánh giá là cần thiết cho các
truy vấn và chúng không đòi hỏi phải có các khối lưu trữ vật lý.
Các độ đo (measure) xác định các giá trị số từ bảng sự kiện (fact table) mà được
tổng hợp cho phân tích như giá bán, chi phí hoặc số lượng bán.
Các phần dành riêng (partition) là các vật chứa lưu trữ đa chiều, giữ dữ liệu của
khối. Mỗi khối chứa ít nhất một partition, và dữ liệu của khối có thể kết hợp từ

nhiều partition. Mỗi partition có thể lấy dữ liệu một nguồn dữ liệu khác nhau và có
thể lưu trong một vị trí riêng biệt (separate). Dữ liệu của một partition có thể được
cập nhật độc lập với các partition khác trong một khối. Ví dụ, dữ liệu của một khối
có thể được chia theo thời gian, với một partition chứa dữ liệu của năm hiện hành,
một partition khác chứa dữ liệu của năm trước, và một partition thứ ba chứa tất cả
dữ liệu của các năm trước nữa.
Các partition của một khối có thể được lưu trữ độc lập trong các cách thức khác
nhau với các mức độ tổng kết khác nhau. Các partition không thể hiện đối với người
dùng, đối với họ một khối (cube) là một đối tượng đơn, và chúng cung cấp các tuỳ
chọn đa dạng để quản lý dữ liệu OLAP.
Một khối ảo (virtual cube) là một khung nhìn luận lý (logic) của các phần chia của
một hoặc nhiều khối. Một khối ảo có thể được sử dụng để kết (join) các khối khác
nhau để chia sẻ một chiều chung nào đó, ví dụ như có thể kết giữa khối Bán hàng và
khối Kho nhằm các mục đích phân tích đặc biệt nào đó trong khi duy trì các khối
tách biệt cho đơn giản. Các chiều (dimension) và các độ đo (measure) có thể được
chọn từ các khối được kết để thể hiện trong khối ảo.
5. Mô hình kiến trúc dịch vụ OLAP
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 24
Hệ hỗ trợ ra quyết định PGS. TS. Đỗ Phúc
Kiến trúc dịch vụ OLAP gồm 2 thành phần: Server và Client
Hình III.5.1: Mô hình kiếm trúc dịch vụ OLAP
5.1 Kiến trúc thành phần Server
HVTH: Đoàn Văn Huyên – Nguyễn Hữu Lộc Trang 25

×