Tìm hiểu phương pháp thiết kế một kho dữ liệu dựa trên cơ sở dữ liệu nguồn của hệ thống quản lý cửa hàng bán lẻ xăng dầu phục vụ cho việc khai thác báo cáo.. Nó cho phép ta tập trung đượ
Trang 1DataWarehouse và ứng dụng trong bài toán
Quản lý cửa hàng bán lẻ xăng dầu
Nguyễn Quang Huy
Trường Đại học Công nghệ Luận văn Thạc sĩ ngành: Công nghệ phần mềm; Mã số: 60 48 10
Người hướng dẫn: PGS TS Nguyễn Văn Vỵ
Năm bảo vệ: 2012
Abstract: Trình bày các lý thuyết chung về kho dữ liệu và mô hình kho dữ liệu,
phương pháp xây dựng và thiết kế CSDL cho kho dữ liệu Khái quát về bộ công cụ sử dụng để xây dựng kho dữ liệu là SQL Server 2008 Giới thiệu về hệ thống quản lý cửa hàng bán lẻ xăng dầu đang được ứng dụng tại Tập đoàn xăng dầu Petrolimex Tìm hiểu phương pháp thiết kế một kho dữ liệu dựa trên cơ sở dữ liệu nguồn của hệ thống quản lý cửa hàng bán lẻ xăng dầu phục vụ cho việc khai thác báo cáo Phân tích kết
luận và hướng phát triển tiếp theo của đề tài
Keywords: Công nghệ thông tin; Công nghệ phần mềm; Datawarehouse; Bài toán
quản lý; Quản lý dữ liệu
Content
MỞ ĐẦU
Ngày nay thông tin rất cần thiết trong kinh doanh Việc kinh doanh của công ty có thành công hay không phụ thuộc vào công ty này có được thông tin kịp thời hay không Trong môi trường kinh doanh luôn biến động đòi hỏi thông tin phải được truy cập một cách nhanh chóng, chính xác ở bất cứ nơi nào
Khi đã có được các nguồn dữ liệu với khối lượng khổng lồ, phong phú và đa dạng về kiểu loại và được tổng hợp từ rất nhiều nguồn khác nhau, vấn đề nảy sinh là làm sao khai thác một cách có hiệu quả các nguồn dữ liệu đó đồng thời phải liên tục cập nhật và xử lý dữ liệu hiện đang sử dụng Dữ liệu có thường không nhất quán, dư thừa, khó khai thác và đặc biệt là không dùng được cho những ứng dụng hỗ trợ ra quyết định
Trong những năm gần đây, công nghệ kho dữ liệu ra đời đáp ứng được nhu cầu quản
lý, đây là công nghệ đang phát triển rất mạnh và đã được ứng dụng rất nhiều trên thế giới hiện nay Nó cho phép ta tập trung được các nguồn dữ liệu thô khác nhau, tổ chức lại và xây dựng trên đó những công cụ phân tích hữu hiệu giúp cho người sử dụng, những nhà quản lý, lãnh đạo có thể thu được những thông tin thực sự hữu ích từ những dữ liệu đã có, giúp họ đưa ra được những quyết định nhanh chóng, chính xác trong công tác quản lý
Xuất phát từ nhu cầu thực tiễn tại Tập đoàn xăng dầu Việt Nam (Petrolimex), với hệ thống phân phối nội địa thông qua 80 Công ty xăng dầu thành viên, chi nhánh, xí nghiệp, gần
Trang 21.800 cửa hàng và hệ thống đại lý với trên 6.000 điểm bán trên toàn quốc; hệ thống CHXD phân tán trên phạm vi địa lý rộng lớn nên việc quản lý thông tin của CHXD gặp nhiều khó khăn, thiếu chính xác và không kịp thời Do đó, việc xây dựng kho dữ liệu có ý nghĩa hết sức quan trọng Kho dữ liệu sẽ thu thập dữ liệu từ các hệ thống nghiệp vụ, cung cấp các thông tin hữu ích về số lượng hàng tồn kho, sản lượng và doanh thu bán hàng, tình hình công nợ - tiền hàng… giúp cho các nhà quản lý có thể có những thông tin chính xác nhanh chóng, phục vụ cho công tác đánh giá kết quả kinh doanh, lập đơn hàng và điều độ hàng hóa, quản trị công
nợ, kế hoạch hóa dòng tiền, hỗ trợ cho việc ra các quyết định kịp thời và có lợi nhất cho doanh nghiệp
Trên cơ sở đó, đề tài được xây dựng với các mục tiêu chính như sau:
Nghiên cứu lý thuyết về Datawarehouse, phương pháp tổ chức cơ sở dữ liệu đa chiều, phân tích và khai thác dữ liệu để trợ giúp ra quyết định
Ứng dụng lý thuyết nghiên cứu trong việc tổ chức cơ sở dữ liệu cho bài toán Quản lý cửa hàng bán lẻ xăng dầu bằng công cụ của Microsoft SQL Server 2008
Bố cục của luận văn: Toàn bộ luận văn được trình bày trong 4 chương:
Chương 1: Trình bày các lý thuyết chung về kho dữ liệu và mô hình kho dữ liệu, phương pháp xây dựng và thiết kế CSDL cho kho dữ liệu
Chương 4: Thiết kế Datawarehouse phục vụ cho việc khai thác báo cáo
CHƯƠNG I: KHO DỮ LIỆU (DATAWAREHOUSE)
Định nghĩa Kho dữ liệu
“Kho dữ liệu (Data Warehouse) là tập hợp của các CSDL tích hợp, hướng chủ đề, được thiết kế để hỗ trợ cho chức năng trợ giúp quyết định mà mỗi đơn vị dữ liệu đều liên quan tới một khoảng thời gian cụ thể”
Các đặc trưng của kho dữ liệu
Kho dữ liệu là một tập hợp dữ liệu có những tính chất sau:
- Hướng chủ đề
- Tính tích hợp
- Tính bền vững
- Dữ liệu gắn thời gian và có tính lịch sử
- Dữ liệu chỉ đọc
- Dữ liệu không biến động
- Dữ liệu tổng hợp và chi tiết
Trang 3Kiến trúc của kho dữ liệu
Mô hình kiến trúc của kho dữ liệu cơ bản gồm có ba thành phần: Dữ liệu nguồn, khu vực xử lý và kho dữ liệu
Hình 1.1: Mô hình kiến trúc của kho dữ liệu
1.3.1 Nguồn dữ liệu
Nguồn dữ liệu của kho dữ liệu có thể từ rất nhiều nguồn khác nhau và có cấu trúc dữ liệu khác nhau, bao gồm các hệ thống trong và ngoài của một tổ chức, rất phong phú về chủng loại Các hệ thống nằm trong được coi như các hệ thống nguồn hoặc các hệ thống đã có sẵn
Dữ liệu từ các hệ thống nguồn thường hỗn tạp và chứa nhiều cấu trúc khác nhau ví dụ: các cơ sở dữ liệu, từ các file excel, các file thô, hay dạng XML Vì thế trước khi đưa vào kho
dữ liệu cần phải chuyển đổi và tích hợp dữ liệu
1.3.2 Hệ thống xử lý giao dịch trực tuyến (OLTP)
Dữ liệu phát sinh từ các hoạt động hàng ngày được thu thập, xử lý để phục vụ công việc
cụ thể của một tổ chức thường được gọi là dữ liệu tác nghiệp và hoạt động thu thập xử lý loại dữ liệu này được gọi là xử lý giao dịch trực tuyến (OLTP)
Dữ liệu tại các CSDL tác nghiệp được lấy từ nhiều nguồn khác nhau nên dễ bị nhiễu, hỗn tạp dẫn đến dữ liệu không sạch, không toàn vẹn Do đó việc kiểm tra dữ liệu, làm sạch dữ liệu phải được tiến hành ngay tại đây nhằm bảo đảm tính toàn vẹn, tính đúng đắn, tính nhất quán dữ liệu trước khi đưa vào kho dữ liệu đích Thông thường người ta sử dụng các công cụ trích xuất, chuyển đổi và nạp dữ liệu (ETL) Công cụ này thực hiện các thao tác trích xuất dữ liệu, chuyển đổi dữ liệu, tải dữ liệu vào kho dữ liệu
1.3.3 Kho dữ liệu
Cơ sở dữ liệu của kho dữ liệu
Siêu dữ liệu (Metadata)
Trang 4 Bảng sự kiện tổng hợp (Fact)
1.3.4 Phương pháp xây dựng kho dữ liệu
Xây dựng kho dữ liệu vừa là một tiến trình công việc và cũng đồng thời là một kiến trúc nhằm thực hiện các nội dung như: lựa chọn, chuyển đổi, lưu chuyển, bảo toàn tính toàn vẹn, tích hợp, làm sạch dữ liệu, đưa dữ liệu từ nhiều nguồn dữ liệu tác nghiệp vào hệ thống quản lý
cơ sở dữ liệu để phục vụ các quá trình ra quyết định
Thiết kế CSDL cho kho dữ liệu
1.4.1 Lược đồ hình sao (Star)
Hình 1.5 Lược đồ hình sao (Star)
1.4.2 Lược đồ hình tuyết rơi (Snowflake)
Hình 1.6 Lược đồ hình tuyết rơi
Chiều thời
gian
Cửa hàng
phân phối
Chiều sản phẩm
Chiều khách hàng
Bảng sự kiện bán hàng
Loại sản phẩm
Chiều Sản phẩm
Bảng sự kiện bán hàng
Chiều cửa hàng
Chiều khách hàng
Chiều thời gian
Trang 51.4.3 Mô hình dữ liệu nhiều chiều (lược đồ kết hợp)
Hình 1.7: Lược đồ kết hợp
Khai phá kho dữ liệu
Khai phá dữ liệu là quá trình đi tìm kiếm các thông tin tiềm ẩn có giá trị trong các khối
dữ liệu lớn Công cụ khai phá dữ liệu có thể phát hiện các thông tin mang tính dự đoán, hay các thông tin hỗ trợ cho việc ra quyết định của người quản lý doanh nghiệp
Quản trị kho dữ liệu
Ứng dụng của kho dữ liệu
Ngày nay, kho dữ liệu được triển khai trong các doanh nghiệp với nhiều mục đích khác nhau như tạo các báo cáo tổng hợp, tích hợp dữ liệu, quản trị doanh nghiệp thông minh (Business Intelligence), quản lý quan hệ khách hàng, khai phá dữ liệu
Xu hướng tương lai của kho dữ liệu
Trong tương lai xu hướng phát triển của kho dữ liệu bao gồm: quản lý dữ liệu phi cấu trúc, tìm kiếm dữ liêu, kiến trúc hướng dịch vụ và kho dữ liệu thời gian thực
CHƯƠNG II: CÔNG CỤ XÂY DỰNG DATAWAREHOUSE
2.1 Tổng quan về hệ quản trị cơ sở dữ liệu Microsoft SQL Server
Trang 6Hình 2.1 Các dịch vụ của SQL Server 2008
2.2 SQL Server Integration Services (SSIS)
SSIS cung cấp công cụ để thiết lập luồng dữ liệu (DataFlow), các thành phần của luồng
dữ liệu dùng để tạo ra tiến trình ETL DataFlow là thành phần quan trọng nhất trong một package của SSIS, bao gồm rất nhiều thành phần để thiết lập việc trích xuất, biến đổi dữ liệu,
và nạp dữ liệu vào kho dữ liệu Đây là công cụ rất mạnh cho việc xây dựng tiến trình ETL
2.3 SQL Server Analysis Services (SSAS)
SSAS trong là một trong những dịch vụ chính của SQL Server 2008 dùng để xây dựng các chiều và cubes cho DWH, trong phiên bản mới này còn hỗ trợ một số thuật toán khai phá
dữ liệu điều này cung cấp cho người quản lý có cái nhìn sâu sắc về dữ liệu của họ hơn SSAS
là một phần của nền tảng quản lý doanh nghiệp thông minh (BI), nó không chỉ là một thành phần của SQL Server, nó còn được sử dụng trên NET Framework và môi trường phát triển Visual Studio
Hình 2.3 Kiến trúc của SSAS
2.4 Ngôn ngữ truy vấn MDX
Ngôn ngữ MDX (MultiDemensional eXpression) là ngôn ngữ truy vấn cho cơ sở dữ liệu nhiều chiều, nó tương tự ngôn ngữ SQL cho cơ sở dữ liệu dạng quan hệ, tuy nhiên đây là ngôn ngữ tính toán vì thế nó tương có cú pháp giống công thức của bảng tính
Trang 7Cấu trúc của MDX giống như SQL nhưng mở rộng hơn để thao tác với cơ sở dữ liệu nhiều chiều Câu truy vấn MDX có cấu trúc như sau :
SELECT [Mô tả về chiều thứ nhất],
[Mô tả về chiều thứ hai]…
FROM [Mô tả về khối dữ liệu]
WHERE [điều kiện cắt các lớp]
Mệnh đề SELECT dùng để xác định các chiều cảu tập hợp kết quả
Mệnh đề FROM xác định nguồn dữ liệu(cube) dùng để lấy dữ liệu
Mệnh đề WHERE dùng để xác định chiều cắt dữ liệu , nhằm lọc dữ liệu đầu ra
2.5 SQL Server Reporting Service (SSRS)
SSRS là một dịch vụ của SQL Server, nó là hệ thống quản lý các báo cáo Hỗ trợ việc tạo báo cáo, quản lý các báo cáo, và quản lý truy cập thông qua nền tảng web
Hình 2.4 Kiến trúc của Reporting Service
2.6 Phương pháp xây dựng kho dữ liệu bằng các công cụ của Microsoft SQL Server
2008
Nguồn dữ liệu cho kho dữ liệu có thể bao gồm nhiều nguồn khác nhau Chúng ta sẽ dùng dịch vụ SSIS để xây dựng tiến trình ETL, lấy dữ liệu từ hệ thống nguồn và đẩy vào kho
dữ liệu
Trang 8Dữ liệu trong kho dữ liệu được lưu trữ dưới dạng mô hình cơ sở dữ liệu quan hệ sẽ được quản lý bởi hệ quản trị cơ sở dữ liệu quan hệ SQL Server, hoặc sử dụng dịch vụ SSAS để xây dựng nên OLAP Database
Cuối cùng ta sẽ dùng các công cụ BI và SSRS để trích xuất dữ liệu để xử lý hoặc tạo báo cáo cho người dùng xem Nếu trích xuất dữ liệu từ hệ quản trị cơ sở dữ liệu quan hệ ta sẽ dùng ngôn ngữ SQL thông thường hoặc dùng MDX để truy vấn trên cubes
Hình 2.5 Mô hình xây dựng kho dữ liệu
CHƯƠNG III: GIỚI THIỆU BÀI TOÁN QUẢN LÝ CỬA HÀNG BÁN LẺ XĂNG DẦU 3.1 Vai trò của hệ thống cửa hàng
Tập đoàn xăng dầu Việt Nam (Petrolimex) là doanh nghiệp nhà nước, được xếp hạng đặc biệt, có quy mô trên toàn quốc và có chi nhánh ở nước ngoài Hàng năm Petrolimex nhập khẩu từ 7-8 triệu m3 xăng dầu và chiếm 60% thị phần xăng dầu nội địa Hệ thống phân phối nội địa của Petrolimex thông qua gần 80 Công ty xăng dầu thành viên, chi nhánh, xí nghiệp với 1.792 cửa hàng bán lẻ (theo số liệu tháng 12/2008) và hệ thống đại lý với trên 6.000 điểm bán trên toàn quốc
Tại CHXD: Doanh thu bán hàng phát sinh tại các CHXD chiếm tỷ trọng khoảng 50%
tổng doanh thu của Petrolimex, số lượng chứng từ phát sinh tại các CHXD khoảng từ
4000-6000 chứng từ/ tháng, cá biệt một số cửa hàng phát sinh 12 000 chứng từ/tháng, đặt ra yêu cầu
xử lý thông tin tại các cửa hàng rất lớn Cùng với sự phát triển của Petrolimex, hệ thống các cửa hàng xăng dầu còn kinh doanh đa dạng các mặt hàng theo mô hình siêu thị nhỏ thì nhu cầu ứng dụng công nghệ thông tin tại hệ thống các cửa hàng của Petrolimex là không thể thiếu
Tại các đơn vị chủ quản: Do hệ thống CHXD phân tán trên phạm vi địa lý rộng lớn nên
việc quản lý thông tin của CHXD theo phương pháp thủ công gặp nhiều khó khăn, thiếu chính xác và không kịp thời Việc cung cấp thông tin về số lượng hàng tồn kho, sản lượng và doanh
Trang 9doanh, lập đơn hàng và điều độ hàng hóa, quản trị công nợ, kế hoạch hóa dòng tiền …gặp nhiều khó khăn làm giảm hiệu qủa kinh doanh và tiền ẩn rủi ro tài chính
Tại Tập đoàn xăng dầu Việt Nam: Thông tin từ hệ thống CHXD là một thành phần
quan trọng không thể tách rời với hệ thống ERP của Tập đoàn Petrolimex bởi nó là dữ liệu đầu vào cho quá trình quản trị của doanh nghiệp Tập đoàn xăng dầu Việt Nam
Việc ứng dụng CNTT tại hệ thống các cửa hàng bán lẻ cho phép kiểm soát nguồn lực của Tập đoàn đến tận các cửa hàng, nơi phát sinh các hoạt động kinh doanh trực tiếp, tăng tính minh bạch trong quản lý, tăng tính chủ động trong quản lý hàng hóa và kế hoạch hóa dòng tiền và giảm thiểu rủi ro về tài chính
Việc ứng dụng CNTT vào công tác quản lý CHXD đã bước đầu đáp ứng được một số yêu cầu quản lý hiện tại:
Giảm tải việc cập nhật chứng từ cho khu vực Văn phòng Công ty – Chi nhánh – Xí nghiệp do việc cập nhật đã được thực hiện tại các cửa hàng khi phát hành chứng từ
Giúp cho Công ty – Chi nhánh có thông tin định kỳ về tình hình bán hàng, công
nợ, tiền hàng tại các cửa hàng và một số thông tin về quản lý khác tại cửa hàng
Giúp cho các CHXD chủ động hơn trong việc thực hiện các nghiệp vụ quản lý tại cửa hàng: Quản lý bán hàng; Quản lý tiền hàng, công nợ; Quản lý thu nhập và tiền lương; Quản lý chi phí phát sinh tại cửa hàng; Quản lý tồn kho…
Giảm bớt các công việc tác nghiệp về viết hóa đơn, lập và nộp báo cáo…
3.2 Kiến trúc của giải pháp
3.2.1 Mô hình tổng thể hệ thống
Hình 3.1 Mô hình tổng thể kiến trúc hệ thống Quản lý CHXD
Trang 103.2.2 Phân tách chức năng và dữ liệu giữa hệ thống Trung tâm và Cửa hàng
Hình 3.2 Mô hình phân tách giữa Chức năng và Dữ liệu
3.2.3 Mô hình truyền thông
Hình 3.3 Mô hình truyền thông
3.2.4 Phân loại dữ liệu
Connection
Đồng bộ
bằng
liên kết vật
lý Đồng bộ
logic
Agent
Mô hình Agent truyền thông
Phân tách Chức năng và Dữ liệu
Site’s
Functions
Shared Data
Site’s Data
Centre’s Functions
Dữ liệu chia sẻ
Dữ liệu dùng
chung
Dữ liệu riêng
#1
Dữ liệu riêng
Trang 11Hình 3.4 Phân loại dữ liệu
CHƯƠNG IV: XÂY DỰNG DATAWAREHOUSE PHỤC VỤ CHO VIỆC KHAI THÁC BÁO CÁO
4.1 Thiết kế kho dữ liệu
Kho dữ liệu được thiết kế gồm 2 kho dữ liệu chủ đề :
- Kho dữ liệu kế toán: Quản lý công nợ, tiền hàng
4.1.1 Kho dữ liệu chủ đề về Hàng hóa
hàng bán lẻ theo các tiêu chí: cửa hàng, khách hàng, loại hàng hóa, phương thức bán hàng, nguồn hàng, thời gian Các thông tin sự kiện bao gồm: số lượng hàng hóa bán ra, số lượng hao hụt, giá bán hàng hóa, doanh thu bán hàng, tiền thuế, tiền chiết khấu, tiền thanh toán
4.1.2 Kho dữ liệu chủ đề về kế toán
Đây là kho dữ liệu lưu giữ thông tin tổng hợp về tình hình thu, chi tiền mặt, ngân
hàng, theo dõi công nợ khách hàng
4.2 Sử dụng SSIS để xây dựng tiến trình ETL
Dữ liệu cho hệ thống bao gồm từ nhiều nguồn khác nhau: dữ liệu bán hàng, dữ liệu
kế toán Đồ án sẽ sử dụng công cụ SSIS để ánh xạ dữ liệu từ hệ thống nguồn vào kho dữ liệu Sơ đồ hoạt động như hình 4.1
Hình 4.1 Mô hình ETL
Các bước thực hiện bao gồm: Xây dựng lấy dữ liệu từ nguồn, biến đổi dữ liệu, xây dựng các ánh xạ dữ liệu, chạy các ánh xạ Một số ánh xạ sẽ được chạy định kỳ hằng ngày
Phân nhóm dữ liệu