thành công kho dữ liệu bao gồm rất nhiều công việc, một trong những công việc không thể thiếu đó là xây dựng quá trình trích xuất dữ liệu nguồn, chuyển đổi và nạp dữ liệu vào kho.. Kho d
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
TRƯƠNG THỊ DIỄM
XÂY DỰNG HỆ THỐNG TRÍCH LỌC DỮ LIỆU CHO KHO DỮ LIỆU VÀ ỨNG DỤNG TRONG ĐIỀU TRA THỦY SẢN ĐỐI VỚI DỊCH HẠI
TRÊN TÔM VÀ CÁ
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Cần Thơ – 2010
Trang 2
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
TRƯƠNG THỊ DIỄM
XÂY DỰNG HỆ THỐNG TRÍCH LỌC DỮ LIỆU CHO KHO DỮ LIỆU VÀ ỨNG DỤNG TRONG ĐIỀU TRA THỦY SẢN ĐỐI VỚI DỊCH HẠI
TRÊN TÔM VÀ CÁ
Chuyên ngành: HỆ THỐNG THÔNG TIN
Mã số: 60 48 05
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Người hướng dẫn khoa học
Ts PHẠM THỊ XUÂN LỘC
Cần Thơ - 2010
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này được hoàn thành trên kết quả nghiên cứu của tôi
Các công việc nghiên cứu và nội dung thực hiện trong luận văn chưa từng được nộp
để lấy bằng cấp từ một trường nào; ngoại trừ phần lý thuyết và các kết quả từ các
công trình khác được ghi rõ trong phần tài liệu tham khảo của luận văn
Cần Thơ, ngày 10 tháng 03 năm 2010
Trương Thị Diễm
Trang 4LỜI CẢM ƠN
Đề tài “Xây dựng hệ thống trích lọc dữ liệu cho kho dữ liệu và ứng dụng
trong điều tra thủy sản đối với dịch hại trên tôm và cá” đến nay đã được hoàn
thành sau một thời gian tìm hiểu và thực hiện Để đạt được kết quả như hôm nay, ngoài sự cố gắng của bản thân em nhận được rất nhiều sự giúp đỡ của thầy cô, gia đình và bạn bè
Em xin chân thành nói lời cảm ơn đến các thầy cô trường Đại Học Cần Thơ đã cung cấp cho em nhiều kiến thức quý báu trong những năm qua Và đặc biệt là sự tận tình hướng dẫn của cô Phạm Thị Xuân Lộc đã hướng dẫn em trong suốt thời gian qua Cô đã cung cấp kiến thức, truyền kinh nghiệm, cho lời khuyên và động viên em trong suốt quá trình thực hiện luận văn
Xin cám ơn cha, mẹ, các anh em trong gia đình đã hỗ trợ, lo lắng và động viên Đồng thời xin chân thành cảm ơn các anh, chị trong lớp Cao học k14 đã động viên, giúp đỡ em trong quá trình thực hiện luận văn này
Xin chúc thầy cô nhiều sức khỏe, gặt hái nhiều thành công trong sự nghiệp giảng dạy của mình và đào tạo ra nhiều nhân tài cho đất nước
Học viên Trương Thị Diễm, MSHV 250725
Lớp Cao học Hệ thống thông tin K14
Trang 5MỤC LỤC
# "
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC HÌNH vi
DANH MỤC TỪ VIẾT TẮT vii
ABSTRACT viii
TÓM TẮT ix
CHƯƠNG 1: GIỚI THIỆU 1
1.1 Mở đầu 1
1.1.1 Đặt vấn đề 1
1.1.2 Hướng giải quyết 1
1.1.3 Mục đích nghiên cứu của đề tài 2
1.1.4 Đối tượng và phạm vi nghiên cứu 3
1.1.5 Ý nghĩa thực tiễn của đề tài 3
1.2 Các vấn đề liên quan 3
1.2.1 Trong nước 4
1.2.2 Ngoài nước 4
1.3 Các nội dung chính 5
CHƯƠNG 2: TỔNG QUAN VỀ KHO DỮ LIỆU 6
2.1 Lịch sử phát triển kho dữ liệu 6
2.2 Các giai đoạn tiến triển cơ bản của kho dữ liệu 8
2.3 Các định nghĩa về kho dữ liệu 8
2.4 Các đặc điểm của kho dữ liệu 9
2.4.1 Hướng chủ đề (Subject Oriented) 10
2.4.2 Tích hợp (Integrated) 10
2.4.3 Ổn định (Nonvolatile) 11
2.4.4 Thay đổi theo thời gian (Time Variant) 11
2.5 Mục đích của kho dữ liệu 13
2.6 Những thành phần cơ bản của kho dữ liệu 13
2.6.1 Hệ thống hoạt động nguồn 14
2.6.2 Vùng dữ liệu tạm 14
2.6.3 Biểu diễn dữ liệu 16
2.6.4 Công cụ truy cập dữ liệu 18
Trang 62.6.5 Siêu dữ liệu (Metadata) 18
CHƯƠNG 3: THIẾT KẾ KHO DỮ LIỆU THEO MÔ HÌNH CHIỀU 20
3.1 Lý do sử dụng mô hình chiều trong xây dựng kho dữ liệu 20
3.2 Các khái niệm cơ bản trong mô hình chiều 20
3.2.1 Bảng sự kiện 21
3.2.2 Bảng chiều 23
3.3 Chiều thời gian 27
3.4 Sự kết hợp bảng sự kiện và bảng chiều 27
3.4.1 Lược đồ hình sao (Star schema) 28
3.4.2 Lược đồ hình bông tuyết (Snowflake schema) 29
3.4.3 Lược đồ chòm sao (constellation schema) 30
3.5 Các bước của quá trình thiết kế mô hình chiều 32
3.6 Giới thiêu mô hình dữ liệu đa chiều 32
3.6.1 Khái niệm cơ sở dữ liệu đa chiều 33
3.6.2 Xử lý phân tích trực tuyến (OLAP) 33
3.6.3 Các thao tác của OLAP 34
CHƯƠNG 4: QUÁ TRÌNH TRÍCH XUẤT, CHUYỂN ĐỔI VÀ NẠP DỮ LIỆU 36
4.1 Giới thiệu quá trình ETL 36
4.2 Các cách tiếp cận ETL 36
4.3 Trích xuất (Extraction) 38
4.3.1 Xem xét chung 38
4.3.2 Trích dữ liệu từ hệ thống hoạt động 39
4.3.2.1 Ánh xạ dữ liệu logic từ hệ thống nguồn vào kho dữ liệu 40
4.3.2.2 Các phương pháp trích xuất logic 42
4.3.3 Trích dữ liệu từ các hệ thống tập tin 47
4.4 Chuyển đổi (Transformation) 47
4.5 Nạp (Loading) 50
4.5.1 Nạp bảng chiều 50
4.5.2 Nạp bảng sự kiện 56
4.6 ETL theo định kỳ 60
4.7 Siêu dữ liệu 61
CHƯƠNG 5: THIẾT KẾ CƠ SỞ DỮ LIỆU NGUỒN VỀ TÔM, CÁ 62
5.1 Giới thiệu chung về Tôm, cá 62
5.1.1 Tôm sú ở Sóc Trăng 63
5.1.1.1 Đặc điểm sinh học của tôm sú 63
Trang 75.1.1.2 Chu kỳ sống của tôm 63
5.1.1.3 Mùa vụ nuôi 63
5.1.1.4 Các nguyên nhân phát triển dịch bệnh trên tôm 63
5.1.2 Cá tra, basa ở An Giang 64
5.1.2.1 Đặc điểm sinh học 64
5.1.2.2 Các giai đoạn sinh trưởng 64
5.1.2.3 Mùa vụ nuôi 64
5.1.2.4 Các mô hình nuôi cá 64
5.1.2.5 Các nguyên nhân phát triển dịch bệnh trên cá 65
5.2 Mô tả hệ thống cơ sở dữ liệu tôm, cá 66
5.3 Mô hình liên kết thực thể (ERD: Entity Relationship Diagram) 67
5.4 Mô hình dữ liệu luận lý (MLD: Model of Logical Data) 69
5.5 Bảng từ điển dữ liệu 70
CHƯƠNG 6: THIẾT KẾ KHO DỮ LIỆU TÔM, CÁ 71
6.1 Xây dựng kho dữ liệu tôm, cá theo mô hình chiều 71
6.2 Kho dữ liệu tôm, cá khi thiết kế theo mô hình chiều 74
CHƯƠNG 7: ỨNG DỤNG HỆ THỐNG TRÍCH XUẤT, CHUYỂN ĐỔI VÀ NẠP DỮ LIỆU VÀO KHO DỮ LIỆU 75
7.1 Cấu trúc chương trình 75
7.2 Tạo bảng chiều 76
7.3 Tạo bảng sự kiện 80
7.4 Xem thông tin về siêu dữ liệu 82
CHƯƠNG 8: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 83
8.1 Kết quả đạt được 83
8.2 Hướng phát triển 84
PHỤ LỤC 85
TÀI LIỆU THAM KHẢO 104
Trang 8DANH MỤC HÌNH
STT Tên Trang
3 Hình 2.3: Vấn đề của sự thay đổi theo thời gian 12
13 Hình 4.3: ETL và ELT: chọn nơi để thực hiện sự chuyển đổi 38
17 Hình 4.7: Mô hình thực thể liên kết về thông tin cán bộ 43
25 Hình 4.15: Nạp dữ liệu trực tiếp hoặc qua xử lý ở vùng tạm 50
33 Hình 4.23: Thao tác trích lọc thông tin cho bảng sự kiện 57
35 Hình 4.25: Thay thế khóa tự nhiên bằng khóa đại diện 59
36 Hình 4.26: Kết quả dữ liệu sau khi thay khóa tự nhiên bằng
khóa đại diện
69
37 Hình 5.1: Mô hình thực thể liên kết về tôm, cá 68
38 Hình 5.2: Mô hình dữ liệu vật lý về tôm, cá 70
39 Hình 6.1 : Mô hình liên kết thực thể về quá trình báo cáo 72
40 Hình 6.2: Lược đồ hình sao về sự kiện báo cáo 73
41 Hình 6.3: Lược đồ hình sao về sự kiện phiếu điều tra 73
42 Hình 6.4: Mô hình chiều của kho dữ liệu về tôm, cá 74
Trang 9DANH MỤC TỪ VIẾT TẮT
# "
DWH Data WareHouse (Kho dữ liệu)
DASD Direct Access Storage Device (Thiết bị lưu trữ truy cập trực tiếp)
ERD Entity Relationship Diagram (Mô hình thực thể liên kết)
MLD Model of Logical Data (Mô hình dữ liệu luận lý)
FK Foreign Key
NK Natural Key
3NF Third-Normal-Form (hình thức chuẩn thứ 3)
SCD Slowly Changing Dimensions (Chiều thay đổi chậm)
OLTP Online Transaction Processing (Xử lý giao dịch trực tuyến)
ĐBSCL Đồng bằng sông Cửu Long
Trang 10ABSTRACT
In this thesis, the basic concepts and components of data warehouse are introduced The building of data warehouse structure is also described according to the dimension model The purpose of the thesis is to research and to construct an Extract-Transform-Load (ETL) system The ETL system is to build data warehouse
of fish and shrimp diseases in some areas in Mekong Delta, Vietnam
The thesis is to research and to construct the ETL system according to two methods First, the thesis uses one of ETL tools in the market Second, the thesis constructs the application program of ETL system This program helps designers to build more easily the data warehouse
This thesis gives a dynamics: the users can select necessary data from data source, then the program will automatically create table and load data into the data warehouse In additon, the data is also saved automatically into the Metadata database
Trang 11TÓM TẮT
Trong luận văn, những khái niệm và những thành phần chủ yếu của kho dữ liệu được giới thiệu Việc xây dựng cấu trúc của kho dữ liệu được thiết kế theo mô hình chiều Mục đích của luận văn là nghiên cứu và xây dựng hệ thống trích xuất, chuyển đổi và nạp dữ liệu (ETL) vào kho Hệ thống được áp dụng để xây dựng kho dữ liệu
về bệnh tôm và cá ở một vài vùng ở đồng bằng sông Cửu Long
Luận văn nghiên cứu và xây dựng hệ thống ETL cho kho dữ liệu theo hai phương pháp Trước tiên, luận văn dùng một trong những công cụ ETL sẵn có trên thị trường Cách thứ hai là xây dựng chương trình ứng dụng thực hiện quá trình ETL Luận văn giúp những người thiết kế xây dựng kho dữ liệu được dễ hơn
Luận văn cung cấp tính động: người dùng có thể chọn những dữ liệu cần từ cơ
sở dữ liệu nguồn, sau đó chương trình sẽ tự động tạo bảng và nạp dữ liệu vào kho Thêm vào đó, dữ liệu cũng được lưu tự động vào siêu dữ liệu
Trang 12CHƯƠNG 1: GIỚI THIỆU
1.1 Mở đầu
1.1.1 Đặt vấn đề
Đồng bằng sông Cửu Long (ĐBSCL) là một vùng đất ngập nước, điển hình với chế độ ngập lũ, ngập mặn và hệ thống sông rạch chằng chịt, có các hệ sinh thái rừng ngập mặn, hệ sinh thái rừng tràm và các hệ sinh thái nông nghiệp rất phát triển ĐBSCL có tiềm năng to lớn trong phát triển nuôi trồng thủy sản nước mặn, nước lợ
và nước ngọt thuộc vùng hạ lưu sông Mê Công
Trong những năm qua, nuôi trồng thủy sản đã trở thành thế mạnh kinh tế rất quan trọng ở ĐBSCL và trong cả nước Năm 2005, diện tích nuôi trồng thủy sản toàn khu vực là 680.200 ha với sản lượng thủy sản khoảng 983.384 tấn Năm 2007
là 1.100.000 ha với sản lượng đạt 1.268.000 tấn, bằng khoảng 70% sản lượng nuôi trồng thủy sản của cả nước Kim ngạch xuất khẩu thủy sản của cả nước đạt 3,792 tỷ USD, trong đó ĐBSCL đạt trên 60,52% giá trị kim ngạch xuất khẩu thủy sản của cả nước [17]
Tổng giá trị kim ngạch xuất khẩu thuỷ sản đến tháng 10 năm 2009 đạt 3,488 tỷ USD Trong đó, tỷ trọng trong xuất khẩu thủy sản: cá tra và cá basa chiếm 50,4% về
lượng và 32,7% về giá trị; tôm chiếm 15,9% về khối lượng và 36,9% về giá trị [18]
Các số liệu nầy cho thấy ngành thủy sản ngày càng đóng vai trò quan trọng trong nền kinh tế quốc dân và là một trong những lĩnh vực đang được Chính phủ
đầu tư phát triển Định hướng phát triển chung của nuôi trồng thủy sản Việt Nam là
thúc đẩy sự phát triển của nhiều mô hình nuôi với các mức độ thâm canh khác nhau như quảng canh, quảng canh cải tiến, bán thâm canh và thâm canh
Tuy nhiên, như một quy luật tất yếu khi hoạt động thủy sản tăng thì nguy cơ dịch bệnh cũng sẽ tăng, điều này được lý giải là do mức độ thâm canh ngày càng cao, thả nuôi nhiều vụ trong năm làm cho tình trạng môi trường quá tải như chất lượng nước xấu, nhiệt độ nước không thích hợp và không có quản lý chặt chẽ làm cho nguồn bệnh lây lan khó kiểm soát Do đó, dẫn đến dịch bệnh trên thủy sản ngày càng tăng
1.1.2 Hướng giải quyết
Trang 13Dịch bệnh trên thủy sản phát triển và lan truyền rất nhanh nếu chúng ta không phòng trừ một cách kịp thời các dịch bệnh sẽ phát tán toàn vùng Thêm vào đó sự khắt khe về chất lượng và an toàn vệ sinh thực phẩm khi gia nhập vào WTO đòi hỏi người nông dân phải sử dụng phương pháp phòng bệnh là chính
Ngày nay công nghệ thông tin phát triển rất nhanh, việc sử dụng công nghệ thông tin không còn xa lạ gì với mọi người, không chỉ ở thành thị mà ở nhiều vùng nông thôn đã sử dụng công nghệ thông tin để phục vụ cho nông nghiệp Tại các Trung tâm Khuyến nông – Khuyến ngư, Chi cục Thủy sản và cả các nhóm kỹ thuật viên của từng địa phương cũng đã sử dụng công nghệ thông tin rất hiệu quả Hàng tuần các kỹ thuật viên sẽ gởi một bản báo cáo về tình hình nuôi thủy sản trong phạm
vi của mình quản lý đến các cấp lãnh đạo
Tuy nhiên, hầu hết các bản báo cáo tuần, tháng và năm thường được các cấp lãnh đạo xem qua vài lần và sau đó đưa vào lưu trữ Do đó, khối lượng dữ liệu của các bản báo cáo này theo thời gian đã trở thành một khối lượng dữ liệu khổng lồ Hàng triệu byte dữ liệu “bị khóa” trên máy tính Hậu quả là, các quyết định quan trọng thường được đưa ra không dựa trên dữ liệu giàu thông tin lưu trữ trong cơ sở
dữ liệu mà dựa trên cảm tính của người đưa ra quyết định
Thêm vào đó với nhu cầu ngày càng cao hơn, con người không bằng lòng với những dữ liệu đơn giản thu thập được từ các kỹ thuật trước đây Họ luôn có nhu cầu phát hiện những quy luật ẩn chứa trong khối lượng dữ liệu khổng lồ Do đó, cần có một cấu trúc lưu trữ thích hợp cho khối lượng dữ liệu lớn nhằm phục vụ tốt cho các quá trình phân tích, khai thác dữ liệu tiếp sau Kho dữ liệu ra đời với mục đích phục
vụ cho những cơ sở dữ liệu như vậy
Xuất phát từ thực tế đó, việc xây dựng kho dữ liệu về dịch bệnh trên tôm, cá là một nhu cầu cần thiết Kho dữ liệu được xây dựng nhằm cung cấp nguồn dữ liệu phong phú phục vụ tốt cho các quá trình phân tích, dự báo và mô phỏng về tình hình dịch bệnh trên thủy sản Từ những yêu cầu thực tế đã thúc đẩy em thực hiện đề tài
“Xây dựng hệ thống trích lọc dữ liệu cho kho dữ liệu và ứng dụng trong điều tra
thủy sản đối với dịch hại trên tôm và cá”
1.1.3 Mục đích nghiên cứu của đề tài
Đề tài nhằm xây dựng hệ thống trích xuất dữ liệu nguồn, chuyển đổi và nạp dữ liệu (ETL) vào kho dữ liệu Ứng dụng hệ thống ETL vào việc tạo kho dữ liệu về dịch bệnh trên tôm, cá Việc xây dựng hệ thống ETL được thực hiện theo hai cách: trước tiên dùng một trong những công cụ có sẵn trên thị trường, cách thứ hai là viết chương trình ứng dụng ETL
Trang 14Đề tài hướng đến việc cung cấp công cụ ETL mang tính động: người dùng có thể trực tiếp chọn lựa những dữ liệu nguồn cần thiết từ giao diện, chương trình sẽ tự động tạo các bảng và nạp dữ liệu vào kho dữ liệu Thông tin về cấu trúc kho dữ liệu vừa tạo cũng được lưu trữ tự động vào siêu dữ liệu
1.1.4 Đối tượng và phạm vi nghiên cứu
Đề tài nghiên cứu lý thuyết chung về kho dữ liệu, xây dựng kho dữ liệu theo mô hình chiều và các giai đoạn thực hiện quá trình trích xuất, chuyển đổi và nạp dữ liệu vào kho
Đồng thời đề tài cũng nghiên cứu về các thông tin liên quan đến tôm sú, cá tra,
cá basa tại các tỉnh ở đồng bằng sông Cửu Long nói chung và một số huyện thí điểm của Tỉnh Sóc Trăng và An Giang nói riêng như: đặc điểm sinh học, các hình thức nuôi hiện nay và các vấn đề bệnh trên tôm, cá Từ các thông tin tìm hiểu được
đề tài tiến hành xây dựng cơ sở dữ liệu nguồn để phục vụ cho quá trình ETL để tạo kho dữ liệu
Để xây dựng kho dữ liệu đề tài tiến hành nghiên cứu một trong những công cụ ETL có sẵn trên thị trường đó là dịch vụ tích hợp của SQL Server (Microsoft SQL Server Integration Services) Tuy nhiên, đề tài cũng tiến hành xây dựng chương trình ứng dụng ETL mang tính động nhằm cung cấp cho việc xây dựng kho dữ liệu được dễ dàng hơn
1.1.5 Ý nghĩa thực tiễn của đề tài
Sự thành công của đề tài có thể cung cấp một công cụ ETL động, nó giúp cho việc xây dựng kho dữ liệu được dễ dàng hơn Thêm vào đó nó cũng có thể xây dựng kho dữ liệu về dịch bệnh trên tôm, cá ở ĐBSCL nói chung và tại một số huyện ở hai tỉnh An Giang và Sóc Trăng nói riêng
Hơn nữa, đề tài cũng là một trong nhiều nhánh của đề tài cấp nhà nước “Nghiên
cứu xây dựng các hệ thống thông tin hỗ trợ việc phòng chống dịch bệnh cây trồng
và thuỷ sản cho vùng kinh tế trọng điểm” của Ts Lê Quyết Thắng (đề tài được chia
ra nhiều giai đoạn: thiết kế xây dựng cơ sở dữ liệu cho hệ thống, xây dựng hệ chuyên gia hỗ trợ, xây dựng cổng thông tin, mô phỏng, dự báo,…) Do đó, việc xây dựng kho dữ liệu là nhằm cung cấp một lượng dữ liệu tri thức cho quá trình phân tích và mô phỏng tiếp sau của dự án
1.2 Các vấn đề liên quan
Trước khi tiến hành nghiên cứu đề tài đặt ra, chúng ta tiến hành tìm hiểu các vấn
đề liên quan về kho dữ liệu đã được như hiện như thế nào đối với trong và ngoài nước
Trang 151.2.1 Trong nước
Trước sự phát triển và những thuận lợi của kho dữ liệu trong những năm gần đây việc xây dựng kho dữ liệu nói chung cũng đã được nhiều cơ quan, tổ chức thực hiện nghiên cứu và xây dựng Một số dự án có ứng dụng kho dữ liệu như:
- Ngày 24 tháng 05 năm 2008, hội đồng bảo vệ đề cương và tuyển chọn chủ nhiệm đề tài do ông Nguyễn Văn Liệu, Phó tổng cục trưởng Tổng cục Thống
kê, Chủ tịch Hội đồng chủ trì đã tiến hành họp để xét duyệt đề cương và tuyển chọn chủ nhiệm đề tài “Nghiên cứu xây dựng kho dữ liệu đầu vào của Tổng cục Thống kê” Mục tiêu tổng quát của đề tài là xây dựng mô hình, cấu trúc kho dữ liệu nhằm lưu trữ, quản lý, khai thác và sử dụng có hiệu quả các nguồn dữ liệu đầu vào của Tổng cục Thống kê [19]
- Tháng 7 năm 2008 Tổng cục Hải quan có kế hoạch xây dựng, triển khai gói thầu: “Thiết kế tổng thể kho dữ liệu hàng hóa xuất nhập khẩu, xây dựng kho
dữ liệu tác nghiệp và cung cấp báo cáo thống kê định kỳ”.[20]
- Tháng 1 năm 2009 Tổng cục Thuế có kế hoach đấu thầu tổng thể gói thầu
“Kho cơ sở dữ liệu (Data Warehouse) Dự án Hiện đại hoá quản lý thuế sử dụng vốn vay Ngân hàng thế giới” Thời gian tổ chức đấu thầu là năm 2011
Thời gian thực hiện hợp đồng từ năm 2011 đến năm 2013 [21]
1.2.2 Ngoài nước
Trên thế giới ngày càng có nhiều dự án, công trình nghiên cứu, sản phẩm phần mềm được thực hiện mà có ứng dụng việc xây dựng kho dữ liệu Sau đây là một số
dự án có ứng dụng việc xây dựng kho dữ liệu:
- VITALNET [22]: là một phần mềm ứng dụng data warehouse, cho phép truy cập và phân tích bộ dữ liệu y tế vô cùng lớn Kho dữ liệu Vitalnet lưu trữ khối lượng lớn dữ liệu về sinh sản, tử vong hoặc các dữ liệu về ung thư và dữ
liệu về tình hình dân số
Qua các thông tin trên, chúng ta thấy rằng kho dữ liệu đã được ứng dụng trong hầu hết mọi lĩnh vực của đời sống Việc xây dựng kho dữ liệu đã trở thành một phần không thể thiếu trong các dự án lớn
Tuy nhiên, cho đến nay vẫn chưa có dự án nào xây dựng kho dữ liệu về dịch bệnh trên tôm, cá Do đó nhu cầu xây dựng kho dữ liệu này là một nhu cầu cần thiết hiện nay
Bên cạnh đó, việc xây dựng kho dữ liệu lại là một công việc không đơn giản đòi hỏi cần phải có những nhóm chuyên môn về lĩnh vực kho dữ liệu Việc xây dựng
Trang 16thành công kho dữ liệu bao gồm rất nhiều công việc, một trong những công việc không thể thiếu đó là xây dựng quá trình trích xuất dữ liệu nguồn, chuyển đổi và nạp dữ liệu vào kho
Ngày nay, trên thị trường đã cung cấp nhiều công cụ hỗ trợ cho quá trình ETL
Nó cung cấp nhiều thuận lợi trong tất cả các giai đoạn của quá trình ETL từ việc trích xuất, làm sạch dữ liệu, chuyển đổi, gỡ lỗi và nạp dữ liệu vào kho dữ liệu Tuy nhiên, các công cụ ETL này đều phải tương ứng với các hệ cơ sở dữ liệu của từng công ty Ví dụ, công cụ Microsoft SQL Server Integration của công ty Microsoft hoặc Oracle Warehouse Builder của công ty Oracle
Xuất phát từ thực tế trên, nên đề tài tiến hành xây dựng một phần mềm ứng dụng thực hiện quá trình ETL mang tính động nhằm phục vụ việc xây dựng kho dữ liệu được dễ hơn
1.3 Các nội dung chính
Đề tài được chia thành các nội dung chính sau:
Chương 1: Giới thiệu chung về đề tài
Chương 2: Giới thiệu tổng quan về kho dữ liệu Các khái niệm cơ bản và các thành phần chủ yếu của kho dữ liệu
Chương 3: Giới thiệu thiết kế kho dữ liệu theo mô hình chiều Giới thiệu các khái niệm cơ bản về bảng chiều, bảng sự kiện trong mô hình chiều
Chương 4: Quá trình trích xuất, chuyển đổi và nạp dữ liệu vào kho dữ liệu Giới thiệu các bước thực hiện trong quá trình ETL
Chương 5: Thiết kế cơ sở dữ liệu nguồn về tôm, cá Giới thiệu tình hình nuôi và những đặc điểm chung của tôm, cá ở các tỉnh Sóc Trăng, An Giang
Chương 6: Thiết kế kho dữ liệu kho tôm, cá
Chương 7: Ứng dụng chương trình ETL vào xây dựng kho dữ liệu cho tôm, cá Chương 8: Kết luận và hướng phát triển
Trang 17CHƯƠNG 2: TỔNG QUAN VỀ KHO DỮ LIỆU
2.1 Lịch sử phát triển kho dữ liệu
Trong những năm đầu của thập niên 1960s, thế giới của sự tính toán gồm những ứng dụng cá nhân mà nó được điều khiển bởi các tập tin gốc (master files) Các tập tin gốc được lưu trữ vào băng từ Băng từ thì tốt cho việc lưu trữ và truy xuất tuần
tự Tuy nhiên, thời gian cho sự truy xuất toàn bộ tập tin có thể mất 20 đến 30 phút, phụ thuộc vào dữ liệu trên tập tin và quá trình được làm
Trước1970, thời kỳ của kỹ thuật mới cho sự lưu trữ và truy cập dữ diệu bắt đầu xuất hiện Trong thập niên 1970 cho thấy sự xuất hiện của lưu trữ đĩa hoặc thiết bị
lưu trữ truy cập trực tiếp (direct access storage device- DASD) Lưu trữ đĩa về cơ
bản khác với lưu trữ băng từ trong đó dữ liệu có thể được truy cập trực tiếp trên một DASD Thời gian để định vị một mẫu tin trên DASD có thể được đo trong một phần nghìn giây
Với thiết bị lưu trữ truy cập trực tiếp (DASD) dẫn đến một kiểu mới của phần
mềm hệ thống được biết như một hệ thống quản lý cơ sở dữ liệu (database
management system - DBMS) Mục đích của hệ thống quản lý cơ sở dữ liệu là làm
cho nó dễ dàng hơn cho người lập trình để lưu trữ và truy xuất dữ liệu trên một DASD
Vào khoảng giữa thập niên 1970, xử lý giao dịch trực tuyến (online transaction
processing - OLTP) có thể làm cho dữ liệu được truy cập nhanh hơn, mở đầu toàn
bộ triển vọng mới cho doanh nghiệp và xử lý Với sự xuất hiện của OLTP máy tính
có thể được dùng cho các tác vụ mà trước đây không thể thực hiện được, bao gồm các hệ thống đặt chỗ trước, các hệ thống thu ngân của ngân hàng…
Trước thập niên 1980, nhiều kỹ thuật mới như PCs và fourth-generation
languages (4GLs) bắt đầu xuất hiện Người dùng cuối bắt đầu giả định một vai trò
mà trước đây không có – trực tiếp điều khiển dữ liệu và hệ thống – vai trò trước đây dành riêng cho các bộ xử lý dữ liệu chuyên nghiệp Với kỹ thuật PCs và 4GL dẫn đến nhiều khái niệm có thể được làm với dữ liệu hơn so với xử lý các giao dịch trực
tuyến Hệ thống thông tin quản lý (Management Information System - MIS), nó được gọi trong những ngày đầu, cũng có thể được cài đặt Ngày nay được biết như
hệ hỗ trợ quyết định (decision support systems - DSS), MIS là quá trình được dùng
để các nhà quản lý ra các quyết định Trước đây, dữ liệu và kỹ thuật được dùng
Trang 18riêng để ra các quyết định hoạt động chi tiết Cơ sở dữ liệu độc lập không thể phục
vụ cho cả hai xử lý giao dịch hoạt động và xử lý phân tích ở cùng thời gian
Những năm cuối thập niên 1980, khái niệm của kho dữ liệu xuất hiện khi các nhà nghiên cứu IBM là Barry Devlin và Paul Murphy phát triển “kho dữ liệu doanh nghiệp” (“business data warehouse”) Về bản chất, khái niệm kho dữ liệu dự định cung cấp một mô hình kiến trúc cho luồng dữ liệu từ các hệ thống hoạt động đến môi trường hỗ trợ quyết định Quy trình tập hợp, làm sạch và tích hợp dữ liệu từ nhiều nguồn khác nhau là điển hình trong phần nhân bản cho mỗi kho dữ liệu
Sự phát triển chủ yếu trong những năm đầu của kho dữ liệu là[15]:
- 1960s - General Mills và Dartmouth College, trong một dự án nghiên cứu
chung, phát triển các thuật ngữ chiều(dimensions) và sự kiện (facts)
- 1970s - ACNielsen và IRI cung cấp chợ dữ liệu chiều cho việc bán lẻ
(dimensional data marts for retail sales.)
- 1983 - Teradata giới thiệu một hệ thống quản lý cơ sở dữ liệu đặc biệt được thiết kế cho hỗ trợ quyết định
- 1988 - Barry Devlin và Paul Murphy xuất bản bài báo “kiến trúc cho doanh nghiệp và hệ thống thông tin”(“An architecture for a business and information systems ”) trong IBM Systems Journal nơi họ giới thiệu thuật ngữ
“kho dữ liệu doanh nghiệp”
- 1990 – Các hệ thống Red Brick giới thiệu Red Brick Warehouse, một hệ thống quản lý cơ sở dữ liệu đặc tả cho kho dữ liệu
- 1991 – Các giải pháp Prism giới thiệu Prism Warehouse Manager, phần mềm cho sự phát triển kho dữ liệu
- 1991 - Bill Inmon xuất bản quyển sách xây dựng kho dữ liệu (Building the
Data Warehouse)
- 1996 - Ralph Kimball xuất bản quyển sách Bộ công cụ kho dữ liệu (The
Data Warehouse Toolkit)
- 1997 - Oracle 8, với sự hỗ trợ cho các truy vấn sao, được phát hành
- 1998 – Microsoft, phát hành dịch vụ phân tích (sau là dịch vụ OLAP) sử dụng lược đồ kho dữ liệu
Trang 192.2 Các giai đoạn tiến triển cơ bản của kho dữ liệu
Các tổ chức thường bắt đầu với việc dùng kho dữ liệu tương đối đơn giản Theo thời gian, việc dùng kho dữ liệu phức tạp hơn đã phát triển Kho dữ liệu tiến triển qua nhiều giai đoạn cơ bản có thể được phân biệt như sau[15]:
- Cơ sở dữ liệu hoạt động không trực tuyến (Off line Operational Database):
kho dữ liệu trong giai đoạn khởi tạo được phát triển bởi sự sao chép đơn giản
cơ sở dữ liệu của hệ thống hoạt động đến một máy chủ độc lập nơi quá trình nạp báo cáo không ảnh hưởng đến sự thực hiện của hệ thống hoạt động
- Kho dữ liệu không trực tuyến (Off line Data Warehouse): kho dữ liệu trong
giai đoạn này thì được cập nhật thường xuyên theo chu kỳ thời gian (thường hàng ngày, hàng tuần hoặc hàng tháng) từ hệ thống hoạt động và dữ liệu được lưu trong một kiến trúc được thiết kế để dễ dàng cho báo cáo
- Kho dữ liệu thời gian thực (Real Time Data Warehouse): kho dữ liệu ở giai
đoạn này được cập nhật mỗi lần hệ thống hoạt động thực hiện một giao dịch
- Kho dữ liệu tích hợp (Integrated Data Warehouse): kho dữ liệu được cập
nhật mỗi lần hệ thống hoạt động thực hiện một giao dịch Sau đó kho dữ liệu sinh ra giao dịch hoạt động và gởi trở vào hệ thống hoạt động cho việc dùng trong hoạt động hàng ngày của tổ chức
2.3 Các định nghĩa về kho dữ liệu
Việc xây dựng kho dữ liệu ngày càng phát huy được những ích lợi vốn có của
nó nhằm phục tốt hơn cho những nhu cầu tìm hiểu tri thức dữ liệu ngày càng cao của con người Do đó đã có nhiều tác giả nghiên cứu về lĩnh vực kho dữ liệu Mỗi tác giả nghiên cứu kho dữ liệu theo chuyên môn của họ nên từ đó đã xuất hiện nhiều định nghĩa về kho dữ liệu như sau:
- Theo Bill Inmon [14]: được xem như cha của khái niệm kho dữ liệu Ông đã
định nghĩa: Kho dữ liệu là một tập hợp dữ liệu hướng chủ đề, tích hợp, thay đổi theo thời gian và ổn định nhằm hỗ trợ quá trình ra quyết định của nhà quản lý
- Theo Ralph Kimball [9]: Kho dữ liệu là một hệ thống trích, làm sạch, chuyển
đổi làm cho thích hợp và chuyển giao dữ liệu nguồn vào kho dữ liệu chiều, sau đó hỗ trợ cài đặt truy vấn và phân tích cho mục đích ra quyết định
- Theo Sivakumar Harinath, Stephen Quinn[12]: Kho dữ liệu là một hệ thống
mà nó lấy dữ liệu từ cơ sở dữ liệu của một công ty hoặc các nguồn dữ liệu
Trang 20khác và chuyển đổi nó vào một cấu trúc có lợi để doanh nghiệp phân tích Những phép tính toán học thường được thực hiện trên dữ liệu được tổ chức hoặc xây dựng lại nhằm gia tăng sự hữu ích của nó, phục vụ cho doanh nghiệp ra các quyết định Cuối cùng, dữ liệu thì được chuẩn bị sẵn để người dùng cuối truy vấn và phân tích
Nhìn chung, kho dữ liệu là một lĩnh vực khá hấp dẫn nên đã có rất nhiều tác giả nghiên cứu về kho dữ liệu Mỗi tác giả đều nghiên cứu kho dữ liệu theo những lĩnh vực riêng của họ, do đó mỗi người đã có những cách nhìn khác nhau về kho dữ liệu nên đã dẫn đến nhiều định nghĩa tương đối khác nhau về kho dữ liệu Điển hình như hai tác giả khá nổi tiếng trong lĩnh vực kho dữ liệu là Bill Inmon và Ralph Kimball
có điểm giống và khác nhau như [16]:
- Cả hai ông đều đồng ý rằng kho dữ liệu tích hợp dữ liệu từ nhiều hệ thống nguồn hoạt động khác nhau
- Tuy nhiên, trong tiếp cận của Inmon, kho dữ liệu thì được cài đặt vật lý như kho dữ liệu chuẩn hóa Trong khi đó tiếp cận của Kimball, kho dữ liệu thì được cài đặt vật lý trong kho dữ liệu theo mô hình chiều
Tóm lại, mỗi tác giả đều có định nghĩa kho dữ liệu theo lĩnh vực chuyên môn của họ nhưng mục đích cuối cùng của kho dữ liệu là phục vụ cho truy vấn và phân tích Do đó, nếu chúng ta lưu dữ liệu trong kho dữ liệu với cấu trúc của mô hình chuẩn hóa, thì chúng ta vẫn cần phải nạp dữ liệu đó vào kho dữ liệu theo mô hình chiều cho mục đích truy vấn và phân tích Kho dữ liệu chuẩn hóa là một định dạng tốt để phục vụ cho các hệ thống giao dịch trực tuyến Nhưng kho dữ liệu chiều mới
là một định dạng tốt hơn để lưu dữ liệu cho mục đích truy vấn nhanh và phân tích
dữ liệu Vì vậy khi xây dựng kho dữ liệu ta nên xây dựng kho dữ liệu theo dạng mô hình chiều để đáp ứng tốt mục đích truy vấn và phân tích
2.4 Các đặc điểm của kho dữ liệu
Cách phổ biến của giới thiệu kho dữ liệu là xem xét bốn đặc điểm cơ bản của
kho dữ liệu được viết bởi William Inmon: [14]
- Hướng chủ đề (Subject Oriented)
- Tích hợp (Integrated)
- Ổn định (Nonvolatile)
- Thay đổi theo thời gian (Time Variant)
Trang 212.4.1 Hướng chủ đề (Subject Oriented)
Dữ liệu trong kho dữ liệu được tổ chức theo các chủ đề chính, phục vụ cho các
tổ chức dễ dàng xác định được những thông tin cần thiết theo yêu cầu Cách tổ chức này khác với cách tổ chức dữ liệu theo kiểu chức năng trong hệ thống cũ từ trước đến nay Do đó, thay vì chú trọng vào những thao tác và xử lý giao dịch hàng ngày của một tổ chức, kho dữ liệu tập trung vào việc mô hình hóa và phân tích dữ liệu hỗ trợ cho những nhà ra quyết định Do đó, kho dữ liệu thường cung cấp một khung nhìn đơn giản và chính xác về một chủ đề cụ thể bằng cách loại trừ những dữ liệu không có ích trong quá trình ra quyết định
Trong thực tế, khi những nhà thiết kế xây dựng một ứng dụng, họ không bao giờ xem xét rằng dữ liệu họ thao tác sẽ phải tích hợp với những dữ liệu khác hay không Nên sự cân nhất quyết định thường chỉ là một ý kiến tự do Vì vậy, nhiều ứng dụng không có sự nhất quán về cấu trúc mã hóa, quy ước về tên gọi, thuộc tính vật lý của
dữ liệu, số đo thuộc tính… Mỗi người thiết kế ứng dụng đều tự do làm các quyết định thiết kế của riêng họ Kết quả là các ứng dụng khác nhau sẽ có những thiết kế thường không giống nhau
Vì vậy, khi thiết kế kho dữ liệu cần xem xét đến vấn đề tích hợp dữ liệu Hình 2.1 minh họa sự tích hợp dữ liệu xảy ra khi dữ liệu chuyển từ môi trường hoạt động hướng ứng dụng đến kho dữ liệu
Nữ - False
Nguồn 3
Giới tính Nam - 1
Nữ - 0
Kho dữ liệu
Giới tính Nam – True
Nữ - False
Trang 222.4.3 Ổn định (Nonvolatile)
Một kho dữ liệu luôn luôn là một kho chứa dữ liệu được lưu trữ riêng biệt, chuyển đổi từ các dữ liệu ứng dụng trong các môi trường hoạt động Chính do sự riêng biệt này, một kho dữ liệu không cần có các cơ chế xử lý giao dịch, khôi phục
và kiểm soát sự đồng bộ Kho dữ liệu thường chỉ yêu cầu hai thao tác trong quá trình truy cập dữ liệu: nạp dữ liệu ban đầu và truy cập dữ liệu Hình 2.3 minh họa tính ổn định của dữ liệu
Hình minh họa cho thấy rằng dữ liệu thao tác thường được truy xuất và được thực hiện một lần một mẫu tin Dữ liệu thì được cập nhật, chèn, xóa trong môi trường hoạt động, nhưng dữ liệu của kho dữ liệu chỉ được nạp và truy cập dữ liệu
Để thay đổi dữ liệu, khi dữ liệu được nạp vào trong kho dữ liệu, nó được nạp trong một mẫu tin ảnh (snapshot), định dạng tĩnh Khi xảy ra sự thay đổi, một mẫu tin ảnh (snapshot) mới được ghi Trong cách làm này, mẫu tin lịch sử của dữ liệu đã được giữ trong kho dữ liệu
2.4.4 Thay đổi theo thời gian (Time Variant)
Dữ liệu trong các hệ thống ứng dụng hoạt động phải chính xác ở thời điểm truy nhập còn kho dữ liệu chỉ cần chính xác trong khoảng thời gian nào đó: dài là 5 đến
10 năm, ngắn là hàng tuần, tháng; không yêu cầu phải chính xác ở thời điểm truy nhập Trong một vài trường hợp, mẫu tin được dán tem thời gian (time stamped) Trong vài trường hợp khác, mẫu tin có ngày giao dịch Nhưng trong mỗi trường
Hình 2.2: Vấn đề của sự ổn định [14]
Trang 23hợp, có hình thức của đánh dấu thời gian để cho thấy trong suốt thời gian ngắn mẫu tin nào thì chính xác Hình 2.3 minh họa dữ liệu thay đổi theo thời gian của kho dữ liệu có thể biểu diễn trong nhiều cách
Những môi trường khác nhau thì có những phạm vi thời gian (time horizon) khác nhau được kết hợp với chúng Một phạm vi thời gian (time horizon) là khoảng
thời gian dữ liệu được biểu diễn trong môi trường kho Tập hợp phạm vi thời gian cho dữ liệu bên trong kho dữ liệu thì lâu hơn nhiều so với dữ liệu đó trong các hệ thống hoạt động Một phạm vi thời gian 60 đến 90 ngày thì phổ biến cho các hệ thống hoạt động Một phạm vi thời gian 5 đến 10 năm thì phổ biến cho kho dữ liệu
Do kết quả khác nhau trong phạm vi thời gian, kho dữ liệu chứa dữ liệu lịch sử lâu hơn các môi trường khác
Cơ sở dữ liệu hoạt động chứa dữ liệu giá trị hiện hành (current-value data),
hoặc độ chính xác của dữ liệu thì có giá trị như ở chính thời điểm truy cập Thông thường, dữ liệu giá trị hiện hành (current-value data) có thể được cập nhật khi những điều kiện doanh nghiệp thay đổi Tuy nhiên, kho dữ liệu thì rất khác dữ liệu giá trị hiện hành Dữ liệu của kho dữ liệu có thể được nghĩ đến như các chuỗi thao tác tinh vi của các mẫu tin ảnh (snapshots), mỗi ảnh lưu giữ ở một thời gian hiện hành Hiệu quả của việc tạo bởi một chuỗi các ảnh (snapshots) đó là kho dữ liệu có một chuỗi lịch sử của các hoạt động và các sự kiện
Cấu trúc chính của dữ liệu hoạt động có thể có hoặc không có chứa một vài phần tử thời gian, như năm, tháng, ngày… Nhưng cấu trúc chính của kho dữ liệu luôn chứa vài phần tử thời gian Việc nhúng phần tử thời gian trong mẫu tin kho dữ liệu có thể dẫn đến nhiều hình thức, như tem thời gian (time stamp) trên mỗi mẫu
Hình 2.3: Vấn đề của sự thay đổi theo thời gian [14]
Trang 24tin, tem thời gian cho toàn bộ cơ sở dữ liệu… Các môi trường khác nhau có những phạm vi thời gian khác nhau được kết hợp với chúng
2.5 Mục đích của kho dữ liệu
Một trong những tài sản quan trọng nhất của tổ chức là thông tin của nó Tài sản này luôn luôn được lưu giữ bởi một tổ chức trong hai hình thức: hệ thống hoạt động
về mẫu tin và kho dữ liệu Crudely nói [4], hệ thống hoạt động về mẫu tin là nơi dữ liệu nhập vào, và kho dữ liệu là nơi chúng ta lấy dữ liệu ra Sau đây là những mục đích cơ bản của kho dữ liệu:
- Kho dữ liệu làm cho thông tin của tổ chức dễ dàng truy cập Dữ liệu trong kho dữ liệu được lưu trữ theo cấu trúc của mô hình chiều Sử dụng mô hình chiều, nhiều người dùng cuối có thể dễ hiểu và điều hướng cấu trúc dữ liệu
và khai thác hoàn toàn dữ liệu
- Kho dữ liệu biểu diễn nhất quán thông tin của tổ chức Dữ liệu trong kho dữ liệu phải tin cậy Dữ liệu được tập hợp cẩn thận từ nhiều nguồn khác nhau của tổ chức, được làm sạch, đảm bảo chất lượng và chỉ được lấy ra khi nó
thích hợp với sự sử dụng của người dùng
- Kho dữ liệu có khả năng thích nghi và linh động thay đổi Nhu cầu người dùng, điều kiện doanh nghiệp, dữ liệu và kỹ thuật tất cả chúng đều thay đổi theo thời gian Kho dữ liệu phải được thiết kế để xử lý những thay đổi có thể xảy ra Những thay đổi kho dữ liệu nên linh động, nghĩa là chúng không làm
mất hiệu lực dữ liệu đang tồn tại
- Kho dữ liệu là nơi lưu trữ an toàn tài sản thông tin của tổ chức Kho dữ liệu
phải điều khiển việc truy cập có hiệu quả thông tin tin cậy của tổ chức
- Kho dữ liệu phục vụ cho việc cải tiến ra quyết định Kho dữ liệu phải có dữ liệu đúng trong nó để hỗ trợ ra quyết định Chỉ có một đầu ra đúng từ một kho dữ liệu: những quyết định được làm sau khi kho dữ liệu biểu diễn tính rõ ràng của nó
2.6 Những thành phần cơ bản của kho dữ liệu
Sau đây chúng ta nghiên cứu những thành phần tạo nên môi trường kho dữ liệu
Nó giúp chúng ta hiểu những thành phần cẩn thận trước khi chúng ta kết hợp chúng
để tạo một kho dữ liệu Mỗi thành phần phục vụ một chức năng đặc biệt Chúng ta cần tìm hiểu ý nghĩa chiến lược của mỗi thành phần và dùng nó như thế nào để có hiệu quả và thành công trong việc tạo kho dữ liệu Hình 2.4, minh họa các thành
Trang 25phần chủ yếu của môi trường kho dữ liệu gồm: các hệ thống nguồn hoạt động, vùng
dữ liệu tạm (data staging area), vùng biểu diễn dữ liệu và công cụ truy cập dữ liệu
2.6.1 Hệ thống hoạt động nguồn
Đây là những hệ thống nguồn của mẫu tin mà nó lưu giữ những giao dịch của doanh nghiệp Hệ thống nguồn nên được nghĩ đến như thế giới bên ngoài kho dữ liệu Những câu hỏi dựa vào hệ thống nguồn thì hạn hẹp, câu hỏi một mẫu tin ở một thời điểm (one-record-at-a-time) là một phần của luồng giao dịch phổ biến và nhiều giới hạn trong yêu cầu của chúng trên hệ thống hoạt động
Hệ thống nguồn thường không được yêu cầu rộng và những cách bất ngờ mà kho dữ liệu điển hình được yêu cầu Hệ thống nguồn ít bảo trì dữ liệu lịch sử, và nếu bạn có một kho dữ liệu tốt, hệ thống nguồn có thể làm giảm bớt nhiều trách
nhiệm cho việc biểu diễn quá khứ
2.6.2 Vùng dữ liệu tạm (staging area)
Vùng dữ liệu tạm của kho dữ liệu thường vừa là vùng lưu trữ vừa là một tập hợp quá trình được tham chiếu đến như quá trình trích xuất, chuyển đổi và nạp dữ liệu
Trang 26hoạt động thô được chuyển đổi thích hợp và chuyển giao vào kho dữ liệu cho người dùng truy vấn và sử dụng
- Vùng dữ liệu tạm phòng sau chỉ sử dụng được đối với những chuyên gia có
kỹ năng Đội nhà bếp kho dữ liệu thì bận rộn chuẩn bị những bữa ăn và đồng thời không thể đáp ứng những yêu cầu khách hàng Khách hàng không được mời ăn trong nhà bếp Chắc chắn vì nó không an toàn cho khách hàng tự do vào nhà bếp Do đó, khách hàng không nên tham gia vào những việc xảy ra trong nhà bếp
ª Yêu cầu cấu trúc chính cho vùng tạm là vùng cấm (off-limits) với những
người dùng doanh nghiệp, không cung cấp truy vấn và những dịch vụ biểu diễn.[4]
Trích xuất là bước đầu tiên trong quá trình nhận dữ liệu vào môi trường kho dữ liệu Trích xuất nghĩa là đọc và hiểu dữ liệu nguồn và sao chép dữ liệu cần cho kho
dữ liệu vào vùng tạm phục vụ cho nhiều thao tác sau này
Ngay khi dữ liệu được trích vào vùng tạm, có nhiều tiềm năng chuyển đổi, như làm sạch dữ liệu (sửa lỗi chính tả, giải quyết xung đột lĩnh vực, giải quyết phần tử thiếu hoặc phân tích vào những định dạng chuẩn), kết hợp dữ liệu từ nhiều nguồn Những sự chuyển đổi này là tất cả tiền thân để nạp dữ liệu vào vùng biểu diễn kho
dữ liệu
- Có nhiều trường hợp khi dữ liệu đến ngưỡng cửa của vùng dữ liệu tạm trong định dạng quan hệ 3NF Trong những trường hợp này, những người quản lý của vùng dữ liệu tạm đơn lẻ có thể thoải mái thực hiện các nhiệm vụ làm sạch và chuyển đổi dùng tập hợp của cấu trúc chuẩn hóa Cơ sở dữ liệu chuẩn hóa cho kho dữ liệu tạm thì được chấp nhận
- Việc tạo cấu trúc chuẩn hóa cho vùng tạm và cấu trúc chiều cho vùng biểu diễn có nghĩa là dữ liệu được trích, chuyển đổi và nạp hai lần –Một lần vào
cơ sở dữ liệu chuẩn hóa và sau đó lại nạp vào mô hình chiều Rõ ràng, quá trình hai bước này yêu cầu nhiều thời gian, nhiều tài nguyên cho kết quả phát triển, nhiều thời gian cho việc nạp định kỳ hoặc cập nhật dữ liệu, và nhiều
dung lượng để lưu trữ nhiều bản sao của dữ liệu
- Trong thực tế, nhiều nhóm dự án kho dữ liệu cực kỳ thất bại bởi vì họ tập trung tất cả nguồn lực của họ và nhiều tài nguyên vào việc xây dựng cấu trúc chuẩn hóa hơn là phân chia thời gian để phát triển vùng biểu diễn mà nó hỗ trợ cải tiến việc ra quyết định doanh nghiệp Trong khi chúng ta tin rằng sự nhất quán dữ liệu xí nghiệp lớn là mục tiêu cơ bản của môi trường kho dữ liệu, những cách tiếp cận này có hiệu quả và ít tốn chi phí hơn việc tạo tập
hợp bảng chuẩn hóa trong vùng tạm, nếu những cấu trúc này không tồn tại
Trang 27ª Vùng tạm có thể chấp nhận để tạo cơ sở dữ liệu chuẩn hóa để hỗ trợ các quá trình tạm (staging); Tuy nhiên, điều này không là mục đích cuối cùng Cấu trúc chuẩn hóa phải được ngăn cấm với người dùng cuối, bởi vì chúng làm thất bại tính
dễ hiểu và sự thao tác Mặc định, cơ sở dữ liệu chuẩn hóa được loại trừ từ vùng biểu
diễn, mà nên hoàn toàn được xây dựng chiều.[10]
Nạp dữ liệu vào kho là bước cuối cùng của quá trình ETL trong vùng tạm Việc nạp trong môi trường kho dữ liệu thường lấy hình thức biểu diễn bảng chiều đảm bảo chất lượng để thuận lợi nạp khối cho mỗi vùng chuyên biệt (data mart)
- Vùng chuyên biệt (Data mart) là một bộ phận của toàn bộ vùng biểu diễn Trong hình thức đơn giản nhất, nó biểu diễn dữ liệu cho một quá trình nghiệp
vụ đơn lẻ Những quá trình này giao nhau qua ranh giới các chức năng của tổ chức
- Mỗi khi vùng chuyên biệt (data mart) được nạp mới, được cung cấp với những tập hợp thích hợp, và được đảm bảo chất lượng hơn, cộng đồng người dùng được thông báo rằng dữ liệu mới được xuất bản Xuất bản bao gồm việc truyền thông tự nhiên của mọi thay đổi mà xảy ra trong những chiều cơ bản và những giả định mới mà được giới thiệu với những sự kiện độ đo hoặc
sự kiện tính toán
2.6.3 Biểu diễn dữ liệu
Vùng biểu diễn dữ liệu là nơi dữ liệu được tổ chức, lưu trữ và được làm sẵn sàng cho truy vấn trực tiếp bởi người dùng, những người viết báo cáo và những ứng dụng phân tích khác Vì vùng tạm bị ngăn cấm, vùng biểu diễn là kho dữ liệu mà cộng đồng doanh nghiệp quan tâm Nó là tất cả những gì cộng đồng doanh nghiệp
thấy và chạm vào qua các công cụ truy cập dữ liệu
Chúng ta đề cập đến vùng biểu diễn chiều như một chuỗi những vùng chuyên biệt (data mart) được hợp nhất
Chúng ta có nhiều quan điểm về vùng biểu diễn Trước tiên, chúng ta nhấn mạnh rằng dữ liệu được biểu diễn, được lưu trữ và được truy cập trong lược đồ chiều Mô hình chiều là kỹ thuật có thể phát triển nhất cho việc chuyển giao dữ liệu đến người dùng kho dữ liệu
Mô hình chiều là việc tạo cơ sở dữ liệu đơn giản và dễ hiểu Bắt đầu trong thập niên 1970, những tổ chức công nghệ thông tin, những nhà tư vấn, người dùng cuối
và những công ty hướng về cấu trúc chiều đơn giản để thích hợp nhu cầu cơ bản của con người cho tính đơn giản
Trang 28- Mô hình chiều thì hoàn toàn khác từ mô hình 3NF (third-normal-form - 3NF) Mô hình 3NF là kỹ thuật thiết kế để loại bỏ sự dư thừa dữ liệu Dữ liệu được chia vào nhiều thực thể riêng biệt, mỗi thực thể trở thành một bảng trong cơ sở dữ liệu quan hệ
- Thỉnh thoảng công nghệ đề cập đến mô hình 3NF như mô hình quan hệ thực thể (ER- Entity Relationship) Mô hình quan hệ thực thể thì vẽ những hộp và đường thẳng để nối kết quan hệ giữa những bảng với nhau Cả hai mô hình 3NF và mô hình chiều đều có thể được biểu diễn trong biểu đồ quan hệ thực thể bởi vì cả hai gồm những bảng quan hệ được nối kết với nhau
- Điểm khác nhau chính giữa mô hình 3NF và mô hình chiều là mức độ chuẩn hóa Mô hình chuẩn hóa thì rất hữu ích để thực hiện quá trình hoạt động bởi
vì một giao dịch cập nhật hoặc chèn chỉ cần chạm vào một nơi trong cơ sở
dữ liệu
- Tuy nhiên, mô hình chuẩn hóa thì phức tạp cho truy vấn kho dữ liệu Việc dùng mô hình chuẩn hóa trong vùng biểu diễn kho dữ liệu làm thất bại hoàn toàn mục tiêu của kho dữ liệu, cụ thể là sự trực quan và truy vấn dữ liệu được thực hiện cao
Mô hình chiều quan tâm đến vấn đề của lược đồ trong vùng biểu diễn Mô hình chiều chứa giống thông tin như mô hình chuẩn hóa nhưng những gói dữ liệu trong định dạng mục tiêu thiết kế của nó là tính dễ hiểu cho người dùng, thực hiện truy vấn và tính co giãn thích nghi với sự thay đổi
Chúng ta cần đưa dữ liệu về mức chi tiết nhất trong vùng biểu diễn để người dùng có thể yêu cầu những câu hỏi chính xác nhất có thể Bởi vì yêu cầu của người dùng thì không thể dự báo trước và liên tục thay đổi, chúng ta phải cung cấp việc truy cập đến mức cực kỳ chi tiết để họ có thể cuộn đến những câu hỏi quan tâm hiện
hành
Tất cả các vùng chuyên biệt (data marts) phải được xây dựng sử dụng phổ biến bảng chiều và sự kiện, mà chúng ta tham chiếu đến như sự thích hợp Đây là cơ sở của kiến trúc bus kho dữ liệu Một cách cơ bản vùng biểu diễn kho dữ liệu trong kho dữ liệu xí nghiệp lớn sẽ gồm 20 hoặc nhiều hơn các cùng chuyên biệt rất giống nhau
Mô hình chiều trong những vùng chuyên biệt cũng sẽ hoàn toàn giống nhau Mỗi vùng chuyên biệt có thể chứa nhiều bảng sự kiện, mỗi bảng sự kiện liên kết từ
5 đến 15 bảng chiều Nếu thiết kế được làm đúng, nhiều bảng chiều này sẽ được
dùng chung từ bảng sự kiện này đến bảng sự kiện khác
Trang 29ª Dữ liệu trong vùng biểu diễn truy vấn của kho dữ liệu phải là chiều, phải ở mức chi tiết nhất [10]
2.6.4 Công cụ truy cập dữ liệu
Thành phần chính cuối cùng của môi trường kho dữ liệu là công cụ truy cập dữ liệu Chúng ta dùng thuật ngữ công cụ để tham chiếu đến những khả năng khác nhau mà có thể được cung cấp đến người dùng doanh nghiệp để tạo điều kiện cho vùng biểu diễn phân tích ra quyết định Rõ ràng, toàn bộ việc truy vấn đều trỏ vào
việc dùng kho dữ liệu
Công cụ truy cập dữ liệu có thể là đơn giản như một công cụ truy vấn đặc biệt hoặc phức tạp như một khai thác dữ liệu chuyên nghiệp hoặc ứng dụng mô hình hóa Công cụ truy vấn đặc biệt có thể được hiểu và được dùng hiệu quả chỉ bởi một phần nhỏ của mẫu người dùng doanh nghiệp kho dữ liệu tiềm năng
Một trong những công cụ phổ biến truy vấn đến kho dữ liệu là: OLAP, Data
mining, báo cáo, dự báo và mô phỏng
2.6.5 Siêu dữ liệu (Metadata)
Trước khi chúng ta rời khỏi sự tìm hiểu những thành phần cơ bản của kho dữ liệu, một thành phần không thể thiếu khi xem xét về kho dữ liệu đó là siêu dữ liệu Theo Ralph Kimball [10], siêu dữ liệu là tất cả thông tin trong môi trường kho
dữ liệu mà nó không là dữ liệu thực sự của chính nó Siêu dữ liệu thì giống như bộ sách bách khoa cho kho dữ liệu
Theo Vincent Rainardi [13], siêu dữ liệu là một cơ sở dữ liệu chứa thông tin về cấu trúc dữ liệu, ý nghĩa dữ liệu, cách sử dụng dữ liệu, các luật chất lượng dữ liệu
và thông tin khác về dữ liệu
Có nhiều lý do để chúng ta sử dụng siêu dữ liệu trong kho dữ liệu Một trong
những lý do đó là:
- Lý do chính là miêu tả và giải thích dữ liệu và kho dữ liệu đến người dùng
Sự giải thích này cho phép người dùng sử dụng kho dữ liệu tốt hơn Sự giải thích này cũng làm nó dễ hiểu hơn để nâng cấp và bảo trì kho dữ liệu Ví dụ:
o Siêu dữ liệu định nghĩa dữ liệu giúp người dùng mới hiểu ý nghĩa mỗi
thuộc tính bảng sự kiện và bảng chiều, cùng với những giá trị của nó
o Siêu dữ liệu ánh xạ dữ liệu giúp chúng ta hiểu sự ảnh hưởng nếu một cột trong hệ thống nguồn bị phản đối hoặc nếu chúng ta muốn thêm cột mới
Trang 30trong kho dữ liệu Điều này có thể bởi vì siêu dữ liệu ánh xạ dữ liệu, giải
thích nguồn gốc của mỗi mẫu dữ liệu
- Lý do thứ hai là cho mục đích kiểm tra (audit) để hiểu điều gì xảy ra, nó xảy
ra ở đâu và nó xảy ra khi nào
o Ví dụ, khi quá trình ETL ngừng đột ngột, siêu dữ liệu kiểm tra giúp chúng ta hiểu bước nào thì được thực thi, kết quả của các bước này là gì,
và bước nào không được thực thi Nên chúng ta có thể xác định điểm chính xác trong quá trình ETL nơi nó bị thất bại
Trang 31CHƯƠNG 3: THIẾT KẾ KHO DỮ LIỆU THEO MÔ HÌNH CHIỀU
3.1 Lý do sử dụng mô hình chiều trong xây dựng kho dữ liệu
Tiếp cận điển hình được dùng để xây dựng hệ thống xử lý giao dịch trực tuyến (OLTP) là xây dựng mô hình thực thể liên kết (entity-relationship-ER) của doanh nghiệp Mô hình thực thể liên kết được chuẩn hóa cung cấp thao tác tối ưu cho các
hệ thống OLTP; nó cung cấp khối lượng giao dịch cao, các giao dịch thường xuyên cập nhật dữ liệu Mô hình thực thể liên kết tập trung chính vào việc loại bỏ sự dư thừa dữ liệu
Nếu trước đó bạn chưa từng thiết kế kho dữ liệu, nhưng bạn có kinh nghiệm trong thiết kế hệ thống xử lý giao dịch, sau đó bạn có thể nghĩ rằng kho dữ liệu không khác từ các cơ sở dữ liệu khác và từ đó bạn có thể dùng cách tiếp cận giống nhau
Không may, nó không phải như thế và người thiết kế kho dữ kiệu sẽ rất nhanh khám phá ra rằng mô hình thực thể liên kết thì không thích hợp cho thiết kế kho dữ liệu Kho dữ liệu được thiết kế cho mục đích truy vấn nhanh Do đó, để tối ưu sự thực hiện cho kho dữ liệu, cần phải có mô hình dữ liệu mới
Rall Kimball [10], người phát ngôn công nghệ chủ yếu cho mô hình chiều và là tác giả của bộ công cụ kho dữ liệu, tán thành mô hình thiết kế thích hợp cho kho dữ liệu đó là mô hình chiều Kỹ thuật mô hình chiều giúp tối ưu sự thực hiện kho dữ liệu Mô hình chiều tạo cơ sở dữ liệu đơn giản và dễ hiểu
Mô hình hóa chiều cho chúng ta một sự cải tiến khả năng để hình dung các câu hỏi rất trừu tượng mà nhiều người dùng cuối của doanh nghiệp yêu cầu trả lời Sử dụng mô hình chiều, nhiều người dùng cuối có thể dễ hiểu và điều hướng cấu trúc
dữ liệu và khai thác hoàn toàn dữ liệu
3.2 Các khái niệm cơ bản trong mô hình chiều
Mô hình chiều là mô hình kết hợp bản chiều và bảng sự kiện Mô hình chiều đặc biệt hữu ích cho sự tổng hợp và sắp xếp lại dữ liệu và biểu diễn các khung nhìn dữ liệu để hỗ trợ phân tích dữ liệu Một số khái niệm cơ bản trong mô hình chiều:
- Bảng chiều (Dimensions)
- Bảng sự kiện (Facts)
Trang 32Các thuật ngữ chiều (dimensions) và sự kiện (facts) bắt nguồn từ một dự án
nghiên cứu chung được giới thiệu bởi General Mills và Dartmouth University trong thập niên 1960
Trong thập niên 1970, AC Nielsen và IRI thống nhất dùng những thuật ngữ này
để miêu tả những dữ liệu được cung cấp cho tổ chức chung của họ Thời gian này tính đơn giản là một khuynh hướng của cách sống, các tổ chức cơ sở dữ liệu hướng
về những khái niệm này cho sự biểu diễn đơn giản của thông tin phân tích.[10]
ª Có thể nói chính xác rằng chỉ một người thì không thể phát minh cách tiếp cận chiều Nó có một sức hấp dẫn mạnh mẽ trong thiết kế của các cơ sở dữ liệu mà
nó sẽ luôn thành công khi người thiết kế đặt sự dễ hiểu và sự thao tác như những mục tiêu cao nhất..[10]
Bảng sự kiện chứa thông tin thực sự và nó thường là bảng lớn nhất trong kho dữ liệu và thường phát triển nhanh Bảng sự kiện điển hình là nơi chứa tất cả dữ liệu chi tiết mà bạn muốn lưu giữ trong kho dữ liệu Nếu bạn không chắc chắn dữ liệu là thực sự hay không, thông thường nó là số và thỉnh thoảng giá trị của nó có thể được tính toán
Thông tin chứa trong bảng sự kiện có thể ở mức chi tiết hoặc nó có thể là dữ liệu ở mức tổng hợp Mức dữ liệu nào được giữ trong bảng sự kiện thì được biết như độ mịn (granularity) và là một trong những quyết định quan trọng mà người thiết kế kho dữ liệu phải thực hiện
Tất cả các bảng sự kiện chiếm hữu một tập hợp các khóa ngoại được nối kết đến các chiều mà nó cung cấp ngữ cảnh cho các độ đo của bảng sự kiện Hầu hết các bảng sự kiện cũng chiếm hữu một hoặc nhiều trường độ đo số (measure), mà chúng
ta gọi là sự kiện (facts) Xem hình sau:
Trang 33các bảng chiều, chúng ta nói rằng các bảng thỏa tham chiếu toàn vẹn (referential
integrity) Chúng ta truy xuất bảng sự kiện qua các bảng chiều được liên kết đến nó
- Tham chiếu toàn vẹn trong thế giới cơ sở dữ liệu là khái niệm thiết đặt mối quan hệ cha-con giữa hai bảng, với mục đích đảm bảo rằng mỗi hàng trong bảng con có tương ứng tham chiếu đi vào trong bảng cha Tham chiếu toàn vẹn có thể được ràng buộc bởi cơ sở dữ liệu mức vật lý
- Một sự chọn lựa khác, tham chiếu toàn vẹn có thể được quản lý bởi ETL ETL kiểm tra rằng các giá trị khóa chiều trên bảng sự kiện tồn tại trong bảng chiều Trong mô hình chiều, tham chiếu toàn vẹn có nghĩa là mỗi bảng sự kiện thì được điền đầy đủ với các khóa ngoại phù hợp
- Chỉ có hai cách làm vi phạm tham chiếu toàn vẹn trong lược đồ chiều: thứ nhất là nạp mẫu tin sự kiện với một hoặc nhiều khóa ngoại sai; thứ hai xóa mẫu tin chiều của khóa chính được dùng trong bảng sự kiện
Thông thường bảng sự kiện có khóa chính riêng của nó được làm từ tập con của
các khóa ngoại Khóa này thường được gọi là khóa ghép (composite key) hoặc khóa nối kết (concatenated key) Trong thực tế, các bảng sự kiện luôn luôn có ít nhất 3
chiều, nhưng hầu hết các bảng sự kiện có nhiều hơn Với kho dữ liệu và các kỹ
Hình 3.1: Cấu trúc cơ bản của bảng sự kiện
Trang 34thuật xung quanh phần cứng và phần mềm phát triển trên 20 năm, các bảng sự kiện tăng trưởng khổng lồ bởi vì chúng lưu trữ ngày càng nhiều dữ liệu mịn ở mức thấp nhất của độ đo
Độ đo là thuộc tính số của bảng sự kiện Độ đo được xác định bởi sự kết hợp của các số chiều và được định vị trên bảng sự kiện.[6]
# Độ mịn (granularity) của bảng sự kiện
Thuật ngữ độ mịn được dùng để cho biết mức chi tiết được lưu trữ trong bảng
sự kiện Độ mịn của bảng sự kiện đương nhiên theo mức chi tiết của chiều liên quan của nó
Sự nhận dạng thích hợp độ mịn của mỗi lược đồ sẽ quyết định đến sự hữu ích và chi phí của kho Độ mịn ở mức cao sẽ giới hạn nhiều khả năng của người dùng để đạt được mức chi tiết hơn Ví dụ, nếu mỗi mẫu tin miêu tả toàn bộ năm, sẽ có một mẫu tin sự kiện cho mỗi năm, và nó sẽ không thể đạt được số mẫu tin sự kiện cơ bản hàng tháng hoặc hàng ngày
Ngược lại, độ mịn ở mức thấp dẫn đến sự gia tăng theo hàm mũ trong yêu cầu
về kích thước của kho dữ liệu Ví dụ, nếu mỗi mẫu tin thời gian miêu tả một giờ, sẽ
có mẫu tin sự kiện cho mỗi giờ của ngày (hoặc 8.760 mẫu tin sự kiện cho một năm với 365 ngày cho mỗi kết hợp của các chiều khóa ngoại) Nếu tất cả sự kiện được yêu cầu là hàng ngày, số mẫu tin trong cơ sở dữ liệu có thể giảm đáng kể
3.2.2 Bảng chiều
Khi thiết kế dùng mô hình chiều, chỉ có một số ít của bảng sự kiện, nhưng có thể có nhiều bảng chiều Bảng chiều được xem như bảng tham chiếu đến bảng sự kiện, là nơi miêu tả và nhiều thông tin tĩnh về mẫu dữ liệu được lưu giữ
Nếu chúng ta không chắc chắn dữ liệu là thuộc bảng chiều hay bảng sự kiện, hãy hỏi những câu hỏi này: Dữ liệu tương đối tĩnh phải không? Và dữ liệu miêu tả một vài thứ phải không?
Thường cũng có sự khác nhau lớn giữa số lượng hàng trong bảng sự kiện so với
số ít hàng hơn trong bảng chiều Ngoài ra bảng chiều có khuynh hướng chứa nhiều trường văn bản, mà nó miêu tả đối tượng chiều, trong khi bảng sự kiện có khuynh hướng chứa nhiều độ đo số
Tất cả bảng chiều nên được xây dựng với tập hợp tối thiểu các thành phần thể hiện như hình sau:
Trang 35
Khóa chính (primary key) là một trường đơn chứa một số nguyên không có nghĩa Chúng ta gọi khóa số nguyên không có nghĩa là khóa đại diện (surrogate)
- Quá trình ETL của kho dữ liệu luôn luôn tạo và chèn khóa đại diện Nói cách
khác, những khóa này của riêng kho dữ liệu và không bao giờ cho phép thực thể khác chỉ định chúng
- Khóa chính của bảng chiều được dùng để liên kết đến bảng sự kiện Do đó, tất cả bảng sự kiện phải duy trì tham chiếu toàn vẹn, khóa chính của bảng chiều được liên kết đến khóa ngoại tương ứng trong bảng sự kiện
- Chúng ta lấy tất cả thao tác tốt nhất có thể trong cơ sở dữ liệu quan hệ khi liên kết tất cả bảng chiều và bảng sự kiện dựa trên những nối kết trường đơn
số nguyên này Và cuối cùng, các bảng sự kiện của chúng ta chứa đầy những
số nguyên đơn khi những trường khóa ngoại là những số nguyên đơn
Tất cả bảng chiều có một hoặc nhiều trường khác gồm khóa tự nhiên
(NK-Natural Key) của chiều Chúng ta thấy điều này trong hình 3.2 với thiết kế trường
khóa tự nhiên có ký hiệu NK
- Khóa tự nhiên không phải là số lượng khóa đại diện không có nghĩa nó là một hoặc nhiều trường có ý nghĩa được trích từ hệ thống nguồn Ví dụ: Khóa MaCanBo trích từ bảng nguồn CanBo
Hình 3.2: Cấu trúc cơ bản của bảng chiều [9]
Trang 36- Khi bảng chiều là cố định và không cập nhật cho những thay đổi lịch sử đến các hàng riêng lẻ, thì có mối quan hệ 1-1 giữa khóa chính đại diện (surrogate) và khóa tự nhiên
- Nhưng chúng ta sẽ thấy một vài trường hợp khác khi chúng ta cho phép bảng chiều thay đổi chậm, chúng ta sinh ra nhiều khóa đại diện cho mỗi khóa tự nhiên vì chúng ta theo dõi những thay đổi lịch sử của chiều Nói cách khác, trong chiều thay đổi chậm, quan hệ giữa khóa chính đại diện và khóa tự nhiên là quan hệ n-1
Thành phần cuối cùng của tất cả bảng chiều, bên cạnh khóa chính và khóa tự nhiên, là tập hợp những thuộc tính miêu tả Thuộc tính miêu tả thì tính văn bản (textual) trội hơn hẳn, nhưng thuộc tính miêu tả số thì vẫn hợp lệ
- Kiến trúc kho dữ liệu có thể sẽ chỉ định một số lượng rất lớn những thuộc tính miêu tả cho các bảng chiều Trong một mô hình chiều được thiết kế tốt, các bảng chiều có nhiều cột hoặc nhiều thuộc tính Một bảng chiều thì không hiếm thấy có 50 đến 100 thuộc tính Các bảng chiều hướng đến tương đối không sâu trong số hàng (thường ít hơn một triệu hàng) nhưng chiều rộng thì rất nhiều cột
- Những thuộc tính chiều phục vụ như nguồn chính của những ràng buộc, nhóm truy vấn và các nhãn báo cáo Trong một yêu cầu truy vấn hoặc báo cáo, những thuộc tính được nhận dạng bởi các từ
- Những thuộc tính của bảng chiều đóng một vai trò quan trọng trong kho dữ liệu Từ đó chúng gần như là nguồn của tất cả những ràng buộc đang quan tâm và các nhãn báo cáo, chúng là phần chính để làm kho dữ liệu có thể sử dụng thuận lợi và có thể hiểu được
- Trong một vài trường hợp, kho dữ liệu chỉ tốt với những thuộc tính chiều Điểm mạnh của kho dữ liệu là trực tiếp cân xứng về số lượng và chiều sâu của thuộc tính chiều
Thỉnh thoảng khi chúng ta thiết kế kho dữ liệu, nếu chúng ta không rõ ràng một trường dữ liệu số được trích từ một nguồn dữ liệu sẽ là thuộc tính của bảng chiều hay thuộc tính của bảng sự kiện Chúng ta thường có thể làm một quyết định bằng cách hỏi trường có là một độ đo mà nó đảm nhận nhiều giá trị và tham gia vào sự tính toán không?
- Nếu phải thì nó là thuộc tính bảng sự kiện Ngược lại, nếu nó là một sự miêu
tả giá trị rời rạc mà ít có sự thay đổi và tham gia vào những ràng buộc tính toán thì nó là một thuộc tính của bảng chiều
Trang 37- Tuy nhiên, chúng ta vẫn không thể chắc chắn sự phân loại Trong một vài trường hợp, nó có thể được phép để mô hình hóa trường dữ liệu thuộc bảng chiều hay sự kiện, như một vấn đề thuộc đặc quyền của người thiết kế kho
dữ liệu
- Kiến trúc kho dữ liệu không yêu cầu các trường số trong bảng chiều, thường
nó loại ra số lượng được đo định kỳ Số lượng được đo hầu như chắc chắn là trong bảng sự kiện, không phải thuộc tính miêu tả Tất cả thuộc tính miêu tả thật sự thì tĩnh hoặc chỉ thay đổi chậm và thay đổi từng đoạn
- Trong 98% các trường hợp, sự chọn lựa thì rõ ràng ngay lập tức Trong 2% còn lại, có những lý lẽ mạnh mẽ có thể được tạo cho cả hai bên cho mô hình
số lượng hoặc là thuộc tính của bảng sự kiện hoặc là thuộc tính của bảng chiều [9]
- Trong phân tích cuối cùng, sự lựa chọn tạo thuộc tính cho bảng nào không là vấn đề Các ứng dụng yêu cầu sẽ khác, phụ thuộc vào số lượng số này được định vị ở đâu, nhưng nội dung thông tin sẽ giống nhau
Trong bảng chiều, chắc chắn có cấu trúc được gọi là phân cấp Phân cấp thì quan trọng bởi vì nó cung cấp cho bạn những đường dẫn mà bạn có thể phân tích tổng hợp (roll up) và phân tích chi tiết (drill down) Trong bảng chiều, thỉnh thoảng một thuộc tính là một tập hợp con của thuộc tính khác, nghĩa là các giá trị thuộc tính
có thể được nhóm bởi thuộc tính khác Thuộc tính mà có thể được dùng để nhóm được gọi là mức cao hơn thuộc tính đang được nhóm Những mức này trong bảng chiều được gọi là phân cấp chiều Ví dụ, 1 năm gồm 4 quý, và 1 quý gồm 3 tháng Trong trường hợp này, mức cao nhất là năm và sau đó là quý, và mức thấp nhất là tháng Bạn có thể phân tích tổng hợp (roll up) sự kiện từ mức thấp hơn đến mức cao hơn
Trang 38
Để áp dụng phân cấp trong tình huống riêng của bạn, trước tiên xem xét các cột (thuộc tính) trong bảng chiều để tìm xem có các nhóm hoặc tập hợp con không Sắp xếp các thuộc tính trong các mức thích hợp, nghĩa là bạn cần đặt thuộc tính mức cao hơn vào trên đỉnh của thuộc tính mức thấp hơn Kiểm tra dữ liệu để chứng minh rằng tất cả thành viên của thuộc tính mức thấp hơn thì được nhóm bởi thuộc tính mức cao hơn Phân cấp là một phần tích hợp của thiết kế chiều
3.3 Chiều thời gian
Một trong những mục tiêu của kho dữ liệu là đỡ gánh nặng dữ liệu lịch sử từ hệ thống hoạt động Do đó mỗi sự kiện trong kho dữ liệu phải có tem thời gian Yêu cầu này được thấy thông qua chiều thời gian, nó thì luôn luôn được biểu diễn trong mọi lược đồ kho dữ liệu
Mỗi mẫu tin trong chiều thời gian biểu diễn một phần thời gian có ý nghĩa cho
xí nghiệp Mỗi mẫu tin của chiều thời gian miêu tả một ngày là khá phổ biến, mặc
dù mỗi mẫu tin chiều thời gian của kho dữ liệu có thể miêu tả khoảng thời gian nhỏ hơn như giờ hoặc phút và nó cũng có thể miêu tả khoảng thời gian lớn hơn như tuần, tháng, quý hoặc năm Mức chi tiết cho chiều thời gian hoàn toàn phụ thuộc vào yêu cầu doanh nghiệp
Hình 3.3: Phân cấp chiều ngày hoặc địa điểm
Ngày
Tháng Quý Năm
Tuần
Ấp
Xã Huyện Tỉnh
Trang 393.4 Sự kết hợp bảng sự kiện và bảng chiều
Chúng ta đã hiểu thế nào là bảng chiều và bảng sự kiện, chúng ta đem hai khối kết hợp với nhau trong mô hình chiều Từ đó chúng ta có các lược đồ cơ bản phổ biến mà có thể được sử dụng trong mô hình chiều của kho dữ liệu là:
- Lược đồ hình sao (Star schema)
- Lược đồ hình bông tuyết (Snowflake schema)
Thỉnh thoảng, lược đồ chòm sao (constellation schema) hoặc lược đồ nhiều sao (multistar schema) thì được giới thiệu như một sự mở rộng của lược đồ hình sao và hình bông tuyết Chúng ta hãy tìm hiểu từng kiểu lược đồ này
3.4.1 Lược đồ hình sao (Star schema)
Lược đồ hình sao (Star schema) trở thành một thuật ngữ phổ biến được dùng có nghĩa là mô hình chiều Các nhà thiết kế cơ sở dữ liệu dùng nhiều thuật ngữ lược đồ hình sao để miêu tả các mô hình chiều bởi vì cấu trúc kết quả trông giống một ngôi sao và biểu đồ logic trông giống lược đồ vật lý
Lược đồ hình sao là một cấu trúc cơ bản cho mô hình chiều Điển hình nó có một bảng trung tâm lớn (được gọi là bảng sự kiện) và một tập các bảng nhỏ hơn (được gọi là các bảng chiều) được sắp xếp trong một mẫu hình tỏa tròn xung quanh bảng sự kiện trông giống một ngôi sao Hình 3.4 minh họa lược đồ hình sao
Hình 3.4: Lược đồ hình sao
Fact_BaoCao
IdCanBo IdThoiGian IdDoiTuong IdHinhThucNuoi IdMaVung DTich_Nuoi
IdMaVung MaHuyen TenHuyen TenTinh
Dim_HinhThucNuoi
IdHinhThucNuoi MaHinhThuc TenHinhThuc
Trang 40Trong khi mô hình quan hệ thực thể truyền thống có một kiểu ổn định và cân bằng của các thực thể và các mối quan hệ phức tạp giữa các thực thể, mô hình chiều thì không đối xứng Mặc dù bảng sự kiện trong mô hình chiều thì được liên kết với tất cả các bảng chiều khác, chỉ có một liên kết đơn nối bảng sự kiện đến bảng chiều
3.4.2 Lược đồ hình bông tuyết (Snowflake schema)
Lược đồ hình bông tuyết là một biến thể của lược đồ hình sao, trong đó một số bảng chiều được chuẩn hóa, từ đó có có thể tiếp tục chia dữ liệu thành nhiều bảng khác Đồ thị lược đồ hình bông tuyết có hình dạng như một bông tuyết Ví dụ hình
17 minh họa lược đồ bông tuyết và có thể trông giống như một bông tuyết
Hình 3.5: Lược đồ hình bông tuyết
Dim_VungNuoi
IdMaVung MaHuyen TenHuyen
Dim_HinhThucNuoi
IdHinhThucNuoi MaHinhThuc TenHinhThuc
Dim_ThoiGian
IdThoiGian MaNgay Thang Nam