Và mặc dù các hệ thống máy tính đã cố gắng lưu trữ một khối lượng dữ liệu cực lớn, rất nhiều trường hợp con ngừời vẫn không khai thác được hết tiềm năng của chúng, có nghĩa là không thể
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHẠM THỊ ĐÀO
XÂY DỰNG VÀ KHAI THÁC KHO DỮ LIỆU CƯỚC KHÁCH HÀNG
TẠI CÔNG TY THÔNG TIN VIỄN THÔNG ĐIỆN LỰC
LUẬN VĂN THẠC SĨ
Hà Nội - 2011
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHẠM THỊ ĐÀO
XÂY DỰNG VÀ KHAI THÁC KHO DỮ LIỆU CƯỚC KHÁCH HÀNG TẠI CÔNG TY THÔNG TIN
VIỄN THÔNG ĐIỆN LỰC
Ngành: Công nghệ thông tin Chuyên ngành: Hệ thống thông tin
Mã số: 60.48.05
LUẬN VĂN THẠC SĨ
Cán bộ hướng dẫn khoa học: TS Nguyễn Trí Thành
Hà Nội - 2011
Trang 3MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT 5
DANH MỤC HÌNH VẼ 6
DANH MỤC BẢNG 7
MỞ ĐẦU 8
CHƯƠNG 1 TỔNG QUAN VỀ KHO DỮ LIỆU 9
1.1 Giới thiệu bài toán xây dựng kho dữ liệu 9
1.2 Khái niệm chung về kho dữ liệu 10
1.2.1 Định nghĩa kho dữ liệu 10
1.2.2 Sự khác nhau giữa kho dữ liệu và CSDL tác nghiệp 11
1.3 Lịch sử ra đời và vai trò của kho dữ liệu 12
1.3.1 Lịch sử ra đời 12
1.3.2 Vai trò của kho dữ liệu 12
1.4 Kiến trúc tổng thể kho dữ liệu 13
1.5 Kho dữ liệu chủ đề (Datamart) 15
1.6 Các bước cơ bản xây dựng kho dữ liệu 15
1.6.1 Định dạng nguồn dữ liệu 16
1.6.2 Trích chọn dữ liệu 16
1.6.3 Làm sạch và chuyển dạng 16
1.6.4 Nạp, tích hợp vào kho dữ liệu 17
1.6.5 Xây dựng mô hình dữ liệu đa chiều 18
1.7 Ví trí của làm sạch dữ liệu trong quá trình xây dựng kho dữ liệu 22
CHƯƠNG 2 LÀM SẠCH DỮ LIỆU VÀ CÁC GIẢI PHÁP KỸ THUẬT 24
2.1 Khái niệm về làm sạch dữ liệu 24
2.2 Vai trò của quá trình làm sạch dữ liệu 24
2.3 Các vấn đề chất lượng dữ liệu 25
2.3.1 Làm sạch dữ liệu mức đơn nguồn 26
2.3.2 Làm sạch dữ liệu mức đa nguồn 28
2.3.3 Các giải pháp làm sạch dữ liệu 30
CHƯƠNG 3 XÂY DỰNG VÀ KHAI THÁC KHO DỮ LIỆU CƯỚC KHÁCH HÀNG TẠI CÔNG TY THÔNG TIN VIỄN THÔNG ĐIỆN LỰC 31
3.1 Hiện trạng và yêu cầu 31
3.1.1 Giới thiệu về Công ty Thông tin Viễn thông Điện lực 31
3.1.2 Hiện trạng tổ chức thông tin 31
3.1.3 Hạn chế của các tổ chức thông tin hiện tại 33
3.1.4 Yêu cầu bài toán 33
3.2 Xây dựng kho dữ liệu 34
3.2.1 Giới thiệu công cụ Oracle Warehouse Builder 34
3.2.2 Tạo dữ liệu nguồn 41
3.2.3 Tạo dữ liệu đích 42
3.2.4 Trích chọn, làm sạch, tích hợp, nạp dữ liệu 43
3.2.5 Lược đồ quan hệ giữa các bảng trong kho dữ liệu 52
3.2.6 Xây dựng kho dữ liệu chủ đề 52
3.2.7 Xây dựng khối dữ liệu nhiều chiều 53
Trang 43.3 Khai thác kho dữ liệu 60 KẾT LUẬN 64 TÀI LIỆU THAM KHẢO 65
Trang 54 ETL Extraction, Transformation, Loading
5 KDD Knowledge Discovery and Data Mining
7 LSDL Làm Sạch Dữ Liệu
8 OWB Oracle Warehouse Builder
9 OLAP Online Analyst Processing
10 OLTP OnlineTransaction Processing
11 WB Warehouse Builder
Trang 6DANH MỤC HÌNH VẼ
Hình 1 Đặc trưng của kho dữ liệu 10
Hình 2 Kiến trúc 3 tầng kho dữ liệu 14
Hình 3 Ví dụ lược đồ hình sao 19
Hình 4 Ví dụ lược đồ hình bông tuyết 21
Hình 5 Ví dụ lược đồ chòm sự kiện 21
Hình 6 Ví trí của làm sạch dữ liệu trong quá trình xây dựng kho dữ liệu 22
Hình 7 Phân loại vấn đề chất lượng dữ liệu 26
Hình 8 Ví dụ đa nguồn mức lược đồ và mức thể hiện 29
Hình 9 Mô hình tổ chức EVNTelecom 31
Hình 10 Hiện trạng tổ chức thông tin tại EVNTelecom 32
Hình 11 Quy trình báo cáo hiện nay tại EVNTelecom 33
Hình 12 Mô hình kho dữ liệu cước khách hàng 34
Hình 13 Các thành phần của OWB 35
Hình 14 Chu kỳ xử lý đảm bảo chất lượng dữ liệu 37
Hình 15 Phân loại quá trình hồ sơ dữ liệu trong Warehouse Builder 39
Hình 16 Các loại hồ sơ dữ liệu 40
Hình 17 Tạo module nguồn 42
Hình 18 Tạo module đích 43
Hình 19 Quy trình xây dựng kho dữ liệu 43
Hình 20 Hồ sơ hóa bảng KHACH_HANG_MB 48
Hình 21 Phân tích thuộc tính CMT, GIOI_TINH 49
Hình 22 Lược đồ quan hệ giữa các bảng trong kho dữ liệu 52
Hình 23 Cấu trúc các kho dữ liệu chủ đề 53
Hình 24 Tạo đối tượng chiều 54
Hình 25 Tạo đối tượng chiều KIEUTHANHTOAN 55
Hình 26 Chọn kiểu lưu trữ 55
Hình 27 Khai báo thuộc tính cho đối tượng chiều 56
Hình 28 Hoàn thành bước tạo đối tượng chiều 56
Hình 29 Tạo các khối dữ liệu 57
Hình 30 Lược đồ hình sao khối phattrien_thuebao 58
Hình 31 Lược đồ hình sao khối doanhthu 58
Hình 32 Lược đồ hình sao khối congno 59
Hình 33 Lược đồ hình sao khối thanhkhoan 59
Hình 34 Giao diện chương trình 60
Hình 35 Báo cáo tăng trưởng thuê bao CDMA 61
Hình 36 Báo cáo tăng trưởng doanh thu CDMA 61
Hình 37 Báo cáo tăng trưởng thuê bao 3G 62
Hình 38 Báo cáo tăng trưởng doanh thu 3G 62
Hình 39 Báo cáo so sánh doanh thu giữa các tháng 63
Hình 40 Báo cáo tình hình thu nợ 63
Trang 7DANH MỤC BẢNG
Bảng 1 Ví dụ về bài toán đơn nguồn - mức lược đồ 27
Bảng 2 Ví dụ về bài toán đơn nguồn - mức thể hiện 28
Bảng 3 Danh sách các bảng trong CSDL 46
Bảng 4 Danh sách các bảng dữ liệu trong được tích hợp 51
Trang 8MỞ ĐẦU
Trong thời đại ngày nay, sự bùng nổ của công nghệ thông tin đã khiến cho nhu cầu tiếp nhận và xử lý thông tin trở nên cực kỳ bức thiết Thông tin là vấn đề quan trọng hàng đầu của các công ty, tổ chức doanh nghiệp Các hệ thống thông tin được duy trì tốt sẽ cho phép các công ty có được những quyết định mang tính nghiệp vụ thành công Thông tin lại nằm dưới dạng dữ liệu Bùng nổ thông tin kéo theo tình trạng bùng
nổ dữ liệu Và mặc dù các hệ thống máy tính đã cố gắng lưu trữ một khối lượng dữ liệu cực lớn, rất nhiều trường hợp con ngừời vẫn không khai thác được hết tiềm năng của chúng, có nghĩa là không thể chiết xuất được các thông tin cần thiết ; chỉ có thể thu được thông tin sau khi tổng kết các dữ liệu theo những hình thức khác nhau Thông tin càng sâu thì mức độ và hình thức tổng kết càng phức tạp, nhất là thực hiện trên một tập dữ liệu lớn
Một trong những giải pháp tối ưu cho vấn đề này chính là Data Warehouse – Kho
dữ liệu, một hệ thống tích hợp nhiều chức năng giúp đưa ra thông tin cần thiết và hợp
lý cho người dùng Tuy nhiên, để khai thác được thông tin có hiệu quả, có nghĩa là để
có được thông tin tốt thì điều cần thiết là phải có, duy trì và đảm bảo được chất lượng
dữ liệu Dữ liệu sạch sẽ là đầu vào lý tưởng cho các hệ thống Kho dữ liệu phục vụ cho các mục đích khai thác dữ liệu và phát hiện tri thức Quá trình làm sạch dữ liệu được coi là giai đoạn tiền xử lý để có được nguồn dữ liệu đảm bảo chất lượng trước khi nạp vào trong Kho dữ liệu
Công ty Thông tin Viễn thông Điện lực (EVNTelecom) không nằm ngoài xu hướng của sự bùng nổ thông tin trên EVNTelecom kinh doanh các dịch vụ viễn thông bao gồm dịch vụ cố định, di động, internet…với gần 3 triệu khách hàng và gần 3tr thuê bao; mỗi tháng phát sinh xấp xỉ 3 triệu hoá đơn cước…Ngoài ra còn các thông tin về công nợ của khách hàng, thông tin về đối soát và thanh toán cước giữa EVNTelecom
và các nhà cung cấp viễn thông khác Đây là nguồn dữ liệu phong phú, rất hữu ích cho việc ra quyết định chiến lược kinh doanh Tuy nhiên với cách tổ chức hỗn tạp và rời rạc như hiện nay thì việc khai thác nguồn dữ liệu trên còn nhiều hạn chế
Xuất phát từ thực tế trên tại EVNTelecom, em quyết định chọn đề tài “Xây dựng
và khai thác khai thác kho dữ liệu cước khách hàng tại Công ty Thông tin Viễn thông Điện lực”
Trang 9CHƯƠNG 1 TỔNG QUAN VỀ KHO DỮ LIỆU
1.1 Giới thiệu bài toán xây dựng kho dữ liệu
Ngày nay, phần lớn các công ty đều hiểu rằng việc tập hợp và lưu trữ các nguồn dữ liệu giao dịch là vô cùng có ích Thực tế cho thấy hầu hết các công ty đều ghi lại các giao dịch của họ Dữ liệu được tập hợp trong nhiều năm từ các nguồn khác nhau Một vài trong số chúng được lưu trữ trong các máy tính lớn, một vài được lưu trữ trong các
hệ thống cá nhân và một vài trong các ứng dụng client- server Hơn nữa, mỗi hệ thống
này hầu như là đều được xây dựng và duy trì bởi nhiều người khác nhau Qua thời
gian lượng dữ liệu trở nên khổng lồ, phân tán và không nhất quán…
Giải pháp tối ưu trong trường hợp này chính là xây dựng kho dữ liệu (KDL)
KDL không chỉ lưu trữ dữ liệu có tính lịch sử mà nó còn là một nền tảng để tích hợp
dữ liệu cực kỳ tốt KDL giúp các công ty dễ dàng và nhanh chóng tìm kiếm các dữ liệu lịch sử của họ Đặc biệt, các công cụ xử lý phân tích trực tuyến (OLAP) trong KDL cho phép người dùng đưa ra các báo cáo chỉ với các thao tác kích chuột và tìm kiếm các quá trình thực thi của công ty ở những góc cạnh khác nhau, trong các khoảng thời gian khác nhau
Kho dữ liệu đóng vai trò cải thiện tốc độ truy vấn dữ liệu, hỗ trợ việc phân tích, báo cáo; hỗ trợ phát hiện tri thức và ra quyết định; giúp tăng hiệu suất thực thi
Mặc dù kho dữ liệu ra đời từ rất lâu (những năm 90 của thế kỷ trước) và có một vai trò to lớn đối với hoạt động của doanh nghiệp, nhưng tại Việt Nam việc xây dựng kho
dữ liệu mới chỉ được áp dụng tại một số công ty lớn trong một số lĩnh vực (ngân hàng, viễn thông…)
Công ty thông tin Viễn thông Điện lực (EVNTelecom) là một công ty kinh
doanh các dịch vụ viễn thông bao gồm dịch vụ điện thoại cố đinh, di động, internet, voip trong nước và quốc tế…EVNTelecom có gần 3 triệu khách hàng và 3 triệu thuê bao Mỗi tháng EVNTelecom có xấp xỉ 3 triệu hoá đơn cước và hàng trăm triệu cuộc gọi chi tiết của khách hàng…Ngoài ra, EVNTelecom còn lưu trữ các thông tin về công
nợ của khách hàng, thông tin về đối soát và thanh toán cước giữa EVNTelecom và các nhà cung cấp viễn thông khác Đây là nguồn dữ liệu phong phú, rất hữu ích cho việc ra quyết định chiến lược kinh doanh Tuy nhiên với cách tổ chức hỗn tạp và rời rạc như hiện nay thì việc khai thác nguồn dữ liệu trên còn nhiều hạn chế
Chính vì vậy, nhu cầu xây dựng và khai thác kho dữ liệu cước khách hàng tại EVNTelecom rất cấp thiết Đây chính là bài toán sẽ được nghiên cứu trong luận văn và triển khai thực tế tại EVNTelecom
Trang 101.2 Khái niệm chung về kho dữ liệu
1.2.1 Định nghĩa kho dữ liệu
Định nghĩa do W.H Inman đề xướng: DATA WAREHOUSE (DWH) được hiểu
là một tập hợp các dữ liệu tương đối ổn định (không hay thay đổi), cập nhật theo thời gian, được tích hợp theo hướng chủ đề nhằm hỗ trợ quá trình tạo quyết định về mặt quản lý
Hình 1 Đặc trưng của kho dữ liệu
Hướng chủ đề (Subject - Oriented) : Một KDL được tổ chức theo những chủ đề
chính như khách hàng (customer), sản phẩm (product), bán hàng (sale) Thay vì chú trọng vào các hoạt động và xử lý giao tác hàng ngày của tổ chức, một KDL tập trung vào việc mô hình hóa và phân tích dữ liệu hỗ trợ ra quyết định Do đó, KDL 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
Tích hợp (Integrated): Một trong những đặc trưng quan trọng nhất của KDL là dữ
liệu chứa trong nó phải được tích hợp thành một thể thống nhất Có nghĩa là một KDL thường được xây dựng bằng cách tích hợp những nguồn dữ liệu khác nhau như: CSDL quan hệ, các file không cấu trúc (flat files), những bản ghi giao tác trực tuyến
Các kỹ thuật làm sạch và tích hợp dữ liệu được áp dụng nhằm đảm bảo sự nhất quán trong việc đặt tên, mã hóa cấu trúc, đánh giá thuộc tính, Khi các nhà phân tích
Trang 11hệ hỗ trợ quyết định (DSS) tiếp cận KDL , sự quan tâm của họ là sử dụng KDL mà không còn băn khoăn về độ tin cậy cũng như tính nhất quán của dữ liệu
Gắn với thời gian (Time Variant) : Tất cả dữ liệu trong một KDL là chính xác tại
một thời điểm nào đó Đặc trưng cơ bản này của dữ liệu trong KDL rất quan trọng so với trong môi trường tác nghiệp Yêu cầu của một KDL là phạm vi về thời gian dài hơn so với các hệ thống tác nghiệp Với CSDL tác nghiệp , dữ liệu có giá trị hiện thời, trong khoảng 60-90 ngày Trong KDL, dữ liệu cung cấp thông tin lịch sử ( khoảng từ 5-10 năm trước)
Mặt khác, dữ liệu trong KDL một khi đã được sửa lỗi thì không thể cập nhật được Xét về mặt mục đích thực tế, chúng là một chuỗi dài các snapshot Nếu một snapshot được tạo ra chưa chính xác thì sau đó nó sẽ được cập nhật lại , bằng cách thêm một snapshot khác Do đó, ta giả sử rằng nó là chính xác và một khi đã được tạo ra , nó sẽ không bị thay đổi nữa Bởi vì nếu sửa đổi, trong một vài trường hợp sẽ dẫn đến sự trái quy tắc thậm chí dẫn đến sai sót Ngược lại, dữ liệu tương tác phản ánh sự chính xác tại thời điểm truy cập có thể được cập nhật nếu cần thiết
Ổn định (Non- Volative): KDL là một kho chứa dữ liệu , lưu trữ kiểu vật lý các
dữ liệu chuyển đổi từ môi trường tác nghiệp Do đó, việc cập nhật tác nghiệp dữ liệu là không tồn tại trong KDL Trong KDL, không yêu cầu các cơ chế xử lý giao dịch, phục hồi và điều khiển tương tranh Nó chỉ yêu cầu hai thao tác trong quá trình truy cập dữ liệu, đó là nạp dữ liều ban đầu vào KDL và truy cập dữ liệu đó
1.2.2 Sự khác nhau giữa kho dữ liệu và CSDL tác nghiệp
DWH về bản chất cũng là một database bình thường, các hệ quản trị cơ sở dữ liệu quản lý và lưu trữ nó như các database thông thường (tuy nhiên có hỗ trợ thêm về quản
lý dữ liệu lớn và truy vấn) Thực ra nét khác biệt của DWH so với database là ở quan niệm, cách nhìn vấn đề:
Trước tiên DWH là database rất lớn (very large database-VLDB)
Database hướng về xử lý thời gian thực, DWH hướng về tính ổn định
Database phục vụ xử lý transaction, cập nhật Datawarehouse thường chỉ đọc, phục vụ cho những nhu cầu báo cáo VD: Chúng ta sẽ yêu cầu hãy cho biết trong 5 năm, bộ phận phần mềm đã làm được những dự án nào từ đó chúng ta
sẽ có quyết định về hiệu năng của nhóm này
DWH sẽ lấy thông tin có thể từ nhiều nguồn khác nhau: DB2, Oracle, SQLserver thậm chí cả File thông thưởng rồi làm sạch chúng và đưa vào cấu trúc của nó-đó là VLDB(very large database) DWH rất lớn nên muốn cho từng
bộ phận chuyên biệt người sử dụng cuối cùng có thể khai thác thông dễ dàng thì
Trang 12bản thân DWH phải được chuyên hoá, phân ra thành những chủ đề, do đó những chủ đề chuyên môn hóa đó tạo thành một Database chuyên biệt-đó là Data mart VD: DWH của Microsoft là rất lớn, trong một núi thông tin đó làm sao khai thác? Vì thế có rất nhiều Data mart về kinh doanh, tiếp thị, kỹ thuật, testing,… Có một điểm lưu ý ở đây là có một công cụ hay đúng hơn là một chuẩn công cụ mà mọi hệ quản trị Database hỗ trợ cho việc truy vấn thông tin trong Datamart rồi đưa ra những quyết định, nhận dịnh những thông tin trong Datamart - Đó là OLAP, bộ phân tích trực tuyến
Một điểm quan trọng là Database thường được chuẩn hóa (Dạng chuẩn 1, 2, 3, BCK) để khai thác DWH phải phi chuẩn hoá rồi sau đó có thể chuẩn hoá theo start chema trong Data mart, điều này đồng nghĩa vớI việc DWH sẽ trùng lắp thông tin Thật ra điều này là hiển nhiên vì việc chuẩn hoá nhằm tránh sự trùng lắp thông tin, do đó sẽ nhất quán trong việc cập nhật, thêm, xoá, sửa, tuy nhiên DWH là Database rất lớn phục vụ cho báo cáo, truy vấn chỉ đọc nên việc trùng lắp thông tin sẽ giúp thao tác tìm kiếm sẽ nhanh hơn Đây cũng là một quy luật: Càng trùng lắp thông tin thì tìm kiếm càng dễ dàng và ngược lại
1.3 Lịch sử ra đời và vai trò của kho dữ liệu
1.3.1 Lịch sử ra đời
KDL ra đời vào những năm 90 của thế kỷ trước, được đề xướng bởi B.Inmon, là một cách tiếp cận khác được so với hệ thống OLTP(Online Transaction Processing) KDL là sự kết hợp của một số giải pháp kỹ thuật và được đặt tên là Data Warehoushing - kỹ thuật xây dựng các KDL
Những người đầu tiên đưa ra ý tưởng về KDL xác định rằng tiến hành phân tích trực tiếp trên dữ liệu của các hệ xử lý giao dịch là không hiệu quả Dữ liệu từ các hệ thống OLTP được biến đổi và sau đó đưa vào một nguồn dữ liệu duy nhất là KDL
1.3.2 Vai trò của kho dữ liệu
KDL cải thiện tốc độ truy vấn dữ liệu, hỗ trợ việc phân tích, báo cáo
KDL được thiết kế đặc trưng hỗ trợ cho các thao tác phân tích, báo cáo và truy vấn
dữ liệu
Mô hình dữ liệu được “làm phẳng” và được cấu trúc theo các vùng chủ đề giúp người dùng dễ dàng hơn trong việc lấy thông tin phức tạp chỉ bằng việc thực hiện phân tích đa chiều và truy vấn tương đối đơn giản Nó hỗ trợ quá trình phân tích đa mức và thực hiện quyền cho người dùng cuối
Trang 13Mô hình dữ liệu được “làm phẳng” (flattened) giúp người dùng dễ dàng hơn trong việc hiểu và viết các câu truy vấn có thể liên quan tới vài trăm bảng và viết các câu truy vấn với các phép “Join” giữa các bảng và các mệnh đề phức tạp
KDL hỗ trợ phát hiện tri thức và ra quyết định (Knowledge Discovery and
KDL giúp tăng hiệu suất thực thi (performance)
Cuối cùng, So sánh hiệu suất thực thi của các hệ thống giao dịch và thời gian đáp ứng truy vấn với một KDL.Các hệ thống giao dịch với chức năng chính chỉ đảm bảo thực thi các giao dịch hiệu quả Do đó, chúng được thiết kế để tối ưu thường xuyên việc đọc và ghi CSDL Ngược lại, KDL được thiết kế để tối ưu các quá trình truy vấn
và phân tích phức tạp Với một vài câu truy vấn chuyên biệt và các phép phân tích tương tác có thể chỉ mất vài giây đến vài phút trong KDL Nhưng với các hệ thống giao dịch, nó có thể là gánh nặng lớn và kéo cả quá trình thực thi đi xuống Trong các
hệ thống tác nghiệp, nếu lưu giữ dữ liệu lịch sử trong một thời gian dài có thể gây cản trở đến hiệu suất thực thi của hệ thống Do đó, KDL trở thành nơi thích hợp và đảm bảo cho dữ liệu mang tính lịch sử
1.4 Kiến trúc tổng thể kho dữ liệu
Kiến trúc 3 tầng của kho dữ liệu như hình 2:
Trang 14Hình 2 Kiến trúc 3 tầng kho dữ liệu
Lớp dưới cùng là một máy chủ chứa cơ sở dữ liệu, thông thường là một hệ thống
cơ sở dữ liệu quan hệ Các công cụ và tiện ích được sử dụng để tích hợp dữ liệu từ các
cơ sở dữ liệu tác nghiệp hoặc các nguồn dữ liệu bên ngoài (ví dụ như thông tin về tiểu
sử khách hàng được cung cấp hởi các chuyên gia bên ngoài) vào kho dữ liệu Các công
cụ và tiện ích này thực hiện trích chọn dữ liệu, làm sạch dữ liệu, chuyển dạng, nạp dữ liệu và làm mới dữ liệu để cập nhật vào kho dữ liệu
Lớp giữa là một máy chủ OLAP, thường được cài đặt sử dụng môt trong các mô hình ROLAP (Relational OLAP), MOLAP (Multidimensional OLAP) và HOLAP (Hybrid OLAP)
Lớp trên cùng một lớp client phía người sử dụng, nó chứa các công cụ báo cáo, truy vấn, các công cụ phân tích, các công cụ khai phá dữ liệu…
Trang 151.5 Kho dữ liệu chủ đề (Datamart)
Kho dữ liệu chủ đề (Datamart-DM) là cơ sở dữ liệu có những đặc điểm giống với kho dữ liệu nhưng với quy mô nhỏ hơn và lưu trữ dữ liệu về một lĩnh vực, một chuyên ngành Các Datamart có thể được hình thành từ một tập con dữ liệu của kho dữ liệu hoặc cũng có thể được xây dựng độc lập và sau khi xây dựng xong các Datamart có thể được kết nối, tích hợp lại với nhau tạo thành kho dữ liệu
Datamart là một kho dữ liệu thứ cấp gồm các dữ liệu tích hợp của kho dữ liệu Datamart được hướng tới một phần của dữ liệu, thường được gọi là một vùng chủ đề (SA) được ta ra danh cho một nhóm người sử dụng Dữ liệu trong Datamart cho thong tin về một chủ đề xác định, không phải về toàn bộ các hoạt động nghiệp vụ đang diễn
ra trong một tổ chức Thể hiện thường xuyên nhất của Datamart là một kho dữ liệu riêng rẽ theo phương diện vật lý, thường được lưu trữ trên một Server riêng trong một mạng cục bộ phục vụ cho một nhóm người nhất định Đôi khi Datamart với công nghệ OLAP tạo ra các quan hệ theo dạng hình sao đặc biệt hoặc những siêu khối (Hypercube) dữ liệu chọ việc phân tích của một nhóm người có cùng mối quan tâm trên một phạm vi dữ liệu Có thể chia Datamart thành hai loại: Datamart độc lập và Datamart phụ thuộc
Data mart phụ thuộc (Dependent Data Mart): Chứa những dữ liệu được lấy từ
DW và những dữ liệu này sẽ được trích lọc và tinh chế, tích hợp lại ở mức cao hơn để phục vụ một chủ đề nhất định của Datamart
Data mart độc lập ( Independent Data Marts) không giống như Data Mart phụ
thuộc, Data mart độc lập được xây dựng trước kho dữ liệu và dữ liệu được trực tiếp lấy từ các nguồn dữ liệu tác nghiệp Phương pháp này đơn giản hơn và chi phí thấp hơn nhưng đổi lại có những điểm yếu Một Datamart độc lập có cách tích hợp riêng do
đó dữ liệu từ nhiều Datamart khó đồng nhất với nhau
Datamart thể hiện hai vấn đề: tính ổn định khi một Datamart nhỏ ban đầu lớn lên nhanh chống theo nhiều chiều và sự tích hợp dữ liệu giữa các Datamart Vì vậy khi thiết kế Datamart phải chú ý đến tính ổn định của hệ thống, sự đồng nhất dữ liệu và vấn đề về khả năng quản lý
1.6 Các bước cơ bản xây dựng kho dữ liệu
Phần này mô tả các bước chính trong quá trình phát triển một KDL, đặc biệt là các quá trình: trích chiết dữ liệu (Extracting), chuyển đổi dữ liệu (Transforming) và nạp dữ liệu vào trong KDL (Loading) – ETL Mất khá nhiều thời gian cho các thao tác này tùy thuộc vào độ phức tạp của các nguồn dữ liệu.Quy trình nạp dữ liệu từ ngoài vào
Trang 16kho dữ liệu thông qua các bước: trích lọc, làm sạch và chuyển dạng, nạp hay tích hợp
dữ liệu
1.6.1 Định dạng nguồn dữ liệu
Đây là bước đầu tiên nhất trước khi bắt đầu xây dựng một KDL.Nguồn dữ liệu sẽ cần được định dạng Chúng cần được tính toán những yếu tố cần thiết để được cho vào một KDL
1.6.2 Trích chọn dữ liệu
Một phần công việc rất lớn của quá trình xây dựng KDL là lấy dữ liệu từ các nguồn khác nhau và đặt chúng vào khu vực lưu trữ trung tâm Ta cần phải tính toán hệ CSDL dùng cho vùng lưu trữ (staging area) và cách thức để lấy dữ liệu từ các nguồn khác nhau chuyển vào trong vùng đó
Đây là quá trình đọc dữ liệu từ dữ liệu nguồn, bao gồm các thao tác truy cập, giữ
và chọn lọc Quá trình này làm việc trên các hệ thống nguồn và các nguồn dữ liệu ngoài Có thể là CSDL gốc (original), CSDL ảnh (image) hay các hệ thống băng đĩa
từ Đối với các nguồn dữ liệu lớn thì việc truy cập vào băng đĩa từ sẽ hiệu quả hơn so với xử lý trong các file nguồn
Sau đó là phải lập ra kế hoạch và tần suất tiến trình trích dữ liệu Điều này nhằm tối thiểu hoá các tác động lên các hệ thống và thi hành các tác vụ này trong một cửa sổ xứ
lý theo lô (batch window) Đối với các bảng dữ liệu khác nhau thì tần suất trích dữ liệu
sẽ khác nhau Việc trích dữ liệu còn phụ thuộc vào sự ảnh hưởng từ hệ thống nguồn và loại dữ liệu sẽ được trích Ví dụ : Đối với dữ liệu bán hàng thì nên trích dữ liệu hàng ngày nhưng với dữ liệu sản phẩm thì chỉ cần trích hàng tuần
Thực tế thì đây chính là giai đoạn khó nhất Có thể xảy ra trường hợp những người
đã từng làm việc trên các hệ thống đã được chuyển đến công việc khác Hoặc họ đã rời công ty hoặc họ đã chuyển sang bộ phận khác
1.6.3 Làm sạch và chuyển dạng
Làm sạch dữ liệu là quá trình
xác định tính không chính xác, không đầy đủ/tính bất hợp lý của dữ liệu
chỉnh sửa các sai sót và thiếu sót được phát hiện
nâng cao chất lượng dữ liệu
Quá trình bao gồm
Trang 17 kiểm tra định dạng, tính đầy đủ, tính hợp lý, miền giới hạn,
xem xét dữ liệu để xác định ngoại lai (địa lý, thống kê, thời gian hay môi
trường) hoặc các lỗi khác,
đánh giá dữ liệu của các chuyên gia miền chủ đề
Quá trình thường dẫn đến
loại bỏ, lập tài liệu và kiểm tra liên tiếp và hiệu chỉnh đúng bản ghi nghi ngờ
Kiểm tra xác nhận có thể được tiến hành nhằm đạt tính phù hợp với các chuẩn
áp dụng, các quy luật, và quy tắc
Cách thực hiện:
Tìm và loại trừ các bộ trùng nhau Ví dụ Jane Doe, Jane Q.Doe
Kiểm tra tính nhất quán, khám phá dữ liệu sai, không nhất quán Ví dụ số phone không đúng, có ngòai vùng xác định không…
Sửa hoàn chỉnh dữ liệu thiếu, không đọc được, hay giá trị rỗng NULL Chỉ ra các lỗi và có thể chèn giá trị mặc định…
Cảnh báo cho các nguồn các kho dữ liệu về các lỗi tìm được
1.6.4 Nạp, tích hợp vào kho dữ liệu
Quá trình tích hợp bao gồm :
Sắp xếp và hợp lại khi một bảng dữ liệu đích được tạo ra từ nhiều nguồn Khi
đó, dữ liệu được sắp xếp lại và loại bỏ đi các bản ghi giống nhau và chúng được hợp lại thành một file dữ liệu duy nhất
Chia cắt dữ liệu nếu như từ một dữ liệu nguồn cần tạo ra nhiều dữ liệu đích, hoặc một thuộc tính lại nhiều trường chứa dữ liệu cho nó Trong trường hợp này, file hoặc trường đó phải được cắt tới mức thấp nhất
Tạo ra các khoá tổng hợp (nhân tạo) có khă năng tách biệt và bảo vệ khỏi các biên động trong hệ thống nguồn
Sau tiến trình trích chiết, chuyển đổi làm sạch và sau khi xây dựng xong mô hình chiều, dữ liệu được nạp vào trong KDL
Có thể phân thành 2 loại hình nạp : nạp dữ liệu mang tính hiện thời đối với CSDL tác nghiệp và nạp cập nhật với CSDL tác nghiệp đã có thay đổi Cần đảm bảo việc làm tươi dữ liệu Đã có nhiều vấn đề xảy ra trong quá trình nạp cập nhật dữ liệu cho KDL Trong khi nạp cập nhật, cần chắc chắn là không xảy ra mất dữ liệu Cần lập kế hoạch cho việc nạp dữ liệu, thời gian và thứ tự của các bảng trong KDL
Trang 181.6.5 Xây dựng mô hình dữ liệu đa chiều
Phần lớn các hệ thống giao dịch hiện đại đều được xây dựng sử dụng các mô hình quan hệ CSDL quan hệ được chuẩn hóa ở mức cao Khi thiết kế hệ thống, cố gắng loại bỏ các cột trùng lặp và đảm bảo tất cả các cột đều phụ thuộc vào khóa chính của mỗi bảng Các hệ thống quan hệ hiệu quả tốt trong môi trường xử lý giao dịch trực tuyến (OLTP) Tuy nhiên chúng lại kém hơn khi thực thi trong môi trường có tích chất báo cáo (đặc biệt là KDL), việc kết nối giữa một số lượng bảng cực lớn không phải là một ý tưởng tốt nhất
Định dạng quan hệ tỏ ra không hiệu quả khi tiến hành xây dựng các báo cáo với các giá trị mang tính tổng quan và kết tập Ngược lại, phương pháp chiều (dimensional approach) giúp cải thiện quá trình truy vấn dữ liệu mà không ảnh hưởng đến việc tích hợp dữ liệu Một vấn đề nảy sinh là không gian lưu trữ CSDL chiều thì cần không gian lưu trữ lớn hơn CSDL quan hệ Ngày nay, không gian lưu trữ trở nên khá rẻ và hầu hết các công ty có thể đáp ứng được dung lượng lớn các ổ đĩa cứng
Mô hình chiều (Dimensional Model) bao gồm các bảng chiều (dimensions) và bảng
sự kiện (fact) Bảng sự kiện chứa khóa ngoài của mỗi bảng chiều và các phép đo Các phép đo (measures) cho phép xác định mức độ tốt hay tồi mà doanh nghiệp của bạn đang có.(vidu : số lượng bộ phận được sản xuất trong một giờ hay số lượng ô tô cho thuê trong một giờ…) Còn các chiều thể hiện cho cái mà nhà doanh nghiệp mong đợi trong các báo cáo – chi tiết về các phép đo (Vidu : chiều thời gian cho người dùng biết
có 2000 bộ phận đã được sản xuất trong khoảng từ 7h sáng đến 7h tối)
Các lược đồ cho lưu trữ dữ liệu đa chiều:
Lược đồ hình sao (star schema)
Lược đồ hình bông tuyết (Snowflake schema)
Lược đồ chòm sao sự kiện (Fact constellations schema)
1.6.5.1 Lược đồ hình sao
Giản đồ hình sao được đưa ra lần đầu tiên bởi Raph Kimball như là một lựa chọn thiết kế CSDL cho kho dữ liệu Trong giản đồ hình sao, dữ liệu được xác định và phân loại theo 2 kiểu: sự kiện (bảng Fact: đối tượng trung tâm) và phạm vi (các bảng Dimension: các bảng liên kết) Trong giản đồ hình sao chỉ có một bảng liên quan trực tiếp tới hầu hết các bảng còn lại đó là bảng Fact và là bảng chứa yếu tố cốt lõi cần được phân tích Nó được gọi là giản đồ hình sao bởi vì các sự kiện nằm ở trung tâm của mô hình và được bao quanh bởi các phạm vi liên quan, rất giống với các điểm của một ngôi sao Các sự kiện là các đại lượng số của công việc Các phạm vi là các bộ lọc
Trang 19hoặc các ràng buộc của những sự kiện này Ví dụ: thông tin về khách hàng như tên, địa chỉ là một phạm vi, trong khi đó thông tin bán hàng cho khách hàng đó là một sự kiện
Với giản đồ hình sao, người thiết kế có thể dễ dàng mô phỏng những chức năng của CSDL đa chiều Sự phi chuẩn hóa có thể coi là sự tiền kết nối (Pre-joining) các bảng để cho các ứng dụng không phải thực hiện công việc kết nối, làm giảm thời gian thực hiện
Giản đồ hình sao được thiết kế là để khắc phục những hạn chế của mô hình quan hệ hai chiều Với cơ sở dữ liệu được thiết kế theo giản đồ hình sao, những truy vấn với những câu hỏi phức tạp liên quan tới nhiều bảng và số liệu tổng cộng trở nên đơn giản hơn và số lượng công việc cần thực hiện để đưa được ra câu trả lời là ít nhất so với một mô hình quan hệ chuẩn Giản đồ hình sao cải thiện đáng kể thời gian truy vấn và cho phép thực hiện một số tính năng đa phạm vi Giản đồ này rất trực quan, dễ sử dụng, thể hiện khung nhìn đa chiều của dữ liệu dùng ngữ nghĩa của CSDL quan hệ Khóa của bảng Fact được tạo bởi những khóa của các bảng chứa thông tin theo từng phạm vi (bảng Dimension) Tất cả các khóa đều được xác định với cùng một chuẩn đặt tên
city state_or_province country
location
Sales Fact Table time_key item_key branch_key location_key units_sold dollars_sold avg_sales Measures
item_key item_name brand type supplier_type
Trang 20branch_key (khóa ngòai của bảng Branch), location_key (khóa ngòai của bảng location); và các giá trị đo units_sold, dollars_sold, avg_sales
Một giản đồ hình sao đơn giản chỉ gồm một bảng Fact và một vài bảng Dimension Một giản đồ hình sao phức tạp bao gồm hàng trăm bảng Fact và bảng Dimension Một vài kỹ thuật để cải thiện hiệu suất của các truy vấn trong giản đồ hình sao bao gồm:
Xác định sự kết hợp các bảng Fact đang tồn tại hay tạo ra một sự kết hợp mới các bảng Fact
Phân chia bảng Fact đến mức mà hầu hết các truy vấn chỉ truy nhập tới phần đó
Tạo ra các bảng Fact riêng rẽ
Tạo ra những tệp chỉ số đơn duy nhất hoặc các kỹ thuật khác để cải thiện năng suất kết hợp
1.6.5.2 Lược đồ hình bông tuyết
Giản đồ hình tuyết rơi là một sự mở rộng của giản đồ hình sao, tại đó mỗi cánh sao không phải là một bảng Dimension mà là nhiều bảng Trong dạng giản đồ này, mỗi bảng theo chiều của giản đồ hình sao được chuẩn hóa hơn Giản đồ hình tuyết rơi cải thiện năng suất truy vấn, tối thiểu không gian đĩa cần thiết để lưu trữ dữ liệu và cải thiện năng suất nhờ việc chỉ phải kết hợp những bảng có kích thước nhỏ hơn thay vì phải kết hợp những bảng có kích thước lớn lại không chuẩn hóa Nó cũng làm tăng tính linh hoạt của các ứng dụng bởi sự chuẩn hóa và ít mang bản chất theo chiều hơn
Nó làm tăng số lượng các bảng và làm tăng tính phức tạp của một vài truy vấn cần có
sự tham chiếu tới nhiều bảng Một vài công cụ đã che giấu người sử dụng giản đồ CSDL vật lý và cho phép họ có thể làm việc ở mức khái niệm Những công cụ này đã ánh xạ những truy vấn của người sử dụng tới sơ đồ vật lý Họ cần một bộ quản trị CSDL để thực hiện công việc này một lần đầu tiên khi công cụ này được cài đặt Hình
4 đưa ra một ví dụ về lược đồ hình bông tuyết
Trang 21Hình 4 Ví dụ lược đồ hình bông tuyết
1.6.5.3 Lược đồ chòm sao sự kiện
Các ứng dụng phức tạp có thể đòi hỏi nhiều bảng sự kiện cùng chia sẻ các bảng
chiều Loại lược đồ này có thể được xét như một tập hợp các lược đồ hình sao Và vì
thế nó được gọi là lược đồ chòm sự kiện Ví dụ một lược đồ chòm sự kiện như hình 5:
location
Sales Fact Table time_key item_key branch_key location_key units_sold dollars_sold avg_sales Measures
item_key item_name brand type supplier_type item
city_key location
Sales Fact Table
time_key item_key branch_key
branch_key location_key
units_sold dollars_sold avg_sales Measures
item_key item_name brand type supplier_key item
city_key city state_or_province country
city
Trang 221.7 Ví trí của làm sạch dữ liệu trong quá trình xây dựng kho dữ liệu
Quá trình xây dựng KDL ở trên đã cho thấy điều kiện đầu tiên để có thể tiến hành xây dựng một KDL chính là nguồn dữ liệu nạp vào kho
Để có được dữ liệu đảm bảo chất lượng trước khi nạp vào kho, dữ liệu phải qua giai đoạn trích chiết, chuyển đổi và tích hợp
Quan sát hình vẽ dưới đây, ta có một cái nhìn tổng quan về nhiệm vụ của mỗi giai đoạn trong mô hình KDL
Hình 6 Ví trí của làm sạch dữ liệu trong quá trình xây dựng kho dữ liệu
Giai đoạn đầu Pre-Data Warehouse làm nhiệm vụ cung cấp nguồn dữ liệu cho quá trình xây dựng KDL Có hai luồng dữ liệu chính
CSDL OLTP: đây chính là các nguồn CSDL tác nghiệp (operational data) Chúng tồn tại trong các ứng dụng phần mềm giao dịch, Ví dụ như các hệ thống ERP (Enterprise Resource Planning ), phần mềm dịch vụ khách hàng (Custormer Serving Software) OLTP được thiết kế đảm bảo tốc độ và sự chính xác cho các giao dịch
Metadata : Metadata đảm bảo các ràng buộc và sự chính xác khi nguồn dữ liệu được đưa vào trong chu trình xử lý
Trang 23Làm sạch dữ liệu (Data Cleaning) được tích hợp vào giai đoạn ETL của kỹ thuật xây dựng kho Đây có thể coi là giai đoạn tiền xử lý đảm bảo chất lượng dữ liệu trước khi chúng được đưa vào trong KDL
Các giai đoạn sau là quá trình xử lý dữ liệu khi dữ liệu đã có trong KDL Áp dụng các ký thuật OLAP và Data mining để phát hiện tri thức, hỗ trợ cho các hệ trợ giúp quyết định
Trang 24CHƯƠNG 2 LÀM SẠCH DỮ LIỆU VÀ CÁC GIẢI PHÁP KỸ THUẬT
Trong chương trước đã đưa ra một cái nhìn tổng quan về KDL và các kỹ thuật xây dựng Đồng thời qua đó thấy được vị trí của công đoạn làm sạch dữ liệu trong quá trình xây dựng KDL Chương này sẽ giới thiệu một cái nhìn đầy đủ hơn về làm sạch
dữ liệu
2.1 Khái niệm về làm sạch dữ liệu
Làm sạch dữ liệu (LSDL) - Data Cleaning còn được gọi là Data Cleasing hay Scrubbing là quá trình phát hiện và loại bỏ lỗi và tính ko nhất quán trong dữ liệu; nhờ
đó mà cải thiện chất lượng dữ liệu
Nói theo một cách khác thì dữ liệu trong thế giới thực thường không đầy đủ, nhiễu
và không nhất quán Quá trình LSDL sẽ cố gắng lấp đầy những giá trị bị thiếu, làm mịn các dữ liệu nhiễu, xác định và loại bỏ những dữ liệu nằm lệch khoảng giá trị kì vọng và giải quyết vấn đề không nhất quán của dữ liệu
2.2 Vai trò của quá trình làm sạch dữ liệu
Thực tế cho thấy, dữ liệu trong thế giới thực là không “sạch” hay còn gọi khác đi là
dữ liệu “bẩn” (dirty data)
Vậy dữ liệu bẩn là gì ? Hiểu đơn giản đó là nguồn dữ liệu có chứa lỗi Nó thường
là nguồn dữ liệu không hoàn chỉnh , bị nhiễu và không nhất quán…
Không hoàn chỉnh (incomplete) : thiếu giá trị thuộc tính, thiếu những thuộc tính quan trọng, chỉ chứa những dữ liệu gộp chung…
Nhiễu (noisy) : Có thể là dữ liệu nằm ngoài miền giá trị Ví dụ salary = -10…
Không nhất quán (Inconsistent) : Không nhất quán thể hiện ở nhiều khía cạnh
Dữ liệu có thể được tập hợp từ nhiều nguồn khác nhau Có thể là không nhất quán trong cách đặt tên Vidu : thuộc tính Custormer identification có thể là customer_id trong CSDL này nhưng lại là cust_id trong CSDL khác Hay trường hợp định dạng dữ liệu không giống nhau Vidu : Giới tính lúc là M hoặc
F , lúc là 1 hoặc 0 …
Dữ liệu bẩn làm giảm chất lượng nguồn dữ liệu Dẫn đến hiệu suất kém trong quá trình khai phá dữ liệu và phát hiện tri thức phục vụ cho các mục đích của doanh nghiệp
Trang 25Ngày nay, thông tin là vấn đề quan trọng hàng đầu của các công ty, tổ chức doanh nghiệp Các hệ thống thông tin được duy trì tốt sẽ cho phép các công ty có được những quyết định mang tính nghiệp vụ thành công Ngược lại, nếu thiếu thông tin hoặc thông tin có chứa lỗi, điều đó có thể khiến các công ty rơi vào tình trạng thua lỗ hoặc có những quyết định mang tính chiến lược thiếu đúng đắn
LSDL sẽ từng bước giải quyết vấn đề LSDL duy trì, đảm bảo và cải thiện chất lượng dữ liệu trong các hệ thống thông tin
2.3 Các vấn đề chất lượng dữ liệu
Thông tin được định nghĩa là dữ liệu và phương thức thể hiện chúng Thông tin nằm ẩn trong dữ liệu Do đó, để có thông tin tốt thì điều cơ bản là phải duy trì được chất lượng dữ liệu – Data Quality Chất lượng dữ liệu ở mức cao có nghĩa là nó phải phù hợp cho sử dụng, đủ tốt và thỏa mãn các ứng dụng nghiệp vụ có liên quan Một số tiêu chuẩn sau đây cho phép đánh giá mức độ của chất lượng dữ liệu :
Hoàn thiện (completeness) : Tất cả các thuộc tính cho mỗi bản ghi phải đầy đủ
Hợp lệ (validity) : tất cả các thuộc tính cho mỗi bản ghi phải đảm bảo giá trị trong phạm vi cho phép
Nhất quán (consistency) : các thuộc tính của mỗi bản ghi không được phép mâu thuẫn với bản ghi khác
Hợp thời (timeliness): Các bản ghi phải được cập nhật ở thời điểm gần nhất Thông tin về một đối tượng bất kì cần được cập nhật ngay khi có sự thay đổi về
Trang 26(single-Hình 7 Phân loại vấn đề chất lượng dữ liệu
2.3.1 Làm sạch dữ liệu mức đơn nguồn
2.3.1.1 2.3.1.1 Đơn nguồn – mức lược đồ (Schema level)
Chất lượng nguồn dữ liệu phụ thuộc rất lớn vào mức độ được tổ chức bởi lược đồ (schema) và các ràng buộc toàn vẹn Với những nguồn không có lược đồ (vd: các files), có rất ít ràng buộc cho các dữ liệu được đưa vào lưu trữ Do đó mà khả năng xuất hiện lỗi và sự thiếu nhất quán ở mức cao
Các vấn đề ở mức lược đồ chủ yếu là do thiếu sự hợp lý về các ràng buộc toàn vẹn Loại này hầu như là xảy ra do những thiếu sót trong khi thiết kế CSDL nguồn Nếu bảng nguồn không có ràng buộc khóa chính mà chỉ có đinh danh bản ghi duy nhất khi
đó có thể xảy ra trường hợp mà 2 bản ghi tham chiếu đến hai đối tượng trong thế giới thực mà chúng lại có cùng một định danh Nếu thiếu ràng buộc Check, một cột có thể chứa giá trị ngoài dải cho phép (vd : nhiều hơn 2 giá trị về giới tình) Nếu ràng buộc Not-Null không tồn tại, một bản ghi có thể bị thiếu giá trị với thuộc tính mà bất buộc phải có Nếu lược đồ nguồn không có ràng buộc tham chiếu (reference), ta có thể có các bản ghi trong một bảng mà tham chiếu đến các bản ghi không tồn tại trong một bảng khác
Age =21,bdate
=12.02.86
Có thể xác định tuồi : Age=(ngày hiện tại - ngày sinh)
Data Quality (chất lượng dữ liệu)
Schema Level (mức lược đồ)
Instance Level (mức thể hiện)
Trang 27Giữa các
bản ghi
Vi phạm tính duy nhất
Emp1=(name=“John Smith”,SNN=“123456”) Emp1=(name =“Perter Miller”,SNN=“123456”)
Tính duy nhất của SNN(Social Security Number) bị vi phạm
Nguồn Vi phạm tính toàn
vẹn tham chiếu
Emp=(name =“John Smith”,deptno=127)
Phòng được tham chiếu đến (127) không được định nghĩa trước
đó
Bảng 1 Ví dụ về bài toán đơn nguồn - mức lược đồ
2.3.1.2 Đơn nguồn – mức thể hiện hay mức bản ghi (Instance level hay
record level)
Loại này liên quan đến các lỗi và sự không nhất quán xảy ra tại thời điểm nhập dữ liệu vào hệ thống nguồn Các lỗi này không thể ngăn được ở mức lược đồ Điển hình như :
Lỗi chính tả : gây nên bởi sự thiếu hoàn hảo của phần mềm nhận dạng kí tự ( OCR - Optical Character Recognition ) hoặc có thể do các lỗi in ấn, lỗi ngữ âm
Các giá trị mặc định cho các thuộc tính bắt buộc có
Name = “J.Smith 12.02.70 New York”
Nhiều giá trị cùng được đưa vào trong một trường có định dạng tự
do của một bản ghi Các giá trị sai
trường City = “England”
Giá trị đúng nhưng đặt nhầm trường trong một bản ghi
Trang 28Một bản
ghi
Sự phụ thuộc giữa các thuộc tính bị
vi phạm
City = “Redmond” , Zip = 77777
City và mã Zip phải phù hợp nhau
Trùng lặp bản ghi
Emp1= (“John Smith”,…), Emp2=(“J.Smith”,…)
Cùng một đối tượng nhưng được thể hiện 2 lần do nhập dữ liệu bị lỗi
Các bản ghi mâu thuẫn nhau
Emp1=(name =“John Smith”,bdate=12.02.70) Emp1=(name =“John Smith”,bdate=12.12.70)
Cùng một thực thể trong thế giới thực nhưng được thể hiện bởi các giá trị khác nhau
Nguồn Lỗi tham chiếu Emp=(name =“John
Smith”,deptno=17)
Phòng tham chiếu đến (17) đã được định nghĩa trước nhưng giá trị sai
Bảng 2 Ví dụ về bài toán đơn nguồn – mức thể hiện
2.3.2 Làm sạch dữ liệu mức đa nguồn
Các vấn đề trong mức đơn nguồn càng trở nên trầm trọng khi có nhiều nguồn được tích hợp Mỗi nguồn có thể chứa dữ liệu bẩn và dữ liệu trong các nguồn có thể được thể hiên khác nhau, chúng chồng chéo hoặc mâu thuẫn nhau Đó là do các nguồn được phát triển , triển khai và duy trì độc lập để phục vụ cho các nhu cầu riêng biệt Đây là kết quả của sự không đồng nhất ở mức cao trong các hệ thống quản lý dữ liệu, các mô hình dữ liệu, các bản thiết kế lược đồ và các nguồn dữ liệu thực
2.3.2.1 Đa nguồn – mức lược đồ
Ở mức lược đồ, sự khác nhau về mô hình dữ liệu và thiết kế lược đồ là do bước dịch và tích hợp lược đồ Những vấn đề chính xuất hiện khi thiết kế lược đồ là xung đột tên và xung đột cấu trúc
Xung đột tên trong các trường hợp như : Đồng âm – nghĩa là tên giống nhau dùng cho các đối tượng khác nhau (hymonyms) Đồng nghĩa – câc tên khác nhau nhưng cùng chỉ một đối tượng (synonyms)
Trang 29Xung đột cấu trúc xảy ra trong nhiều trường hợp khác nhau Chúng là những thể hiện khác nhau của cùng một đối tượng trong các nguồn khác nhau.Thể hiện trong thuộc tính, cấu trúc các thành phần, kiểu dữ liệu, các ràng buộc toàn vẹn khác nhau…
2.3.2.2 Đa nguồn – mức thể hiện hay mức bản ghi
Ở mức thể hiện, có nhiều xung đột xảy ra Chúng bao gồm tất cả những vấn đề xảy
ra trong đơn nguồn Và lại có thể xảy ra ở đa nguồn do các thể hiện khác nhau trong các nguồn khác nhau (ví dụ : trùng lặp bản ghi, mâu thuẫn giữa các bản ghi…) Ngoài
ra có một số vấn đề khác như :
Các thể hiện khác nhau kiểu dữ liệu đối với cùng một thuộc tính (Tiền tệ có thể
là Dollar hoặc Euro)
Các ràng buộc khác nhau : vidu : Sex= {M, F}, Sex= {0,1}…
Các mức kết tập khác nhau ( vidu : thống kê bán hàng theo một sản phẩm hoặc theo một nhóm sản phấm) Hoặc các điểm thời gian khác nhau, có thể là theo ngày, theo tháng hoặc theo năm ( vidu : thống kê bán hàng của ngày hôm qua cho nguồn 1 so với thống kê bán hàng của tuần trước cho nguồn 2)…
Dư thừa dữ liệu, trùng lặp bản ghi
Hình 8 Ví dụ đa nguồn mức lược đồ và mức thể hiện
Trang 302.3.3 Các giải pháp làm sạch dữ liệu
2.3.3.1 Đối sánh trùng lặp
Trong trường hợp nhiều nguồn tích hợp, thường hay xảy ra trường hợp trùng lặp bản ghi, có nghĩa là các bản ghi khác nhau tham chiếu đến cùng một đối tượng trong thế giới thực Giải pháp cho bài toán LSDL ở đây là :
Số lượng các phép đối sánh đúng cao và số lượng các phép đối sánh sai thấp
Khả năng hoàn thành tiến độ Có nghĩa là thời gian thực hiện trong giới hạn cho phép của hệ thống
2.3.3.2 Sửa đổi và chuẩn hóa dữ liệu
Vẫn là vấn đề đa nguồn, khi mà nhiều khu vực khác nhau sử dụng các hệ thống nguồn khác nhau Giải pháp cho bài toán LSDL ở đây là chuyển đổi tất cả các giá trị trong các hệ nguồn đó thành một tập giá trị chuẩn trong hệ đích Ngoài ra, nếu có bất
kì lỗi nào xuất hiện, LSDL sẽ chỉ ra và sửa đổi chúng
2.3.3.3 Dịch lược đồ
Những hệ nguồn có thể sử dụng các mô hình dữ liệu khác nhau Giải pháp cho bài toán LSDL là cung cấp một ánh xạ từ các mô hình dữ liệu này đến một mô hình dữ liệu đích Điều này có thể cần tách các trường có dạng tự do thành một tập các thuộc tính nguyên tố
Vidụ: Giả sử trường “address” chung , tách thành các trường {“street”, “home no”,
“zip code”}
Trang 31CHƯƠNG 3 XÂY DỰNG VÀ KHAI THÁC KHO DỮ LIỆU CƯỚC
KHÁCH HÀNG TẠI CÔNG TY THÔNG TIN VIỄN THÔNG ĐIỆN LỰC
3.1 Hiện trạng và yêu cầu
3.1.1 Giới thiệu về Công ty Thông tin Viễn thông Điện lực
Công ty thông tin Viễn thông Điện lực (EVNTelecom) là một doanh nghiệp trực thuộc Tập đoàn Điện lực Việt Nam EVNTelecom kinh doanh các dịch vụ viễn thông tại Việt Nam Cơ cấu tổ chức của Công ty như sau:
Hình 9 Mô hình tổ chức EVNTelecom
Ngoài các phòng ban, trung tâm trực thuộc, EVNTelecom còn có một hệ thống các điện lực cấp tỉnh Các đơn vị điện lực thao tác trực tiếp trên các phần mềm tác nghiệp
3.1.2 Hiện trạng tổ chức thông tin
Hiện nay Công ty Thông tin Viễn thông Điện lực sử dụng một số phần mềm tác nghiệp sau:
Phần mềm khai báo thuê bao, khách hàng Miền Bắc
Phần mềm khai báo thuê bao, khách hàng Miền Nam
Trang 32 Phần mềm đối soát cước
Dữ liệu tác nghiệp từ các phần mềm trên được lưu trong các CSDL tương ứng và tập trung tại một số phòng ban của Công ty quản lý:
Hình 10 Hiện trạng tổ chức thông tin tại EVNTelecom
1 Cơ sở dữ liệu thông tin khách hàng Miền Bắc, Miền Nam: lưu toàn bộ thông
tin khách hàng đã hòa mạng, bao gồm thông tin về khách hàng, về thuê bao, lịch sử thuê bao, lịch sử hòa mạng, tạm ngưng, thanh lý thuê bao, lịch sử đăng
ký gói cước…CSDL này do phòng Tính cước quản lý
2 Cơ sở dữ liệu cước khách hàng: lưu thông tin chi tiết cuộc gọi của các thuê
bao các tháng khác nhau, thông tin về khuyến mại, khấu trừ cước… CSDL này
do phòng Tính cước quản lý
3 Cơ sở dữ liệu công nợ: lưu thông tin chấm nợ, gạch nợ của các đai lý… CSDL
này do phòng Tính cước quản lý
4 Cơ sở dữ liệu thanh khoản: Lưu toàn bộ chi tiết, tổng hợp cuộc gọi từ thuê
bao EVNTelecom đi và đến từ thuê bao ngoại mạng như Viettel, vinaphone, mobiphone, vnpt,… CSDL này do phòng Đối soát quản lý
Các phần mềm tác nghiệp trên có chức năng xuất báo cáo tháng Hàng tháng Công
ty yêu cầu tổng hợp các rất nhiều báo cáo từ các nguồn dữ liệu trên Quy trình thực
hiện báo cáo như sau: