Cơ sở dữ liệu đa chiều hiện tại

Một phần của tài liệu Mô hình hóa dữ liệu đa chiều (Trang 53)

4. Mơ hình cơ sở dữ liệu đa chiều (Modeling Multidimensional Databases)

4.1.Cơ sở dữ liệu đa chiều hiện tại

4.1.1. Ví dụ

Xét một cơ sở dữ liệu bao gồm các dữ liệu về bán hàng, giá bán của các sản phẩm, ngày bán và người cung cấp thực hiện bán. Giá trị của việc bán hàng được qui định theo chức năng bởi ba thuộc tính khác nhau. Bằng trực quan, mỗi thuộc tính cĩ thể “biến thiên” và qui định theo giá bán. Hình 4.1 minh họa “đa chiều”

Hình 4.1 Ví dụ khối dữ liệu.

4.1.2. Thuật ngữ

Các thuộc tính được xác định là: product, date, supplier được xem như là các chiều trong khi các thuộc tính xác định như là sales được xem như dữ kiện (measures) (các chiều được gọi là các thuộc tính xác định và các sự kiện được gọi trị số hoặc tổng các thuộc tính trong tài liệu cơ sở dữ liệu thống kê [sho82])

Khơng cĩ phương pháp chính thức để quyết định các thuộc tính nào sẽ tạo nên các chiều và các thuộc tính nào tạo nên các sự kiện . Điều đĩ là thiếu sĩt trong việc quyết định thiết kế cơ sở dữ liệu.

Các chiều luơn luơn kết hợp với hệ thống phân cấp mà định rõ khối tập hợp các mức và từ đĩ chi tiết khung nhìn dữ liệu. Cụ thể như là ngày tháng quí

năm (day month quater year) là một hệ thống phân cấp của ngày (date) nĩ định rõ các mức khác nhau. Tương tự, tên sản phẩm kiểu loại (product name

type category) là một hệ thống phân cấp trên chiều sản phẩm (product).

Một phân tích viên cĩ thể chỉ muốn thấy một tập hợp con của dữ liệu và do đĩ cĩ thể xem một số thuộc tính và bên trong mỗi thuộc tính được chọn cĩ thể hạn chế giá trị của lợi ích. Theo cách cơ sở dữ liệu đa chiều, các phép tốn được gọi là quay (pivoting) (làm xoay khối để thấy được chi tiết mặt) và slicing-dicing (chọn một số

tập hợp con của khối). Khung nhìn đa chiều cho phép các hệ thống phân cấp liên kết với mỗi chiều cũng được nhìn nhận trong cách thức logic. Tập hợp chiều sản phẩm từ tên sản phẩm đến loại sản phẩm được xem như là biểu thị phép tốn roll-up trong cơ sở dữ liệu đa chiều. Ngược lại với roll-updrill-down, nĩ cho biết thơng tin chi tiết của mỗi điểm tổng hợp. Do đĩ, drilling – down chiều sản phẩm từ loại sản phẩm

đến kiểu sản phẩm làm cho việc bán từng kiểu sản phẩm tương ứng với từng loại

sản phẩm. Thêm vào đĩ, drill-down sẽ bán từng sản phẩm riêng biệt. Drill-down là cốt yếu bởi vì người sử dụng thường chỉ muốn xem dữ liệu tổng hợp đầu tiên và xem dữ liệu chi tiết một cách cĩ chọn lọc.

4.1.3. Ví dụ

Chúng ta đưa ra một số câu truy vấn dưới đây nhằm cung cấp thêm vào những

câu truy vấn đa chiều. Những câu truy vấn này sử dụng cơ sở dữ liệu trong ví dụ

4.1.1 và các hệ phân cấp cần thiết khác trên chiều sản phẩm và thời gian.

- Đưa ra tổng số hàng bán được của mỗi sản phẩm trong từng quí năm 1995 (ở đây quí là một hàm ngày tháng)

- Với người cung cấp “Ace” và cho mỗi sản phẩm, đưa ra các giai đoạn tăng

trưởng của việc bán hàng trong tháng 1/1995 so sánh với thời điểm 1/1994. - Với mỗi sản phẩm đưa ra thị trường, phân phối theo loại hiện tại – sản phẩm

đưa ra trên thị trường phân phối theo loại trong tháng 10/1994

- Chọn 5 nhà cung cấp đầu tiên cho mỗi loại sản phẩm năm trước làm cơ sở để tổng kết bán hàng.

- Với từng loại sản phẩm, chọn tổng bán trong tháng này của sản phẩm mà sản phẩm đĩ đã bán cao nhất trong tháng qua.

- Chọn các nhà cung cấp bán được sản phẩm cao nhất tháng trước.

- Chọn các nhà cung cấp mà tổng bán của tất cả sản phẩm bán được tăng trong 5 năm qua.

- Chọn các nhà cung cấp mà tổng bán mỗi loại sản phẩm bán tăng trong 5 năm qua.

4.1.4. Thực hiện xây dựng

Cĩ hai phương thức chính dùng để xây dưng cơ sở dữ liệu đa chiều. Một phương thức là duy trì dữ liệu như một ma trận k chiều làm cơ sở trên cấu trúc lưu trữ chuyên biệt khơng liên kết để lưu trữ dữ liệu k chiều. Thiết kế cơ sở dữ liệu này dành riêng cho tất cả các tập hợp. Trong khi xây dựng các cấu trúc lưu trữ, các tập hợp này liên kết với tất cả các cuộn (roll-ups) cĩ thể được tính tốn trước và lưu trữ. Vì vậy, roll-ups và drill- downs được trả lời trong thời điểm tương tác. Nhiều sản phẩm cần phải chấp nhận phương thức này - ví dụ như Arbor Essbase và IRI Express[IRI].

Một phương thức khác sử dụng quan hệ sau (relational backend) trong đĩ các phép tốn trên khối dữ liệu được dịch sang các câu truy vấn quan hệ (cĩ thể làm nâng cao ngơn ngữ SQL). Các sắp xếp xây dựng trên các khung nhìn hiện thực được sử dụng hầu hết trong nhiều hệ thống. Phương thức này cũng được kiểm chứng ở một số sản phẩm như là Redbrick [Eri95] và Microstrategy [Mic].

4.1.5. Chức năng yêu cầu thêm vào

Chúng ta tin rằng hệ thống cơ sở dữ liệu đa chiều phải cung cấp các chức năng thêm vào, điều đĩ hoặc thiếu hoặc hạn chế trong các sản phẩm hiện nay: (adsbygoogle = window.adsbygoogle || []).push({});

Xử lý đối xứng khơng những trên tất cả các chiều mà cịn trên các

dữ kiện. Điều đĩ cĩ nghĩa là các lựa chọn và các tập hợp cần phải chấp nhận trên tất cả các chiều và dữ kiện. Ví dụ, xét một câu truy vấn để tìm tổng hàng bán ra cho mỗi sản phẩm với giá bán trong khoảng 0-999, 1000-9999. Ở đây giá bán ra của một sản phẩm, bên cạnh nĩ được xem như là một dữ kiện và cũng là một nhĩm thuộc tính. Nhiều câu truy vấn thường hay yêu cầu phân loại trên một “dữ kiện”. Việc xét các chiều và các dữ kiện khơng đồng đều làm cho nhiều câu truy vấn trong cĩ sản phẩm hiện tại thơ cứng . Dự kiến OLAP trong hội nghị API [OLA96] cung cấp tất cả các dữ kiện để đặt vào một chiều của khối. Tuy nhiên, dự kiến này giữ một phân biệt nhất định giữa các dữ kiện và các chiều và vấn đề khơng giải quyết là tập hợp trên dữ kiện.

Hỗ trợ hệ thống đa phân cấp theo mỗi chiều. Ví dụ như, trong ví dụ

khách hàng). Một phân cấp khác là phân cấp cơ sở trên mà cơng ty sản xuất sản phẩm và chủ cơng ty đĩ, cụ thể là, sản phẩm hãng sản xuất tổng cơng ty

(product manufacturer parent company) (chú ý đến phân tích một chợ dự trữ). Roll-ups/drill-downs cĩ thể chấp nhận một trong các phân cấp.

Hỗ trợ tính tốn các tập hợp riêng biệt. Ví dụ như, với mỗi sản phẩm

cả tổng bán ra và trung bình bán ra là những con số đáng quan tâm.

Hỗ trợ truy vấn tại nơi tính tốn theo kiểu “one operation at a

time”. Hiện nay, một người dùng tính tốn trên một khối đạt được khối kết quả. Sau đĩ người sử dụng thực hiện phép tính tiếp theo. Tuy nhiên, khơng phải tất cả các khối trung gian là đáng chú ý với người dùng. Một tập hợp các phép tốn cơ sở định nghĩa đúng ngữ nghĩa làm cho khả năng tính tốn bị thay thế bởi một mơ hình câu truy vấn. Do đĩ, việc cĩ cơng cụ để tạo các phép tốn cho phép xây dựng các câu truy vấn đa chiều phức tạp và thực hiện nhanh hơn cĩ người sử dụng chỉ rõ mỗi bước. Phương thức này cũng hiệu lực hơn và ít phép tốn.

4.2. Mơ hình dữ liệu đề xuất4.2.1. Mơ hình 4.2.1. Mơ hình

Bây giờ chúng ta thảo ra mơ hình cơ sở dữ liệu đa chiều như trong đề án với các phép tốn cĩ chức năng hiện tại cung cấp bởi các sản phẩm cơ sở dữ liệu đa chiều và thêm vào đĩ các chức năng mong muốn đề cập ở trên. Thiết kế của chúng ta được thực hiện bởi những cách nghiên cứu dưới đây:

 Nghiên cứu các chiều và các dữ kiện theo đối xứng.

 Nâng cao tính linh hoạt (đa phân cấp, khối tập hợp đặc biệt)

 Hạn chế số lượng phép tốn

 Hướng theo khối quan hệ nếu cĩ thể. Chuyển các phép tốn sang truy

vấn SQL

Trong mơ hình logic của chúng ta, dữ liệu được tổ chức trong một hoặc nhiều khối đa chiều. Một khối cĩ các thành phần sau:

k chiều, và với mỗi chiều cĩ tên Di, một phạm vi xác định domi từ các giá trị cĩ được.

 Các thành phần định nghĩa như là một ánh xạ E(C) từ tập domi x ...

domk đến n-tuple, 0 hoặc 1. Vì vậy, E(C)(d1 . . . dk) qui vào thành phần này tại “vị trí” d1,…dk của khối C.

Vì thế, mơ hình khơng yêu cầu chiều phải được sắp xếp, miền xác định gián đoạn.

 Bộ phận của siêu dữ liệu là một n-tuple của các định danh (names) mà

mỗi một định danh miêu tả một thành phần của thành phần n-tuple của khối.

Chú ý rằng, nếu khối này khơng cĩ các thành phần n-tuple thì sự mơ tả là tuple rỗng.

Các thành phần của khối cĩ thể là 0 hoặc 1 hoăc một n-tuple <X1,…Xn>. Nếu thành phần này tương ứngvới E(C)(d1,…,dk) là 0 thì giá trị nối các chiều đĩ là khơng tồn tại trong cơ sở dữ liệu này. Là 1 cho biết sự tồn tại của kết hợp riêng biệt đĩ. Cuối cùng, một n-tuple cho biết rằng thơng tin thêm vào là cĩ giá trị cho liên kết các chiều này. Nếu một số thành phần của khối là 1 thì khơng cĩ thành phần nào cĩ thể là một n-tuple và ngược lại. Chúng ta chỉ mơ tả các giá trị theo một chiều của khối mà tối thiểu một thành phần của khối khác 0. Nếu tất cả các thành phần của khối là

0 thì khối là rỗng. Thêm vào đĩ, nếu miền domi của chiều Di khơng cĩ giá trị thì khối cũng bị xem như rỗng.

Trong mơ hình của chúng ta khơng cĩ sự phân biệt giữa dữ kiện và chiều. Vì vậy, trong ví dụ 4.1.1, bán hàng là một chiều khác (khơng giống như trong hệ trống cơ sở dữ liệu đa chiều mà xem bán hàng là một “dữ kiện” hoặc “thành phần”). Lưu ý rằng đây là một mơ hình logic và khơng ép buộc cơ chế lưu trữ. Vì vậy, một khối trong mơ hình dữ liệu của chúng ta cĩ thể cĩ nhiều chiều logic hơn số chiều dùng để lưu trữ vật lí khối trong hệ thống lưu trữ đa chiều.

4.2.2. Các phép tốn

Bây giờ chúng ta bàn đến phép tốn đa chiều. Chúng ta minh họa các phép tốn sử dụng một tập hợp 2 chiều của khối đã trình bày trong ví dụ 4.1.1. Chúng ta khơng

quan tâm đến chiều Supplier và chỉ hiển thị chiều product, datesales trong Hình 4.2. Lưu ý rằng trong mơ hình này, sales khơng phải là một dữ kiện nhưng chiều khác, mặc dù chỉ là logic. (adsbygoogle = window.adsbygoogle || []).push({});

Hình 4.2.Khối logic trong đĩsaleslà một chiều.

Để tính tốn trên khối logic, chiều bán hàng (sales) cĩ thể phải được bao phủ trong khối như thế giá trị bán coi như đã được xác định bởi chiều product và chiều

date. Chúng ta mơ tả điều đĩ thực hiện thế nào. Bây giờ chúng ta sẽ sử dụng khối với giá trị bán hàng (sales) như là thành phần đơn của các thành phần của khối. Theo đĩ, giá trị <15> với “date = mar 4” và “product=p1” trong hình 4.3 mơ tả rằng thành phần trong khối logic Hình 4.2 tương ứng với “date = mar 4” và “product=p1” và “sales=15” là “1”. Chúng ta trình bày dạng siêu dữ liệu như là một sự chú giải trong khối.Vì vậy, <sales> trong hình 4.3 mơ tả rằng mỗi thành phần trong khối là một giá trị bán.

Date Mar 4 Feb 3 Feb 2 Jan 1 25 20 15 10 Sales p1 p2 p3 p4 Product

Hình 4.3 Phép mở rộng trên chiều Product

Chúng ta định nghĩa các phép tốn sử dụng một khối C với k chiều. Chúng ta qui các chiều là D1,….Dk. Chúng ta sử dụng Di cũng xem như là miền của chiều Di trong tình huống cần dùng rõ ràng; mặt khác, chúng ta xem miền của chiều Didomi(C).

Chúng ta sử dụng các kí tự thường như: a, b, c để chỉ các hằng số.

Các giá trị của chiều trong mơ hình dữ liệu của chúng ta về mặt chức năng xác định các thành phần của khối. Như một kết quả ứng dụng của phép tốn, nhiều hơn giá trị một thành phần cĩ thể vạch ra thành phần tương tự (tức là liên kết tương tự của các giá tri của các thuộc tính chiều) của khối trả lời. Các giá trị của các thành phần này được hợp lại thành một giá trị để duy trì phụ thuộc chức năng bằng cách định rõ cái mà chúng ta gọi là thành phần chức năng liên kết, kí hiệu là felem.

Đơi khi chúng ta cũng hợp nhất giá trị theo chiều. Chúng ta gọi các chức năng sử dụng cho mục đích này là các chức năng hợp nhất chiều, kí hiệu là fmerge.

a. Phép tốn mở rộng (Push)

Phép tốn mở rộng (xem hình 4.3) được sử dụng để chuyển các chiều sang các

thành phần mà cĩ thể sử dụng khéo léo chức năng felem. Phép tốn này là cần thiết để cho phép chuyển các chiều và các dữ kiện được xem như đều.

• Vào: C, Di

• Ra: C với mỗi thành phần non-0 mở rộng bởi một thành phần thêm vào, giá

trị của chiều Di cho thành phần đĩ. Nếu một thành phần khơng phải là một n- tuple nhưng là “1” thì nĩ chuyển thành một 1-tuple mà bao gồm giá trị tương ứng của chiều.

• Tính tốn: push(C, Di)=Ca.

E(Ca)(d1,…,dk) = gdi trong đĩ g = E(C)(d1,…,dk). Tốn tử ⊕ được xác định là bằng 0 nếu g = 0, bằng <di> nếu g = 1 và trong các trường hợp cịn lại nĩ nối 2 tuple (g và <di> ).

Phép tốn Pull là chuyển đổi của phép push. Pull tạo lập một chiều mới cho việc xác lập bộ phận của các thành phần (elements). Phép tốn này hữu dụng để chuyển một thành phần thành một chiều vì vậy thành phần này cĩ thể sử dụng cho việc kết hợp và nối . Phép tốn này cũng cần thiết cho việc xử lý tính đối xứng của các chiều và các sự kiện.

Hình 4.4 Chuyển số đầu của mỗi thành phần thành chiều sales

• Vào: C, chiều mới tên D, số nguyên i.

• Ra: Ca với chiều thêm vào D mà tính được bằng cách lấy ra phần tử thứ i của mỗi phần tử của ma trận.

Điều kiện: tất cả các phần tử non-0 của Cn-tuples bởi vì mỗi phần tử non- 0 cần ít nhất 1 thành phần để cĩ thể tạo lập một chiều mới.

• Tính tốn: Pull(C, D, i) = Ca, , l i n D kể từ chiều thứ k+1 của khối

Domk+1(Ca)(d1,…,dk, ei) = <e1,…,ei-1,ei+1,…en> nếu E(C)(d1,…,dk) = <e1,…,ei, …,en>, ngược lại E(Ca)(d1,…,dk,ei) = 0.

Lưu ý: Nếu n =1 thì phần tử của Ca là ‘1’ hoặc ‘0’.

c. Phép tốn xĩa chiều (Destroy)

Thơng thường chiều của một khối nào đĩ cần giảm. Phép tốn này xĩa chiều D

mà trong đĩ miền của nĩ cĩ giá trị đơn. Sự xuất hiện của giá trị đơn đưa đến k-1

chiều cịn lại, cĩ một khối k-1 chiều duy nhất. Vì vậy, nếu chiều bị loại ra thì kết quả k-1 khoảng trống chiều bị chiếm bởi một khối duy nhất

• Vào: C, chiều cĩ tên Di (adsbygoogle = window.adsbygoogle || []).push({});

• Ra: Ca khơng cĩ chiều Di

Điều kiện: Di chỉ cĩ một giá trị v

• Tính tốn: Destroy(C, Di) = Ca

Ca cĩ k-1 chiều D1 . . . Di-1, Di+1, . . . , Dk,

E(Ca)(d1 . . . di-1,di+1, . . . , dk) = E(C)(d1, . . . ., dk).

Một chiều đa giá trị khơng thể xĩa ngay lập tức bởi vì sau đĩ các phần tử hơn nữa chức năng đã được xác định rõ bởi các giá trị của chiều. Một chiều đa giá trị được xĩa bởi lần đầu tiên thi hành một phép tốn kết hợp (miêu tả sau) và sau đĩ thi hành phép tốn trên. Chý ý, nếu k =1 chúng ta lấy zero dimensional cube hoặc một đại lượng vơ hướng giống như kết quả của phép tốn xĩa.

d. Phép tốn giới hạn (Restriction).

Phép tốn giới hạn thực hiện trên một chiều của khối và loại bỏ các giá trị khối

Một phần của tài liệu Mô hình hóa dữ liệu đa chiều (Trang 53)