Tải bản đầy đủ (.doc) (22 trang)

Tiểu luận Chuyên đề: đề tài: OLAP

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 (403.66 KB, 22 trang )

Học viện công nghệ bưu chính viễn thông
Khoa công nghệ thông tin
************
Tiểu luận Chuyên đề

Giáo viên hướng dẫn : Trần Đình Quế
Sinh viên : Đới Thanh Thịnh
Lớp : D07CNPM1

OLAP - 1 -
Mục Lục :
1
Mục Lục : 2
II . Association Rules and Sequential Patterns 13
3 .Association Rule Generation 18
III. Tài liệu tham khảo : 22
I. Giới thiệu
1) Lí do chọn đề tài
Ngày nay ,số lượng bản ghi trong cơ sơ dữ liệu ngày càng tăng . Làm thế nào để
có thể truy vấn nhanh nhất và có thể truy vấn trên nhiều chiều khác nhau , tiết
kiệm không gian lưu trữ . 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. Để giải
quyết các vấn đề trên thì em đã chọn OLAP .
2) Mục đích
Các cube OLAP được thiết kế nhằm tối ưu hóa khả năng trích xuất và tổng
hợp thông tin trên những lượng dữ liệu lớn và trên nhiều chiều khác nhau.
Nói như vậy để phân biệt với các database OLTP vốn ưu tiên tốc độ xử lý
giao dịch và tiết kiệm không gian lưu trữ.
OLAP - 2 -
3) Nội dung
a. OLAP , kiến trúc dịch vụ OLAP


b. Các thuật toán của luật kết hợp
i. Apriori Algorithm
ii. Mining Class Association Rules
4) Tài liệu tham khảo
[1] The Book I am using:
Liu, Bing. Web Data Mining, Chapter 2: Association Rules and Sequential
Patterns. Springer, December, 2006

Wikipedia:
[2] "GSP Algorithm." />June 3, 2008
[3] "Sequence Mining."
/>Oct. 30, 2008
[4] Marc Plantevit , Anne Laurent , Maguelonne Teisseire
"Sequence Mining."
HYPE: Mining Hierarchical Sequential Patterns
[5] Helen Pinto , Multi-dimensional Sequential Pattern Mining
II. OLAP là gì?
1. OLAP
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ư:
OLAP - 3 -
- 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 là gì:
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 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
Mô phỏng các chiều trong 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

OLAP - 4 -
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 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ữ 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.
OLAP - 5 -
3 . Giới thiệu dịch vụ OLAP (OLAP Services) của Microsoft SQL Server
Dịch vụ OLAP là một server tầng giữa (midle-tier server) phục vụ cho phân
tích xử lý trực tuyến (OLAP). Hệ thống dịch vụ OLAP là một công cụ mạnh trong việc
xây dựng các khối đa chiều của dữ liệu cho phân tích và cung cấp khả năng truy xuất
nhanh đến thông tin khối cho các client.
Kiến trúc dịch vụ OLAP được chia thành 2 phần: Phần server (được đại diện
bởi OLAP server) và phần client (là dịch vụ PivotTable). Cả dịch vụ OLAP và dịch vụ
PivotTable đều cho phép thiết kế, tạo mới và quản lý các khối (cube) từ kho dữ liệu
(data warehouse) và cho phép các client truy xuất đến dữ liệu OLAP. Có thể hiểu rằng
OLAP server quản lý dữ liệu còn dịch vụ PivotTable làm việc với server để cho client
truy xuất dữ liệu.
Các đặc điểm của dịch vụ OLAP:
- Dễ sử dụng: Bằng cách cung cấp các giao diện người dùng và các trợ giúp thực
hiện (wizard).
- Linh động: Mô hình dữ liệu mạnh cho định nghĩa khối (cube) và lưu trữ.
- Các khối có thể ghi (Write-enable): Cho các kịch bản phân tích dạng “what if”.
- Kiến trúc có thể co dãn (scalable architecture): Cung cấp một sự đa dạng các
kịch bản lưu trữ và giải pháp tự động đối với “hội chứng bùng nổ dữ liệu” mà
gây khó chịu cho các kỹ thuật OLAP.
- Tích hợp các công cụ quản trị, bảo mật, nguồn dữ liệu và client/server caching.

- Hỗ trợ rộng rãi các hàm API và kiến trúc mở để hỗ trợ các ứng dụng tuỳ ý.
4 So sánh OLAP với OLTP
Đặc trưng của các ứng dụng OLTP (On-Line Transaction Processing) là các tác
vụ xử lý tự động ghi chép dữ liệu xử lý tác vụ của một tổ chức như ghi nhận đơn đặt
hàng và các giao dịch ngân hàng (chúng là những công việc hàng ngày của tổ chức
OLAP - 6 -
thương mại) mà cần phải đọc hoặc cập nhật một vài mẩu tin dựa trên khoá chính của
chúng. Những tác vụ đó có cấu trúc, được lặp lại, bao gồm các giao dịch ngắn, tối giản
và tách biệt, yêu cầu dữ liệu chi tiết và mới cập nhật. Các cơ sở dữ liệu tác nghiệp có
xu hướng từ vài trăm megabyte đến hàng gigabyte kích thước và chỉ lưu trữ các dữ liệu
hiện hành. Tính nhất quán và khả năng phục hồi của cơ sở dữ liệu là then chốt, và tối
đa thông lượng giao dịch là thước đo chính yếu. Vì thế cơ sở dữ liệu được thiết kế để
tối thiểu các xung đột trùng lắp.
Còn kho dữ liệu, mục tiêu là hỗ trợ quyết định cho các nhà quản lý. Tính chi tiết
và riêng lẻ của các mẩu tin thì ít quan trọng hơn tính lịch sử, tổng kết và hợp nhất của
dữ liệu. Do đó, kho dữ liệu thường chứa dữ liệu hợp nhất từ một hoặc nhiều cơ sở dữ
liệu tác nghiệp và được thu thập qua một thời gian dài. Kết quả là kích thước kho dữ
liệu có khuynh hướng từ vài trăm gigabyte đến hàng terabyte so với các cơ sở dữ liệu
tác nghiệp. Kho dữ liệu hỗ trợ các truy vấn phức tạp với thời gian hồi đáp nhanh, các
truy vấn phức tạp có thể truy xuất hàng triệu mẩu tin và thực hiện nhiều lần các thao
tác quét, kết và tổng hợp. Đối với kho dữ liệu, số lượng truy vấn đưa vào và thời gian
hồi đáp quan trọng hơn số lượng giao dịch đưa vào. Mà OLAP là một trong những
công cụ cho phép thực hiện hiệu quả các truy vấn này.
Căn cứ vào đó, các cơ sở dữ liệu tác nghiệp được xây dựng để hỗ trợ tốt các tác
vụ OLTP, vì thế nếu cố gắng thực thi các truy vấn OLAP phức tạp đối với các cơ sở dữ
liệu tác nghiệp sẽ cho kết quả là hiệu quả thực hiện không thể chấp nhận được.
5 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.
5.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.
OLAP - 7 -
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.
- 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).
5.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.
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 một cấu trúc
OLAP - 8 -
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).
5.3 Mô hình Hybird OLAP (HOLAP)
Mô hình OLAP lai (HOLAP) là sự kết hợp giữa MOLAP và ROLAP.
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.
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.
5.4 So sách các mô hình
Bảng sau 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ệ
OLAP - 9 -

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
6 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 đó.
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
OLAP - 10 -
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.
7. Mô hình kiến trúc dịch vụ OLAP
Kiến trúc dịch vụ OLAP gồm 2 thành phần: Server và Client
7.1 Kiến trúc thành phần Server
OLAP - 11 -
Kiến trúc thành phần Server
Dịch vụ OLAP của SQL Server cung cấp thành phần Server có khả năng tạo và
quản lý dữ liệu OLAP đa chiều, đồng thời cung cấp dữ liệu cho client qua dịch vụ
PivotTable (PivotTable Service).
Các thao tác (operation) của thành phần Server bao gồm việc tạo các khối dữ
liệu đa chiều từ kho cơ sở dữ liệu quan hệ và lưu trữ chúng trong các cấu trúc khối đa
chiều (MOLAP), trong cơ sở dữ liệu quan hệ (ROLAP) hoặc kết hợp cả hai (HOLAP).
Siêu dữ liệu (metadata) của các cấu trúc khối đa chiều được lưu trữ trong một kho
(repository) trong cơ sở dữ liệu quan hệ.

Các thao tác được thành phần Server cung cấp gồm:
- Khả năng tạo và quản lý các khối của OLAP.
- Phục vụ lấy dữ liệu và làm cho nó có thể sử dụng được từ các ứng dụng client.
7.2 Kiến trúc thành phần Client
OLAP - 12 -
Kiến trúc thành phần Client
Thành phần client là dịch vụ PivotTable giao tiếp với OLAP server và cung cấp
giao diện cho các ứng dụng client sử dụng truy cập dữ liệu OLAP trên server. Các ứng
dụng client kết nối đến dịch vụ PivotTable bằng cách sử dụng giao diện OLE DB hoặc
mô hình ADO (Microsoft ActiveX Data Objects).
Các ứng dụng client có thể sử dụng dịch vụ PivotTable để lấy dữ liệu từ cơ sở
dữ liệu OLAP.
Dịch vụ PivotTable có thể tạo các khối cục bộ mà đó là các tập con của các khối
cư trú trên server. Các khối cục bộ có thể được sử dụng để làm tăng hiệu quả thực hiện
và sử dụng để thực hiện các phân tích không trực tuyến (off-line).
Dịch vụ PivotTable là một công cụ lưu trữ, duyệt và phân tích khối (cube).
PivotTable là một OLAP Server xử lý tại chỗ với cả các đặc tính phân tích trực tuyến
(on-line) và không trực tuyến (off-line) mà:
- Cung cấp truy cập trực tuyến đến dữ liệu OLAP như một client của dịch vụ
OLAP.
- Bao gồm các đặc tính phân tích dữ liệu, xây dựng khối và quản lý cache.
Cho phép các khối (cube) lưu trữ cục bộ để phân tích không trực tuyến (off-line) như
là kết nối đến dữ liệu dịch vụ OLAP trực tuyến.
II . Association Rules and Sequential Patterns
Trong chương này sẽ nghiên cứu hai mô hình khai phá dữ liệu quan trọng được sử
dụng trong nhiều ứng dụng khai phá web , đặc biệt trong sử dụng ( usage ) web và khai
OLAP - 13 -
phá nội dung . Khai phá luật kết hợp tìm các tập mặt hàng mà thường xuất hiện cùng
nhau . Ví dụ : Khi vào siêu thị máy tính , khách hàng sau khi mua máy tính có thể mua
chuột , mua tai nghe

1. Basic Concepts of Association Rules
Cho I = {i , i , …, i } là 1 tập các mặt hàng .
T = (t1, t2, …, tn) là tập các giao dịch
Với mỗi giao dịch t1 là tập các mặt hàng trong I .
Môt luật kết hợp có dạng dưới đây :
X → Y, where X, Y ⊂ I, and X ∩Y = ∅
X hoặc Y : Là tập các mặt hàng được gọi là itemset .
Độ hỗ trợ ( Support ) của luật X → Y, Là phần trăm của giao dịch trong T mà chứa X
U Y .
Độ hỗ trợ mà thấp thì luật này xuất hiện do sự tình cờ , vì vậy các doanh nghiệp sẽ
không xếp các mặt hàng này cạnh nhau .
Độ tin cậy của luật X → Y, là phần trăm của giao dich trong T mà chứa X cũng chứa
Y .
Nếu độ tin cậy mà thấp tức là dự đoán này ko đáng tin cậy .
Ví dụ : Có tập 7 giao dịch , mỗi giao dịch là 1 tập các mặt hàng được mua trong rỏ của
khách hàng . Tâp I là tập các mặt hàng được bán trong cửa hàng .
t1: Beef, Chicken, Milk
t2: Beef, Cheese
t3: Cheese, Boots
t4: Beef, Chicken, Cheese
t5: Beef, Chicken, Clothes, Cheese, Milk
t6: Chicken, Clothes, Milk
t7: Chicken, Milk, Clothes
Cho minsup = 30% , minconf = 80% . Các luật dưới đây :
Chicken, Clothes o Milk [sup = 3/7, conf = 3/3] , luật này hợp lệ vì có support =
42.84% ( > 30% ) và confidence = 100% ( >80% )
2. Apriori Algorithm
Thuật toán có 2 bước:
a. Sinh tất cả các tập frequent itemsets (transaction support >= minsup)
b. Sinh tất cả các association rules (AS) từ các frequent itemsets (confidence >=

minconf)
Size: Số item trong itemset
OLAP - 14 -
Itemset có size=k  k-itemset
Từ ví dụ 2 (phan 2.1), ta có itemset {chicken, clothes, milk} với minsup=30%,
monconf=80%:
Frequent 3-itemset
Support=3/7 (thỏa mãn)
Ta có thể sinh ra được 3 AS
Rule 1: chicken, clothes  milk [sup=3/7, conf=3/3]
Rule 2: clothes, milk  chicken [sup=3/7, conf=3/3]
Rule 3: clothes  milk, chicken [sup=3/7, conf=3/3]
a) Sinh các tập frequent itemsets
Thuật toán dựa trên tính chất apriori hoặc downward closure (bao đóng??) để sinh tất
cả các tập frequent itemsets:
Downward closure property: nếu một itemset là minimum support thì tất cả các tập con
ko rỗng của nó cũng là minimum support.
Giải thích: nếu một transaction chứa một tập các item X thì nó phải chứa bất cứ tập
con ko rỗng của X. Tính chất này + giới hạn minsup lược bớt một số lượng lớn của các
itemset ko phải là frequent.
Để đảm bảo sinh hiệu quả các itemset, thuật toán giả sử rằng các items trong I đc sắp
xếp theo thứ tự từ điển. Trật tự này được sử dụng trong mỗi itemset trong suốt thuật
toán. Ta sử dụng ký pháp {w[1],w[2],…,w[k] } biểu diễn cho k-itemset, w biểu diễn
cho w[1], w[2],…, w[k]. (theo trật tự w[1]<w[2]<…<w[k] ).
Thuật toán:
Algorithm Apriori(T)
C
1
← init-pass(T) //the first over T
F

1
← {f | f Є C
1
, f.count/n >= minsup }//n là số transaction trong T
For(k=2; F
k-1
≠ ᴓ; k++) do // subsequent pass over T
C
k
← candicate-gen(F
k-1
);
For each transaction t Є T do // scan the data once
For each candicate c Є C
k
do
If c is contained in t then
C.count++;
Endfor
Endfor
Return F← ;
Hình 2.2. thuật toán Apriori sinh các frequent itemset
Function candicate-gen(F
k-1
)
C
k
← ; // tập candicate khởi tạo
OLAP - 15 -
For all f

1
, f
2
F
k-1
// tìm tất cả các cặp của frequent itemset
With f
1
= {i
1
, i
2, …,
i
k-2
, i
k-1
}
And f
2
= {i
1
, i
2, …,
i
k-2
, i

k-1
} // f
1

, f
2
khác nhau mỗi phần tử cuối cùng
And i
k-1
< i

k-1
do // theo thứ tự từ điển
c ← {i
1
, i
2, …,
i
k-2
, i
k-1
, i

k-1
} // f
1
f
2
C
k
← C
k
{c}
For each (k-1)-subset s of c do

If(s F
k-1
) then //
Delete c from C
k
; // xóa c khỏi C
k
Endfor
Endfor
Return C
k
;
Hình 2.3. the candicate gen function
Thuật toán apriori sinh các frequent itemset hình 2.2 dựa trên level-wise search (thuật
toán tìm kiếm thông minh). Thuật toán sinh tất cả các frequent itemset bằng cách tạo
pass (quét qua?) nhiều lần qua dữ liệu. Trong lần pass đầu tiên, nó đếm nó đếm
supports của các items riêng (dòng 1) và xác định xem item nào là frequent (dòng 2).
F
1
là tập các frequent 1-itemset (chỉ gồm 1 phần tử). Trong mỗi subsequent pass k, có 3
bước:
 Nó bắt đầu với tập hạt giống của itemsets F
k-1
được tìm thấy trong k-1 lần
pass trước đó. Và sử dụng tập này để sinh các candicate itemsets C
k
(dòng
4).
 Transaction database sau đó được quét qua và mức support hiện tại của mỗi
candicate itemset c trong C

k
được đếm (dòng 5-10). Chú ý rằng ta ko cần
phải load toàn bộ dữ liệu vào mem trước khi xử lý, mà thay vào đó, tại bất
kỳ thời điểm nào, chỉ có một transaction ở trong mem. Đây là một tính năng
rất quan trọng, nó làm cho thuật toán có thể xử lý được trên các tập dữ liệu
khổng lồ mà ko cần phải tải vào mem.
 Cuối cùng, xác định được candicate itemsets nào là frequent (dòng 11)
Cadicate-gen function: (hình 2.3) gồm 2 bước joint step (hợp) và pruning step (lược
bỏ)
Joint step (dòng 2-6): bước này kết hợp hai frequent (k-1)-itemset để tạo một possible
cadicate itemset c. Hai frequent itemset f
1
và f
2
khác nhau duy nhất ở item cuối cùng
(dòng 3-5). c được thêm vào tập các candicate C
k
(dòng 7).
Pruning step (dòng 8-11): một cadicate c từ bước joint step có thể ko phải là cadicate
cuối cùng. Bước này xác định liệu tất cả k-1 tập con của c (c có k item) là thuộc vào F
k-
OLAP - 16 -
1
. Nếu có bất kì tập con nào không thuộc F
k-1
, thì c ko được coi là candicate và nó sẽ bị
loại khỏi C
k
.
Ví dụ1: cho tập các frequent itemsets ở level 3:

F
3
={{1,2,3}, {1,2,4}, {1,3,4}, {1,3,5}, {2,3,4}}
Joint step (tạo possible candicate cho level 4):
{1,2,3} U {1,2,4} = {1,2,3,4}
{1,3,4} U {1,3,5} = {1,3,4,5}
 C
4
={{1,2,3,4}, {1,3,4,5}}
Pruning step (tìm candicate thực sự):
C
4
={{1,2,3,4}}
Vì {1,4,5} và {3,4,5} ko thuộc F
3
nên {1,3,4,5} ko là candicate
Ví dụ2: với minsup=30% và tập các transaction sau:
t
1
: beef, chicken, milk
t
2
: beef, cheese
t
3
: cheese, boots
t
4
: beef, chicken, cheese
t

5
: beef, chicken, clothes, cheese, milk
t
6
: chiken, clothes, milk
t
7
: chicken, milk, clothes

F
1
= {{beef}:4, {chicken}:5, {milk}:4, {cheese}:4, {clothes}:3}//4,5,4,3 là các
support count
C
2
= {
{beef, chicken},{beef, milk}, {beef, cheese}, {beef, clothes},
{chicken, milk}, {chicken, cheese}, {chicken, clothes},
{milk, cheese}, {milk, clothes},
{cheese, clothes}
}
F
2
={{beef, chicken}:3, {beef, cheese}:3,{chicken, milk}:4, {chicken, clothes}:3,
{milk, clothes}:3}
Possible candicate C
3
: {beef, chicken, cheese}, {chicken, milk, clothes}
C
3

= {{chicken, milk, clothes}} //Vì {chicken, cheese} ko thuộc F
2
Một số điểm cần lưu ý của thuật toán apriori:
OLAP - 17 -
 Về lý thuyết đây là thuật toán có độ phức tạp tăng theo hàm mũ. Giả sử số item
của I là m  không gian tất cả itemsets là O(2
m
) vì mỗi item có thể hoặc ko
nằm trong 1 itemset. Tuy nhiên, thuật toán mining lợi dụng sự rải rác của dữ
liệu và giá trị minsup cao để là cho công việc mining là possible và hiệu quả. Sự
rải rác (sparseness) của dữ liệu trong ngữ cảnh phân tích market basket nghĩa là
cửa hàng bán rất nhiều mặt hàng nhưng mỗi khách hàng chỉ một một ít trong số
chúng.
 Thuật toán có thể thực hiện trên các tập dữ liệu lớn ví nó ko phải load toàn bộ
dữ liệu vào mem. Nó chỉ quét qua dữ liệu k lần (với k là kích thước của item lớn
nhất). Trong thực tế, k thường nhỏ (<10). Tính chất scale-up này rất quan trọng
trong thực thế, vì nhiều tập dữ liệu trong thế giới thực rất lớn và nó ko thể tải
hết vào mem được.
 Thuật toán dựa trên level-wise search. Nó có khả năng linh động là có thể dừng
tại bất cứ level nào. Điều này rất hữu ích trong thực tế vì trong nhiều ứng dụng,
các frequent itemsets hoặc rules dài là ko cần thiết vì khó sử dụng.
 Một khi minsup và minconf của tập các transactions T được cho trước, tập các
frequent itemsets có thể tìm được trong T là duy nhất. Bất kỳ thuật toán nào
cũng tìm được cùng một tập frequent itemset. Tính chất này ko đúng đối với
association rule minning trên những datamining task khác nhau (classification
hoặc clustering), với mỗi thuật toán khác nhau có thể sinh ra các association
rule rất khác nhau.
 Vấn đề chính với association rule mining là nó thường đưa ra một số lượng lớn
các itemsets và rules 10, 1000 hoặc nhiều hơn, gây khó khăn cho user phân tích
để tìm được những cái hữu ích.

3 .Association Rule Generation
Trong nhiều ứng dụng, frequent itemsets là huữ ích và đầy đủ. Sau đó chúng ta
không cần đưa ra association rules. Trong những ứng dụng ở đó đòi hỏi các luật, chúng
ta sử dụng frequent itemset để đưa ra tất cả các association rule.
So với cách đưa ra các frequent itemsets ,đưa ra rule là tương đối đơn giản. Để đưa
ra những rule cho mỗi frequent itemset f, chúng ta sử dụng tất cả tập con không rỗng
của f. Cho mỗi tập con α, chúng ta có output là rule có dạng:
(f-α) -> α
Nếu:confide=
OLAP - 18 -
ở đó: f.count (hoặc (f-α).count) là các support count của f(hoặc (f-α)). Support của một
rule là f.count/n, với n là số các transaction(giao dịch) trên tập các transaction T. Tất cả
support counts cần cho tính tóan confidence là có giá trị bởi vì nếu f là frequent, thì
mọi tập con không rỗng của f cũng là frequent và support count của nó trở thành những
bản ghi trong tiến trình khai phá. Do đó không cần quét dữ liệu trong các rule được
đưa ra
Chiến lược đưa ra rule theo khía cạnh này không có hiệu quả. Để xây dựng một thuật
toán hiệu quả, chúng ta tuân theo support count của f để tính toán confidence không
thay đổi khi α thay đổi. Nó tuân theo: một rule (f-α)->α có giá trị thì (f-α
sub
)-> α
sub
cũng
phải có giá trị, với α
sub


một tập con không rỗng của α bởi vì support count của (f-
α
sub

) luôn nhỏ hơn hoặc bằng support count của (f- α).
Ví dụ ta đưa ra một itemset {A, B, C, D}, nếu rule (A,B->C,D) có giá trị thì rule (A,
B,C->D) và (A, B, D->C) cũng hold.
Do đó, đưa ra một frequent itemset f, nếu một rule với các consequent α holds thì cũng
là rule với consequent là tập con của α. Điều này cũng tương tự như tính chất
downward closure: nếu một tập itemset là frequent thì tất cả các tập con của nó cũng là
frequent. Vì vậy, cho một frequent itemset f, đầu tiên chúng ta đưa ra tất cả các rule
với một item ở consequent. Chúng ta sau đó sử dụng consequent của những rule này và
hàm candidate-gen()(hinh2.3) để đưa ra tất cả consequent có thể với hai item có thể
xuất hiện trên rule và cứ như vậy. Thuật toán sử dụng trên ý tưởng này được đưa ra ở
hình 2.4. Nhớ rằng tất cả các rule có consequent là 1 item được đưa ra đầu tiên tương
ứng với dòng 2 của chức năng genRules()_hinh2.4. Confidence được tính tóan ở dòng
3 hinh2.4
Algorithm genRules(F)// F is the set of all frequent itemsets
1. For each frequent k-itemset f
k
in F, k≥2 do
2. Output every 1-item consequent rule of f
k
with confidence ≥ minconf and support

f
k
.count / n
3. H
1

{consequents of all 1-item consequent rules derived from
fx
above}

4. ap-genRules(f
x
, H
1
);
5. endfor.
Procedure ap-genRules(f
x
, H
m
) //H
m
is the set of m-item condequents
1. if (k> m+1) AND (H
m
≠∅
) then
2. H
m+1


candidate-gen(H
m
);
3. For each h
m+1
in H
m+1
do
4. Conf


f
k
.count / (f
k
– h
m+1
.count);
5. If (conf ≥ minconf) then
6. Output the rule (f
k
– h
m+1
)

h
m+1
with confidence = conf and support
=f
k
.count / n
OLAP - 19 -
7. Else
8. delete h
m+1
from H
m+1
;
9. Endfor
10.ap-genRules(f

x
, H
m+1
)
11.endif
Example 5: Chúng ta sẽ sử dụng lại các transaction ở hình 2.1, minsup=30% và
mincof=80%. Fresquent itemset là kết quả thu được từ Example 4:
F1: {{Beef}:4, {Cheese}:4, {Chicken}:5, {Clothes}:3, {Milk}:4}
F2: {{Beef, Cheese}:3 {Beer, Chicken}:3, {Chicken, Clothes}:3, {Chicken, Milk}:4,
{Colther, Milk}:3}
F3:{{Chicken, Clothes, Milk}:3}
Chúng ta chỉ sử dụng itemset trên F3 để đưa ra các rule (đưa ra các rule từ F2 cũng
được thực hiện tương tự như vậy). Itemset trên F3 đưa ra những rule có thể có
consequent là 1 item:
Rule 1: Chicken, Clothes -> Milk [sup=3/7, conf=3/3]
Rule 2: Chicken, Milk -> Clothes [sup=3/7, conf=3/4]
Rule 3: Clothes, Milk -> Chicken [sup=3/7, conf=3/3]
Thỏa mãn những yêu cầu mincof, chỉ rule 1 và rule 3 là output tương ứng với dòng 2
của thuật toán genRules(). Vì vậy H
1
={{Chicken}, {Milk}}. Hàm ap-genRules() sau
đó được gọi. Dòng 2 của ap-genRules() sản phẩm là H
2
={{Chicken, Milk}}. Rule sau
đó được đưa ra:
Rule 4: Clothes->Milk, Chicken [sup=3/7, conf=3/3]
Vậy có 3 association rules được đưa ra từ frequent itemset {Chicken, Clothes, Milk}
trong F3 là Rule 1, Rule 2, Rule 4.
4 Mining Class Association Rules
4.1Problem Definition

Luật kết hợp thông thường không có bất kì đích .
Các mặt hàng có thể xuất hiện trong kết quả hoặc điều kiện của luật
Người dùng muốn tìm các từ liên quan với mỗi chủ đề .
T : tập dữ liệu giao dịch gồm n giao dịch
Mỗi giao dịch cũng được gán nhãn y
I : tập tất cả mặt hàng trong T
Y : tập tất cả các nhãn lớp : I ∩ Y = ∅.
Luật kết lớp có dạng : X → y, where X ⊆ I, and y ∈ Y.
Ví dụ :
OLAP - 20 -
I = {Student, Teach, School, City, Game, Baseball, Basketball, Team,
Coach, Player, Spectator}
Y = {Education, Sport}
X → y , e.g , Student, School → Education
Transaction class
doc 1: Student, Teach, School : Education
doc 2: Student, School : Education
doc 3: Teach, School, City, Game : Education
doc 4: Baseball, Basketball : Sport
doc 5: Basketball, Player, Spectator : Sport
doc 6: Baseball, Coach, Game, Team : Sport
doc 7: Basketball, Team, City, Game : Sport
4.2Mining Algorithm
Thuật toán này để tìm ra tất cả ruleitems mà có độ hỗ trợ cao hơn minsup . Một
ruleitem có dạng : (condset, y)
Condset : là một tập các item trong I , và y ∈ Y là một nhãn của lớp
Mỗi ruleitem biểu diễn một luật :
condset → y
Tập tất ruleitems ứng được xem xét :
C = {({i}, y) | i ∈ I, and y ∈ Y}


Thuật toán : Algorithm CAR-Apriori(T)
C1 ← init-pass(T); // the first pass over T
F1 ← {f | f ∈ C1, f. rulesupCount / n t minsup};
CAR1 ← {f | f ∈ F1, f.rulesupCount / f.condsupCount t minconf};
for (k = 2; F
k-1
≠ ∅.; k++) do
C
k
← CARcandidate-gen(F
k-1
);
for each transaction t ∈ T do
for each candidate c ∈ C
k
do
if c.condset is contained in t then // c is a subset of t
c.condsupCount++;
if t.class = c.class then
c.rulesupCount++
endfor
end-for
Fk ← {c ∈ C
k
| c.rulesupCount / n ≥ minsup};
OLAP - 21 -
CAR
k
← {f | f ∈ F

k
, f.rulesupCount / f.condsupCount t minconf};
endfor
return CAR ← U
k
CARk ;
III. Tài liệu tham khảo :
[1] The Book I am using:
Liu, Bing. Web Data Mining, Chapter 2: Association Rules and Sequential Patterns.
Springer, December, 2006

Wikipedia:
[2] "GSP Algorithm." />June 3, 2008
[3] "Sequence Mining."
/>Oct. 30, 2008
[4] Marc Plantevit , Anne Laurent , Maguelonne Teisseire
"Sequence Mining."
HYPE: Mining Hierarchical Sequential Patterns
[5] Helen Pinto , Multi-dimensional Sequential Pattern Mining
OLAP - 22 -

×