Đề tài Mô hình hóa dữ liệu đa chiều

A. MỞ ĐẦU 2 B. NỘI DUNG 3 1. Nền tảng cho cơ sở dữ liệu đa chiều (A Foundation for Multi-Dimensional Databases) 3 1.1. Giới thiệu 3 1.2. Mô hình dữ liệu đa chiều(Multi-Dimensional Data Model) 5 1.3.Toán tử đại số(Algebra) 9 1.4. Phép tính (Calculus) 17 2. Ứng dụng kỹ thuật phân mảnh theo chiều dọc trong thiết kế logical của cở sở dữ liệu đa chiều (Applying vertical fragmentation techniques in logical design of Multidimensional Databases) 20 2.1. Giới thiệu 20 2.2. Kiến thức nền(Background) 22 2.2.1 Khối và mô hình(Cubes and Patterns) 22 2.2.2 The Workload 24 2.2.3 Các view 25 2.3. Phân mảnh dọc của các view 26 2.3.1 Problem Statement 27 2.3.2 Hàm chi phí (Cost Function) 30 2.3.3. Tiếp cận nhánh và cận (Branch-and-Bound) 31 2.4 . Test thử nghiệm 33 3. Một trong hai phương pháp mới cho mô hình ROLAP 36 3.1. Giới thiệu: 36 3.2. Phương pháp ROLAP truyền thống: 38 3.2.1. Lược đồ hình sao: 39 3.2.2. Lược đồ bông tuyết: 40 3.2.3. Tóm tắt và kết luận: 41 3.3. Cách thiết kế Object-Relational: 44 3.3.1. Định nghĩa kiểu: 45 3.3.2. Các định nghĩa Bảng Typed: 46 3.3.3. Thao tác dữ liệu: 47 3.4. Tóm tắt và kết luận: 49 4. Mô hình cơ sở dữ liệu đa chiều (Modeling Multidimensional Databases). 50 4.1. Cơ sở dữ liệu đa chiều hiện tại 52 4.1.1. Ví dụ 52 4.1.2. Thuật ngữ 52 4.1.3. Ví dụ 53 4.1.4. Thực hiện xây dựng 54 4.1.5. Chức năng yêu cầu thêm vào 54 4.2. Mô hình dữ liệu đề xuất 55 4.2.1. Mô hình 55 4.2.2. Các phép toán 57 4.3. Áp dụng các phép toán vào câu truy vấn. 65 4.3.1. Nhận xét 65 4.3.2. Áp dụng phép toán vào câu truy vấn 68 4.4 Kết luận và phương hướng. 70 C. KẾT LUẬN 72 D. TÀI LIỆU THAM KHẢO 74

doc74 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2249 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đề tài Mô hình hóa dữ liệu đa chiều, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
View xây dựng các nền tảng cho việc định nghĩa các nút phân loại ở cấp cao hơn. Việc định nghĩa một cách đệ quy này được minh họa như sau cho hệ thống phân loại phân cấp được mô tả trong hình sau: So sánh với phương pháp mô hình cổ điển(hình 3.4), chỉ những thuộc tính có giá trị trong bảng chiều mà nó được ứng dụng cho tất cả các phần tử chiều.Để địa chỉ chính xác các nét đặc trưng, các bảng chiều con tương ứng được sử dụng, mà các tên của chúng được cụ thể như các thể hiện của các thuộc tính phân loại. Hình 3.6 tóm tắt mô hình của sự phân loại phân cấp sử dụng cách hành động, được mô tả trong bài này. Tương tự hình 3.5(lược đồ bông tuyết), phương pháp của này cũng có thể được đơn giản hóa sự phức tạp. Hình 3.6: Bảng chiều tiêu biểu cho chiều sản phẩm (phương pháp thay thế) Để đặt nó vào bảng tóm tắt, trong trường hợp phương pháp cổ điển, câu truy vấn (vô nghĩa) như tìm tổng doanh thu của Home Appliances bởi ‘video system’ sẽ dẫn đến một sự tìm kiếm hết trên bảng chiều. Dẫn đến phần liên kết cho các bảng thực thể rỗng và cuối cùng là số 0. Trong phương pháp thay thế của chúng tôi, câu truy vấn trên sẽ bị loại bỏ vì Home Appliances không chứa trong chiều thuộc tính ‘video system’. 3.3. Cách thiết kế Object-Relational: Sự lựa chọn khác và cách tiếp cận mới để khắc phục hạn chế của lược đồ hình sao/ bông tuyết truyền thống là sử dụng kỹ thuật Object-relational. Từ khi các khái niệm Object-relational được hỗ trợ về nội dung và cài đặt theo cách rất cụ thể-hệ thống, chúng tôi đưa ra cách thiết kế một lược đồ Object-relational trên cơ sở khả năng của hệ thống cơ sở dữ liệu DB2/UDB của IBM. Thiết kế một lược đồ Object-relational trong DB2 được chia thành hai giai đoạn. Bước thứ nhất, chúng tôi phải xác định phân loại kiểu và những tham chiếu dựa trên các kiểu. Dựa theo những kiểu này, chúng tôi có thể tạo đối tượng các bảng đầy đủ(cũng có thể xem là: Bảng Types). Ngoài ra, đối lập với phương pháp đưa ra trong phần trước, chúng tôi phải theo tiến trình từ trên xuống khi định nghĩa lược đồ object-relational của các cấu trúc chiều. 3.3.1. Định nghĩa kiểu: Siêu kiểu của một chiều chỉ nắm giữ các thuộc tính chiều chung nhất và tất cả các thuộc tính phân loại có thể. Cho ví dụ vào của chiều sản phẩm, câu lệnh DDL sau khai báo kiểu chung của Articles_T, mà ở đó các hàng hóa đơn lẻ được xác định bởi thuộc tính ArticleID. Create type Articles_T as (brand varchar(30)), Area varchar(30), Group varchar(30), Family varchar(30)); Tương tự như khái niệm cổ điển của kết thừa, các lớp cụ thể của các sản phẩm được suy ra từ các lớp khái quát hơn của các sản phẩm và các thuộc tính cụ thể của chiều được thêm vào kiểu được suy ra. Sau đây là các lệnh SQL để định nghĩa các kiểu con cần thiết của sản phẩm trong hệ thống phân cấp. Đối với mỗi kiểu con, từ khóa UNDER chỉ đến Siêu kiểu tương ứng. create type ConsElectr_T under Articles_T as ( ... ); create type WhiteGoods_T under Articles_T as ( ... ); create type Video_T under ConsElectr_T as(vidsys varchar(30) ); create type HomeAppl_T under WhiteGoods_T as(load varchar(30) ); create type HomeVCR_T under Video_T as (RC char(1) ); create type Camcorder_T under Video_T as (BLT varchar(5) ); create type Washer_T under HomeAppl_T as (Water varchar(5) ); create type Dryer_T under HomeAppl_T as (Temp short) ; Một khi chúng tôi định nghĩa các kiểu của cấu trúc chiều, ví dụ cho chiều Products và chiều Shops, chúng tôi có thể tạo một kiểu cho bản thực thể. Mặc dù điều này không là bắt buộc để thiết kế lược đồ của bảng thực thể sử dụng công nghệ của Object-relational, nhưng chúng ta có thể đạt được các lợi ích khi truy vấn cớ sở dữ liệu sau này. Do đó kiểu của bảng thực thể chứa hai tham chiếu tới các Siêu kiểu của các chiều tham gia. create type Facts_T as ( ArticleID REF(Articles_T), ShopID REF(Shops_T), Period date, Sales integer, Stock integer, Price integer); Sự xây dựng kiểu bảng này rất có giá trị vì nó tạo ra được các tiện ích sau: Xem xét vị trí mà chúng ta cài đặt chợ dữ liệu cho một nhóm sản phẩm cụ thể, ví dụ video equipment. Bây giờ chúng ta có thể tạo một kiểu của một bảng thực thể tùy ý cho phép chỉ tham chiếu tới các hàng hóa thuộc lớp video. Do đó chúng ta sẽ thay thế tham chiếu tới kiểu các hàng hóa khái quát bằng một tham chiếu tới kiểu cụ thể của Video_T (... ArticleID REF(Video_T), ...). Cách thiết kế này chắc chắn ở mức lược đồ đã có rằng bảng thực thể cho chợ dữ liệu này sẽ không bao giờ chứa sản phẩm khác hàng hóa Video. 3.3.2. Các định nghĩa Bảng Typed: Sau khi chúng ta định nghĩa được phân cấp kiểu cho lược đồ phân loại, chúng sang bước tạo đối tượng cụ thể của các kiểu này, kết quả đươc gọi là các bảng Typed. Tương tự như định nghĩa kiểu, chúng tôi theo quá trình từ trên xuống. Để minh họa về Siêu kiểu, chúng ta cần đưa ra một thuộc tính định danh đối tượng. Ví dụ tiếp theo, chúng ta sử dụng ArticleID như thuộc tính tham chiếu (hoặc thuộc tính khóa chính trong thuật ngữ quan hệ), mà nội dung của nó được cho như người sử dụng đã phát sinh(trái ngược với hệ thống phát sinh). Tất cả các bảng con phụ thuộc được tạo ra theo kiểu của chúng và tham chiếu tới Siêu khóa trực tiếp của chúng. create table Articles of Articles_T (REF IS ArticleID user generated); create table ConsElectr of ConsElectr_T under Articles inherit select privileges; create table WhiteGoods of WhiteGoods_T under Articles inherit select privileges; create table Video of Video_T under ConsElectr inherit select privileges; create table HomeAppl of HomeAppl_T under WhiteGoods inherit select privileges; create table HomeVCR of HomeVCRF_T under Video inherit select privileges; create table Camcorder of Camcorder_T under Video inherit select privileges; create table Washer of Washer_T under HomeAppl inherit select privileges; create table Dryer of Dryer_T under HomeAppl inherit select privileges; Một lần nữa ta có thể thấy sự xây dựng này rất có giá trị vì nó cung cấp thuận lợi to lớn cho việc giải quyết các chiều thay đổi. Xem xét lại chiều sản phẩm. Các hàng hóa mới có thể được thêm, một số hàng hóa có thể bị phân loại lại và các sản phẩm khác có thể bị xóa bởi vì chúng không còn được bán nữa hoặc việc bán của chúng không còn được theo dõi. Tuy nhiên vì tất cả các hàng hóa của cùng kiểu, chúng ta có thể đơn giản tạo đối tượng một kiểu cụ thể nhiều lần. Mỗi bảng kết quả phản ánh trạng thái phù hợp của một hệ thống phân cấp và có thể được sử dụng để phân tích dữ liệu thực thể theo chiều thời gian phù hợp nào đó. Sau khi tạo ra các phân cấp chiều, chúng tôi tạo đối tượng bảng thực thể từ kiểu Facts_T. Hai khía cạnh phải được xem xét một cách rõ ràng. Trước hết mỗi thực thể nhận một định danh đối tượng phát sinh của một hệ thống. Mỗi tham chiếu được trỏ tới một bảng thích hợp, ví dụ như: ArticleID thì tham chiếu bảng Articles,không còn kiểu Articles_T nữa. create table Facts of Facts_T (ref is FactID system generated, ArticleID with options scope Articles, ShopID with options scope Shops); 3.3.3. Thao tác dữ liệu: Thiết kế theo mô hình OR của kho dữ liệu cơ sở dữ liệu cũng có một số tác động đến thao tác dữ liệu. Xét một câu lệnh chèn đơn giản vào chiều sản phẩm. Sự khác nhau duy nhất với thao tác chèn của quan hệ thuần túy là thêm vào của chứng thực hàng hóa tới bộ phận xác định chứng thực đối tượng cụ thể. Sau đây là một ví dụ về một hàng hóa camcorder và một Dryer. insert into Camcorders ( ArticleID, brand, vidsys, blt, family, group, area) values (Camcorders_T(’TR-75’), ’Sony’, ’HI8’, ’2h’, ’Camcorder’, ’Video’, ’ConsElectr’); insert into Dryers ( ArticleID, brand, load, temp, family, group, area) values (Dryers_T(’Duett’), ’Miele’, ’6kg’, ’37oC’, ’Dryer’, ’HomeAppl’, ’WhiteGoods’); Để đảm bảo sự ổn định của các tham chiếu, bây giờ chúng tôi có thể chèn các thực thể vào bảng thực thể. Một lần nữa chúng ta phải gộp các giá trị của các tham chiếu tới kiểu các bảng chiều tương ứng của chúng, nghĩa là các chứng thực hàng hóa được gộp vào Articles_T , các tên cửa hàng được gộp vào Shops_T. insert into Facts (FactID, ArticleID, ShopID, Period, Sales, Stock, Price) values (Facts_T(’1’), Article_T(’TR-75’), Shops_T(’TeVi’), ’1999-12-02’, 45, 22, 998); Khi truy vấn cơ sở dữ liệu chúng ta có thể tận dụng các tham chiếu mà chúng có thể được xem như các đường dẫn liên kết định nghĩa trước. Ví dụ như nhóm dữ liệu thực thể theo khu vực(từ bảng các Shop) và các nhóm các sản phẩm (từ bảng các Article) có thể được sử dụng kí hiệu cụ thể’->’ mà không có liên kết nào. select f.ShopID->region, f.ArticleID->group, SUM(sales) from Facts f group by f.ShopID->region, f.ArticleID->group Tuy nhiên, chúng tôi không khôi phục lại các thuộc tính cụ thể sử dụng thiết lập này. Nhóm theo Video Systems cho tất cả video equipment sẽ được biểu diễn với ’Video’ như bảng chiều chính xác như sau: select f.ShopID->region, a.vidsys, SUM(sales) from Facts f, Articles a where f.ArticleID = a.ArticleID group by f.ShopID->region, a.vidsys Tóm lại, kỹ thuật object-relational cung cấp một công cụ mạnh mẽ cho việc thiết kế lược đồ trong các môi trường kho dữ liệu. Đặc biệt là thiết kế một hệ thống phân cấp thực với các thuộc tính chiều và sự phân loại tìm ra một miêu tả phù hợp sử dụng các kỹ thuật thừa kế các kiểu và các bảng kiểu. Mở rộng sự biểu diễn object-relational cho bảng thực thể cho phép người thiết kế xác định một số loại cấu trúc khó khăn ở mức lược đồ. 3.4. Tóm tắt và kết luận: Bài báo này nói về vấn đề các thuộc tính chiều hợp lệ trong hệ thống phân cấp trong bối cảnh thiết kế lược đồ đa chiều. Chúng tôi chứng tỏ rằng phương pháp truyền thống của một mô hình quan hệ là không khả thi và đưa ra hai phương pháp khả thi cho vấn đề này. Ý tưởng chính của kỹ thuật được đề xuất thứ nhất là dựa trên the article of [SmSm77] . Xây dựng một hình tháp các khái niệm theo cách từ dưới lên sử dụng thường xuyên các khung nhìn(Views) quan hệ có thể được xem như sự mở rộng hoàn hảo của phương pháp lược đồ hình sao hoặc bông tuyết. Phương pháp thứ hai kiểu từ trên xuống được dựa trên các kỹ thuật object-relational . Chúng tôi giải thích vấn đề này bằng cách sử dụng các khái niệm của object- relational như: Các kiểu, các typed subtable, kế thừa trên các kiểu và các bảng, và các tham chiếu. Nhắc lại phương pháp này cho phép thiết kế một lược đồ linh hoạt. 4. Mô hình cơ sở dữ liệu đa chiều (Modeling Multidimensional Databases). Chúng ta đề xuất một mô hình dữ liệu và các phép toán đại số làm nền tảng ngữ nghĩa cho cơ sở dữ liệu đa chiều. Đặc điểm của mô hình đề xuất cung cấp vấn đề đối xứng không những cho tất cả các chiều mà còn cho dữ kiện. Các mô hình cung cấp hỗ trợ cho nhiều phân cấp dọc theo mỗi chiều và hỗ trợ tổng hợp các chiều. Các phép toán đề xuất phù hợp, cung cấp thêm, và các ứng dụng khép kín. Các phép toán này cũng cực tiểu trong hướng mà nó không thể biểu diễn theo quan điểm khác hoặc có thể cũng không được bỏ bất kỳ một trong những chức năng mà không bị mất. Nó có thể làm đặt tả khai báo và tối ưu hóa các câu truy vấn của cơ sở dữ liệu đa chiều đó là việc xác lập các phép toán hiện tại. Các phép toán đã được thiết kế để chuyển đổi sang SQL và có thể được thi hành hoặc trên đầu của hệ thống cơ sở dữ liệu quan hệ hoặc trong một mục đích đặc biệt kỹ thuật cơ sở dữ liệu đa chiều. Trong thực tế, nó cung cấp một giao diện lập trình ứng dụng đại số (API: application programming interface ) cho phép phân tách từ đầu đến cuối. Cuối cùng, mô hình đề xuất cung cấp khung làm việc trong việc nghiên cứu các cơ sở dữ liệu đa chiều và mở ra một số vấn đề cần nghiên cứu. Codd [CCS93] đặt ra cụm từ On-Line Analytical Processing (OLAP) để mô tả các yêu cầu cho việc tổng kết, hợp nhất, quan sát, áp đặt công thức và tổng hợp dữ liệu theo nhiều chiều. Phần mềm OLAP cho phép phân tích, quản lý, thực hiện để đạt được cái nhìn sâu sắc về hiệu suất của một doanh nghiệp thông qua truy cập nhanh chóng, dữ liệu tổ chức có thể xem dưới nhiều hình thức đa dạng, để phản ánh bản chất đa dạng dữ liệu trong doanh nghiệp [Col95]. Nó khẳng định rằng, hiện tại các hệ thống cơ sở dữ liệu quan hệ đã được thiết kế và hiệu chỉnh cho On-Line Transaction Processing (OLTP) và không đủ cho các ứng dụng OLAP [Cod93] [Fin95] [KS94]. Để đáp ứng, một số sản phẩm cơ sở dữ liệu đa chiều có xu hướng về vấn đề này (xem [Rad95]). Nội dung của phần này đưa ra một khung làm việc cho việc nghiên cứu với cơ sở dữ liệu đa chiều. Chúng ta xem lại các khái niệm và các thuật ngữ trong cơ sở dữ liệu đa chiều sản phẩm ở phần 2. Chúng ta cũng đưa ra một số nhược điểm trong các sản phẩm hiện tại. Sau đó phần 3 chúng ta đề nghị một mô hình dữ liệu cung cấp các trợ giúp về kỹ thuật ngữ nghĩa được sử dụng trong sản phẩm cơ sở dữ liệu đa chiều hiện tại. Đặc điểm nổi bật của mô hình này là: Nội dung của phần này là đề nghị một mô hình dữ liệu cung cấp các trợ giúp về kỹ thuật ngữ nghĩa được sử dụng trong sản phẩm cơ sở dữ liệu đa chiều hiện tại. Đặc điểm nổi bật của mô hình này là: Mô hình dữ liệu đề xuất là một khối đa chiều với một tập các phép toán cơ sở được thiết kế để thống nhất các kiểu dữ liệu khác nhau và mở rộng mô hình hiện tại theo chức năng. Mô hình được đề xuất này cung cấp vấn đề xử lý đối xứng không những cho tất cả các chiều mà còn cho các dữ kiện. Mô hình này cũng linh hoạt trong việc cung cấp hổ trợ cho các hệ thống phân cấp phức tạp theo mỗi chiều và hỗ trợ các khối tập hợp đặc biệt. Với mỗi phép toán được xác định trên một khối và đưa ra dưới dạng một khối mới. Vì vậy các phép toán này khép kín (nội bộ) và có thể được sắp xếp lại trật tự một cách tùy ý. Sự kết hợp tùy ý này cho phép người dùng thiết lập những câu truy vấn lớn hơn, do đó việc thay thế một phép toán tại một thời điểm không hiệu quả gần đúng với cách tiếp cận nhiều sản phẩm tồn tại. Bản chất đại số của khối cũng cung cấp một thuận lợi cho việc tối ưu hóa các câu truy vấn đa chiều. Các phép toán được đề nghị là tối thiểu. Không thể biểu diễn trong giới hạn các mô hình khác và cũng không thể có phép toán nào (trên số hạng) be dropped without sacrificing functionality. Mô hình khung làm việc đề xuất cung cấp phân tách logic của mặt trước giao diện sử dụng đồ họa (GUI) được sử dụng bởi nhà phân tích kinh doanh từ hệ thống dự trữ phía sau bởi (the corporation) toàn bộ hệ thống. Theo cách đó, các phép toán cung cấp một giao diện chương trình ứng dụng đại số (API) cho phép chuyển đổi phía trước và phía sau. 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 toá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 toán roll-up trong cơ sở dữ liệu đa chiều. Ngược lại với roll-up là drill-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 toá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 toá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: 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ụ 4.1.1 minh họa kiểu phân cấp trên các sản phẩm (quan tâm chú ý đến phân tích 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 toá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 toán theo kiểu “one operation at a time”. Hiện nay, một người dùng tính toá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 toán cơ sở định nghĩa đúng ngữ nghĩa làm cho khả năng tính toá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 toá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 toán. 4.2. Mô hình dữ liệu đề xuất 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 toá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 toán Hướng theo khối quan hệ nếu có thể. Chuyển các phép toá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 . 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 toán Bây giờ chúng ta bàn đến phép toán đa chiều. Chúng ta minh họa các phép toá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, date và sales 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. Date Mar 4 Feb 3 Feb 2 Jan 1 25 20 15 10 Sales p1 p2 p3 p4 Product Hình 4.2. Khối logic trong đó sales là một chiều. Để tính toá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ị 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, 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. Hình 4.3 Phép mở rộng trên chiều Product Chúng ta định nghĩa các phép toá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 Di là domi(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 toá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 toán mở rộng (Push) Phép toá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 toá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 toán: push(C, Di)=Ca. E(Ca)(d1,…,dk) = g Å di trong đó g = E(C)(d1,…,dk). Toán tử Å được xác định là bằng 0 nếu g = 0, bằng nếu g = 1 và trong các trường hợp còn lại nó nối 2 tuple (g và ). b. Phép toán chuyển(Pull) Phép toá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 toá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 toá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 C là n-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 toá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) = nếu E(C)(d1,…,dk) = , 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 toá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 toá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 Ra: Ca không có chiều Di Điều kiện: Di chỉ có một giá trị v Tính toá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 toán kết hợp (miêu tả sau) và sau đó thi hành phép toá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 toán xóa. d. Phép toán giới hạn (Restriction). Phép toá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 của chiều mà không thỏa mãn điều kiện đã phát biểu. Hình 4.5 minh họa một ứng dụng của giới hạn (restriction). Lưu ý rằng phép toán này thực hiện chia ra từng khối nhỏ của khối trong hệ thống thuật ngữ cơ sở dữ liệu đa chiều. Hình 4.5 Phép toán giới hạn Vào: Khối C và P định nghĩa dựa vào Di Ra: khối mới Ca tính được bằng cách loại bỏ từ C những giá trị của chiều Di mà không thỏa mãn khẳng định P. Chúng ta có nhiều khái niệm của xác nhận P, P được ước tính trên một tập các giá trị và không phải trên giá trị đơn. Vì vậy, P có thể cũng không lớn hơn 5 giá trị mà được ước tính trên các giá trị đơn tiếp theo hoặc từ một tập giá trị như là “5 giá trị cao nhất” được ước tính trên miền xác định Di và xuất ra tập các giá trị. nếu không có phần tử nào của chiều Di thỏa mãn P thì Ca là một khối rỗng. Tính toán: Restriction(C, Di, P) = Ca domj(Ca) = domj(C) nếu 1 £ j £ k & j ¹ i , ngược lại domj(Ca) = P(domj(C)). E(Ca)(d1,…,dk) = E(C)(d1,…,dk) e. Phép toán nối (join) Phép nối được sử dụng để liên kết thông tin của 2 khối. Kết quả nối một khối C m-chiều với khối C1 n-chiều trên k chiều gọi là phép nối chiều (joining dimensions) là khối Ca với m+n-k chiều. Mỗi chiều nối Di của C kết hợp chính xác với một chiều Dxi của C1; có được kết quả chiều Di của Ca như sau: Mỗi chiều nối, hai hàm ánh xạ được sử dụng cho việc ánh xạ tương ứng chiều nối của C và C1 vào trong chiều kết quả của Ca. Các phần tử của khối kết quả Ca tính được bằng cách liên kết tất cả các chiều của C và C1 theo hàm felem để chỉ ra các thành phần tương tự của Ca . Hình 4.6 minh họa khối C nối với khối C1 theo chiều D1 (hàm ánh xạ đồng nhất). Chiều D1 của khối kết quả chỉ có 2 giá trị. Hàm felem chia giá trị phần tử của khối C bởi giá trị phần tử của khối C1. Nếu phần tử nào đó là 0 thì phần tử kết quả cũng là 0. Các giá trị của chiều kết quả mà chỉ có các thành phần 0 tương ứng với chúng bị loại ra khỏi Ca (giống giá trị 0 và 3 của chiều D1). Việc loại ra này là một kết quả của thể hiện trong khối, chỉ với các giá trị theo chiều mà có ít nhất là một phần tử non–0. Hình 4.6 Khối C nối với khối C1 theo chiều D1 Vào: C với các chiều D1,…Dm và C1 với các chiều Dm-k+1…Dn. Với Dm-k+1,…,Dm là những chiều nối (không mất tính tổng quát). k ánh xạ hàm fm-k+1,…fm xác định trên các chiều Dm-k+1,…Dm của C và k ánh xạ hàm f’m-k+1,…,f’m xác định trên các chiều Dm-k+1,…Dm của C1. Ánh xạ fi áp dụng cho giá trị vÎ domi(C) cho ra các giá trị cho chiều Di trong khối Ca. Tương tự, f’i áp dụng cho giá trị v’ Î domi(C) cho ra các giá trị theo chiều Di trong khối Ca. Cũng cần một hàm felem để liên kết các thành phần của C và C1 để đưa ra các thành phần của Ca. Ra: Ca với n chiều, D1,…Dn. Nhiều phần tử trong C và C1 có thể đặt ánh xạ đến như một phần tử như trong Ca. Tất cả các thành phần của C và C1 cũng đặt ánh xạ đến như một điểm trong Ca được liên kết bởi hàm felem để đưa ra các thành phần của Ca. Nếu một vài giá trị v của chiều Di, các thành phần E(Ca)(x1…xi, v , xi+1,…,xn) là 0 cho tất cả các giá trị của các chiều khác , v không được tính đến trong chiều Di của Ca. Tính toán: Join(C, C1, [fm-k+1,…,fm,f’m-k+1,…,f’m], felem) = Ca domi(Ca) = domi(C) nếu 1 £ i £ m - k domi(Ca) = domi(C1) nếu m+1 £ i £ n domi(Ca) = {da | da Î fi(d), d Î domi(C) OR da Î f’i(d’), d’Î domi(C1)} E(Ca) (d1, . . . , dam - k , . . . dam , . . . , dn) = f elem({t1}, {t2}) Trong đó t1 = E(C)(d1,…dm-k,…,dm), t2 = E(C1)(d’m-k,…d’m,dm+1,…,dn) và dia Î fi(di) OR diaÎf’i(d’i) với m-k<=i<=m Chúng ta xác định một số khái niệm ở trên của phép nối nó bao gồm các trường hợp đặc biệt quan trọng. Chủ yếu là các phép tóan: Tích Đề các sản phẩm (cartesian product), nối tự nhiên (natural join), hợp (union), trộn (kết hợp-merge) và liên kết (associate). Trong trường hợp tích Đề các sản phẩm, hai khối không có chiều nối chung. Trong trường hợp nối tự nhiên hàm ánh xạ dùng để đồng nhất và chức năng felem là “0” bất cứ khi nào có một trong những phần là ‘0’. Các trường hợp nhỏ phép hợp và trộn (kết hợp) sẽ được thảo luận sau . Kết hợp (Associate) đặc biệt hữu dụng với trường hợp nhỏ trong ứng dụng OLAP cho việc tính toán như là “Hiển thị nhanh lượng bán hàng mỗi tháng như tỉ lệ phần trăm bán hàng hằng quí”. Kết hợp là bất đối xứng và yêu cầu mỗi chiều của C1 được nối với một số chiều của C. Hình 4.7 Kết hợp hai khối Hình 4.7 minh họa liên kết khối C1 với khối C mà chiều tháng (month) của C1 và chiều ngày (date) của C được nối bằng cách ánh xạ chúng vào chiều ngày (date) của Ca. Tương tự category và product được nối bằng cách ánh xạ chúng vào chiều product của Ca. Với chiều tháng (month), mỗi tháng được ánh xạ tới tất cả các ngày trong tháng đó. Với chiều category, gía trị cat1 được ánh xạ vào product p1 và p2, cat2 được ánh xạ vào product p3 và p4. Với chiều date và product ánh xạ đồng nhất được sử dụng. Hàm felem chia giá trị phần tử của khối C cho giá trị phần tử của khối C1. Nếu phần tử nào đó bằng 0 thì phần tử kết quả cũng bằng 0. Lưu ý, giá trị mar4 được rút ra từ Ca bởi vì tất cả các phần tử tương ứng nó bằng 0. Kết hợp (Merge) Phép kết hợp là một phép toán tập hợp. Nó được minh họa ở Hình 4.8. Hình minh họa cách phân cấp trong cơ sở dữ liệu đa chiều được thực hiện bởi phép toán kết hợp. Bằng trực quan, hàm kết hợp chiều được sử dụng để ánh xạ nhiều tên product vào trong một hoặc nhiều categories và hàm khác được dùng để ánh xạ riêng dates vào tháng tương ứng. Vì vậy nhiều thành phần trong một chiều được kết hợp với chiều product với miền nhỏ hơn nếu có thể. Kết quả của sự kết hợp mỗi chiều này là nhiều thành phần trong khối đầu tiên ánh xạ đến các thành phần tương tự trong khối mới. Một thành phần liên kết hàm được dùng để chỉ rõ làm thế nào để nhiều thành phần này được tập hợp lại. Trong ví dụ ở hình 4.8, hàm tập hợp felem là Sum. Hình 4.8 Kết hợp chiều Date và chiều Product sử dụng hàm felem= sum Thông thường, hàm kết hợp chiều có thể là một hoặc nhiều ánh xạ nó một thành phần ở mức thấp hơn vào các thành phần ở mức cao hơn của các phân cấp. Chẳng hạn, ánh xạ 1→ n có thể dùng để kết hợp một product theo n categories cho việc điều khiển phân cấp đa chiều. Vào: C, hàm felem để kết hợp các thành phần với m cặp (chiều, hàm). Không mất tính tổng quát, giả sử m cặp là [D1, f1],…, [Dm, fm]. Ra: Khối Ca of same dimentionality as C. Chiều Di được kết hợp như là mỗi hàm fi. Một thành phần tương ứng với các thành phần kết hợp được tập hợp lại như là mỗi felem. Tính toán: Merge(C,{[D1,f1],…,[Dm, fm]}, felem) = Ca. domi(Ca) = {fi(e) | e Î domi(C)} nếu 1 £ i £ m ngược lại domi(Ca) = domi(C) E(Ca) (d1, . . . , dk) = felem ({ t | t = E(C) d’1 , . . . , d’k) Trong đó: fi(d’i) = di nếu 1 £ i £ m ngược lại d’i = di }). Trường hợp đặc biệt của phép toán kết hợp là khi tất cả các hàm kết hợp là đồng nhất với nhau. Trong trường hợp đó, phép toán kết hợp có thể sử dụng một hàm felem áp dụng cho mỗi thành phần của khối. Nhận xét Phép toán kết hợp không phải là bộ phận trong tập các phép toán cơ bản. Nó có thể được tính nhanh như một trường hợp đặc biệt của tự nối của một khối sử dụng phép biến đổi fmerge trên các chiều đang được kết hợp và các hàm biến đổi đồng nhất cho các chiều khác. Chúng ta lựa chọn kết hợp xác định tách biệt bởi vì nó là phép toán một ngôi khác với nối hai ngôi. 4.3. Áp dụng các phép toán vào câu truy vấn. 4.3.1. Nhận xét Ta có thể nhận xét có sự tương tự trong các phép toán đã trình bày và đại số quan hệ. Một trong những mục đích của chúng ta là tìm hiểu có bao nhiêu chức năng của sản phẩm đa chiều hiện nay có thể được rút ra trong các hạng thức của đại số quan hệ. Bằng cách phát triển các phép toán để có thể chuyển sang SQL, ý muốn của chúng ta là tạo ra một con đường nhanh chóng hỗ trợ cho OLAP có khả năng nhất của hệ thống cơ sở dữ liệu quan hệ. Chúng ta phải đẩy nhanh để thêm vào mà chúng ta không bàn luận lại hệ thống OLAP chuyên biệt- chúng ta tin tưởng thiết kế và tạo nguyên mẫu của nhiều kỹ thuật là một định hướng nghiên cứu tốt. Chúng ta cũng không đề xuất một cách dễ dàng để chuyển đổi các phép toán sang SQL sẽ đủ để hỗ trợ cho OLAP trong hệ thống cơ sở dữ liệu quan hệ. Tuy nhiên nó là định hướng trong kỹ thuật tối ưu hóa và các cấu trúc lưu trữ trong các hệ thống cơ sở dữ liệu quan hệ cần phát triển. Người đọc có thể thảo luận về cách chúng ta chọn để kết hợp thông tin sắp xếp cơ bản đại số quan hệ. Chúng ta dựa vào các hàm cho đề xuất này, nghĩa là hệ thống không thể dùng thông tin này trong việc tối ưu hóa các câu truy vấn. Chúng ta tranh luận về việc cho phép một sắp xếp tự nhiên trở thành lý thuyết với mỗi chiều và hỗ trợ các phép toán sắp xếp. Chúng ta lại đồng ý với điều đó bởi vì một lượng lớn các phép toán và bởi vì ngữ nghĩa khá phức tạp khi có nhiều phân cấp theo một chiều. Trong thực nghiệm của mô hình chúng ta, nó sẽ đáng để cho phép một sắp xếp thông thường trở nên lí thuyết với mỗi chiều và làm cho hệ thống nhận thấy một số buit-in các hàm sắp xếp như là “first n”. Người đọc cũng có thể chú ý những thiếu sót của việc hướng theo các quan hệ phép projection, union, intersection, and difference. Các phép toán có thể biểu diễn theo quan điểm các phép toán đề xuất như sau. Phép chiếu (Projection) Phép chiếu của một khối được tính bằng cách kết hợp mỗi chiều không chứa trong phép chiếu và sau đó loại bỏ chiều này. Hàm felem chỉ rõ cách nhiều thành phần được nối là cần thiết như bộ phận của kỹ thuật chiếu. Kết hợp (Union) Hai khối được kết hợp tương thích nếu (i) chúng có số chiều giống nhau và (ii) mỗi chiều Di trong C, chiều Di trong C1 cùng một kiểu miền. Phép kết hợp được tính bằng cách nối hai khối sử dụng các hàm chuyển đổi đồng nhất cho mỗi chiều của mỗi khối và bằng cách chọn một hàm felem hàm này kết quả trả về một thành không phần rỗng cho thành phần e trong Ca khi một thành phần của một trong hai khối ánh xạ vào e. Chiều Di trong khối kết với giá trị của nó chính là kết hợp các giá trị trong domi(C) và trong domi(C1). Giao (Intersect) Giao của hai khối kết hợp tương thích được tính bằng cách nối các khối đó thông qua qua ánh xạ đồng nhất mà chỉ giữ lại kết quả là các giá trị của chiều có mặt trong cả hai khối. Vì vậy, hàm felem làm non-0 một thành phần tiến về duy nhất điểm p trong Ca khi các thành phần trong hai khối được ánh xạ vào p. Hiệu (Difference) Hiệu của hai khối kết hợp tương thích C1 và C2 như là giao của C1 và C2, sau đó hợp kết quả với C1. Hàm felem kết hợp hai thành phần cho các bước giao loại bỏ giá trị của thành phần ở C1 và giữ lại thành phần của C2. Hàm felem kết hợp hai thành phần để các bước kết hợp lưu giá trị của thành phần C1 khi hai hai thành phần là khác nhau và cho kết quả 0 nếu chúng giống nhau. Nhận xét: Phép toán đại số trên mô hình đa chiều có thể xem ít nhất là mạnh bằng các phép toán đại số quan hệ [Cod70]. Một giới hạn chính xác về ý nghĩa của mô hình đề xuất là một vấn đề mở. Một quan tâm liên quan đến câu hỏi mở có quan hệ đến hình thức khái niệm của tính đầy đủ cho các truy vần cơ sở dữ liệu đa chiều và ước tính cách thức bổ sung phép toán đại số trên mô hình dữ liệu đa chiều. Chúng tôi có một kinh nghiệm cách tiếp cận và dưới đây là thảo luận về các chiều ở mức cao hiện tại các phép toán có thể xây dựng sử dụng phép toán đề xuất trên mô hình dữ liệu đa chiều. Roll-up: Roll-up là một phép toán kết hợp mà nó cần thiết cho chức năng kết hợp một chiều và chức năng tổ hợp phần tử. Nếu một phân cấp được xác định trong một chiều thì chức năng kết hợp chiều được xác định hoàn toàn bới phấn cấp. Các phần tử tương ứng các giá trị kết hợp trong chiều được nối bằng cách sử dụng các phần tử người sử dụng xác định với chức năng kết hợp như SUM. Drill-down: Phép toán này thật tế là một phép toán nhị phân mặc dù hầu hết các sản phẩm cơ sở dữ liệu đa chiều hiện tại làm cho nó có vẻ giống như phép toán một ngôi. Xét việc tính tổng X của 10 giá trị. Drill-dơn từ X đến các giá trị dưới 10 là có thể có trong các hướng vô hạn. Do đó, các giá trị dưới 10 phải được biết đến. Tức là, việc tổng hợp khối phải được nối (thực sự kết hợp) với khối có thông tin chi tiết. Tiếp tục, để drill down từ X hợp thành nó, cơ sở dữ liệu đã có để theo dõi như thế nào X đã đạt được và sau đó kết hợp X với những giá trị này. Vì vậy, nếu người sử dụng kết hợp các khối theo đường dẫn lưu trữ và có đường dẫn duy nhất tạo nên cây kết hợp thì drill down là xác định duy nhất. Bởi thông tin phân cấp lưu trữ và hạn chế phần tử chức năng kết hợp sẽ được sử dụng cùng mỗi phân cấp, drill-down có thể cung cấp như là một phép toán mức cao trên kết hợp. Star Join: Nối hình sao [Eri95] một chi tiết lớn “mẹ” bảng M được nối với một phần nhỏ “con” các bảng, mô tả các khóa nối trong bảng mẹ. Một phép nối hình sao biểu thị bảng mẹ bởi nối nó với các bảng con của nó, sau khi áp dụng các điều kiện chọn mô tả các thuộc tính của chúng. Chúng tôi mô tả cách thức các toán tử giữ một phép nối hình sao, khi có một bảng con F1 mô tả trường khóa nối D của M. Bảng F1 có thể được xem như là một khối đa chiều C1 trường khóa nối D như một chiều và tất cả các trường mô tả lấy ra xem như các phần tử. Một phép thu hẹp trên thuộc tính mô tả A của bảng F1 tương ứng với một chức năng ứng dụng từ trong các phần tử của bàng C1. Các phép thu hẹp trên thuộc tính khóa nối chuyển đổi sang các phép thu trên chiều D của bảng C1. Việc nối giữa M và F1 đạt được bởi việc kết hợp khối mẹ với khối con trên chiều khóa D và sử dụng một hàm ánh xạ đồng nhất. Phép thu hẹp của mỗi giá trị khóa được lấy ra từ khối con đưa vào trong khối mẹ thông qua hàm felem. Biểu diễn một chiều xem như một chức năng của các chiều khác. Chức năng này là cơ bản trong các bảng lớn. Chúng ta có thể tạo ra một chiều mới D biểu diễn như một chức năng f của chiều D’ khác bằng cách, đầu tiên đưa D’ vào các phần tử khối, sau đó biến đổi các phần tử của khối bằng cách áp dụng chức năng f và cuối cùng lấy ra phần tương úng của phần tử khối xem như một chiều mới D. 4.3.2. Áp dụng phép toán vào câu truy vấn Trong phần này minh họa cách biểu diễn một số câu truy vấn của ví dụ 2.2 sử dụng các toán tử đã đưa ra. Giả sử chúng ta có một khối C với các chiều product, month, supplier và thành phần bán hàng (sale). Với Supplier “Ace” và với mỗi product, cho biết sự tăng trưởng kéo theo của bán hàng vào tháng 1/1995 liên quan đến bán hàng trong 1/1994. Restric (giới hạn) supplier là “Ace” và ngày “1/1994 " hoặc “1/1995”. Merge (kết hợp) chiều ngày sử dụng hàm felem kết hợp bán hàng bằng (B-A)/A với A là bán (sale) trong tháng 1/1994 và B là bán (sale) trong tháng 1/1995. Với mỗi sản phẩm, cho biết thị phần của nó trong category của tháng này trừ thị phần trong tháng 10/1994. Restrict (giới hạn) ngày “10/1994 hoặc tháng hiện tại”. Merge (kết hợp) supplier với một điểm đơn sử dụng tổng bán hàng (sales) bằng hàm felem cho khối C1. Merge chiều sản phẩm (product) với loại (category) sử dụng tổng bằng hàm felem để đặt vào C2 tổng bán (sale) cho hai tháng của tiền lãi. Associate (kết hợp) C1 và C2, ánh xạ một loại (category) trong C2 với mỗi sản phẩm của nó trong C1. Ánh xạ đồng nhất được sử dụng cho chiều tháng (Month). Hàm felem chia phần tử từ C1 với phần tử từ C2 đặt vào thị phần. Khối kết quả, Merge chiều tháng (month) với một điểm đơn sử dụng một hàm felem (A-B) trong đó A là một thị phần cho tháng này và B là thị phần trong tháng mười năm 1994. Với mỗi loại sản phẩm, chọn ra tổng bán ra trong tháng này của sản phẩm bán được nhất . Restric (giới hạn) chiều tháng đến cuối tháng. Merge (kết hợp) supplier với một điểm đơn sử dụng tổng bán hàng bằng hàm felem. Push kết quả chiều sản phẩm trong 2 tuple elements với . Merge (kết hợp) product với category sử dụng hàm felem để trả lại một thành phần khi nó có lượng bán hàng lớn nhất. Pull product vào trong chiều category. Lấy khối kết quả là C1. Khối này có giá trị bán lớn nhất cho mỗi thành phần ở cuối tháng. Restric (giới hạn) C trên chiều thời gian là tháng này (“this” month), Merge (kết hợp) supplier với một điểm đơn sử dụng tổng bán hàng bằng hàm felem và Associate (kết hợp) nó với C1 theo chiều product sử dụng hàm felem để chỉ cho ra thành phần của C khi nó được xem như là các thành phần tương thích từ C1 (ngược lại trả về 0). Chọn những Supplier mà có sản phẩm bán ra tăng trong năm năm trước. Restrict (giới hạn) các tháng của 6 năm trước. Merge (kết hợp) tháng và năm. Merge (kết hợp) năm với một điểm đơn sử dụng hàm felem để anh xạ 6 giá trị bán hàng về “1” nếu các giá trị bán đều tăng, về “0” nếu ngược lại. Merge (kết hợp) product và một điểm khi hàm felem là “1” nếu và chỉ nếu tất cả tham số của nó là “1”. 4.4 Kết luận và phương hướng. Nội dung này giới thiệu một mô hình dữ liệu và một tập hợp các toán tử đại số dùng để thống nhất và mở rộng chức năng cung cấp bởi sản phẩm cơ sở dữ liệu đa chiều hiện tại. Như trình bày trong phần 4.1 các toán tử đề xuất có thể bao gồm việc xây dựng các toán tử OLAP như roll-up, drill-down, star-join và một số toán tử khác. Ngoài ra, mô hình cung cấp xử lý đối xứng vào các chiều và các sự kiện. Mô hình cũng cung cấp hổ trợ cho các hệ thống phân cấp phức tạp theo mỗi chiều và hỗ trợ các khối tập hợp đặc biệt. Trong tương lai không thể các kết quả trong các sản phẩm đắt tiền hiện tại phải thiết kế lại lược đồ khi sự cần thiết bất ngờ xảy ra cho một tập hợp hay tập hợp theo một thuộc tính đã được ban đầu suy nghĩ để có một biện pháp. Các toán tử đề xuất có một vài thuộc tính cần thiết. chúng có ngữ nghĩa xác định rất tốt. Chúng là cực tiểu trong hướng mà nó không thể biểu diễn trong thời gian của cái khác, có thể cũng không được bỏ bất kỳ một trong những chức năng mà không bị mất. Mỗi toán tử được định nghĩa trên các khối và các kết quả như một khối xuất. Tức là, các toán tử đã được khép kín và có thể được tự do và reordered. Điều này cho phép một toán tử không hiệu quả tại một thời điểm tiếp hiện tại ưu chuộng để thay thế bằng mô hình truy vấn và nên các truy vấn đa chiều cần phải tối ưu. Các phép toán đề xuất cho phép tách logic trước khi người sử dụng đưa vào cửa hàng và yêu cầu chấp nhận sau. Như vậy, các phép toán cung cấp đại số API cho phép thay đổi trước và sau. Các phép toán được thiết kế để chuyển sang SQL.Vì vậy, chúng có thể cái đặt trong cả hệ thồng quan hệ và kỷ thuật đặc biệt. Tương lai, trong các mô hình mẫu công việc là cần thiết để kết hợp các bản sao và các giá trị NULL trrong mô hình dữ liệu đa chiều. Chúng tôi tin rằng các bản sao có thể được giải quyết bằng cách xử lý các phần tử của khối như cặp gồm một arity và một bộ của các giá trị. Arity cung cấp số lượng tương ứng xuất hiện của sự kết hợp các giá trị của chiều. Các giá trrị NULL có thể được biểu diễn bởi cho phép đại diện một giá trị NULL cho mỗi chiều. Chi tiết của việc mở rộng và các sự lựa chọn khác cầu nghiên cứu nhiều. Về thực hiện có nhiều vấn đề quan tâm nghiên cứu cho việc thực thi mô hình dữ liệu đa chiều ở trên một hệ thống quan hệ tốt như bên trong cơ cấu đặc biệt. Mặc dù một trong các phép toán đề xuất có thể chuyển sang truy vấn SQL, chỉ cần thực hiện chuyển đổi SQL trên một cơ cấu quan hệ là coi như không hiệu quả. Thông tin về truy vấn đa chiều bao gồm một vài phép toán đề xuất, chúng ta sẽ nhận được một dãy truy vấn SQL đó là cơ hội cho việc tối ưu hóa truy vấn đa chiều. Nó cần phải được điều tra xác định để biết được biết hơn về phương pháp kỹ thuật (ví dụ: [SG90]) sẽ thỏa mãn, chúng ta cần phải phát triển kỹ thuật mới. Tương tự như vậy, còn có cơ hội cho việc nghiên cứu trong lưu trữ và truy cập cấu trúc vào cụ thể hóa khung nhìn. C. KẾT LUẬN Qua các nghiên cứu, một vài tổ chức kinh doanh đã đầu tư các công cụ OLAP/MDD của riêng họ, và đã có hai cách tiếp cận. Cách tiếp cận đầu tiên được gọi là MOLAP (đối với OLAP đa chiều), dựa vào việc xây dựng các công cụ chuyên dụng khác nhau trên cơ sở các cách lưu trữ đa chiều. Arbor Software’s Essbase là một ví dụ cho điều này. Cách tiếp cận thứ hai được gọi là ROLAP (đối với OLAP quan hệ), cách tiếp cận này dựa vào sự thích ứng đối với hệ thống cơ sở dữ liệu quan hệ. Red Brick và Oracle là hai ví dụ cho trường hợp này. Tiểu luận này giới thiệu một mô hình khái niệm chung cho MDD một cách toàn diện và một mô hình dữ liệu cơ sở mới (hypercube – based data model), một số hàm cung cấp nền tảng ngữ nghĩa cho cơ sở dữ liệu đa chiều và mở rộng các hàm hiện tại. Do thời gian và khả năng tiếng Anh còn hạn chế nên tiểu luận này không tránh khỏi những sai sót, kính mong thầy góp ý thêm. D. TÀI LIỆU THAM KHẢO [1] Marc Gyssens, Laks V.S. Lakshmanan, “A foundation for Multi-Demensional Databases” in Proceedings of the 23rd VLDB Conference Athens, Greece, 1997. [2] Matteo Golfarelli, Dario Maio, and Stefano Rizzi “Applying Vertical Fragmentation Techniques on logical Design of Multidimensional Databases” DEIS – university of bologna, viale Risorgimento 2, 40136 Bologna, Italy. [3] Andreas Bauer, Wolfgang Hummer, Wolfgang lehner “An Alternative relationnal OLAP Modeling Approach” University of Erlangen-Nuremberg (database Systems) [4] Rakesh Agrawal Ashish Gupta Sunita Sarawagi, “Modeling Multidimensional Databases” IBM Almaden ResearchCenter 650 Harry Road, San Jose CA 95120. [5] A Foundation for Multi-Dimensional Databases Marc Gyssens Laks V.S. Lakshmanan Department WNI Department of Computer Science University of Limburg (LUC) Concordia University B-3590 Diepenbeek, Belgium. ontreal, Quebec H3G lM8, Canada gyssensQcharlie.luc.ac.be laksQcs.concordia.caơ [6] Applying Vertical Fragmentation Techniques in Logical Design of ultidimensional Databases 1Matteo Golfarelli, Dario Maio, and Stefano Rizzi DEIS - University of Bologna, Viale Risorgimento 2, 40136 Bologna, Italy {mgolfarelli, dmaio, srizzi}@deis.unibo.it [7] An Alternative Relational OLAP Modeling Approach Andreas Bauer, Wolfgang Hümmer, Wolfgang Lehner University of Erlangen-Nuremberg (Database Systems) Martensstr. 3, Erlangen, 91058, Germany EMail: {andreas.bauer, huemmer, lehner}@informatik.uni-erlangen.de

Các file đính kèm theo tài liệu này:

  • docMô hình hóa dữ liệu đa chiều.doc