Luận văn Nghiên cứu công nghệ OLAP và ứng dụng

Mục lục Lời cảm ơn. . 2 Mục lục . 3 Bảng các kí hiệu, chữ viết tắt . 6 Bảng danh mục các bảng biểu 7 Bảng danh mục các hình vẽ . . 8 Tóm tắt nội dung luận văn . . 10 Mở đầu . . 11 Cơ sở lý thuyết . 15 Chương 1 Công nghệ OLAP . 15 1.1 Giới thiệu về Data Warehouse . 15 1.1.1 Định nghĩa . 15 1.1.2 Ý nghĩa của Data Warehouse . 16 1.1.3 Đặc điểm của Data Warehouse . 16 1.1.4 Cấu trúc của Data Warehouse . . 19 1.2 Tổng quan về OLAP . . 19 1.2.1 Giới thiệu 19 1.2.2 Đặc điểm của OLAP: 21 1.3 Các mô hình OLAP 21 1.3.1 MOLAP (Multidimensional OLAP) . 21 1.3.2 ROLAP (Relational OLAP) . 22 1.3.3 HOLAP (Hybrid OLAP) 25 1.3.4 So sánh các mô hình . 26 Chương 2 OLAP trong MS SQL Server Analysis Service (SSAS) 27 2.1. Kiến trúc các thành phần OLAP trong SSAS . . 27 2.1.1 Cube . . 27 2.1.2 Dimension . 29 2.1.3 Measure . 31 2.1.4 Fact table (Fact) . . 31 2.1.5 Slice . . 32 2.1.6 Partition . . 33 2.1.7 Role . 33 2.1.8 Schedule (Lập lịch) . 34 2.2. Quy trình thiết kế các đối tượng trong SSAS . 35 2.2.1 Sơ lược về quy trình xây dựng Data Warehouse 35 2.2.1.1 Quy trình chung 35 2.2.1.2 Công cụ thực hiện: 37 2.2.2 Quy trình tạo Cube: 37 Chương 3 Component Pivot Table trong Excel 43 3.1. Pivot Table 43 3.1.1 Giới thiệu 43 3.1.2 Cách sử dụng 43 3.2. PivotChart . 46 3.3. Giới thiệu một số công cụ hỗ trợ OLAP tương tự như Pivot Table của Excel . 47 3.3.1 RadarCube OLAP 47 3.3.2 Data Dynamics Analysis . 48 3.3.3 ComponentOne OLAP for WinForm . 49 3.3.4 Devexpress ASPxPivotGrid . 49 3.4 So sánh Pivot Table với các công cụ khác: . 50 Ưu điểm: 50 Nhược điểm: . 50 Kết luận: 51 Chương 4 Các thư viện lập trình liên quan đến SSAS . 52 4.1. AMO . 52 4.2. ADOMD.NET . 53 4.3. SMO 53 4.4. MDX . 55 4.4.1 Cấu trúc chung 55 4.4.2 Ví dụ mẫu 55 4.4.3 Lưu ý . 56 Chương 5 Xây dựng công cụ Web hỗ trợ phân tích dữ liệu cho các ứng dụng OLTP58 5.1. Phân tích, thiết kế 58 5.1.1 Phân tích . 58 5.1.1.1 Quy trình xử lý nghiệp vụ: . 58 5.1.1.2 Yêu cầu chức năng: 60 5.1.1.3 Mô hình quan niệm dữ liệu: 66 5.1.2 Thiết kế . 72 5.1.2.1 Dữ liệu: . 72 5.1.2.2 Kiến trúc module: . 79 5.1.2.3 Hệ thống giao diện: 80 5.2. Cài đặt, lập trình . . 88 Đánh giá, bàn luận về kết quả . 89 Kết luận - Hướng phát triển . 91 Các kết quả đã đạt được . 91 1. Về lý thuyết 91 2. Về thực nghiệm 91 Danh mục tài liệu tham khảo 93 Tóm tắt nội dung luận văn ¾ Tìm hiểu tổng quan về công nghệ OLAP ¾ Tìm hiểu OLAP trong MS SQL Server Analysis Service (SSAS) ¾ Tìm hiểu về component Pivot Table trong Excel ã Pivot Table ã PivotChart ¾ Tìm hiểu các thư viện lập trình liên quan đến SSAS: MDX, AMO, SMO, ADOMD.NET, . ¾ Xây dựng công cụ hỗ trợ phân tích dữ liệu cho các ứng dụng OLTP

pdf94 trang | Chia sẻ: lvcdongnoi | Lượt xem: 4728 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu công nghệ OLAP và ứng dụng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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. 1.2.2 Đặc điểm của OLAP: ¾ Được biết đến như là một phần của kho dữ liệu ¾ Cung cấp các báo cáo, phân tích tiền tính toán, các đồ thị, biểu đồ ¾ Cho phép phân tích trực tuyến dữ liệu ¾ Thăm dò sự tương tác dữ liệu ¾ Cung cấp các giao diện đa dạng cho người dùng ¾ Cung cấp khả năng phân tích dữ liệu phức tạp bằng phương thức đơn giản 1.3 Các mô hình OLAP 1.3.1 MOLAP (Multidimensional OLAP) ¾ Mô hình MOLAP lưu trữ dữ liệu cơ sở (là dữ liệu từ các bảng của kho dữ liệu) 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 khối ¾ ¾ ¾ 1 ¾ Dữ liệu đ Dữ liệu t nhật lại n MOLAP Ví dụ: tổ .3.2 RO Mô hình trong các ược tìm th rong MOL hững dữ l thích hợ ng hợp do LAP (R OLAP qu bảng qua Hình 8 ấy tại điểm AP cần ph iệu mới tro p cho các anh thu củ elationa an hệ (RO n hệ 22 : Mô hình d giao của ải được p ng Data W truy vấn t a từng chi l OLAP LAP) lưu ữ liệu MO các chiều rocess sau arehouse ổng hợp d nhánh tron ) trữ dữ liệ LAP một thời g . ữ liệu the g vòng 2 n u cơ sở và ian nhất đ o thời gia ăm trở lại thông tin ịnh để cập n dài. . tổng hợp ¾ ¾ Dữ liệu đ Có 2 kiể • L ch ược tìm th u mô hình ược đồ hìn iều Hình 9 ấy tại điểm dữ liệu: h sao (sta 23 : Mô hình giao của r): mỗi mộ dữ liệu RO 1 cột và 1 t chiều ch LAP một hàng ỉ được xâ y dựng từ một bảng 24 Hình 10: Lược đồ hình sao • Lược đồ hình bông tuyết (snowflake): mỗi chiều được xây dựng từ nhiều bảng chiều Hình 11: Lược đồ hình bông tuyết ¾ ROLAP thích hợp cho các truy vấn dữ liệu theo thời gian thực (xảy ra thường xuyên và đòi hỏi độ chính xác tức thời). Ví dụ: xem thông tin chứng khoán 25 1.3.3 HOLAP (Hybrid OLAP) ¾ Là mô hình OLAP lai (HOLAP) là sự kết hợp giữa MOLAP và ROLAP. Hình 12: Mô hình dữ liệu HOLAP ¾ HOLAP là mô hình lai giữa MOLAP và HOLAP, kết hợp những ưu điểm và loại bỏ những khuyết điểm của 2 mô hình trên nhằm tạo ra một mô hình tối ưu ¾ Lợi ích của việc lưu trữ trong cấu trúc HOLAP là: • Lưu dữ liệu tổng hợp trong Cube (theo MOLAP) để tăng tốc độ xử lý các truy vấn phức tạp • Lưu trữ dữ liệu cơ sở trong các bảng quan hệ (theo ROLAP) nhằm tiết kiệm không gian lưu trữ Ví dụ: Trong một công ty chứng khoán: ƒ Dữ liệu về thông tin nhân viên, doanh thu của 2 năm trở về trước => lưu trong cube ƒ Dữ liệu về thông tin chứng khoán, giá cổ phiếu hằng ngày => lưu trong bảng quan hệ Ö Tối ưu hóa được vấn đề lưu trữ và xử lý của hệ thống. 26 1.3.4 So sánh các mô hình MOLAP ROLAP HOLAP Số chiều >2 2 >2 Lưu trữ dữ liệu cơ sở Khối Bảng quan hệ Bảng quan hệ Lưu trữ thông tin tổng hợp Khối Bảng quan hệ Khối Hiệu suất thực hiện truy vấn Nhanh nhất Chậm nhất Nhanh Tiêu thụ không gian lưu trữ Nhiều Thấp Trung bình Chi phí bảo trì Cao Thấp Trung bình Bảng 1: So sánh các mô hình OLAP Î KẾT LUẬN: Chọn mô hình nào cần dựa vào hiệu suất, mục đích khai thác, và lượng dữ liệu,… (ví dụ MOLAP: thích hợp với data marts <50 GB, ROLAP: lượng dữ liệu có thể lớn hơn) 27 Chương 2 OLAP trong MS SQL Server Analysis Service (SSAS) Giới thiệu sơ lược về SSAS ¾ Từ trước đến nay, SQL Server được biết đến với vai trò là một hệ quản trị cơ sở dữ liệu có trách nhiệm hỗ trợ quản lí, lưu trữ dữ liệu với Database Engine. Tuy nhiên, từ phiên bản SQL Server 2005 đến SQL Server 2008 và mới nhất là SQL Server 2008 R2, thì bộ SQL Server đã được tích hợp nhiều gói dịch vụ hỗ trợ việc tích hợp và khai thác khả năng tiềm tàng của một cơ sở dữ liệu như SQL Server Integrating Services, SQL Server Analysis Services và SQL Server Reporting Services. ¾ Analysis Services là một dịch vụ hỗ trợ mạnh mẽ việc phân tích, khai thác thông tin tiềm tàng bên trong của một hệ cơ sở dữ liệu. ¾ Analysis Services là công cụ dễ sử dụng, tích hợp và linh động giúp định nghĩa các chiều, xây dựng các khối dữ liệu đa chiều và cung cấp các chương trình ứng dụng truy xuất tới các khối này. 2.1. Kiến trúc các thành phần OLAP trong SSAS 2.1.1 Cube ¾ Cube (Khối) là phần tử chính trong xử lý phân tích trực tuyến, là tập con (subset) dữ liệu từ kho dữ liệu, được tổ chức và tổng hợp trong các cấu trúc đa chiều. ¾ Cube dùng các dimensions, fact table và các measure để mô tả dữ liệu trong cube. Ví dụ : một cube 3 chiều ¾ ¾ Một cub • N • V • T Một cub • L • M • K • K V e có thể có ếu có nhiề ề mặt lý th hường thì e bao gồm à một liên ột ô có thể hối thưa (s hối dày đặ í dụ về ô rỗ Hình nhiều chi u hơn 3 ch uyết thì số số chiều là nhiều ô dữ kết giữa cá là rỗng (k parsecube c (densecu ng: 28 13: Ví dụ v ều iều sẽ đượ chiều là k từ 4 đến 1 liệu c giá trị củ hông có d ): có nhiều be): có ít ô ề Khối (Cu c gọi là ‘si hông hạn 2 a chiều ữ liệu cho ô rỗng rỗng be) êu khối’ ( chế liên kết nà ”hypercub y) e”) 29 Hình 14: Ví dụ về ô rỗng trong khối ¾ Cube biễu diễn dữ liệu dưới dạng tổng hợp nhiều hơn là chi tiết như khi dùng bảng thông thường. Do đó, cube cho người dùng thấy được cái nhìn tóm tắt, tổng hợp của toàn bộ dữ liệu. ¾ Một cube có thể chứa toàn bộ hoặc một phần của dữ liệu nguồn (Data source view). Vì vậy các cube chỉ được lưu trữ và truy cập qua giới hạn riêng của nó. Dữ liệu được chuyển từ nguồn đến các cube qua công cụ ETL (Extract, Transform, and Load). 2.1.2 Dimension ¾ Các chiều là cách mô tả chủng loại mà theo đó các dữ liệu trong Cube được phân chia để phân tích ¾ Mỗi chiều có thể được xây dựng trên một hoặc nhiều bảng chiều (dimension table) nhằm mô tả cho chiều đó ¾ Các chiều được ánh xạ từ thông tin của các bảng chiều 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ố. Trong ví dụ mô hình kinh doanh ở trên, 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. ¾ ¾ ph m th sả kh ph kh củ Các chiề nhằm xâ phân tích Chiều có Phân cấp ân cấp mà ột cấu trúc Ví dụ: N ì chúng ta n phẩm, tứ ác thì chú Như vậy ải được th ông hoạch a những p u được tạ y dựng cá luôn ổn đ Hình sự phân c là cột sốn việc gộp đa mức h ếu chúng cần quan c là chúng ng ta cần t có thể có ực hiện m định trướ hân cấp rộ o một các c Cube dễ ịnh. 15: Ví dụ v ấp : g của việc dữ liệu mớ ay phân cấ ta làm nhữ sát ở nhữn ta đã thự hực hiện n quá nhiều ột cách d c. Điều n ng và sâu. 30 h độc lập dàng và đ ề các Dime gộp dữ li i có thể th p. ng quyết g dữ liệu v c hiện một hững phép tiến trình ễ dàng, lin ày có thể đ và có thể ể chắc chắ nsion (Ch ệu hay nói ực hiện đư định về giá ề doanh th cách gộp. gộp tươn gộp. Thế h hoạt để ược giải q chia sẻ gi n rằng thô iều) khác n một cách ợc. Phần sản phẩm u sản phẩ Khi cần là g ứng khác nên các tiế có thể hỗ uyết trên ữa các OL ng tin tổn hau khác là dự lớn các ch để tối đa m được gộ m những q . n trình gộ trợ những cơ sở có s AP Cube g hợp cho a vào các iều đều có doanh thu p theo giá uyết định p này cần phân tích ự trợ giúp 2 ¾ ¾ 2 ¾ ¾ ¾ .1.3 Me Các đơn những g hoặc số l Là đơn v .1.4 Fac Fact là dimensio Một fact đồng thờ Fact đượ asure vị đo của iá trị số từ ượng bán. ị đo để đán t table ( bảng mô n đã được gồm các i chứa các c lưu tại m khối là các bảng Fact h giá, phâ Fact) tả sự kiện xây dựng trường ch measure c ột cấp dữ H 31 cột trong mà được n tích dữ l mà hệ th sẵn nhằm ứa khoá c ủa cube. M liệu thô nà ình 16: F bảng Fact tổng hợp iệu. ống muố tổ chức dữ hính của c ỗi fact có o đó act Table . Các đơn phân tích n n phân tíc liệu một c ác dimen các measu vị đo lườn hư định g h, kết hợ ách có hệ sion mà nó re khác nh g xác định iá, trị giá, p với các thống. kết hợp, au. 32 2.1.5 Slice ¾ Slice là một “lát cắt”, tương ứng một giá trị duy nhất cho chiều “được chiếu” với các giá trị thành viên của các chiều khác. Hình 17: Slice 33 2.1.6 Partition ¾ Tất cả các khối đều có tối thiểu một phân hoạch (Partition) để chứa dữ liệu của nó. Một partition đơn được tự động tạo ra khi khối được định nghĩa. ¾ Khi ta tạo một partition mới cho một khối, partition mới này được thêm vào trong tập hợp các partition đã tồn tại đối với khối. ¾ Khối phản ánh dữ liệu đã được kết nối có trong tất cả các partition của nó. Một bảng partition của khối là vô hình đối với người dùng. ¾ Các partition tiêu biểu cho một công cụ mạnh, mềm dẻo cho việc quản trị các khối OLAP, đặc biệt các khối lớn. Ví dụ: Một khối chứa thông tin thương mại có thể chứa trong một hoặc nhiều partition cho dữ liệu của những năm trước và các partition cho mỗi quý của năm hiện tại. Cuối năm các bảng partition của bốn quý có thể được hợp nhất trong một partition đơn cho năm đó. Các bảng partition có thể được lưu trữ với các sự lựa chọn kết hợp khác nhau theo phương thức lưu trữ, định vị dữ liệu nguồn và thiết kế kết hợp. Tính mềm dẻo này cho phép ta thiết kế các chiến lược lưu trữ khối thích hợp với các yêu cầu của ta. 2.1.7 Role ¾ Bảo mật trong Analysis Services được tích hợp sẵn và dựa trên bảo mật của Microsoft Windows. Để Analysis Services được bảo mật, ta tạo các role trong database OLAP. Mỗi role có thế chứa một hoặc nhiều user (group) được tạo trong hệ điều hành. Mỗi role được tạo ra sẽ liên kết với các cube trong database OLAP. Nhờ vậy, ta có thể quản lý sự bảo mật của cube bằng cách hạn chế truy cập metadata (các member trong dimemsion) cũng như truy cập data (các giá trị lưu trữ trong cube). ¾ Analysis Services có một role cố định được tạo sẵn, bao gồm các thành viên của group Administrators trên máy chủ server, được gọi là server role. ¾ Để có thể thực thi mọi tác vụ trong hệ thống Analysis Services, user đang dùng 34 phải là thành viên của group Administrators. Tất cả thành viên trong group này được toàn quyền trên các cube và các database của server. ¾ Trong thực tế, người ta tạo ra các role trên mỗi database, gọi là database role, cho phép một user chỉ được quyền quản trị trên một database. ¾ Ngoài ra, ta còn có thể tạo các role ở cấp độ cube (truy cập toàn bộ một số cube quy định) hoặc ở cấp độ dimension (truy cập data ở một số dimension của một số cube nhất định) 2.1.8 Schedule (Lập lịch) ¾ Tại một thời điểm nào đó, hệ thống OLAP server cần phải process lại để update những thay đổi từ phía Database Server, đảm bảo cho Client có thể truy xuất được những dữ liệu mới nhất và đầy đủ của hệ thống. ¾ Có 2 cách process: thủ công và tự động • Thủ công: có thể tiến hành process thủ công khi cần thiết ( có sự thay đổi dữ liệu hay cấu trúc hệ thống). • Tự động: có thể lập lịch cho hệ thống tự động process sau một khoảng thời gian quy định trước. 35 2.2. Quy trình thiết kế các đối tượng trong SSAS Hình 18: Các đối tượng trong SSAS 2.2.1 Sơ lược về quy trình xây dựng Data Warehouse 2.2.1.1 Quy trình chung ¾ Nhận dạng dữ liệu nguồn (Identify the data source): • Một trong những bước đầu tiên để xây dựng Data Warehouse là phải nhận biết các nguồn dữ liệu. Ta cần phải tính toán và xem xét những dữ liệu nào cần thiết để đưa vào Data Warehouse. • Trong một Data Warehouse, có hai loại nguồn dữ liệu cần xem xét, đó là nguồn dữ liệu bên trong (internal data source) và bên ngoài (external data source). Dữ liệu bên trong là những dữ liệu đã có sẵn trong hệ thống hiện tại. Dữ liệu bên ngoài là những dữ liệu từ nhiều nguồn khác nhau ngoài hệ thống. ¾ Chọn lọc dữ liệu (Extracting Transactional Data): 36 • Đây là bước chi phối hầu hết thời gian của quy trình, vì chúng ta cần phải lấy dữ liệu từ nhiều nguồn đã nhận dạng ra để đưa vào kho lưu trữ trung tâm. • Do các nguồn dữ liệu xuất phát từ nhiều hệ thống khác nhau nên các hệ quản trị CSDL của chúng cũng khác nhau, chẳng hạn như MS Access, MS SQL Server, Oracle, Sybase, hoặc cũng có thể là flat files, spreadsheets, mail systems và nhiều dạng lưu trữ dữ liệu khác. Vì thế, ta cần quyết định sẽ sử dụng hệ CSDL nào cho việc tổ chức kho dữ liệu. ¾ Chuyển đổi dữ liệu (Transforming Transactional Data): • Là quá trình chuyển đổi nhằm đảm bảo tính nhất quản của dữ liệu sau khi đã được chọn lọc từ nhiều nguồn khác nhau. • Để có thể chuyển đổi dữ liệu vào Data Warehouse một cách chính xác, ta cần phải xác định ánh xạ của các trường (field) từ nguồn dữ liệu bên ngoài đến các trường của data warehouse. • Sự chuyển đổi này có thể được thực hiện trong quá trình chọn lọc (extracting) hoặc trong khi dữ liệu được đưa vào data warehouse. ¾ Tải dữ liệu (Loading the Data): • Khi quá trình chọn lọc, chuyển đổi và làm sạch đã hoàn tất, dữ liệu sẽ được tải vào data warehouse. • Việc tải dữ liệu có thể phân thành hai loại: tải toàn bộ dữ liệu đang có trong CSDL nguồn và tải những dữ liệu có sự thay đổi trong CSDL nguồn vào data warehouse. • Dữ liệu trong data warehouse phải luôn được làm tươi, có nghĩa phải cập nhật những thay đổi của dữ liệu. • Trong khi cập nhật data warehouse cần phải đảm bảo không có dữ liệu nào bị mất, đồng thời chi phí cho quá trình duyệt các file đã tồn tại phải đạt mức thấp nhất. 37 2.2.1.2 Công cụ thực hiện: ¾ Extract-Transform-Load (ETL): điển hình như DTS (Data Transformation Services) trong SQL Server, Informatica,... Về công cụ ETL dạng Open source có thể kể đến Talend, Kettle… ¾ Lập lịch: SQL Server Agent dùng để lập lịch cho việc tự động chuyển đổi từ CSDL nguồn vào data warehouse. 2.2.2 Quy trình tạo Cube: ¾ Công cụ và database mẫu sử dụng: • Business Intelligence Studio (đi kèm với MS SQL Sever) • Adventure Work Cycle Sample Database (có thể download tại ) ¾ Để tạo một Cube, trước tiên ta cần phải có những thành phần sau: DataSource, DataSource View, Dimension, ... 2.2.2.1 Tạo DataSource Các bước như sau: 1. Trong khung Solution Explorer, phải chuột Data Sources và chọn New Data Source 2. Tại màn hình Welcome to Data Source Wizard, nhấn Next để chuyển sang cửa sổ Select how to define the connection 3. Tại cửa sổ Select how to define the connection page, ta có thể định nghĩa một data source bằng cách tạo mới connection hoặc trên một connection đã có sẵn. Trong bài hướng dẫn này, ta sẽ định nghĩa một data source bằng cách tạo mới một connection, kiểm tra checkbox Create a data source based on an existing or new connection được chọn và nhấn New 38 4. Trong dialog box Connection Manager, ta sẽ định nghĩa giá trị thuộc tính cho Data Source. Trong danh sách Provider, chọn Native OLE DB\SQL Server Native Client 10.0 5. Trong Server Name, gõ vào localhost 6. Kiểm tra giá trị Use Windows Authentication được chọn, trong danh sách Select or enter a database name, ví dụ ở đây ta chọn database Adventure Works DW2008 7. Nhấn Test Connection để kiếm tra kết nối đến với SQL Server 8. Chọn OK và nhấn Next 9. Tại cửa sổ Impersonation Information, ta sẽ thiết lập Security Credential cho SSAS để kết nối tới Data Sources, ta chọn Use the Service account, và nhấn Next. 10. Tại màn hình Completing the wizard, thiết lập tên của Data Source là Adventure Work DW và chọn Finish. 2.2.2.2 Tạo DataSource View Các bước như sau: 1. Trong khung Solution Explorer, phải chuột Data Sources Views, và chọn New Data Source Views 2. Cửa số Welcome to Data Source View Wizard xuất hiện, nhấn Next 3. Dialog Select data source xuất hiện, tại mục Relational Data Sources, chọn Adventure Work DW mà ta đã tạo như trên rồi chọn Next. 4. Tại Dialog Select Tables and Views, ta sẽ chọn các bảng dữ liệu và views từ danh sách đối tượng, ta sẽ chọn các đối tượng sau: ƒ DimCustomer (dbo) ƒ DimDate (dbo) ƒ DimGeography (dbo) ƒ DimProduct (dbo) 39 ƒ FactInternetSales (dbo) 5. Nhấn nút “>” để thêm các bảng vào danh sách Included Objects 6. Nhấn Next 7. Tại thuộc tính Name, ta thiết lập là Adventure Wordk DW và nhấn Finish để hoàn tất việc đĩnh nghĩa một data source view. Data Source View Adventure Work DW sẽ hiển thị tại Data Source View Designer trong Business Intelligence Development Studio và gồm các thành phần sau: o Diagram Pane thể hiện mối quan hệ giữa các bảng dữ liệu trực quan o Tables Pane: các bảng dữ liệu và schema được thể hiện theo tree view o Diagram Organizer Pane hỗ trợ tạo các subdiagram mà thông qua đó ta có thể có dc các subsets của data source view Sau khi hoàn tất bước này, ta sẽ có khung nhìn toàn diện về các bảng dữ liệu và mối quan hệ của chúng. 2.2.2.3 Tạo Dimension Các bước như sau: 1. Trong pane Solution Explorer, phải chuột Dimentsions, chọn New Dimensions. 2. Tại cửa sổ Welcome to Dimension Wizard, chọn Next 3. Tại cửa số Select Creation Method, đảm bảo tùy chọn Use an Existing Table được chọn, chọn Next. 4. Tại cửa sổ Specify Source Information, đảm bảo data source Adventure Works DW được chọn. 5. Trong danh sách Main Table, chọn Date 6. Tại trang Select Dimension Attributes, chọn các Attributes sau: ƒ Date Key 40 ƒ Full Date Alternate Key ƒ English Month Name ƒ Calendar Quarter ƒ Calendar Year ƒ Calendar Semester 7. Thay đổi Attribute Type của cho thuộc tính Full Date Alternate Key từ Regular sang Date bằng cách chọn vào Regular và tiến hành thay đổi. Thực hiện tương tự cho các thuộc tính khác. ƒ English Month Name –> Month ƒ Calendar Quarter –> Quarter ƒ Calendar Year –> Year ƒ Calendar Semester –> Half Year 8. Nhấn Next 9. Tại màn hình Completing the Wizard, trong Preview Pane, ta có thể thấy dimension Date và các thuộc tính của nó. 10. Nhấn Finish để hoàn tất việc định nghĩa Dimension 11. Tiến hành Save All Project 2.2.2.4 Tạo Cube Các bước như sau: 1. Trong Solution Explorer Pane, phải chuột Cubes, chọn New Cubes 2. Tại cửa sổ Welcome to the Cube Wizard, chọn Next 3. Tại cửa sổ Select Creation Method, chọn Use existing tables và nhấn Next 4. tại cửa sổ Select Measure Group Tables, đảm bảo Adventure Works DW data source view được chọn, và nhấn Next. 41 5. Nhấn Suggest để cửa số Suggest Table hiển thị và đề xuất các table cần thiết để xây dựng các measure group. 6. Nhấn Next 7. tại cửa sổ Select Measure, xem lại InternetSales measure group và deselect các checkbox cho các giá trị sau a. Promotion Key b. Currency Key c. Sales Territory Key d. Revision Number 8. Chọn Next 9. tại cửa sổ Selecting Existing Dimensions, chọn Date dimension đã dc định nghĩa và chọn Next 10. Trong cửa sổ Select New Dimension, chọn các dimension mới để thiết lập, đảm bảo Customer, Geography và Product được chọn và deselect InternetSales. 11. Nhấn Next 12. tại cửa sổ Completing the Wizard, thiết lập name của Cube là Analysis Services Tutorial, 13. Chọn Finish để hoàn tất 14. Tiến hành Save All Deploy Cube lên server 1. Trong Solution Explorer Pane, phải chuột Analysis Services Tutorial và chọn Properties. 2. tại Configuration Properties tại pane bên trái, chọn Deployment 3. Chọn OK 4. Phải chuột Analysis Service Tutorial project và chọn Deploy 5. Review lại cửa sổ Output và Deployment Progress – Analysis Service Tutorial để đảm bảo cube được build không có lỗi khi build 42 6. Như vậy project SSAS đã được deploy lên server Browsing Cube : 1. Chuyển sang Dimension Designer cho Product Dimension trong Business Intelligence Studio bằng cách double click vào Product dimension trong Dimension Node 2. Click Browse để hiển thị cây cấu trúc của Product Key 3. Chuyển sang Cube Designer trong Business Intelligence Development Studio bằng cách double click vào Analysis Service Tutorial trong cube node. 4. Chuyển sang Browse tab và nhấn vào biểu tượng reconnect, cửa sổ Browse tab gồm 2 phần ƒ Left Pane: thể hiện các đối tượng của Analysis Service Tutorial Cube ƒ Right Pane gồm 2 phần: phần trên là Filter Pane, phần dưới là Data Pane và việc phân tích, thể hiện dữ liệu sẽ được thực hiện tại đây. 43 Chương 3 Component Pivot Table trong Excel 3.1. Pivot Table 3.1.1 Giới thiệu ¾ Pivot Table là một công cụ rất mạnh của Excel trong việc tạo ra các báo cáo phân tích dữ liệu. Dùng kết hợp 2 công cụ Pivot Table và PivotChart sẽ tạo ra các báo cáo phân tích số liệu hết sức sinh động và hiệu quả. Hình 19: Pivot Table 3.1.2 Cách sử dụng ¾ Tạo một Pivot Table Để tạo một Pivot Table sử dụng PivotTable Wizard bạn cần cho Excel biết tổng hợp trường nào theo cột và trường nào theo hàng. Bạn cũng có thể chỉ định trường trang để xếp các nhóm theo trang. Bạn có thể đảo lại vị trí của các trường để có một bảng tổng hợp khác. 44 Bạn có thể tạo một pivot table từ nhiều nguồn dữ liệu khác nhau. Thường nguồn dữ liệu là các bảng của Excel. Bạn cũng có thể tạo Pivot Table từ nguồn dữ liệu ngoại, từ nhiều vùng hợp lại, hay từ chính các Pivot Table khác. Các bước 1. Chọn một ô bất kỳ trong danh sách cần tổng hợp; gọi Data> PivotTable Report. 2. Trong bước 1 của PivotTable Wizard, chọn nguồn dữ liệu ( Microsoft Excel List hay từ các cơ sở dữ liệu khác); sau đó nhấn nút Next. 3. Trong bước 2 của PivotTable Wizard, vùng địa chỉ của danh sách xuất hiện trong hộp Range. Nếu địa chỉ sai hãy chỉnh lại. Sau đó nhấn Next. 4. Trong bước 3 của PivotTable Wizard, bạn trình bày bố cục của pivot table. Các trường trở thành các nút nằm bên phải của cửa sổ. Kéo nút ứng với trường dữ liệu vào vùng DATA. Để sắp xếp một trường theo cột, kéo nút của trường đó len vùng COLUMN. Để sắp xếp một trường theo hàng, kéo đến vùng ROW. Nhấn nút Next. 5. Trong bước 4 của PivotTable Wizard, bạn chỉ định ô để đặt pivot table. Nếu muốn đặt thêm các tuỳ chọn khác cho pivot table, nhấn nút Options, đặt các tuỳ chọn khác, và nhấn OK. sau đó nhấn Finish. ¾ Các hiệu chỉnh trên một Pivot Table : Thay đổi tên trường Vì pivot tables chỉ là bảng hiển thị thông tin nên bạn không thể thay đổi thông tin trên bảng. Bạn chỉ có thể thay tên của các trường. 1. Để hiệu chỉnh tên trường, chọn trường 2. nhập tên mới. 45 TIP: Để thay đổi các tuỳ chọn khác cho một trường, nhấn kép lên nút của trường đó. Chọn các tuỳ chọn. Thêm trường dữ liệu 1. Để thêm trường dữ liệu, chọn một ô trong bảng pivot table. 2. Nhấn nút PivotTable Wizard trên thanh PivotTable. (Nhấn chuột phải lên vùng thanh công cụ, chọn PivotTable để hiển thị thanh này nếu chưa hiện) 3. Trong bước 3 của PivotTable Wizard, kéo thêm nút của trường bạn muốn thêm vào vùng DATA; nhấn nút Finish. Thêm trường Rows, Columns, hay Pages 1. Để thêm trường hàng, cột hay trang, chọn một ô bất kỳ trong pivot table. 2. Nhấn nút PivotTable Wizard trên thanh PivotTable. 3. Trong bước 3 của PivotTable Wizard, kéo các nút cần thiết vào vùng ROW, COLUMN, hay PAGE; sau đó nhấn Finish. TIP: Để bỏ một trường hàng, cột hay trang, kéo nút trường ra khỏi pivot table. Định dạng Pivot Table Bạn có thể sử dụng tính năng AutoFormat để định dạng 1. Chọn một ô trong bảng pivot table. Chọn Format, AutoFormat. 2. Trên Table Format , chọn định dạng mong muốn, nhấn OK. Chú ý: Để định dạng không bị mất khi ta thay đổi hay cập nhật lại bảng PivotTable cần đảm bảo mục Enable Selection trên PivotTable menu của thanh PivotTable được chọn. Cập nhật Pivot Table Một pivot table không tự cập nhật khi bạn thay đổi dữ liệu nguồn. 46 1. Để cập nhật pivot table, chọn một ô bất kỳ trong pivot table. 2. Nhấn nút Refresh Data trên thanh PivotTable. 3.2. PivotChart ¾ Là công cụ của Excel, đi chung với Pivot Table, giúp người dùng xem dữ liệu theo nhiều dạng biểu đồ khác nhau một cách trực quan Hình 20: PivotChart 47 3.3. Giới thiệu một số công cụ hỗ trợ OLAP tương tự như Pivot Table của Excel 3.3.1 RadarCube OLAP ¾ Là .NET component phục vụ cho việc phân tích dữ liệu được thiết kế cho Windows Forms và cả ASP.NET applications: ƒ RadarCube OLAP Grid cho ASP.NET ƒ RadarCube OLAP Chart cho Windows Form ¾ Tham khảo: Hình 21: RadarCube OLAP 48 3.3.2 Data Dynamics Analysis ¾ Là .NET component phục vụ cho việc phân tích dữ liệu được thiết kế cho Windows Forms và cả ASP.NET applications ¾ Tham khảo: Hình 22: Data Dynamics Analysis 49 3.3.3 ComponentOne OLAP for WinForm ¾ Chỉ dùng cho Windows Forms Application ¾ Tham khảo: Hình 23: ComponentOne OLAP for WinForm 3.3.4 Devexpress ASPxPivotGrid ¾ Là 1 .NET control thiết kế cho ASP.NET phục vụ OLAP và Data mining ¾ Có nhiều hỗ trợ về giao diện đẹp mắt và tính năng khá phong phú ¾ Xây dựng sẵn rất nhiều class để người dùng tùy biến, lập trình tùy theo nhu cầu sử dụng của mình ¾ Tham khảo: 50 Hình 24: Devexpress ASPxPivotGrid 3.4 So sánh Pivot Table với các công cụ khác: Ưu điểm: ¾ Là 1 công cụ rất mạnh được Microsoft phát triển để hỗ trợ việc phân tích dữ liệu trong OLAP và được tích hợp trong Excel ¾ Đi kèm với PivotChart cung cấp cho người sử dụng 1 cái nhìn trực quan, sinh động về những dữ liệu muốn phân tích Nhược điểm: ¾ Nhược điểm lớn nhất: Pivot Table là COM component nên nếu client muốn sử dụng thì bắt buộc máy tính của họ phải có cài sẵn Pivot Table Î Điều này dẫn đến một hệ thống càng nhiều client sử dụng bao nhiêu thì càng phải tốn chi phí bấy nhiêu cho việc cài đặt ¾ Thêm vào đó, nếu muốn sử dụng PivotTable trên nền Web thì chỉ chạy được ứng dụng trên browser IE của Microsoft (vì chỉ có IE có hỗ trợ ActiveX Control) 51 Kết luận: ¾ Chính vì những nhược điểm này, nhóm em đã quyết định không phát triển ứng dụng của mình dựa trên component PivotTable của Microsoft mà sử dụng component Devexpress ASPxPivotGrid đã được giới thiệu ở phần 3.3.4 ¾ Với việc sử dụng Devexpress ASPxPivotGrid là một .NET control để xây dựng nên ứng dụng xây dựng chạy phía sever, nhóm em muốn rằng các máy client chỉ cần một browser bình thường mà không cần cài đặt thêm bất cứ công cụ nào khác để sử dụng chương trình. 52 Chương 4 Các thư viện lập trình liên quan đến SSAS 4.1. AMO ¾ Là tập hợp các lớp dùng quản lý tất cả các đối tượng của Analysis service như Database, Cube, Dimension, Measure … Lưu ý: Thư viện AMO chỉ hỗ trợ việc đọc cấu trúc của các đối tượng trong AS chứ không thể truy vấn dữ liệu. ¾ Tài liệu tham khảo về AMO ở MSDN: ¾ Ví dụ về sử dụng thư viện AMO trong đề tài: using Microsoft.AnalysisServices; ..... Server myServer = new Server(); Database myDB = new Database(); Cube myCube = new Cube(); Dimension myDim = new Dimension(); myServer.Connect("localhost"); Database tmpDB = myServer.Databases.FindByName(“Project”); Cube tmpCube = tmpDB.Cubes.FindByName(“Adventure Works DW”); foreach (CubeDimension tmpCubeDim in tmpCube.Dimensions) { ..... } 53 4.2. ADOMD.NET ¾ Với AMO, ta đã có thể thao tác được với các đối tượng và lấy được cấu trúc các thành phần của Analysis service. Tuy nhiên, không thể truy vấn được data. Để truy vấn data trong Analysis service, ta phải dùng thư viện ADOMD.NET ¾ Tài liệu tham khảo về AMO ở MSDN: ¾ Ví dụ về sử dụng thư viện ADOMD.NET trong đề tài: using Microsoft.AnalysisServices.AdomdClient; ... string strConn = "Provider=MSOLAP.3; Data Source=localhost;Initial Catalog=Project;Integrated Security=SSPI"; string strMDX = "select " + "[" + attNode.ParentNode["Cube structure"].ToString() + "].[" + attNode["Cube structure"].ToString() + "].Members on Columns From [" + tmpCube + "]"; AdomdConnection conn = new AdomdConnection(strConn); conn.Open(); //create adomd command using connection and MDX query AdomdCommand cmd = new AdomdCommand(strMDX, conn); AdomdDataReader Reader = cmd.ExecuteReader(); Reader.Read(); .... 4.3. SMO ¾ Dùng tạo các job trong SQL Server Agent phục vụ cho việc lập lịch để process lại Analysis Service Database nhằm update những thay đổi từ phía Database 54 Server, đảm bảo cho Client có thể truy xuất được những dữ liệu mới nhất và đầy đủ của hệ thống ¾ Tài liệu tham khảo về AMO ở MSDN: ¾ Ví dụ về sử dụng thư viện SMO trong đề tài: using Microsoft.SqlServer.Management.Smo; using Microsoft.SqlServer.Management.Smo.Agent; ..... Server svr = new Server("(local)"); JobServer agent = svr.JobServer; Job j = new Job(agent, "Smo Job"); j.Create(); JobStep js = new JobStep(j, "Step 1"); js.SubSystem = AgentSubSystem.AnalysisCommand; string str = @"<Process xmlns="""">"; str = str + "" + curr_db + ""; str = str + ""; str = str + "ProcessFull"; str = str + “"; js.Server = "localhost"; js.Command = str; js.OnSuccessAction = StepCompletionAction.QuitWithSuccess; js.OnFailAction = StepCompletionAction.QuitWithFailure; js.Create(); 55 4.4. MDX Analysis Service không dùng ngôn ngữ truy vấn như đối với cơ sở dữ liệu quan hệ thông thường. Thay vào đó, để truy vấn dữ liệu ta phải dùng đến ngôn ngữ MDX (Multi-dimensional Expressions) 4.4.1 Cấu trúc chung ¾ Giống cấu trúc của 1 câu truy vấn SQL trên CSDL thông thường, nhưng mở rộng hơn để truy vấn trên khối dữ liệu đa chiều. Câu truy vấn đa chiều (MDX) có dạng như sau: SELECT [ [, ...]] FROM [<mô tả về khối đữ liệu >] [WHERE []] ¾ Trong MDX, phát biểu SELECT được dùng để mô tả 1 tập dữ liệu là 1 tập con của dữ liệu đa chiều. Một câu truy vấn MDX có chứa một mệnh đề SELECT, một mệnh đề FROM và một mệnh đề tùy chọn WHERE ¾ Câu truy vấn MDX phải chứa các thông tin sau : • Số lượng chiều (có thể mô tả tối đa 128 chiều) • Các thành viên của mỗi chiều cho từng trục của câu truy vấn • Tên của khối có chứa dữ liệu cho câu truy vấn MDX. • Các thành viên từ 1 chiều cắt, theo đó dữ liệu khối được cắt. 4.4.2 Ví dụ mẫu SELECT { [Measures].[Unit Sales], [Measures].[Store Sales] } ON COLUMNS, { [Time].[1997], [Time].[1998] } ON ROWS FROM Sales WHERE ( [Store].[USA].[CA] ) ¾ Mệnh đề SELECT xác định các chiều của tập kết quả của truy vấn MDX, trong ví dụ là 2 chiều COLUMNS và ROWS. 56 ¾ Mệnh đề FROM xác định nguồn dữ liệu đa chiều (khối) nào được sử dụng để trích lọc dữ liệu vào tập kết quả của phát biểu SELECT. Trong ví dụ là từ khối dữ liệu Sales ¾ Mệnh đề WHERE nếu có, dùng để xác định chiều cắt của khối dữ liệu, nhằm giới hạn tập kết quả theo các chiều thành viên. Trong ví dụ, dữ liệu được cắt theo thành viên CA của chiều Store. 4.4.3 Lưu ý ¾ Phát biểu SELECT của câu truy vấn MDX còn hỗ trợ các cú pháp tuỳ chọn khác, như là từ khóa WITH và việc sử dụng các hàm MDX để xây dựng các thành viên bằng việc tính toán để thêm vào 1 trục hoặc 1 chiều cắt. ¾ Cú pháp của câu truy vấn MDX tương tự như cú pháp SQL, tuy nhiên, có 1 số khác biệt như sau : • Cú pháp MDX phân biệt các tập hợp bằng việc dùng dấu ngoặc nhọn { } bao quanh các bộ hay thành viên. • Câu truy vấn MDX có thể chứa tới 128 chiều, nhưng chỉ có 5 chiều đầu tiên là có aliase (tên phụ). Một trục có thể được tham chiếu bởi thứ tự của nó trong câu MDX hay bởi tên phụ của nó nếu có. Câu truy vấn MDX còn có thể được viết theo mẫu sau dùng thứ tự của mỗi trục: SELECT { [Measures].[Unit Sales], [Measures].[Store Sales] } ON AXIS(0), { [Time].[1997], [Time].[1998] } ON AXIS(1) FROM Sales WHERE ( [Store].[USA].[CA] ) • Trong câu truy vấn SQL, mệnh đề FROM có thể chỉ đến nhiều bảng dữ liệu. Tuy nhiên, mệnh đề FROM trong câu truy vấn MDX bị giới hạn ở 1 khối duy nhất. 57 • Mệnh đề WHERE được dùng để mô tả chiều cắt dữ liệu. Nếu 1 chiều không được đề cập trong mệnh đề WHERE, SQL Analysis Services vẫn xem nó là 1 chiều cẳt, nhưng được lọc theo số thành viên mặc định của nó. Mệnh đề WHERE có thể thay đổi tiến trình lọc cho 1 chiều nào đó, giúp tinh chỉnh dữ liệu kết quả. 58 Chương 5 Xây dựng công cụ Web hỗ trợ phân tích dữ liệu cho các ứng dụng OLTP 5.1. Phân tích, thiết kế 5.1.1 Phân tích 5.1.1.1 Quy trình xử lý nghiệp vụ: 59 Hình 25: Mô hình xử lý nghiệp vụ quản lý template 5 .1.1.2 Yê Hình u cầu ch 26: Sơ đồ ức năn Use-Case 60 g: mô tả hệ th ống chức năng của Administrator H Hình ình 27: Sơ 28: Sơ đồ đồ Use-Ca User-Case 61 se mô tả hệ mô tả hệ t thống chứ hống chức c năng củ năng của a Designer Custom Us er 62 Hình 29: Sơ đồ Use-Case mô tả chức năng quản lý Template Hình 30: Sơ đồ Use-Case mô tả chức năng phân quyền Template Hình 31 Hình 32: S : Sơ đồ Us ơ đồ Use-C 63 e-Case mô ase mô tả tả chức nă chức năng ng quản lý phân quy Cube ền Cube 64 Hình 33: Sơ đồ Use-Case mô tả chức năng quản lý User 65 Hình 34: Sơ đồ Use-Case mô tả chức năng quản lý Group Hình 35: Sơ đồ Use-Case mô tả chức năng quản lý Profile 66 Hình 36: Sơ đồ Use-Case mô tả chức năng cấu hình hệ thống 5.1.1.3 Mô hình quan niệm dữ liệu: Hình 37: Mô hình 67 quan niệm dữ liệu hệ thống OLAP 68 ¾ Mô tả các loại thực thể: • Loại thực thể tblChi_Tiet_Group: Thuộc tính Kiểu Kích thước P1 U M L iStt_Chi_Tiet int 4 x x x x • Loại thực thể tblChi_Tiet_Template: Thuộc tính Kiểu Kích thước P U M L iStt_CTTemplate int 4 x x x x iDefault int 4 x • Loại thực thể tblRole: Thuộc tính Kiểu Kích thước P U M L iMa_Role int 4 x x x x vTen_Role varchar 20 x x x • Loại thực thể tblGroup: Thuộc tính Kiểu Kích thước P U M L iMa_Group int 4 x x x x vTen_Group varchar 20 x x vMo_Ta varchar 100 • Loại thực thể tblQuyen: Thuộc tính Kiểu Kích thước P U M L iMa_Quyen int 4 x x x x vTen_Quyen varchar 50 x x vMo_Ta varchar 100 • Loại thực thể tblTemplate: Thuộc tính Kiểu Kích thước P U M L iMa_Template int 4 x x x x vTen_ Template varchar 30 x x vLoai varchar 10 x tNoi_Dung text x iParent int 4 vStatus varchar 20 x vMo_Ta varchar 100 1 P : primary key (khóa chính) U : unique key, candidate key (khóa chỉ định) M : mandatory (not null) L : locked (không cho phép sửa giá trị ) 69 • Loại thực thể tblUser: Thuộc tính Kiểu Kích thước P U M L iMa_User int 4 x x x x vHo_Ten varchar 30 x vUser_name varchar 20 x x vPassword int 64 x vMo_Ta varchar 100 vDien_Thoai varchar 15 vEmail varchar 50 vChuc_Vu varchar 50 vDia_Chi varchar 50 • Loại thực thể tblCurrentConnect: Thuộc tính Kiểu Kích thước P U M L vServer varchar 20 x x x x • Loại thực thể tblAttribute: Thuộc tính Kiểu Kích thước P U M L iMa_Att int 4 x x x x vTen_Att varchar 50 x • Loại thực thể tblCube: Thuộc tính Kiểu Kích thước P U M L iMa_Cube int 4 x x x x vTen_Cube varchar 50 x vMo_Ta varchar 100 iActive int 4 x • Loại thực thể tblDatabase: Thuộc tính Kiểu Kích thước P U M L iMa_DB int 4 x x x x vTen_DB varchar 50 x • Loại thực thể tblDimension: Thuộc tính Kiểu Kích thước P U M L iMa_Dim int 4 x x x x vTen_Dim varchar 50 x • Loại thực thể tblChi_Tiet_Role_Member: Thuộc tính Kiểu Kích thước P U M L iStt_Chi_Tiet int 4 x x x x 70 • Loại thực thể tblMember: Thuộc tính Kiểu Kích thước P U M L iMa_Member int 4 x x x x vTen_Member varchar 50 x • Loại thực thể tblProfile: Thuộc tính Kiểu Kích thước P U M L iMa_Profile int 4 x x x x vTen_Profile varchar 20 x x vMo_Ta varchar 100 • Loại thực thể tblChuc_Nang_Profile: Thuộc tính Kiểu Kích thước P U M L iStt_Chuc_Nang int 4 x x x x ¾ Mô tả ràng buộc toàn vẹn: • Khóa nội: (S) R1-01: id(tblChi_Tiet_Group) = iStt_Chi_Tiet (S) R1-02: id(tblChi_Tiet_Template) = iStt_CTTemplate (S) R1-03: id(tblRole) = iMa_Role (S) R1-04: id(tblGroup) = iMa_Group (S) R1-05: id(tblQuyen) = iMa_Quyen (S) R1-06: id(tblTemplate) = iMa_Template (S) R1-07: id(tblUser) = iMa_User (S) R1-08: id(tblCurrentConnect) = vServer (S) R1-09: id(tblAttribute) = iMa_Att (S) R1-10: id(tblCube) = iMa_Cube (S) R1-11: id(tblDatabase) = iMa_DB (S) R1-12: id(tblDimension) = iMa_Dim (S) R1-13: id(tblChi_Tiet_Role_Member) = iStt_Chi_Tiet (S) R1-14: id(tblMember) = iMa_Member (S) R1-15: id(tblProfile) = iMa_Profile (S) R1-16: id(tblChuc_Nang_Profile) = iStt_Chuc_Nang • Ràng buộc về miền giá trị: (I) R2-01: tblTemplate_Detail.iDefault in (0,1). (I) R2-02: tblTemplate.vLoai in (‘public’, ‘private’). (I) R2-03: tblTemplate.vStatus in (‘normal’, ‘restricted’). (I) R2-04: tblTemplate_Detail.iActive in (0,1). - (S) : ràng buộc sẽ được hệ quản trị cơ sở dữ liệu kiểm tra. - (I) : ràng buộc sẽ được kiểm tra ở mức giao diện. - (T) : ràng buộc sẽ được thay thế bằng trigger. 71 • Khóa ngoại: (S) R3-01: tblRole[vTen_Role] ⊆ tblGroup[vTen_Group] (S) R3-02: tblChi_Tiet_Group[iMa_User] ⊆ tblUser[iMa_User] (S) R3-03: tblChi_Tiet_Group[iMa_Group] ⊆ tblGroup[iMa_ Group] (S) R3-04: tblUser[iMa_Profile] ⊆ tblProfile[iMa_ Profile] (S) R3-05: tblMember[iMa_Att] ⊆ tbl Attribute[iMa_ Att] (S) R3-06: tblChi_Tiet_Role_Member[iMa_Member] ⊆ tblMember (S) [iMa_ Member] (S) R3-07: tblChi_Tiet_Role_Member[iMa_Role] ⊆ tblRole[iMa_ Role] (S) R3-08: tblTemplate[iMa_Cube] ⊆ tblCube[iMa_ Cube] (S) R3-09: tblChi_Tiet_Template[iMa_User] ⊆ tblUser[iMa_User] (S) R3-10: tblChi_Tiet_Template[iMa_Template] ⊆ tblTemplate[iMa_Template] (S) R3-11: tblChi_Tiet_Template[iMa_Quyen] ⊆ tblQuyen [iMa_ Quyen] (S) R3-12: tblChuc_Nang_Profile[iMa_ Profile] ⊆ tblProfile [iMa_ Profile] R3-13: tblChuc_Nang_Profile[iMa_ Quyen] ⊆ tblQuyen [iMa_ Quyen] (S) R3-14: tblAttribute[iMa_Dim] ⊆ tblDimemsion[iMa_ Dim] (S) R3-15: tblDimemsion[iMa_Cube] ⊆ tblCube [iMa_Cube] (S) R3-16: tblCube [iMa_DB] ⊆ tblDatabase[iMa_DB] (S) R3-17: tblCurrentConnect [iMa_DB] ⊆ tblDatabase[iMa_DB] (S) R3-18: tblQuyen[iParent] ⊆ tblQuyen [iMa_Quyen] • Ràng buộc giữa các thuộc tính trong một bảng: (T) R4-01: tblTemplate[iParent] ⊆ tblTemplate[iMa_Template] CREATE TRIGGER trg_Template_delete ON tblTemplate FOR DELETE AS DECLARE @iMa_Template INT SELECT @iMa_Template = iMa_Template FROM deleted DELETE FROM tblTemplate WHERE iParent = @iMa_Template ; • Ràng buộc giữa các thuộc tính, các bộ của nhiều bảng: (T) R5-01: tblTemplate[iOwner] ⊆ tblUser[iMa_User] CREATE TRIGGER trg_User_delete ON tblUser FOR DELETE AS DECLARE @iMa_User INT SELECT @iMa_User = iMa_User FROM deleted DELETE FROM tblTemplate WHERE iMa_Template in ( 72 SELECT DISTINCT tblTemplate.iMa_Template FROM tblTemplate WHERE (tblTemplate.iOwner = @iMa_User)) ; 5.1.2 Thiết kế 5.1.2.1 Dữ liệu: ¾ Mô hình vật lý: 73 Hình 38: Mô hình vật lý 74 ¾ Mô tả các bảng: • Bảng tblChi_Tiet_Group: Thuộc tính Kiểu Kích thước P2 U M L F iStt_Chi_Tiet int 4 x x x x iMa_User int 4 x x x iMa_Group int 4 x x x Khóa ngoại: Khóa ngoại Bảng tham chiếu Khóa nội iMa_User tblUser iMa_User iMa_Group tblGroup iMa_Group • Bảng tblChi_Tiet_Template: Thuộc tính Kiểu Kích thước P U M L F iStt_CTTemplate int 4 x x x x iMa_User int 4 x x x iMa_Template int 4 x x x iMa_Quyen int 4 x x x iDefault int 4 x Khóa ngoại: Khóa ngoại Bảng tham chiếu Khóa nội iMa_User tblUser iMa_User iMa_ Template tblTemplate iMa_ Template iMa_Quyen tblQuyen iMa_Quyen • Bảng tblRole: Thuộc tính Kiểu Kích thước P U M L F iMa_Role int 4 x x x x vTen_Role varchar 20 x x x x Khóa ngoại: Khóa ngoại Bảng tham chiếu Khóa nội vTen_Role tblGroup vTen_Group • Bảng tblGroup: Thuộc tính Kiểu Kích thước P U M L F iMa_Group int 4 x x x x vTen_Group varchar 20 x x vMo_Ta varchar 100 2 P : primary key (khóa chính) U : unique key, candidate key (khóa chỉ định) M : mandatory (not null) L : locked (không cho phép sửa giá trị ) F : foreign key (khóa ngoại). 75 • Bảng tblQuyen: Thuộc tính Kiểu Kích thước P U M L F iMa_Quyen int 4 x x x x vTen_Quyen varchar 50 x x vMo_Ta varchar 100 iParent int 4 x x Khóa ngoại: Khóa ngoại Bảng tham chiếu Khóa nội iParent tblQuyen iMa_Quyen • Bảng tblTemplate: Thuộc tính Kiểu Kích thước P U M L F iMa_Template int 4 x x x x vTen_ Template varchar 30 x x vLoai varchar 10 x tNoi_Dung text x iOwner int 4 x iMa_Cube int 4 x x x iParent int 4 vStatus varchar 20 x vMo_Ta varchar 100 Khóa ngoại: Khóa ngoại Bảng tham chiếu Khóa nội iOwner tblUser iMa_User iMa_Cube tblCube iMa_Cube • Bảng tblUser: Thuộc tính Kiểu Kích thước P U M L F iMa_User int 4 x x x x vHo_Ten varchar 30 x vUser_name varchar 20 x x vPassword int 64 x iMa_Profile int 4 x x x vMo_Ta varchar 100 vDien_Thoai varchar 15 vEmail varchar 50 vChuc_Vu varchar 50 vDia_Chi varchar 50 Khóa ngoại: Khóa ngoại Bảng tham chiếu Khóa nội iMa_Profile tblProfile iMa_Profile 76 • Bảng tblCurrentConnect: Thuộc tính Kiểu Kích thước P U M L F vServer varchar 20 x x x x iMa_DB int 4 x x x Khóa ngoại: Khóa ngoại Bảng tham chiếu Khóa nội iMa_DB tblDatabase iMa_DB • Bảng tblAttribute: Thuộc tính Kiểu Kích thước P U M L F iMa_Att int 4 x x x x vTen_Att varchar 50 x iMa_Dim int x x x Khóa ngoại: Khóa ngoại Bảng tham chiếu Khóa nội iMa_Dim tblDimension iMa_Dim • Bảng tblCube: Thuộc tính Kiểu Kích thước P U M L F iMa_Cube int 4 x x x x vTen_Cube varchar 50 x iMa_DB int 4 x x x vMo_Ta varchar 100 iActive int 4 x Khóa ngoại: Khóa ngoại Bảng tham chiếu Khóa nội iMa_DB tblDatabase iMa_DB • Bảng tblDatabase: Thuộc tính Kiểu Kích thước P U M L F iMa_DB int 4 x x x x vTen_DB varchar 50 x • Bảng tblDimension: Thuộc tính Kiểu Kích thước P U M L F iMa_Dim int 4 x x x x vTen_Dim varchar 50 x iMa_Cube int 4 x x x Khóa ngoại: Khóa ngoại Bảng tham chiếu Khóa nội iMa_Cube tbl Cube iMa_Cube 77 • Bảng tblChi_Tiet_Role_Member: Thuộc tính Kiểu Kích thước P U M L F iStt_Chi_Tiet int 4 x x x x iMa_Member int 4 x x x iMa_Role int 4 x x x Khóa ngoại: Khóa ngoại Bảng tham chiếu Khóa nội iMa_Member tblMember iMa_Member iMa_Role tblRole iMa_Role • Bảng tblMember: Thuộc tính Kiểu Kích thước P U M L F iMa_Member int 4 x x x x vTen_Member varchar 50 x iMa_Att int 4 x x x Khóa ngoại: Khóa ngoại Bảng tham chiếu Khóa nội iMa_Att tblAttribute iMa_ Att • Bảng tblProfile: Thuộc tính Kiểu Kích thước P U M L F iMa_Profile int 4 x x x x vTen_Profile varchar 20 x x vMo_Ta varchar 100 • Bảng tblChuc_Nang_Profile: Thuộc tính Kiểu Kích thước P U M L F iStt_Chuc_Nang int 4 x x x x iMa_Profile int 4 x x x iMa_Quyen int 4 x x x Khóa ngoại: Khóa ngoại Bảng tham chiếu Khóa nội iMa_ Profile tblProfile iMa_ Profile iMa_Quyen tblQuyen iMa_Quyen ¾ Mô tả ràng buộc toàn vẹn3: • Khóa nội: (S) R1-01: id(tblChi_Tiet_Group) = iStt_Chi_Tiet (S) R1-02: id(tblChi_Tiet_Template) = iStt_CTTemplate (S) R1-03: id(tblRole) = iMa_Role 3 - (S) : ràng buộc sẽ được hệ quản trị cơ sở dữ liệu kiểm tra. - (I) : ràng buộc sẽ được kiểm tra ở mức giao diện. - (T) : ràng buộc sẽ được thay thế bằng trigger. 78 (S) R1-04: id(tblGroup) = iMa_Group (S) R1-05: id(tblQuyen) = iMa_Quyen (S) R1-06: id(tblTemplate) = iMa_Template (S) R1-07: id(tblUser) = iMa_User (S) R1-08: id(tblCurrentConnect) = vServer (S) R1-09: id(tblAttribute) = iMa_Att (S) R1-10: id(tblCube) = iMa_Cube (S) R1-11: id(tblDatabase) = iMa_DB (S) R1-12: id(tblDimension) = iMa_Dim (S) R1-13: id(tblChi_Tiet_Role_Member) = iStt_Chi_Tiet (S) R1-14: id(tblMember) = iMa_Member (S) R1-15: id(tblProfile) = iMa_Profile (S) R1-16: id(tblChuc_Nang_Profile) = iStt_Chuc_Nang • Ràng buộc về miền giá trị: (I) R2-01: tblTemplate_Detail.iDefault in (0,1). (I) R2-02: tblTemplate.vLoai in (‘public’, ‘private’). (I) R2-03: tblTemplate.vStatus in (‘normal’, ‘restricted’). (I) R2-04: tblTemplate_Detail.iActive in (0,1). • Khóa ngoại: (S) R3-01: tblRole[vTen_Role] ⊆ tblGroup[vTen_Group] (S) R3-02: tblChi_Tiet_Group[iMa_User] ⊆ tblUser[iMa_User] (S) R3-03: tblChi_Tiet_Group[iMa_Group] ⊆ tblGroup[iMa_ Group] (S) R3-04: tblUser[iMa_Profile] ⊆ tblProfile[iMa_ Profile] (S) R3-05: tblMember[iMa_Att] ⊆ tbl Attribute[iMa_ Att] (S) R3-06: tblChi_Tiet_Role_Member[iMa_Member] ⊆ tblMember (S) [iMa_ Member] (S) R3-07: tblChi_Tiet_Role_Member[iMa_Role] ⊆ tblRole[iMa_ Role] (S) R3-08: tblTemplate[iMa_Cube] ⊆ tblCube[iMa_ Cube] (S) R3-09: tblChi_Tiet_Template[iMa_User] ⊆ tblUser[iMa_User] (S) R3-10: tblChi_Tiet_Template[iMa_Template] ⊆ tblTemplate[iMa_Template] (S) R3-11: tblChi_Tiet_Template[iMa_Quyen] ⊆ tblQuyen [iMa_ Quyen] (S) R3-12: tblChuc_Nang_Profile[iMa_ Profile] ⊆ tblProfile [iMa_ Profile] R3-13: tblChuc_Nang_Profile[iMa_ Quyen] ⊆ tblQuyen [iMa_ Quyen] (S) R3-14: tblAttribute[iMa_Dim] ⊆ tblDimemsion[iMa_ Dim] (S) R3-15: tblDimemsion[iMa_Cube] ⊆ tblCube [iMa_Cube] 79 (S) R3-16: tblCube [iMa_DB] ⊆ tblDatabase[iMa_DB] (S) R3-17: tblCurrentConnect [iMa_DB] ⊆ tblDatabase[iMa_DB] (S) R3-18: tblQuyen[iParent] ⊆ tblQuyen [iMa_Quyen] • Ràng buộc giữa các thuộc tính trong một bảng: (T) R4-01: tblTemplate[iParent] ⊆ tblTemplate[iMa_Template] CREATE TRIGGER trg_Template_delete ON tblTemplate FOR DELETE AS DECLARE @iMa_Template INT SELECT @iMa_Template = iMa_Template FROM deleted DELETE FROM tblTemplate WHERE iParent = @iMa_Template ; • Ràng buộc giữa các thuộc tính, các bộ của nhiều bảng: (T) R5-01: tblTemplate[iOwner] ⊆ tblUser[iMa_User] CREATE TRIGGER trg_User_delete ON tblUser FOR DELETE AS DECLARE @iMa_User INT SELECT @iMa_User = iMa_User FROM deleted DELETE FROM tblTemplate WHERE iMa_Template in ( SELECT DISTINCT tblTemplate.iMa_Template FROM tblTemplate WHERE (tblTemplate.iOwner = @iMa_User)) ; 5.1.2.2 Kiến trúc module: 80 5.1.2.3 Hệ thống giao diện: ¾ Hệ thống giao diện phân hệ Administrator: Hình 39: Màn hình chính phân hệ administrator Phân hệ Custom User Phân hệ Designer Phân hệ Administrator Hệ thống OLAP 81 Hình 40: Màn hình chức năng Copy Rights Hình 41: Màn hình chức năng Active cube Hình 42: Màn hình chức năng Assign cube to group 82 Hình 43: Màn hình chức năng Assign user to cube Hình 44: Màn hình chức năng List user 83 Hình 45: Màn hình chức năng Assign Groups Hình 46: Màn hình chức năng Assign Users Hình 47: Màn hình chức năng Import cube 84 Hình 48: Màn hình chức năng Assign rights to profile Hình 49: Màn hình chức năng Schedule 85 Hình 50: Màn hình chức năng Setting Connection ¾ Hệ thống giao diện phân hệ Designer: Hình 51: Màn hình chính phân hệ designer 86 Hình 52: Màn hình chức năng Design template Hình 53: Màn hình chức năng Export template 87 Hình 54: Màn hình chức năng Assign template to user ¾ Hệ thống giao diện phân hệ Custom User: Hình 55: Màn hình chính phân hệ custom user 88 5.2. Cài đặt, lập trình ¾ Kiến trúc hệ thống ƒ MS SQL Server 2005 Analysis Service ƒ Windows Server 2003 ƒ Web server IIS ¾ Ngôn ngữ lập trình ƒ ASP.NET C# ¾ Cơ sở dữ liệu: ƒ MS SQL Server 2005 89 Đánh giá, bàn luận về kết quả ¾ Chi tiết các công việc đã tiến hành • Tìm hiểu các tài liệu về công nghệ OLAP, Data Warehouse • Kiến trúc các thành phần OLAP và cách xây dựng chúng trong MS SQL Server Analysis Service (SSAS) • Tìm hiểu và sử dụng component Pivot Table, PivotChart trong Excel • Tìm hiểu và sử dụng các thư viện lập trình liên quan đến SSAS: MDX, AMO, SMO, ADOMD.NET, ... • Tìm hiểu ngôn ngữ ASP.NET và các thư viện liên quan phục vụ cho việc lập trình • Xây dựng công cụ hỗ trợ phân tích dữ liệu ¾ Làm được • Nắm được nền tảng lý thuyết về OLAP, Data Warehouse, SSAS, ... • Viết ứng dụng hoàn thiện hầu hết các chức năng đã đề ra ban đầu • Giao diện thân thiện với người dùng • Có nghiên cứu tìm hiểu, bổ sung thêm các tính năng mới vào chương trình sao cho phù hợp với nhu cầu thực tế và thuận tiện hơn cho người sử dụng. ¾ Chưa làm được • Chức năng cho người dùng save lại Local Cube như trong Pivot Table. 90 ¾ Hướng giải quyết ¾ Những điều học được từ đề tài • Kiến trúc nền tảng của công nghệ OLAP và Data Warehouse • Sử dụng thành thạo hơn ngôn ngữ lập trình ASP.NET và các công cụ của MS SQL Server 2005 • Khả năng đọc hiểu tài liệu tiếng Anh • Kỹ năng làm việc nhóm : ƒ Phân chia công việc một cách cụ thể, rõ ràng ƒ Tuân thủ các nguyên tắc, các chuẩn đã đề ra • Đức tính cần cù, tỉ mỉ trong quá trình kiểm thử, phát hiện và sửa lỗi của chương trình. 91 Kết luận - Hướng phát triển Các kết quả đã đạt được 1. Về lý thuyết ¾ Nắm được những kiến thức nền tảng về DataWarehouse và công nghệ OLAP ¾ Hiểu về kiến trúc các thành phần trong MS SQL Server Analysis Service (SSAS) và quy trình thiết kế các thành phần này ¾ Hiểu về component Pivot Table trong Excel và cách sử dụng ¾ Có kiến thức về các thư viện lập trình liên quan đến SSAS: DSO, MDX, AMO, ADOMD.NET, ... 2. Về thực nghiệm ¾ Cài đặt • Xây dựng 1 công cụ tương đối hoàn chỉnh trên nền Web hỗ trợ phân tích dữ liệu cho các ứng dụng OLTP. Công cụ này hoàn toàn độc lập với dữ liệu của người dùng. ¾ Những đóng góp mới • Có hệ thống template giúp người dùng dễ dàng hơn trong quá trình xem và phân tích dữ liệu • Có chức năng Import, Export template, dữ liệu,... phục vụ cho nhu cầu chuyển đổi giữa các hệ thống khác nhau • Tìm hiểu, bổ sung thêm các tính năng mới vào chương trình sao cho phù hợp với nhu cầu thực tế và thuận tiện hơn cho người sử dụng. 92 ¾ Hướng phát triển • Data Mining 93 Danh mục tài liệu tham khảo Tiếng Anh: [1] Reed Jacobson (2006), Microsoft SQL Server 2005 Analysis Services Step.By.Step, MS.Press. [2] Robert Vieira (2007), Professional SQL Server 2005 Programming, Wiley Publishing. [3] Edward Whalen (2007), Microsoft SQLServer2005 Administrator’s Companion, MS.Press. Tiếng Việt: [4] Nguyễn Thanh Bình (2002), Kho dữ liệu và hệ hỗ trợ quyết định, Đại học Huế

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

  • pdf73632325-Bao-Cao-Luan-Van-OLAP.pdf