Mô hình dữliệu đa chiều

Một phần của tài liệu Bài giảng kho dữ liệu và khai phá dữ liệu (2014) (Trang 84 - 93)

- Một kho dữ liệu đƣợc thiết kế dựa trên một mô hình dữ liệu đa chiều, mô hình cung cấp khả

năng xem dữ liệu dƣới dạng một khối dữ liệu.

- Một khối dữ liệu cho phép dữ liệu đƣợc mô hình hóa và xem ở nhiều chiều(thuộc tính) khác

nhau:

o Các chiều của một khối dữ liệu đƣợc thể hiện thông qua bảng theo chiều

(Dimension), chẳng hạn nhƣ bảng các mặt hàng bao gồm các thuộc tính (tên

mặt hàng, thƣơng hiệu, loại hàng), hoặc bảng thời gian bao gồm các thuộc

tính (ngày, tuần, tháng, quý, năm).

o Bảng sự kiện (Fact) chứa các giá trị đo lƣờng đƣợc (nhƣ số tiền bán đƣợc -

83

- Trong các tài liệu nói về công nghệ kho dữ liệu, một khối dữ liệu cơ sở n chiều (n-D base

cube) đƣợc gọi là một khối (hình đƣợc bao bọc bởi 6 mặt- cuboid) cơ bản. Khối ở mức trên

cùng là khối 0-D với số chiều là 0 chứa số liệu tổng hợp ở mức cao nhấtđƣợc gọi là khối dữ

liệu mức đỉnh. Lƣới chia ngăn của các khối dữ liệu đó tạo thành các khối dữ liệumức thấp

hơn. Chúng ta sẽ xem xét ví dụ dƣới đây để hiểu rõ hơn về khái niệm khối dữ liệu này.

84

Mô hình hóa dữ liệu cho kho dữ liệu

Bao gồm 3 loại lƣợc đồ: hình sao, hình bông tuyết và dải thiên hà

- Lƣợc đồhình sao: Một bảng Fact ở giữa kết nối với nhiều bảng theo chiều

- Lƣợc đồ hình bông tuyết: Là một dạng chuẩn hóacủa mô hình hình sao trong đó sự phân

cấp của các chiều đƣợc chuẩn hóa thành một tập hợp các bảng theo chiều có kích thƣớc nhỏ

hơn, tạo thành một hình dạng tƣơng tự nhƣ bông tuyết.

- Lƣợc đồdải thiên hà: gồm nhiều bảng Fact có chung các bảng theo chiều, mà mỗi bảng Fact

cùng các bảng theo chiều là mô hình hình sao, đƣợc coi nhƣ một ngôi sao vì thế mô hình này

đƣợc xem nhƣ là một bộ sƣu tập của các ngôi sao, và đƣợc gọi là lƣợc đồ dải thiên hà hay

một dải các bảng fact.

85

Ví dụlƣợc đồ hình bông tuyết

86

Ngôn ngữ truy vấn khai phá dữ liệu (Data Mining Query Language)

Bao gồm các hàm nguyên thủy nhƣ sau

- Định nghĩa một khối dữ liệu: vì bảng Fact cũng là một khối dữ liệu ở mức thấp nhất, chứa thông tin ở mức chi tiết nhất nên đây cũng là câu lệnh đểđịnh nghĩa một bảng Fact

define cube <tên_khối> [<danh sách các chiều >]: <danh sách các độ đo >

- Định nghĩa các chiều (bảng theo chiều)

define dimension <tên_chiều> as (<danh sách các thuộc tính hoặc thuộc tính con >)

- Trƣờng hợp đặc biệt (dùng chung các bảng theo chiều)

o Bảng theo chiều đƣợc khai báo lần đầu khi định nghĩa khối dữ liệu liên quan o Nếu muốn dùng lại bảng theo chiều này trong những trƣờng hợp về sau thì khai

báo với cú pháp nhƣ sau

define dimension < tên_chiều > as <tên_chiều_đƣợc khai báo lần đầu > in cube

<tên_khối_đầu_tiên_sử_dụng_chiều_đó >

Sử dụng các hàm nguyên thủy định nghĩa lƣợc đồ hình sao đƣợc thể hiện trong ví dụtrên nhƣ

sau:

define cube sales_star [time, item, branch, location]:

87

define dimension time as (time_key, day, day_of_week, month, quarter, year)

define dimension item as (item_key, item_name, brand, type, supplier_type)

define dimension branch as (branch_key, branch_name, branch_type)

define dimension location as (location_key, street, city, province_or_state, country)

Định nghĩa lƣợc đồ hình bông tuyết đƣợc thể hiện trong ví dụtrên nhƣ sau:

define cube sales_snowflake [time, item, branch, location]:

dollars_sold = sum(sales_in_dollars), avg_sales = avg(sales_in_dollars), units_sold = count(*)

define dimension time as (time_key, day, day_of_week, month, quarter, year)

define dimension item as (item_key, item_name, brand, type, supplier(supplier_key, supplier_type))

define dimension branch as (branch_key, branch_name, branch_type)

define dimension location as (location_key, street, city(city_key, province_or_state, country))

Định nghĩa lƣợc đồ dải thiên hà đƣợc thể hiện trong ví dụtrên nhƣ sau:

define cube sales [time, item, branch, location]:

dollars_sold = sum(sales_in_dollars), avg_sales = avg(sales_in_dollars), units_sold = count(*)

define dimension time as (time_key, day, day_of_week, month, quarter, year)

define dimension item as (item_key, item_name, brand, type, supplier_type)

define dimension branch as (branch_key, branch_name, branch_type)

define dimension location as (location_key, street, city, province_or_state, country)

define cube shipping [time, item, shipper, from_location, to_location]: dollar_cost = sum(cost_in_dollars), unit_shipped = count(*)

define dimension time as time in cube sales

define dimension item as item in cube sales

define dimension shipper as (shipper_key, shipper_name, location as location in cube sales, shipper_type)

define dimension from_location as location in cube sales

define dimension to_location as location in cube sales

Thuộc tính độ đo trong lƣợc đồ đƣợc là một hàm đƣợc tính toán trên những dữ liệu đã đƣợc tích hợp lại dựa trên những cặp giá trị theo chiều cho trƣớc. Thuộc tính độđo có thể thuộc một trong ba loại nhƣ sau:

88

- Phân phối: nếu hàm có thể đƣợc tính theo phƣơng cách phân phối. Ví dụ nhƣ các hàm count(); sum(); min(),max().

- Đại số: nếu nó có thểđƣợc tính từcác đối sốthu đƣợc bằng cách áp dụng các chức năng

phân phối tổng hợp. Ví dụ: avg()=sum()/count(), min_N(), standard_deviation(). - Loại khác nếu nhƣ không phải đại số. Ví dụ median(),mode(),rank()

Các loại hàm phân phối và đại số thích hợp một cách lý tƣởng cho việc tính toán các khối dữ liệu bởi chúng phân mảnh nhỏhơn đƣợc, phƣơng thức áp dụng tính toán ở mức thấp rồi tích hợp lên

mức cao đƣợc áp dụng dễdàng đối với các hàm loại này. Việc tính toán các độ đo ở mức độ chi

tiết hơn (sẽđƣợc xem xét đến trong phần cài đặt kho dữ liệu) sẽđƣợc sử dụng lại trong quá trình

tính toán ở các cấp chi tiết cao hơn. Mặt khác, các hàm thuộc loại khác khó tính toán một cách hiệu quảnhƣ vậy, chỉthƣờng có thể tính toán xấp xỉ một cách hiệu quả.

Khái niệm phân cấp

Các phân cấp khái niệm cho phép dữ liệu có thể đƣợc xử lý tại các mức trừu tƣợng khác nhau. Ta cùng xét ví dụ cho khái niệm phân cấp với một khối dữ liệu ba chiều đƣợc thể hiện trong hình

vẽdƣới đây bao gồm các chiều thể hiện sản phẩm (Product), thời gian là các tháng (month) và vị

trí địa lý của sản phẩm là vùng miền sản xuất (Region). Mỗi một chiều dữ liệu có thể có các phân cấp khác nhau để thể hiện các mức độ trừu tƣợng khác nhau của dữ liệu. Ở ví dụ này, chiều dữ

liệu Product có một phân cấp IndustryCategory Product để thể hiện một sự tổng quát hóa(summaried) hay chi tiết hóa các dữ liệu trong một chiều. Ý nghĩa của phân cấp này nói rằng: một ngành công nghiệp (Industry) thì có nhiều loại sản phẩm (Category) và mỗi loại sản phẩm thì có nhiều sản phẩm khác nhau vì thế khi biết sốlƣợng hàng bán đƣợc của mỗi sản phẩm thì sẽ

tổng hợp đƣợc số hàng bán đƣợc của mỗi loại sản phẩm, cũng nhƣ tổng hợp đƣợc số hàng bán

đƣợc của mỗi ngành công nghiệp, nhờ phân cấp chúng ta thiết kế ra cho kho dữ liệu.

Tƣơng tựnhƣ vậy, ta thiết kế một phân cấp cho chiều Region nếu nhƣ chúng ta muốn phân tích

dữ liệu cho chiều này ở các mức chi tiết (trừu tƣợng) khác nhau. Cụ thể phân cấp nhƣ sau:

RegionCountryCityOffice. Ý nghĩa của phân cấp này nói rằng: mỗi vùng địa lý trên thế

giới có nhiều nƣớc, mỗi nƣớc có nhiều thành phố, và mỗi thành phố có thể có một hoặc nhiều

văn phòng đại diện của công ty đó. Vì thế, nếu biết sốlƣợng tiền lãi thu đƣợc của mỗi văn phòng

89

lý. Phân cấp cho chiều thời gian từ năm đến ngày đƣợc thể hiện trong hình vẽ dƣới đây

Nhờ có phân cấp, chúng ta biết đƣợc mức độ chi tiết của dữ liệu trong từng chiều của kho dữ liệu và thiết kế đƣợc cách tổng hợp dữ liệu sử dụng cho việc phân tích từ mức cao tới mức thấp hay

ngƣợc lại.

Các thao tác cơ bản của xử lý phân tích trực tuyến

Xử lý phân tích trực tuyến bao gồm các thao tác cơ bản sau đây

- Cuộn lên (Drill-up): dùng để tổng hợp dữ liệu từ mức thấp lên mức cao. Thao tác đƣợc

dùng khi tổng hợp dữ liệu ở các mức độ khác nhau từ thấp đến cao trong một phân cấp

của một chiều nào đó hoặc khi muốn giảm chiều dữ liệu, cung cấp dữ liệu tổng hợp theo

mộtsố lƣợng chiều ít hơn số lƣợng chiều dữ liệu ban đầu của khối dữ liệu (sẽ xem xét ví

dụ minh họa sau)

- Khoan xuống (Drill-down): ngƣợc với thao tác cuộn lên, dùng để xem dữ liệu ở mức độ

chi tiết hơn của một phân cấp theo một chiều nào đó hoặc khi muốn tăng số chiều của dữ liệu, xem chi tiết theo số lƣợng chiều nhiều hơn dữ liệu hiện tại.

- Cắt ngang (dice) và cắt dọc (slide): giống nhƣ phép chiếu và phép chọn trong đại số quan

hệ

- Xoay (pivot): dùng để định hƣớng hay xoay lại khối dữ liệu theo một số chiều mà ngƣời

sử dụng quan tâm, hoặc để thể hiện biểu diễn dữ liệu một cách trực quan, chuyển dạng biểu diễn 3 chiều thành một chuỗi các biểu diễn 2 chiều.

- Các thao tác khác: xuất phát từ những thao tác cơ bản trên

o Khoan chéo (Drill across): bản chất giống thao tác khoan xuống và cuộn lên

90

nhiều bảng Fact có chung một số thuộc tính (chiều) để cuộn lên xuống ở các mức

khác nhau

o Khoan xuyên suốt (Drill through): cuộn lên từ đáy của khối dữ liệu lên đến mức

các bảng quan hệ đầu cuối (sử dụng ngôn ngữ SQL để thực hiện)

Để thực hiện một truy vấn trong kho dữ liệu chúng ta có thể sử dụng một mô hình mạng hình sao (Star-Net) để thiết lập câu lệnh. Xét ví dụ trong hình vẽdƣới đây để hiểu đƣợc mô hình này

Giả sử cho sẵn một kho dữ liệu có các 8 chiều nhƣ hình vẽ trên bao gồm: Time (thời gian),

Shipping Method (phuơng thức chuyển hàng), Customer Orders (các loại đơn đặt hàng của

khách hàng), Customers (Khách hàng), Product (Sản phẩm), Organization (loại tổ chức bán hàng), Promotion (loại khuyến mại), Location (vị trí bán hàng). Một số chiều có phân cấp đƣợc thể hiện trong hình vẽ, nhƣ chiều Time có phân cấp theo annually (hàng năm), qtrly (hàng quí),

daily (hàng ngày), chiều Organization đƣợc phân cấp thành các Division (chi nhánh), District

(một nhóm ngƣời), Sales Person (ngƣời bán hàng), Customer Orders đƣợc phân cấp thành mua

theo Hợp đồng (Contracts) và mua theo từng đơn đặt hàng một (Order) v.v…

Chúng ta cần trả lời một câu truy vấn nhƣ sau: hãy tính số tiền thu đƣợc của việc bán hàng theo mỗi nhóm sản phẩm, của từng nhóm ngƣời, của từng nƣớc, hàng quí và của từng hợp đồng đƣợc

đặt mua. Câu truy vấn này sẽ cần lấy dữ liệu theo 5 chiều là Product, Organization, Region,Time và Customer Orders, trong đó mỗi chiều đều có phân cấp dữ liệu ở mức độ chi tiết khác nhau.

91

Organization là District (vì theo từng nhóm ngƣời), ở chiều Location là Country (vì theo từng

nƣớc), ở chiều Time thì là Qtrly, ở chiều Customer Orders là Contracts (vì theo từng hợp đồng), câu truy vấn lấy dữ liệu ở 5 chiều trong tổng số 8 chiều và ở các mức nhƣ trên nên đƣợc thể hiện

bởi một hình đa giác 5 cạnh nhƣ trên hình vẽ, đấy chính là mô hình mạng sao của truy vấn. Quay

trở lại thiết kế của kho dữ liệu, bảng Fact chứa dữ liệu với số chiều lớn nhất và ở mức thấp nhất

ở mỗi chiều có phân cấp. Qui chiếu vào mô hình mạng sao trên thì bảng Fact chính là tâm điểm của sơ đồ trên.

3.3 Kiến trúc của kho dữ liệu Tiến trình thiết kế một kho dữ liệu

Một phần của tài liệu Bài giảng kho dữ liệu và khai phá dữ liệu (2014) (Trang 84 - 93)

Tải bản đầy đủ (PDF)

(176 trang)