Trong những năm gần đây, công nghệ kho dữ liệu ra đời đáp ứng được nhu cầu quản lý, lưu trữ thông tin có khối lượng lớn và có khả năng khai thác dữ liệu đa chiều và theo chiều sâu nhằm hỗ trợ việc ra quyết định của các nhà quản lý.Đối với các doanh nghiệp nước ngoài, họ đã áp dụng kho dữ liệu trong quản lý phân tích dữ liệu và đã cho thấy hiệu quả to lớn giúp ích cho việc hoạch định các chiến lược kinh doanh cũng như nghiên cứu phát triển các ứng dụng phân tích dữ liệu.Thông qua môn học Kho dữ liệu và Olap và các môn học khác mà các thầy cô khoa Hệ Thống Thông Tin đã truyền đạt kiến thức, giúap chúng em bắt tay vào việc xây dựng đồ án Xây dựng kho dữ liệu Olap và thực hiện Data mining.Bằng cách vận dụng những nền tảng kiến thức đã học được cùng với thái độ học tập nghiêm túc của mình, chúng em mong muốn đồ án đạt được kết quả tốt.Chúng em rất chân thành cảm ơn Cô Ths Nguyễn Thị Kim Phụng đã tận tình giảng dạy và giúp chúng em thực hiện đồ án này.Do thời gian có hạn, đồ án tìm hiểu khó tránh khỏi những thiếu sót, kính mong sự thông cảm và góp ý chân thành của cô.
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HỆ THỐNG THÔNG TIN
BÁO CÁO ĐỒ ÁN KHO DỮ LIỆU VÀ OLAP
Giảng viên hướng dẫn : ThS Nguyễn Thị Kim Phụng
Sinh viên thực hiện:
1 Nguyễn Lê Nhật Triều Mssv: 12520751
Lớp: Hệ thống thông tin 2012
Khóa: 2012
TP Hồ Chí Minh, tháng 7 năm 2016
Trang 2LỜI NÓI ĐẦU
Trong những năm gần đây, công nghệ kho dữ liệu ra đời đáp ứng được nhu cầu quản lý,lưu trữ thông tin có khối lượng lớn và có khả năng khai thác dữ liệu đa chiều và theochiều sâu nhằm hỗ trợ việc ra quyết định của các nhà quản lý
Đối với các doanh nghiệp nước ngoài, họ đã áp dụng kho dữ liệu trong quản lý phân tích
dữ liệu và đã cho thấy hiệu quả to lớn giúp ích cho việc hoạch định các chiến lược kinhdoanh cũng như nghiên cứu phát triển các ứng dụng phân tích dữ liệu
Thông qua môn học Kho dữ liệu và Olap và các môn học khác mà các thầy cô khoa HệThống Thông Tin đã truyền đạt kiến thức, giúap chúng em bắt tay vào việc xây dựng đồ
án Xây dựng kho dữ liệu Olap và thực hiện Data mining
Bằng cách vận dụng những nền tảng kiến thức đã học được cùng với thái độ học tậpnghiêm túc của mình, chúng em mong muốn đồ án đạt được kết quả tốt
Chúng em rất chân thành cảm ơn Cô Ths Nguyễn Thị Kim Phụng đã tận tình giảng dạy
và giúp chúng em thực hiện đồ án này
Do thời gian có hạn, đồ án tìm hiểu khó tránh khỏi những thiếu sót, kính mong sự thôngcảm và góp ý chân thành của cô.
2
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN
Trang 4
MỤC LỤC
LỜI NÓI ĐẦU 2
I MÔ TẢ BÀI TOÁN 6
1 Nguồn gốc dữ liệu 6
2 Mô tả thuộc tính 6
II SSIS 7
1 Phân tích dữ liệu 7
Mô hình dữ liệu 8
Bảng fact 9
Bảng Dim_Organization 10
Bảng Dim_Department 10
Bảng Dim_Union 10
Bảng Dim_Job_Family 10
Bảng Dim_Job 10
Bảng Dim_Year 10
Bảng Dim_Year_Type 11
Mô tả dữ liệu mức vật lý 11
2 Các bước thực hiện 11
Bước 1: Tạo mới một Database 12
Bước 2: Tạo project mới trong công cụ SQL Data Tool, thực hiện quá trình SSIS 14
Bước 3: Tạo Data Flow Task, các nguồn dữ liệu (Excel Source), các OLDB Destination thiết lập các bảng để đổ dữ liệu vào 14
Bước 4: Thực hiện quá trình đổ dữ liệu 20
III SSAS 23
1 Mô tả cube xây dựng measure 23
Bước 1: Tạo project thực hiện tạo các data Source, Data source view 24
Bước 2: Tạo Cube, chọn các trường cần thiết để thực hiện các measure 29
4
Trang 5Bước 3: Thực hiện một số truy vấn sau khi đã tạo cube và định nghĩa các measure 38
2 Các câu truy vấn MDX 39
3 So sánh một số kết quả thực hiện các câu truy vấn MDX và trên PIVOT TABLE 51
4 Báo biểu và các bước tạo báo biểu (SSRS) 56
IV DATA MINING 69
1 Mô tả dữ liệu 69
2 Mục đích Data Mining 70
3 Các bước thực hiện 70
Bước 1: Tạo mới database, import dữ liệu từ file excel 70
Bước 2: Tạo mới project, tạo data source, tạo Data source View 74
Bước 3: Tạo mining Structure (chọn thuật toán Decision –Cây quyết định ) 81
Bước 4: Thực thi process, hiển thị kết quả 83
4 Rút ra luật 85
V Bảng phân công công việc 87
Trang 6I MÔ TẢ BÀI TOÁN
1 Nguồn gốc dữ liệu
- Tên dữ liệu: Employee Compensaton(tiền bồi thường cho người lao động)
- Dữ liệu được lấy Ethics/Employee-Compensation/88g8-5mnd
tại:https://data.sfgov.org/City-Management-and File tải về có dạng:
2 Mô tả thuộc tính
Tên thuộc tính Kiểu dữ liệu Ý nghĩa
Year_Type Nvarchar(255) Năm được tính theo 2 loại là năm bình
thường từ (t1 đến t12) và năm tài chính
từ t9 năm nay đến tháng 10 năm sauYear Nvarchar(255) Năm
Organization_Group_Code Float Mã tập đoàn
Organization_Group Nvarchar(255) Tên tập đoàn
Department_Code Nvarchar(255) Mã phòng ban
Department Nvarchar(255) Tên phòng ban
Union_Code Float Mã công đoàn(đại diện quyền lợi cho
6
Trang 7người lao động)Union Nvarchar(255) Tên công đoàn
Job_Family_Code Float Mã của nhóm công việc
Job_Family Nvarchar(255) Tên nhóm công việc
Employee_Identifier Float Mã để nhận dạng nhân viên
Other_Salaries Float Các khoản lương khác
(Overtime+Salaries,Other Salaries)
Heath_Dental Float Tiền bảo hiểm y tế
Other_Benefits Float Tiền trợ cấp khác (bảo hiểm thất nghiệp,
an sinh xã hội…)Total_Benefits Float
Tổng tiền trợ cấp(Retirement+ Heath_Dental+
Other_Benefits)Total_Compensation Float Tổngtiềnbồithường(Total_Salary +
Total_Benneffits)
II SSIS
1 Phân tích dữ liệu
- Từ dữ liệu có được, nhóm đã phân tích thành 7 bảng dim gồm:
Dim_Organization: Bảng chứa thông tin mã các tập đoàn và tên tậpđoàn tương ứng với mã
Dim_Department: Bảng chứa thông tin mã phòng ban và tên phòng ban
Trang 8 Dim_Union: Bảng chứa thông tin mã công đoàn và tên công đoàn
Dim_Job_Family: Bảng chứa thông tin mã nhóm công việc và tên tươngứng
Dim_Job:Bảng chứa thông tin mã công việc và tên công việc
Dim_Year: Bảng chứa thông tin các năm
Dim_Year_Type: Bảng chứa thông tinloại năm(Calendar hay Fiscal)
- Và 1 bảng fact chứa các thông tin gồm:mã tập đoàn,mã phòng ban,mã côngđoàn,năm ,loại năm, mã nhóm công việc ,mã công việc,lương cứng,lươngngoài giờ,các lương khác,tổng tiền lường,tiền hưu,tiền bảo hiểm,các khoảntrợ cấp khác,tổng tiền trợ cấp và tổng tiền bồi thường
Mô hình dữ liệu
Bảng fact
8
Trang 9Thuộc tính Kiểu dữ liệu Ràng buộc
Organization_Group_Code Float Khóa ngoạiDepartment_Code nvarchar(255) Khóa ngoại
Trang 10 Bảng Dim_Organization
Organization_Group_Code float Khóa chínhOrganization_Group_Name nvarchar(255) Null
Bảng Dim_Department
Department_Code nvarchar(255) Khóa chính
Bảng Dim_Union
Bảng Dim_Job_Family
Bảng Dim_Job
Bảng Dim_Year
Bảng Dim_Year_Type
10
Trang 11Thuộc tính Kiểu dữ liệu Ràng buộc
Mô tả dữ liệu mức vật lý
- Fact(Id, Organization_Group_Code, Department_Code, Union_Code,
Job_Family_Code, Job_Code, Year_Type, YearID,Salaries, Overtime,Other_Salaries,Total_Salary, Retirement, Heath_Dental,Other_Benefits, Total_Benefits, Total_Compensation): Lưu trữ cácthông tin là khóa chính của các bảng Dimenstion, ngoài ra còn có lương,tổng lương và trợ cấp,trợ cấp khác,tổng bồi thường…
- Dim_Organizatio
n(Organization_Group_Code,Organization_Group_Name ): Lưu trữ
thông tin mã tập đoàn và tên tập đoàn
- Dim_Department (Department_Code ,Department_Name): Lưu trữ
thông tin mã phòng ban và tên phòng ban
- Dim_Union (Union_Code,Union_Name): Lưu trữ thông tin mã công
đoàn và tên công đoàn
- Dim_Job_Family (Job_Family_Code,Job_Family_Name): Lưu trữ
thông tin mã nhóm công việc và tên nhóm công việc
- Dim_Job (Job_Code,Job_ Name): Lưu trữ thông tin mã công việc và
tên công việc
- Dim_Year (YearID): Lưu trữ thông tin năm.
- Dim_Year_Type (Year_Type,): Lưu trữ thông tin loại năm, có 2 cách
tính năm là năm bình thường(calendar) và năm tài chính(Fiscal)
2 Các bước thực hiện
Gồm có 4 bước mà nhóm đã chia ra thực hiện:
- Bước 1: Tạo mới một Database để lưu trữ dữ liệu khi đổ vào
- Bước 2: Tạo project mới trong công cụ SQL Data Tool, thực hiện quá trìnhSSIS
Trang 12- Bước 3: Tạo các Data Flow Task, các nguồn dữ liệu (Excel Source), cácOLE DB Destination thiết lập các bảng để đổ dữ liệu vào.
- Bước 4: Thực hiện quá trình đổ dữ liệu
Quá trình thực hiện các bước:
Bước 1: Tạo mới một Database.
- Mở công cụ SQL Server (2012), click chuột phải vào phần Database ở
thanh Object Explorer chọn New Database…
12
Trang 13- Hộp thoại New Database xuất hiện, tiến hành đặt tên cho database ở khung Database nam: và chọn OK
Trang 14Bước 2: Tạo project mới trong công cụ SQL Data Tool, thực hiện quá trình SSIS.
- Mở công cụ SQL Data Tool, chọn new project và chọn Integeration
Services Project sau đó đặt tên cho project ở khung Name, chọn địa chỉ
lưu ở khung Location sau đó click OK.
Bước 3: Tạo Data Flow Task, các nguồn dữ liệu (Excel Source), các OLDB Destination thiết lập các bảng để đổ dữ liệu vào.
- Ở thanh Toolbox click double vào Data Flow Task
14
Trang 15- Tiếp theo click double vào biểu tượng Data Flow Task vừa hiện ở tab
Package.dtsx [Design], ứng dụng sẽ chuyển qua phần Data Flow, ở
đây kéo vào Excel Source ở khung Toolbox để xác định nguồn dữ liệu
đổ vào và kéo OLE DB Destinationở khung Toolbox vào để xác định
nơi dữ liệu lưu trữ.Tiến hành đổi tên sao cho phù hợp
Trang 16- Sau khi đổi tên, click double vào biểu tượng Excel Source ở tab Data
Flow để thực hiện chọn nguồn dữ liệu Khi hộp thoại Excel Source Editor xuất hiện, chọn New -> hộp thoạt Excel Connection Manager
xuất hiện -> chọn Browse và trỏ đường dẫn đến file dữ liệu ->OK Sau khi đã chọn được file dữ liệu nguồn, tiếp theo ở phần Name of Excel
sheet ta chọn bảng dữ liệu cần thiết để đổ vào.
16
Trang 17- Ngoài ra còn có thể tùy chọn các cột dữ liệu trong bảng cần thiết để đổ
vào bằng cách chọn Columns (ở khung bên trái) sau đó chọn hoặc bỏ đi các cột không cần thiết Chọn OK.
Trang 18- Tiếp theo kéo mũi tên màu xanh nước biển từ biểu tượng Excel Source
đến OLEDB Destination để tạo liên kết Sau đó click double vào biểu tượng OLE DB Destination ở tab Data Flow để tạo các bảng dim, fact chứa dữ liệu đổ vào Khi hộp thoại OLE DB Destination xuất hiện, ở dòng OLE DB connection manager chọn New để tạo mới một liên kết đến database đã tạo trong SQL Server trước đó, hộp thoại Configure
OLE DB Connect Manager xuất hiện chọn New.
- Ở bảng Connect Manager chọn các thông tin cần thiết để kết nối như Server name, Use SQL Server Authentication và chon tên database
sau đó chọn OK.
- Sau đó ở hộp thoại OLE DB Destination, dòng Name of the table or
view chọn New, hộp thoại Create Table xuất hiện, chỉnh các các thông
tin cần thiết và click OK để tạo bảng, ở đây là khởi tạo các bảng dim,
fact để lưu dữ liệu từ nguồn khi đổ vào database đã tạo trước đó
18
Trang 19- Tiếp theo ở khung bên trái chọn Mappings để xem việc liên kết các
thuộc tính giữa bảng nguồn và bảng chứa dữ liệu đổ vào để có thể chỉnhsửa nếu chưa đúng
Trang 20- Sau đó click OK.
- Với các bảng còn lại ta thực hiện tương tự như các bước ở trên
Bước 4: Thực hiện quá trình đổ dữ liệu.
- Sau khi đã tạo các bảng nguồn và bảng chứa dữ liệu hoàn tất, nhấn F5
để công cụ tiến hành đổ dữ liệu vào
20
Trang 21- Sau khi quá trình đổ thành công sẽ có kết quả thông báo như trên.
- Các bảng mới sẽ có trong database mới tạo
- Và sau khi tạo các khóa ngoại cho các bảng ta sẽ có bộ dữ liệu sau khixây dựng
Trang 23III SSAS
1 Mô tả cube xây dựng measure
Gồm có 4 bước mà nhóm đã chia ra thực hiện:
- Bước 1: Tạo project thực hiện tạo các data Source, Data source view
- Bước 2: Tạo Cube, chọn các trường cần thiết để thực hiện các measure
- Bước 3: Thực hiện một số truy vấn sau khi đã tạo cube và định nghĩa cácmeasure
Quá trình thực hiện các bước:
Trang 24Bước 1: Tạo project thực hiện tạo các data Source,Data source view
a Tạo Data Source
Tạo mới project Chọn Business Intelligence > Analysis Services
-> Analysis Services Multidimensional and Data Mining Project.
Đặt tên project và chọn OK (như trong hình)
- Chuột phải vào Data Sources chọn New Data Source để kết nối
với dữ liệu trên SQL
24
Trang 25- Xuất hiện bảng Data Source Wizard chọn New để tạo mới một kết
nối đến dữ liệu trong SQL
- Xuất hiện bảng Connect Manager
Trang 26 Ở ô Server name chọn server name hiện tại của SQL (ở đây của
mình là NGHIEPNN)
Ở ô Log on to the server (chọn 1 trong 2 lựa chọn):
Use Windows Authentication : dành cho SQL không cài đặt cổng sa.
Use SQL Server Authencication : dành cho SQL có cài đặt cổng sa.
Ở đây mình khuyến khích cài đặt cổng sa cho SQL và dùng tùy chọn Use SQL Server Authencication
Ở ô Connect to Database chọn Select or enter database name
và chọn database đã tạo trong SQL salesDW
- Có thể click Test Connection để kiểm tra kết nối đã thành côngchưa
- Sau khi tạo xong chọn OK thì lúc này ở ô Data Source Wizard sẽ
xuất hiện kết nối mình vừa tạo và thông tin của kết nối đó
26
Trang 27- Tiếp theo chọn Next và chọn Use the service account rồi chọn Next ->Finish
- Lúc này ta đã tạo xong một kết nối đến database Employee_Compensation trong SQL.
b Tạo Data source view
- Chuột phải vào Data Source Views chọn New Data Source View
Trang 28- Ở bảng Data Source View Wizard đã tồn tại một Database mà ta
vừa kết nối ở trên nên ta chọn Next.
- Ở tab Select Tables and Views ta chọn bảng FACT mà ta đã tạo
trong SQL và nhấn dấu >để chuyển bảng FACT qua khung
28
Trang 29Included Objects, tiếp theo chọn Add Related Tables để các bảng
có liên quan đến bảng FACT được add vào Sau đó ta chọn Next ->
Finish.
- Lúc này ta đã tạo xong một data view.
Trang 30Bước 2: Tạo Cube, chọn các trường cần thiết để thực hiện các measure
- Chuột phải vào Cubes chọn New Cube.
- Ở tab Select Creation Method chọn Use existing tables -> Next.
- Ở tab Select Measure Group Tables check vào FACT (hoặc có thể click Suggest) sau đó Next -> Next -> Finish
30
Trang 32- Lúc này ta đã tạo xong một Cube có các Dimenstions
32
Trang 34- Tiếp theo click-double vào bảng Dim Organization , kéo các thuộc
tính từ các bảng này và thả vào ô Attributes
- Tương tự với các bảng còn lại
34
Trang 36- Tại Cube Emplyee Compensation chọn Process sau đó bấm yes ở
các hộp thoại sau đó
36
Trang 37- Sau đó hiển thị bảng Process Cube ta bấm Run
- Đợi khi chạy xong ta chọn nút Close của bảng Process Progress
- Tiếp theo ta click chuột phải vào Cube đã tạo và chọn Browse
- Chọn nút excel Lúc này một cửa sổ Excel xuất hiện với chức năngPivot Table, ta sẽ chọn các thuộc tính để thống kê
Trang 38Bước 3: Thực hiện một số truy vấn sau khi đã tạo cube và định nghĩa các measure.
- Tổng lương của các tập đoàn
- Lương làm thêm giờ của các công việc ở các năm
38
Trang 392 Các câu truy vấn MDX
1.Tổng số tiền lương của từng công việc trong năm 2013
select [Measures].[Total Salary] oncolumns,
[Dim Job].[Job Name].membersonrows
from [Employee Compensation]
where [Dim Year].[Year ID].&[2013]
Trang 402.Những công việc có số tiền lương lớn hơn 700.000(filter)
select [Measures].[Salaries] oncolumns,
filter([Dim Job].[Job Name].children,[Measures].[Salaries]>700000)
onrows
from [Employee Compensation]
3.Những công việc có số tiền lương lớn hơn 500.000(having)
select [Measures].[Salaries] oncolumns,
{[Dim Job].[Job Name].children}having([Measures].[Salaries]>500000)
onrows
from [Employee Compensation]
40
Trang 414 Tổng Số Tiền lương của các tập đoàn năm 2014 theo lịch bình thường
select [Measures].[Total Salary] oncolumns,
{([Dim Year].[Year ID].&[2014],[Dim Organizaton].[Organization Group Name].members)} onrows
from [Employee Compensation]
where ([Dim Year Type].[Year Type].&[Calendar])
Trang 425.Tiền lương tăng ca của từng công việc
select [Measures].[Overtime] oncolumns,[Dim Job].[Job Name].childrenonrowsfrom [Employee Compensation]
42
Trang 436.Thứ tự giảm dần của tiền lương tang ca theo công việc
select [Measures].[Overtime] oncolumns,
order([Dim Job].[Job Name].children,[Measures].[Overtime],DESC)
onrows
from [Employee Compensation]
7.Số tiền bảo hiểm y tế của công việc "Transit Operator"
select [Measures].[Health Dental] oncolumns,
[Dim Job].[Job Name].&[Transit Operator] onrows
from [Employee Compensation]
Trang 448 10 công việc có tiền bảo hiểm y tế cao nhất
select [Measures].[Health Dental] oncolumns,
topcount([Dim Job].[Job Name].children,10,[Measures].[Health Dental])onrows
from [Employee Compensation]
44
Trang 459 3 công việc có tổng tiền lương cao nhất
select [Measures].[Total Salary] oncolumns,
head(order([Dim Job].[Job Name].children,[Measures].[Total Salary],DESC),3)onrows
from [Employee Compensation]
10 Tổng tiền lương của các năm tài chính
select [Measures].[Total Salary] oncolumns,
[Dim Year].[Year ID].childrenonrows
from [Employee Compensation]
where ([Dim Year Type].[Year Type].&[Fiscal])