> 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ớ
Trang 1TRƯỜ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 Tiến Đức - Nguyễn Phú Thịnh
NGHIÊN CỨU CÔNG NGHỆ OLAP
VÀ ỨNG DỤNG
LUẬN VĂN CỬ NHÂN CÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC sư PHẠM TP.CM
KHOA TOAN - TIN Hỏc
Bộ MÔN TIN HỌC
NGHIÊN CỨU CÔNG NGHỆ OLAP
GIÁO VIÊN HƯỚNG DẪN: NGUYỀN THỊ TRÀ LINH
Trang 2Lòi cảm ơn.
Đầu tiên, chúng em xin gửi lời cảm ơn sâu sắc đến Cô Nguyễn Thị Trà Linh
và Thầy Trần Ngọc Bảo là những nguời đã trực tiếp hướng dẫn để ngày hôm naychúng em có thể hoàn thành luận văn này Chắc chắn rằng nếu không có sự dìu dắt
và tận tình giúp đỡ của Cô và Thầy thì chúng em sẽ gặp rất nhiều khó khăn trongquá trình nghiên cứu thực hiện luận văn
Trang 3Lờ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
Trang 42.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
Trang 55.1.2 Thiết kế 72
5.1.2.1 Dữ liệu: 72
Trang 6Bảng 1: So sánh các mô hình OLAP
26
Trang 7Bả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
Trang 8Hì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
Trang 9> Tìm hiểu tổng quan về công nghệ OLAP
Trang 10> Giới thiêu sơ lươc:
• •
U nl i m i t e d D a t a S o ur c e s
KÉT QUÁ HỌC TẬP I
Ho ten: _Lè Tuần _Ngày sinh: _2/15/1991 12:00:00AI
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:
Trang 11Hình 3: Minh họa vị trí của ứng dụng
> Muc đích đề tài
Trang 12> Đối tượng và phạm vi nghiên cửu
Trang 13Chương 1 Công nghệ OLAP
1.1 Giới thiêu về Data Warehouse
1.1.1 Định nghĩaPre-Data Data
VVarehouse Cleansing RepositoriesData Front-EndAnalytics
OLAP
Data Mining
Data Visualization
Reporting
Hình 4: Data Warehouse
Trang 14> 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
Trang 17Hình 6: cấu trúc của Data VVarehouse
Hình 7: Vị trí của OLAP
Trang 18> Nếu hệ thống xử lý chuyển giao dữ liệu OLTP tập trung vào việc thu thập, lirutrữ 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ụngcác dữ liệu đã đ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 đó nguờ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 nguời sử dụng định nghĩa, sau đó nhanh chóng kiểmtra 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
Trang 19• 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ê
Trang 20Hình 8: Mô hình dữ liệu MOLAP
> Dữ liệu được tìm thấy tại điểm giao của các chiều
G L L ĩ n e
Trang 21Hình 9: Mô hình dữ liệu ROLAP
Key values to joỉn
Trang 22Hình 10: Lược đồ hình sao
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)
Trang 231.3.3 HOLAP (Hybrid OLAP)
Hình 12: Mô hình dữ liệu HOLAP
> Lợi ích của việc lưu trữ trong cấu trúc HOLAP là:
Trang 24Chươ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 Tuynhiên, từ phiên bản SQL Server 2005 đến SQL Server 2008 và mới nhất là SQLServer 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ư SQLServer Integrating Services, SQL Server Analysis Services và SQL ServerReporting Services
Trang 26Hì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ùngbả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
Cac l:hõn trô IM ỉabte íày tư
khõa cũi*, cãc UHìiãisiOiỉ 'rabịe
rows Time: months
Basic OLAP Analysis Relational OLAP Analysis
Hình 17: Slice
Trang 272.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 đuợc tự động tạo ra khi khối đuợ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àotrong tập họp các partition đã tồn tại đối với khối
Trang 282.1.8 Schedule (Lập lịch)
Trang 292.2 Quy trình thiết kế các đối tượng trong
SSAS
Hình 18: Các đối tượng trong SSAS
Trang 30• Đâ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ảilấy dữ liệu từ nhiều nguồn đã nhận dạng ra để đưa vào kho lưu trữ trungtâ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 íiles,spreadsheets, mail Systems và nhiều dạng lưu trữ dữ liệu khác Vì thế, tacần quyết định sẽ sử dụng hệ CSDL nào cho việc tổ chức kho dữ liệu
Trang 312.2.1.2 Công cu thưc hiên:
” • • •
> Extract-Transform-Load (ETL): điển hình như DTS (Data TransíormationServices) trong SQL Server, Informatica, về công cụ ETL dạng opensource 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ừ
Trang 324 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
Trang 33■ FactInternetSales (dbo)
5 Nhấn nút “>” để thẽm các bảng vào danh sách Included Objects
6 NhấnNext
Trang 34■ Full Date Altemate Key
■ English Month Name
Trang 355 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ấnNext
Trang 366 Như vậy project SSAS đã được deploy lên server
PivotTable Field List ▼ X
Drag items to the PivotTable report
_| Player Name
gVEAR gTEAM
g Games gcomp
Trang 37Bạn có thể tạo một pivot table từ nhiều nguồn dữ liệu khác nhau Thuờ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 buớc
Trang 38TIP: Để 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
PivotChart F«er Pane
Acbve Relds on the
clarkville Main Street Northgate
I Sheet4 ầ Sheetl , Sheet2 - Sheet3 ■
jãEfH]iioo% ị-L
như Pivot Table của Excel
> Tham khảo: http://www.radar-soft.com/products/
Leơend
Trang 39Workinơ areaHình 21: RadarCube OLAP
> Tham khảo: http://www datadvnamics.com/products/ dda/overview.aspx
Hình 22: Data Dynamics Analysis
shipped Quarter
Product Sales
Category Name A Product Name
0 u Beverages Côte de Blaye
S1.369
553,677.58 S10.034.90 S7.875.90
$71,276.75 S7,153.00 S6.484.50
S141.396.73 S22.119.10
Category Name Product Name Minimum Sale ShippedDate Shipped Year shipped Quarter
1 2 3 4 5 6 z 176 177 178 >
Drop Filter Fields Here
Trang 41Chương 4 Các thư viện lập trình liên quan đến
SSAS
4.1 AMO
Server myServer = new ServerO;
Trang 424.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ácthà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
4.3 SMO
Trang 43Server, đả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/librarv/ms 162169.aspx
Trang 444.4 MDX
Analysis Service không dùng ngôn ngữ truy vấn như đối với cơ sở dữ liệuquan hệ thông thường Thay vào đó, để truy vấn dữ liệu ta phải dùng đến ngônngữ MDX (Multi-dimensional Expressions)
4.4.1 Cấu trúc chung
4.4.2 Ví dụ mẫu
Trang 45> Mệnh đề FROM xác định nguồn dữ liệu đa chiều (khối) nào đuợ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ằmgiới hạn tập kết quả theo các chiều thành viên Trong ví dụ, dữ liệu đuợc cắttheo thành viên CA của chiều Store
Trang 47Chươ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ụ:
Trang 48Hình 25: Mô hình xử lý nghiệp vụ quản lý template
59
Trang 495.1.1.2 Yêu cầu chức năng:
60
Trang 50Manage Template
Hình 27: So’ đồ Use-Case mô tả hệ thống chức năng của Designer
Hình 28: Sơ đồ User-Case mô tả hệ thống chức năng của Custom User
61
Trang 5162
Trang 5263
Trang 5364
Trang 54Hình 34: So' đồ Use-Case mô tá chức năng quản lý Group
65
Trang 55Hình 36: So’ đồ 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
Trang 561 p : primary key (khóa
chính)
u : unique key, candidate
key (khóa chỉ định)
M : mandatory (not null)
Hình 37: Mô hình quan niệm dữ liệu hệ thống OLAP
Trang 58• Khóa ngoại:
(S) R3-01: tblRole[vTen_Role] c= tblGroup[vTen_Group]
Trang 592 p : primary key (khóa chính)
u : unique key, candidate key (khóa chi định)
M : mandatory (not null)
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:
ỹ£>—oc
tblChi_Tiet_Role_Member
iStt_Chi_Tiet iMa_Member iMa_Role
-£~
^ tblDatabase
9 iMa_DB vĩenDB
tNoi_Dung iOwner ÍMa_Oibe iParent vStatus vMo_Ta
tblQuyen
$ iMa_Quyen vĩen_Quyen vMo_Ta iParent
L : locked (không cho phép sừa giá trị)
F : íoreign key (khóa ngoại).
74
• Bà ng tblQuyen:
Khỏa ngoại:
• Bàng tblTemplate:
Trang 61- (S): ràng buộc sẽ được hệ quản trị cơ sở dữ liệu kiểm ưa.
(S) RI-03: id(tblRole) = iMa_Role
- (I) : ràng buộc sê được kiểm ưa ở mức giao diện.
- (T): ràng buộc sẽ được thay thế bằng trigger.
77
Trang 62(S) RI-04: id(tblGroup) = iMa_Group
(S) RI-05: id(tblQuyen) = iMa_Quyen
(S) RI-06: id(tblTemplate) = iMa_Template
(S) Rl-07: id(tblưser) = iMa_User
(S) RI-08: id(tblCurrentConnect) = vServer
(S) RI-09: id(tblAttribute) = iMa_Att
(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] c tblGroup[vTen_Group]
(S) R3-02: tblChi_Tiet_Group[iMa_ưser] CỊ tblưser[iMa_User](S) R3-03: tblChi_Tiet_Group[iMa_Group] c tblGroup[iMa_Group]
(S) R3-04: tblưser[iMa_Profíle] CỊ tblProfile[iMa_ Profile](S) R3-05: tblMember[iMa_Att] CỊ tbl Attribute[iMa_ Att](S) R3-06: tblChi_Tiet_Role_Member[iMa_Member] ctblMember
(S) [iMa_ Member]
(S) R3-07: tblChi_Tiet_Role_Member[iMa_Role] c tblRole[iMa_Role]
(S) R3-08: tblTemplate[iMa_Cube] CỊ tblCube[iMa_ Cube]
tblUser[iMa_User]
(S) R3-10: tblChi_Tiet_Template[iMa_Template] ctblT emplate [iMa_T emplate]
(S) R3-11: tblChi_Tiet_Template[iMa_Quyen] c tblQuyen [iMa_Quyen]
(S) R3-12: tblChuc_Nang_Profile[iMa_ Proííle] c tblProfile[iMa_
Proíile]
R3-13: tblChuc_Nang_Profile[iMa_ Quyen] c tblQuyen [iMa_Quyen]
78
Trang 63(S) R3-16: tblCube [iMa_DB] c tblDatabase[iMa_DB]
(S) R3-17: tblCurrentConnect [iMa_DB] c tblDatabase[iMa_DB](S) R3-18: tblQuyen[iParent] c 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] CỊ tblTemplate[iMa_Template]
CREATE TRIGGER trg_Template_delete
ON tblTemplate FOR DELETE AS
DECLARE 0iMa_Template INT SELECT 0iMa_Template = iMa_Template FROM deleted DELETE FROM tblTemplate WHERE iParent =
• 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] CỊ 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))
Assign Richts to ProAle
Hình 40: Màn hình chức năng Copy Rights
Hello , Tien Duc Log out Choosc cubc(s) to use for this System. Save
Hình 41: Màn hình chức năng Active cube
Hdlo, Tien Duc Log out Choose onc group and what data can bc read by this group
Save Cancel Choose a Cube: QLSV Group Name Group A Group B Group c
Trang 64User Grouo
Hình 45: Màn hình chức năng Assign Groups
HcDo Tien Duc Log out Choose one group and user(s) beloogs to this group _ Save Cancel
Hình 46: Màn hình chức năng Assign Users
^ Browse the XML £ilc contains cube(s), then choosc cube(s) to import to current databasc
Choose cube(s) to import:
Asslgn User to Cite
Hình 47: Màn hình chức năng Import cube
Hello , Tien Duc Log out
r Assagn User to Otoe
r Assagn Group to Cube
I” Assagn Cube to User
r Asssgn CiiDe to Group Protĩe Management I” List Protìle
r Asssgn Rights User Management
r List User 1“ Assagn Grotp
Hình 48: Màn hình chức năng Assign rights to proỉỉle
Hello Ticn Duc Log out
week(s) on
1* Mxiday r Tuesday r vvednesday r Thursday r Friday r Saturday r Sunday
start date |ữ4/29/2Ũ10 End Date í"
No End Date
NVritten by Tien Duc - Phu Thinh @Cop>TÌght 2010
Hình 49: Màn hình chức năng Schedule
84
Trang 65Project Sample TEST
Written bv Tien Duc Phu Thinh @Cop5TĨght 2010
Hình 50: Màn hình chức năng Setting Connection
> Hệ thống giao diện phân hệ Designer:
Heũo , Nguyên Tuan Minh Log out
J J ^ Ịjll stỏndard ĩemplateỊProduct - Color- Sales Amount ▼]
Drop Fỉter Fietís Here Drop Row Relds Here Grand Total Drop Ccèjmn Fields Here
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
Assign User to Template
Assộ'* Template to User
Assign User to Cube
Assiyi Group to Cube
Assigi Cube to User
Assọn Cube to Group
Do you want
Natne export.xrri T>pe: :<M Document,
Prom locàhost
White fileỉ tíom the Internet can be Uỉefi harm your Computer It you
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ống giao diện phân hệ Custom User:
Hình 55: Màn hình chính phân hệ custom User
87