Bài tập lớn về tìm hiểu IC LM324 nhóm 3 ĐH công nghệ- ĐHQGHN
bao cao thuc tapFull description
Full description
Full description
Full description
Hệ thống báo cháy tự động
Full description
bao cao thuc tapFull description
Thực hànhFull description
Full description
Full description
Full description
xuất khẩu gỗFull description
ƯỜ NG TR ƯỜ NG ĐẠI HỌC SƯ PHẠM TP.CM KHOA TOÁN – TIN HỌC BỘ MÔN TIN HỌC
Trần V ĩ nh nh Tiến Đứ c – Nguyễn Phú Thịnh
NGHIÊN CỨ U CÔNG NGHỆ OLAP VÀ Ứ NG NG DỤNG
LUẬ N VĂ N CỬ NHÂN CÔNG NGHỆ THÔNG TIN
TP.HCM, Tháng 4-2010
ƯỜ NG TR ƯỜ NG ĐẠI HỌC SƯ PHẠM TP.CM KHOA TOÁN – TIN HỌC BỘ MÔN TIN HỌC
Tr ần V ĩ nh nh Tiến Đức – Nguyễn Phú Thịnh
NGHIÊN CỨ U CÔNG NGHỆ OLAP VÀ Ứ NG NG DỤNG
GIÁO VIÊN HƯỚ NG NG DẪN: NGUYỄN THỊ TRÀ LINH
TP.HCM, Tháng 4-2010
1
ƯỜ NG TR ƯỜ NG ĐẠI HỌC SƯ PHẠM TP.CM KHOA TOÁN – TIN HỌC BỘ MÔN TIN HỌC
Tr ần V ĩ nh nh Tiến Đức – Nguyễn Phú Thịnh
NGHIÊN CỨ U CÔNG NGHỆ OLAP VÀ Ứ NG NG DỤNG
GIÁO VIÊN HƯỚ NG NG DẪN: NGUYỄN THỊ TRÀ LINH
TP.HCM, Tháng 4-2010
1
Lờ i cảm ơ n. n. Đầu Đầu tiên, chúng em xin gử đến Cô Nguyễ g ửi lờ l ờ i cả cảm ơ n sâu sắ sắc đến Nguyễn Thị Thị Trà Linh và Thầ Thầy Tr ần Ngọ Ngọc Bảo là nhữ những ngườ ngườ i đã tr ực titiếế p hướ ng ng dẫn để ngày hôm nay chúng em có thể thể hoàn thành luậ luận vă văn này. Chắ Ch ắc chắ ch ắn r ằng nế n ếu không có sự sự dìu dắ dắt và tận tình giúp đỡ c Thầy thì chúng em sẽ s ẽ gặ p r ất nhiề nhiều khó khă khăn trong đỡ của Cô và Thầ quá trình nghiên cứ c ứu thự thực hiệ hiện luậ luận vă văn. K ế đến, mu ốn trân tr ọng cảm ơ n công lao to lớ lớ n của Ba Mẹ Mẹ, đến, chúng em muố nhữững đấng nh nấng và dạ dạy dỗ d ỗ chúng em nên ngườ ngườ i như nh ư ngày hôm đấng sinh thành đã nuôi nấ nay. Chắ Chắc chắ chắn r ằng sau này dù có làm gì, dù có đi đâu, chúng em cũ cũng sẽ không làm phụ phụ lòng Ba Mẹ Mẹ. Cuố Cuối cùng, xin gử gửi lờ i cảm ơ n chân thành đến ng Đại Phạạm đến tr ườ ườ ng Đại học Sư Ph Thành Phố Phố Hồ Chí Minh, nơ nơ i đã dành sự sự quan tâm r ất lớ n đố đốii vớ i sinh viên công Đặc biệ nghệ nghệ thông tin chúng em trong suố suốt quá trình họ học tậ p tại đây. Đặc biệt , , xin trân tr ọng cả cảm ơ n tòan thể thể các Thầ Thầy Cô khoa Toán-Tin. Trên con đườ ng ng góp nhặ nhặt nhữ những kiế kiến thứ thức quý báu củ của ngày hôm nay, các thầ th ầy, các cô, và bạ b ạn bè là nhữ những ngườ ngườ i đã dạy dỗ dỗ, cùng chúng em sát cánh và tr ải nghiệ nghiệm trong suố suốt 4 nă năm đại học. đại họ
2
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
3
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
4
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
5
Bảng các kí hiệu, chữ viết tắt Tiếng Anh: •
AMO :
Analysis Management Objects
•
BI:
Business Intelligence
•
DTS:
Data Transformation Services
•
ETL:
Extract – Transform - Load
•
HOLAP :
Hybrid OLAP
•
MDX:
Multi-dimensional Expressions
•
MOLAP :
Multidimensional OLAP
•
OLAP:
Online Analytical Processing
•
ROLAP :
Relational OLAP
•
SMO:
SQL Server Management Objects
•
SSAS:
SQL Server Analysis Services
Tiếng Việt: •
CSDL:
Cơ sở dữ liệu
6
Bảng danh mục các bảng biểu Bảng 1: So sánh các mô hình OLAP.........................................................................26
7
Bảng danh mục các hình vẽ Hình 1: Các dạng cơ sở dữ liệu .................................................................................11 Hình 2: Ví dụ về một mẫu báo cáo cố định ..............................................................12 Hình 3: Minh họa vị trí của ứng dụng .......................................................................13 Hình 4: Data Warehouse ...........................................................................................15 Hình 5: Đặc điểm của Data Warehouse ....................................................................17 Hình 6: Cấu trúc của Data Warehouse ...................................................................... 19 Hình 7: Vị trí của OLAP ...........................................................................................19 Hình 8: Mô hình dữ liệu MOLAP .............................................................................22 Hình 9: Mô hình dữ liệu ROLAP..............................................................................23 Hình 10: Lượ c đồ hình sao.......................................................................................24 Hình 11: Lượ c đồ hình bông tuyết ............................................................................24 Hình 12: Mô hình dữ liệu HOLAP ...........................................................................25 Hình 13: Ví dụ về Khối (Cube) .................................................................................28 Hình 14: Ví dụ về ô r ỗng trong khối .........................................................................29 Hình 15: Ví dụ về các Dimension (Chiều) khác nhau ..............................................30 Hình 16: Fact Table ...................................................................................................31 Hình 17: Slice............................................................................................................32 Hình 18: Các đối tượ ng trong SSAS .........................................................................35 Hình 19: Pivot Table .................................................................................................43 Hình 20: PivotChart ..................................................................................................46 Hình 21: RadarCube OLAP ......................................................................................47 Hình 22: Data Dynamics Analysis ............................................................................48 Hình 23: ComponentOne OLAP for WinForm ........................................................49 Hình 24: Devexpress ASPxPivotGrid .......................................................................50 Hình 25: Mô hình xử lý nghiệ p vụ quản lý template ................................................59 Hình 26: Sơ đồ Use-Case mô tả hệ thống chức năng của Administrator .................60 Hình 27: Sơ đồ Use-Case mô tả hệ thống chức năng của Designer .........................61 Hình 28: Sơ đồ User-Case mô tả hệ thống chức năng của Custom User .................61 Hình 29: Sơ đồ Use-Case mô tả chức năng quản lý Template .................................62 Hình 30: Sơ đồ Use-Case mô tả chức năng phân quyền Template...........................62 Hình 31: Sơ đồ Use-Case mô tả chức năng quản lý Cube ........................................63 Hình 32: Sơ đồ Use-Case mô tả chức năng phân quyền Cube .................................63 Hình 33: Sơ đồ Use-Case mô tả chức năng quản lý User .........................................64 Hình 34: Sơ đồ Use-Case mô tả chức năng quản lý Group ......................................65 Hình 35: Sơ đồ Use-Case mô tả chức năng quản lý Profile......................................65 Hình 36: Sơ đồ Use-Case mô tả chức năng cấu hình hệ thống .................................66 Hình 37: Mô hình quan niệm dữ liệu hệ thống OLAP..............................................67 Hình 38: Mô hình vật lý ............................................................................................73 Hình 39: Màn hình chính phân hệ administrator ......................................................80 Hình 40: Màn hình chức năng Copy Rights .............................................................81
8
Hình 41: Màn hình chức năng Active cube ..............................................................81 Hình 42: Màn hình chức năng Assign cube to group ...............................................81 Hình 43: Màn hình chức năng Assign user to cube ..................................................82 Hình 44: Màn hình chức năng List user ....................................................................82 Hình 45: Màn hình chức năng Assign Groups ..........................................................83 Hình 46: Màn hình chức năng Assign Users ............................................................83 Hình 47: Màn hình chức năng Import cube ..............................................................83 Hình 48: Màn hình chức năng Assign rights to profile.............................................84 Hình 49: Màn hình chức năng Schedule ...................................................................84 Hình 50: Màn hình chức năng Setting Connection ...................................................85 Hình 51: Màn hình chính phân hệ designer ..............................................................85 Hình 52: Màn hình chức năng Design template .......................................................86 Hình 53: Màn hình chức năng Export template ........................................................86 Hình 54: Màn hình chức năng Assign template to user ............................................87 Hình 55: Màn hình chính phân hệ custom user ........................................................87
9
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
10
Mở đầu
Giớ i thiệu sơ lượ c:
Ngày nay, cách mạng thông tin và sự bùng nổ thông tin trên toàn cầu đã dẫn đến các thực tr ạng như sau:
•
Dữ liệu: Đượ c lưu tr ữ ở nhi ề u d ạng cơ sở d ữ li ệu khác nhau
Hình 1: Các d ạng cơ sở dữ liệu
•
Nhiều hệ thống thông tin đượ c xây dựng gây ra hệ quả:
Những giao diện khác nhau
Những dạng biểu dữ liệu khác nhau
•
Thông tin trùng lặ p và không nhất quán
Trong khi đó, các phần mềm và hệ thống báo cáo thườ ng chỉ cung cấ p một số mẫu báo cáo cố đị nh. VD:
Báo cáo về điểm cuối kì của sinh viên
11
Hình 2: Ví dụ về một mẫu báo cáo c ố định
Vậy tình huống đặt ra là ta sẽ xử lý như thế nào khi ngườ i dùng muốn:
Xem thêm thông tin về 1 thành phần nào đó trong CSDL ngoài những thành phần đã có trên report
Xem report theo nhiều hình thức khác nhau, ngoài dạng table đã quá quen thuộc
Không còn cách nào khác hơ n là ta phải tạo thêm 1 report mớ i !!!
Ý tưở ng, lí do chọn đề tài: Từ thực tr ạng trên, có thể thấy r ằng nhu cầu phân tích số li ệu để hỗ tr ợ ra
các quyết định chiến lượ c một cách k ị p thờ i đã tr ở nên ngày càng cấ p thiết.
12
Trong môi tr ườ ng kinh doanh hiện đại, các lãnh đạo doanh nghiệ p cần có những thông tin mang tính quản tr ị chính xác, nhanh chóng và ở nhiều góc độ khác nhau nhằm thực hiện việc ra quyết định kinh doanh hiệu quả. Vì thế, ý tưở ng của đề tài là sử dụng hệ thống OLAP k ết hợ p vớ i Data warehouse để tạo ra 1 công cụ giúp ngườ i dùng - đặc biệt là nhà quản lý, những ngườ i ra quyết định - dễ dàng khai thác, truy xuất đượ c các mẫu dữ liệu mà họ quan tâm.
Hình 3: Minh h ọa vị trí của ứ ng dụng
Mục đích đề tài
Xây dựng 1 công cụ phân tích dữ liệu tr ực tuyến trên nền web cho phép: •
Phân tích số liệu dựa trên nhiều chỉ tiêu, yếu tố.
13
•
Có hệ thống phân quyền chặt chẽ về chức năng và dữ liệu trên ngườ i dùng lẫn nhóm ngườ i dùng
•
Có hệ thống report, chart,... tr ực quan, đa dạng, hỗ tr ợ kéo thả
•
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ùy theo nhu cầu / lựa chọn của ngườ i sử dụng khi phân tích số liệu.
•
Độc lậ p vớ i hệ thống cơ sở dữ liệu của ngườ i dùng
Đối tượ ng và phạm vi nghiên cứ u •
Công nghệ Data Warehouse và OLAP
•
Các mô hình OLAP: MOLAP, ROLAP, HOLAP
•
Tìm hiểu OLAP trong MS SQL Server Analysis Service (SSAS)
•
Quy trình thiết k ế các đối tượ ng trong SSAS: Data Source, Data Source View, Cube, Dimension, ...
•
Component Pivot Table và PivotChart trong Excel
•
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
14
Cơ sở lý thuyết Chươ ng 1 Công nghệ OLAP 1.1 Giớ i thiệu về Data Warehouse 1.1.1 Định ngh ĩ a
Hình 4: Data Warehouse
Kho dữ liệu (data warehouse), gọi một cách chính xác hơ n là kho thông tin (information warehouse), là một cơ sở dữ liệu hướ ng đối tượ ng đượ c thiết k ế vớ i việc tiế p cận các ý kiến trong mọi l ĩ nh vực kinh doanh. Nó cung cấ p các công cụ để đáp ứng thông tin cần thiết cho các nhà quản tr ị kinh doanh tại mọi cấ p độ tổ chức - không những chỉ là những yêu cầu dữ liệu phức hợ p, mà còn là điều kiện thuận tiện nhất để đạt đượ c việc lấy thông tin nhanh, chính xác.
15
Là một sự pha tr ộn của nhiều công nghệ, bao gồm các cơ sở dữ liệu đa chiều và mối quan hệ giữa chúng, kiến trúc chủ khách, giao diện ngườ i dùng đồ họa,...
Kho dữ liệu thườ ng r ất lớ n tớ i hàng tr ăm GB hay thậm chí hàng Terabyte. Kho dữ liệu đượ c xây dựng để tiện lợ i cho việc truy cậ p theo nhiều nguồn, nhiều kiểu dữ liệu khác nhau sao cho có thể k ết hợ p đượ c cả những ứng dụng của các công nghệ hiện đại và k ế thừa đượ c từ những hệ thống đã có sẵn từ tr ướ c.
1.1.2 Ý ngh ĩ a của Data Warehouse
Truy cậ p dữ liệu một cách thống nhất : •
Thu thậ p và k ết hợ p thông tin.
•
Cung cấ p một khung nhìn tích hợ p
•
Giao diện ngườ i sử dụng không biến đổi
•
Hỗ tr ợ khả năng chia sẻ.
Dữ liệu đượ c tích hợ p và tổ chức: •
Làm cho hệ thống tr ở nên dễ hiểu
•
Rõ ràng
•
Dễ phân tích
Chuyển đổi dữ liệu thành thông tin: cung cấ p thông tin chính xác đúng thờ i điểm và đúng định dạng
1.1.3 Đặc điểm của Data Warehouse
16
Hình 5: Đặc điểm c a Data W rehouse
Tích hợ (Integrat d): Dữ liệu ậ p hợ p từ nhiều nguồn khác n au trong
ột tổ chức/công ty à đã đượ c
đồng nh t, xắ p xế , rút gọn.
Là một tậ p hợ p th ng tin chí h xác, ch t lượ ng và nhất quá
Chuẩn hóa :
•
Các qui ướ tên
•
Các thuộc t nh
•
Các đơ n vị o lườ ng
Hướ ng hủ thể ( ubject-ori nted): Chuyển từ h ớ ng ứng dụng sang hướ ng hỗ tr ợ quyế định •
Đượ c tổ ch c xung q anh các c ủ thể chí h, như kh ch hàng (customer), s n phẩm ( roduct), b n hàng (s les).
•
Tậ p trung vào việc m hình hóa và phân tích dữ liệ cho các hà đưa ra q yết định, mà không tậ p trung vào các h ạt động h ay các xử lý toàn tác
1
h ng ngày. •
Cung cấ p
ột khung nhìn đơ n iản và súc tích xung quanh các sự kiện
c a các chủ thể
Biến th i gian (Ti e-varian ): Các dữ liệu đượ c định ngh ĩ a vào một thờ i điểm xác định và đượ c hi chép l i ph ục v ụ cho việc o sánh d liệu theo chiều thờ i gian •
Yêu cầu qu n tr ọng đ i vớ i kho dữ liệu là hạm vi v thờ i gian dài hơ n so v i các h ệ t ống tác n hiệ p :
Cơ sở dữ li u tác nghiệ p: dữ liệu chỉ có giá tr ị hiện thờ i
Dữ liệu của kho dữ li u: cung c p thông tin l ịch s ử (ví d ụ như, 5-10 năm tr ớ c)
•
Yếu tố thờ i gian đượ c lưu tr ữ trong CSDL
Cố định (Non-vol tile ): d ữ liệu có th đượ c thêm vào nh ng không đượ c sửa chữa hoặc xóa bỏ. Nhằm g úm nhà uản lý có thể tổng hợ p công việc kinh doanh c a toàn tổ hức/công ty.
1
1.1.4 Cấu trúc của Data Warehouse
Hình 6: Cấu trúc của Data Warehouse
Một Data warehouse đượ c cấu tạo từ một hay nhiều cube (khái niệm này sẽ đề cậ p ở phần sau).
Enterprise Data warehouse: tậ p hợ p toàn bộ thông tin về các đối tượ ng của toàn tổ chức/công ty. Ví dụ: sản phẩm, khách hàng, doanh thu …
Data mart (kho dữ liệu chủ đề): là một tậ p con của Data warehouse, chỉ tậ p trung vào những đối tượ ng đượ c chọn.
1.2 Tổng quan về OLAP 1.2.1 Giớ i thiệu
Hình 7: Vị trí của OLAP
19
Nếu hệ thống xử lý chuyển giao dữ liệu OLTP tậ p trung vào việc thu thậ p, lưu tr ữ và biến đổi dữ liệu một cách chuẩn xác, thì OLAP tậ p trung vào việc sử dụng các dữ liệu đã đượ c biến đổi vào việc ra quyết định sản xuất kinh doanh. OLAP là một mục trong các phần mềm cơ sở dữ liệu cung cấ p giao diện qua đó ngườ i sử dụng có thể biến đổi hoặc giớ i hạn các dữ liệu sơ khai tuỳ theo các hàm đã định ngh ĩ a hoặc do chính ngườ i sử dụng định ngh ĩ a, sau đó nhanh chóng kiểm tra các k ết quả trong các chiều khác nhau của dữ liệu
Hệ thống OLAP là một hệ thống quản lý dữ liệu giàu năng lực. Nó cho phép ngườ i sử dụng phân tích dữ liệu qua việc cắt lát (slice) dữ liệu theo nhiều khía cạnh khác nhau, khoan xuống (drill down) mức chi tiết hơ n hay cuộn lên (roll up) mức tổng hợ p hơ n của dữ liệu. Bản chất cốt lõi của OLAP là dữ liệu đượ c lấy ra từ Data warehouse hoặc từ Datamart sau đó đượ c chuyển thành mô hình đa chiều và đượ c lưu tr ữ trong một kho dữ liệu đa chiều.
Cụ thể, OLAP là một k ỹ thuật sử dụng các thể hiện dữ liệu đa chiều gọi là các khố i
(cube) nhằm cung cấ p khả năng truy xuất nhanh đến dữ liệu của kho dữ
liệu. Tạo khối cho dữ liệu trong các bảng chiều (dimension table) và bảng sự kiện (fact table) trong kho dữ liệu để cung cấ p khả năng thực hiện các truy vấn tinh vi và phân tích cho các ứng dụng client.
OLAP cung cấ p nhiều lợ i ích cho ngườ i phân tích, cho ví dụ như: •
Cung cấ p mô hình dữ liệu đa chiều tr ực quan cho phép dễ dàng lựa chọn, định hướ ng và khám phá dữ liệu.
•
Cung cấ p một ngôn ngữ truy vấn phân tích, cung cấ p sức mạnh để khám phá các mối quan hệ trong dữ liệu kinh doanh phức tạ p.
•
Dữ liệu đượ c tính toán tr ướ c đối vớ i các truy vấn thườ ng xuyên nhằm làm cho thờ i gian tr ả lờ i r ất nhanh đối vớ i các truy vấn đặc biệt.
20
•
Cung cấ p các công cụ mạnh giúp ngườ i dùng tạo các khung nhìn mớ i của dữ liệu dựa trên một tậ p các hàm tính toán đặc biệt.
•
Hỗ tr ợ tạo mô hình chức năng để dự báo, phân tích xu thế phát triển và phân tích thống kê.
•
Tìm kiếm và hiển thị dữ liệu dướ i dạng biểu đồ, không gian 2D, 3D, …
OLAP đượ c đặt ra để xử lý các truy vấn liên quan đến lượ ng dữ liệu r ất lớ n mà nếu cho thực thi các truy vấn này trong hệ thống OLTP sẽ không thể cho k ết quả hoặc sẽ mất r ất nhiều thờ i gian.
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
21
Hình 8: Mô hình dữ liệu M LAP
Dữ liệu ượ c tìm t ấy tại điể
giao củ các chiều
Dữ liệu rong MO AP cần p ải đượ c process sau một thờ i ian nhất ịnh để cậ p nhật lại hững dữ liệu mớ i tr ng Data
MOLA thích hợ p cho các truy vấn
arehouse.
ổng hợ p ữ liệu th o thờ i gian dài.
p doanh thu của từng chi nhánh tro g vòng 2 ăm tr ở lại. Ví d ụ: tổng hợ
1.3.2 R LAP ( elational OLAP)
Mô hìn OLAP q an hệ (R LAP) lư tr ữ dữ li u cơ sở và thông ti tổng hợ p trong cá bảng quan hệ
2
Hình 9: Mô hình dữ liệu R LAP
Dữ liệu ượ c tìm t ấy tại điể
Có 2 kiểu mô hình dữ liệu: •
giao củ 1 cột và 1 một hàng
Lượ c đồ hì h sao (star): mỗi một chiều c ỉ đượ c xây dựng từ một bảng c iều
2
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
24
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.
25
1.3.4 So sánh các mô hình
Số chiều Lưu tr ữ dữ liệu cơ sở Lưu tr ữ thông tin tổng hợ p Hiệu suất thực hiện truy vấn Tiêu thụ không gian lưu tr ữ Chi phí bảo trì
MOLAP >2 Khối Khối Nhanh nhất Nhiều
ROLAP 2 Bảng quan hệ Bảng quan hệ Chậm nhất Thấ p
HOLAP >2 Bảng quan hệ Khối Nhanh Trung bình
Cao
Thấ p
Trung bình
Bảng 1: So sánh các mô hình OLAP
Ế T LU Ậ N: K 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)
26
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
27
Hình 13: Ví dụ
Một cube có thể c nhiều chiều •
ề Khối (C be)
Nếu có nhiều hơ n 3 c iều sẽ đư c gọi là ‘s êu khối’ (”hypercube”)
•
Về mặt lý t uyết thì s chiều là hông hạn chế
•
Thườ ng thì số chiều là từ 4 đến 2
Một cube bao gồm nhiều ô d liệu •
•
Là một liên k ết giữa c c giá tr ị của chiều
ột ô có th là r ỗng ( hông có ữ liệu cho liên k ết n y)
•
K hối thưa ( parsecube): có nhiề ô r ỗng
•
K hối dày đ c (densec be): có ít ô r ỗng
í d ụ về ô r ng:
2
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.
29
Các chi u đượ c tạo một cách độc lậ p và có thể chia sẻ g ữa các O AP Cube nhằm xâ y d ựng các Cube dễ dàng và ể chắc ch n r ằng th ng tin tổ g hợ p cho phân tíc luôn ổn ịnh.
Hình 15: Ví dụ
ề các Dim nsion (Chiều) khác hau
Chiều c sự phân ấ p : Phân cấ là cột số g c ủa vi ệ gộ p d ữ l ệu hay nó một cách khác là d a vào các
p ân cấ p m việc gộ p dữ liệu m i có th ể t ực hiện đ ợ c. Phần lớ n các chiều đều có
ột cấu trú đa mức hay phân c p. Ví d ụ:
ếu chúng ta làm nh ng quyết định về gi sản phẩ để tối đa doanh thu
t ì chúng ta cần quan sát ở những dữ liệu ề doanh t u sản phẩm đượ c g p theo giá s n phẩm, t c là chún ta đã thực hiện một cách gộ p. Khi cần l m những quyết định k ác thì ch ng ta cần hực hiện hững phé gộ p tươ ng ứng khá . Như vậ có thể có quá nhiề tiến trình gộ p. Thế nên các tiến trình g p này cần p ải đượ c t ực hiện
ột cách dễ dàng, li h hoạt để có thể hỗ tr ợ những phân tích
k ông hoạc định tr ư c. Điều này có thể ượ c giải uyết trên cơ sở có ự tr ợ giúp c a những hân cấ p r ng và sâu.
3
2.1.3 Measure
Các đơ n vị đo của khối là cá cột trong bảng Fact. Các đơ n vị đo lườ ng xác định những giá tr ị số từ bảng Fac mà đượ c tổng hợ p phân tích như định iá, tr ị giá, hoặc số ượ ng bán.
Là đơ n ị đo để đánh giá, ph n tích dữ iệu.
2.1.4 Fa t table Fact)
Fact là bảng mô tả sự kiệ
mà hệ t ống muốn phân tí h, k ết h p vớ i các
dimensi n đã đượ xây dựng sẵn nhằm tổ chức d liệu một cách có hệ thống.
Một fac gồm các tr ườ ng chứa khoá hính của ác dimension mà nó k ết hợ p,
đồng th i chứa các measure ủa cube.
Fact đư c lưu tại
ỗi fact c các meas re khác n au.
ột cấ p dữ liệu thô n o đó
ình 16: Fact Table
3
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
32
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
33
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.
34
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):
35
•
Đâ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.
36
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 http://msftdbprodsamples.codeplex.com/ )
Để 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
37
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)
38
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
39
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.
40
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
41
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.
42
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.
43
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.
44
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.
45
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
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 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: http://www.radar-soft.com/products/
Hình 21: RadarCube OLAP
47
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: http://www.datadynamics.com/products/dda/overview.aspx
Hình 22: Data Dynamics Analysis
48
3.3.3 ComponentOne OLAP for WinForm
Chỉ dùng cho Windows Forms Application
Tham khảo: http://www.componentone.com/SuperProducts/OLAPWinForms/
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: http://www.devexpress.com/Products/NET/Controls/ASP/Pivot_Grid/
49
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)
50
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.
51
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: http://msdn.microsoft.com/en-us/library/ms124924.aspx
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) { ..... }
52
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: http://msdn.microsoft.com/en-us/library/ms123483.aspx
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
53
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: http://msdn.microsoft.com/en-us/library/ms162169.aspx
Ví dụ về sử dụng thư viện SMO trong đề tài: using Microsoft.SqlServer.Management.Smo; using Microsoft.SqlServer.Management.Smo.Agent; .....
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 [] [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.
55
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.
56
•
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ả.
57
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ụ:
58
Hình 25: Mô hình x ử lý nghiệp vụ quản lý template 59
5.1.1.2 Y u cầu chứ c năng:
Hìn 26: Sơ đồ Use-Case mô tả hệ t
ống chứ c ăng của dministrator
5.1.1.2 Y u cầu chứ c năng:
Hìn 26: Sơ đồ Use-Case mô tả hệ t
6
ống chứ c ăng của dministrator
H ình 27: S ơ đồ Use-C se mô tả hệ thống ch c năng của Designer
Hìn 28: Sơ đ User-Cas mô tả hệ thống chứ năng của Custom User
6
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
62
Hình 3 : Sơ ơ đồ đồ Use-Case mô tả chứ c n ng quản l Cube
Hình 32:
ơ đồ ơ đồ Use- ase mô t chứ c năn phân qu ền Cube
6
ơ đồ đồ Use-Case mô t ả chứ c năng quản lý User Hình 33: Sơ
64
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
65
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:
66
Hình 37: Mô hìn quan niệm d liệu hệ thống
LAP
67
Mô tả các loại thực thể: • Loại thực thể tblChi_Tiet_Group: Thuộc tính Kiểu iStt_Chi_Tiet int •
•
•
Kích thướ c P1 U M L 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 iMa_Role vTen_Role
Kiểu int varchar
Kích thướ c P U M L 4 x x x x 20 x x x
Loại thực thể tblGroup: Thuộc tính iMa_Group vTen_Group vMo_Ta
Kiểu int varchar varchar
Kích thướ c P U M L 4 x x x x 20 x x 100
Lo i th c thể tblQuyen:
Mô tả các loại thực thể: • Loại thực thể tblChi_Tiet_Group: Thuộc tính Kiểu iStt_Chi_Tiet int •
•
•
•
•
1
Kích thướ c P1 U M L 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 iMa_Role vTen_Role
Kiểu int varchar
Kích thướ c P U M L 4 x x x x 20 x x x
Loại thực thể tblGroup: Thuộc tính iMa_Group vTen_Group vMo_Ta
Kiểu int varchar varchar
Kích thướ c P U M L 4 x x x x 20 x x 100
Loại thực thể tblQuyen: Thuộc tính iMa_Quyen vTen_Quyen vMo_Ta
Kiểu int varchar varchar
Kích thướ c P U M L 4 x x x x 50 x x 100
Loại thực thể tblTemplate: Thuộc tính iMa_Template vTen_ Template vLoai tNoi_Dung iParent vStatus vMo_Ta
Kiểu int varchar varchar text int varchar varchar
Kích thướ c P U 4 x x 30 x 10
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 ị )
68
4 20 100
M L x x x x x x
•
•
•
•
•
•
•
Loại thực thể tblUser: Thuộc tính iMa_User vHo_Ten vUser_name vPassword vMo_Ta vDien_Thoai vEmail vChuc_Vu vDia_Chi
Kiểu int varchar varchar int varchar varchar varchar varchar varchar
Kích thướ c P U 4 x x 30 20 x 64 100 15 50 50 50
M L x x x x x
Loại thực thể tblCurrentConnect: Thuộc tính Kiểu vServer varchar
Kích thướ c P U M L 20 x x x x
Loại thực thể tblAttribute: Thuộc tính Kiểu iMa_Att int vTen_Att varchar
Kích thướ c P U M L 4 x x x x 50 x
Loại thực thể tblCube: Thuộc tính iMa_Cube vTen_Cube vMo_Ta iActive
Kích thướ c P U 4 x x 50 100 4
Kiểu int varchar varchar int
M L x x x x
Loại thực thể tblDatabase: Thuộc tính Kiểu iMa_DB int vTen_DB varchar
Kích thướ c P U M L 4 x x x x 50 x
Loại thực thể tblDimension: Thuộc tính Kiểu iMa_Dim int vTen_Dim varchar
Kích thướ c P U M L 4 x x x x 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
69
•
•
•
Loại thực thể tblMember: Thuộc tính Kiểu iMa_Member int vTen_Member varchar
Kích thướ c P U M L 4 x x x x 50 x
Loại thực thể tblProfile: Thuộc tính iMa_Profile vTen_Profile vMo_Ta
Kích thướ c P U M L 4 x x x x 20 x x 100
Kiểu int varchar varchar
Loại thực thể tblChuc_Nang_Profile: Thuộc tính Kiểu Kích thướ c P iStt_Chuc_Nang int 4 x
U M L 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.
70
•
•
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 (
71
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ý:
72
Hình 38: Mô hình v ật lý 73
Mô tả các bảng: •
Bảng tblChi_Tiet_Group: Thuộc tính iStt_Chi_Tiet iMa_User iMa_Group
Kiểu int int int
Kích thướ c P2 U 4 x x 4 4
M x x x
L F x x x x x
Khóa ngoại:
Khóa ngoại iMa_User iMa_Group •
Bảng tham chiếu tblUser tblGroup
Bảng tblChi_Tiet_Template: Thuộc tính Kiểu iStt_CTTemplate int iMa_User int iMa_Template int iMa_Quyen int iDefault int
Khóa nội iMa_User iMa_Group
Kích thướ c P U 4 x x 4 4 4 4
M x x x x x
Khóa ngoại:
Khóa ngoại iMa_User
Bảng tham chiếu tblUser
Khóa nội iMa_User
L x x x x
F x x x
Mô tả các bảng: •
Bảng tblChi_Tiet_Group: Thuộc tính iStt_Chi_Tiet iMa_User iMa_Group
Kiểu int int int
Kích thướ c P2 U 4 x x 4 4
M x x x
L F x x x x x
Khóa ngoại:
Khóa ngoại iMa_User iMa_Group •
Bảng tham chiếu tblUser tblGroup
Bảng tblChi_Tiet_Template: Thuộc tính Kiểu iStt_CTTemplate int iMa_User int iMa_Template int iMa_Quyen int iDefault int
Khóa nội iMa_User iMa_Group
Kích thướ c P U 4 x x 4 4 4 4
M x x x x x
L x x x x
F x x x
Khóa ngoại:
Khóa ngoại iMa_User iMa_ Template iMa_Quyen •
Bảng tblRole: Thuộc tính iMa_Role vTen_Role
Bảng tham chiếu tblUser tblTemplate tblQuyen Kiểu int varchar
Khóa nội iMa_User iMa_ Template iMa_Quyen
Kích thướ c P U M L F 4 x x x x 20 x x x x
Khóa ngoại:
Khóa ngoại vTen_Role •
2
Bảng tblGroup: Thuộc tính iMa_Group vTen_Group vMo_Ta
Bảng tham chiếu tblGroup Kiểu int varchar varchar
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).
74
Khóa nội vTen_Group
Kích thướ c P U M L F 4 x x x x 20 x x 100
•
Bảng tblQuyen: Thuộc tính iMa_Quyen vTen_Quyen vMo_Ta iParent
Kiểu int varchar varchar int
Kích thướ c P U M L F 4 x x x x 50 x x 100 4 x x
Khóa ngoại:
Khóa ngoại iParent •
Bảng tblTemplate: Thuộc tính iMa_Template vTen_ Template vLoai tNoi_Dung iOwner iMa_Cube iParent vStatus vMo_Ta
Bảng tham chiếu tblQuyen Kiểu int varchar varchar text int int int varchar varchar
Khóa nội iMa_Quyen
Kích thướ c P U 4 x x 30 x 10 4 4 4 20 100
M L F x x x x x x x x x x
Khóa ngoại:
Khóa ngoại iOwner iMa_Cube •
Bảng tblUser: Thuộc tính iMa_User vHo_Ten vUser_name vPassword iMa_Profile vMo_Ta vDien_Thoai vEmail vChuc_Vu vDia_Chi
Bảng tham chiếu tblUser tblCube Kiểu int varchar varchar int int varchar varchar varchar varchar varchar
Khóa nội iMa_User iMa_Cube
Kích thướ c P U 4 x x 30 20 x 64 4 100 15 50 50 50
M L F x x x x x x x x
Khóa ngoại:
Khóa ngoại iMa_Profile
Bảng tham chiếu tblProfile
75
Khóa nội iMa_Profile
•
Bảng tblCurrentConnect: Thuộc tính Kiểu vServer varchar iMa_DB int
Kích thướ c P U M L F 20 x x x x 4 x x x
Khóa ngoại:
Khóa ngoại iMa_DB •
Bảng tblAttribute: Thuộc tính iMa_Att vTen_Att iMa_Dim
Bảng tham chiếu tblDatabase Kiểu int varchar int
Khóa nội iMa_DB
Kích thướ c P U M L F 4 x x x x 50 x x x x
Khóa ngoại:
Khóa ngoại iMa_Dim •
Bảng tblCube: Thuộc tính iMa_Cube vTen_Cube iMa_DB vMo_Ta iActive
Bảng tham chiếu tblDimension Kiểu int varchar int varchar int
Khóa nội iMa_Dim
Kích thướ c P U 4 x x 50 4 100 4
M L F x x x x x x x
Khóa ngoại:
Khóa ngoại iMa_DB •
•
Bảng tham chiếu tblDatabase
Khóa nội iMa_DB
Bảng tblDatabase: Thuộc tính iMa_DB vTen_DB
Kiểu int varchar
Kích thướ c P U M L F 4 x x x x 50 x
Bảng tblDimension: Thuộc tính iMa_Dim vTen_Dim iMa_Cube
Kiểu int varchar int
Kích thướ c P U 4 x x 50 4
M L F x x x x x x
Khóa ngoại:
Khóa ngoại iMa_Cube
Bảng tham chiếu tbl Cube
76
Khóa nội iMa_Cube
•
Bảng tblChi_Tiet_Role_Member: Thuộc tính Kiểu iStt_Chi_Tiet int iMa_Member int iMa_Role int
Kích thướ c P U 4 x x 4 4
M x x x
L F x x x x x
Khóa ngoại:
Khóa ngoại iMa_Member iMa_Role •
Bảng tblMember: Thuộc tính iMa_Member vTen_Member iMa_Att
Bảng tham chiếu tblMember tblRole Kiểu int varchar int
Khóa nội iMa_Member iMa_Role
Kích thướ c P U 4 x x 50 4
M L F x x x x x x
Khóa ngoại:
Khóa ngoại iMa_Att •
•
Bảng tblProfile: Thuộc tính iMa_Profile vTen_Profile vMo_Ta
Bảng tham chiếu tblAttribute Kiểu int varchar varchar
Bảng tblChuc_Nang_Profile: Thuộc tính Kiểu iStt_Chuc_Nang int iMa_Profile int iMa_Quyen int
Khóa nội iMa_ Att
Kích thướ c P U M L F 4 x x x x 20 x x 100 Kích thướ c P U 4 x x 4 4
M x x x
Khóa ngoại:
Khóa ngoại iMa_ Profile iMa_Quyen
3
Bảng tham chiếu tblProfile tblQuyen
Khóa nội iMa_ Profile 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
- (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.
77
L F x x x x x
(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]
78
(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:
79
Hệ thống OLAP
Phân hệ Administrator
Phân hệ Designer
Phân hệ Custom User
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
80
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
81
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
82
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
83
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
84
Hình 50: Màn hình ch ứ c năng Setting Connection
Hệ thố thống giao diệ diện phân hệ hệ Designer:
Hình 51: Màn hình chính phân h ệ designer
85
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
86
Hình 54: Màn hình ch ứ c năng Assign template to user
Hệ thố thống giao diệ diện phân hệ hệ Custom User:
Hình 55: Màn hình chính phân h ệ custom user
87
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
88
Đá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.
89
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.
90
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.