NGÔN NGỮ TRUY VẤN ĐA CHIỀU MDX

Một phần của tài liệu Xử lý phân tích trực tuyến OLAP và ứng dụng trong khai thác kho dữ liệu (Trang 54)

3.3.3.1 Khái quát chung

Ngôn ngữ MDX (MultiDimension Express) là dạng mở rộng của ngôn ngữ truy vấn SQL, áp dụng để khai thác kho dữ liệu OLAP với khối đa chiều nhằm hỗ trợ cho việc tổng hợp thông tin và ra quyết định.

- Cấu trúc chung: Giống cấu trúc của một câu truy vấn SQL trên CSDL thông thường, nhưng mở rộng hơn để truy vấn trên khối dữ liệu đa chiều. Câu truy vấn đa chiều (MDX) có dạng như sau:

SELECT [<mô tả về chiều thứ 1>] [,<mô tả về chiều thứ 2>,...] FROM [<mô tả về khối dữ liệu>] [ WHERE [<các điều kiện cắt lớp >] ]

- Trong MDX, phát biểu SELECT được dùng để mô tả một tập dữ liệu là một tập con của dữ liệu đa chiều.

- Một câu truy vấn MDX có chứa một mệnh đề SELECT, một mệnh đề FROM và một mệnh đề tuỳ chọn WHERE.

Ví dụ:

SELECT

{[Measures].[So SP], [Measures].[So Luong],[Measures].[Thanh Tien]} on columns,

{[DoTuoiKH].[All DoTuoiKH].[Thanh nien], [DoTuoiKH].[All DoTuoiKH].[Trung Nien] }on rows

FROM Ban_Hang

WHERE [THOIGIAN].[All THOIGIAN].[2003].[4].[10]

- Mệnh đề SELECT xác định các chiều của tập kết quả của truy vấn MDX, trong ví dụ là 2 chiều COLUMNS và ROWS

- Mệnh đề FROM xác định nguồn dữ liệu đa chiều (khối) nào được sử dụng để trích lọc dữ liệu vào tập kết quả của phát biểu SELECT. Trong ví dụ là từ khối dữ liệu Ban_Hang

- Mệnh đề WHERE nếu có, dùng để xác định chiều cắt của khối dữ liệu, nhằm giới hạn tập kết quả theo các chiều thành viên. Trong ví dụ, dữ liệu được cắt theo thành viên tháng 10, quý 4, năm 2003 của chiều thời gian.

- Câu truy vấn MDX phải chứa các thông tin sau: + Số lượng chiều (có thể mô tả tối đa 128 chiều)

+ Các thành viên của mỗi chiều cho từng trục của câu truy vấn + Tên của khối có chứa dữ liệu cho câu truy vấn MDX

+ Các thành viên từ chiều cắt, theo đó dữ liệu khối được cắt.

- Phát biểu SELECT của câu truy vấn MDX còn hỗ trợ các cú pháp tuỳ chọn khác, như là từ khóa WITH và việc sử dụng các hàm MDX để xây dựng các thành viên bằng việc tính toán để thêm vào một trục hoặc một chiều cắt.

3.3.3.2 So sánh sự khác nhau giữa ngôn ngữ SQL và ngôn ngữ MDX

- Cú pháp của câu truy vấn MDX tương tự như cú pháp SQL, tuy nhiên có một số khác biệt như sau:

+ Cú pháp MDX phân biệt các tập hợp bằng việc dùng dấu ngoặc nhọn {} bao quanh các bộ hay các thành viên.

+ Câu truy vấn MDX có thể chứa tới 128 chiều nhưng chỉ có 5 chiều đầu tiên là có aliase (tên phụ). Một trục có thể được tham chiếu bởi thứ tự của nó trong câu MDX hay bởi tên phụ của nó nếu có. Câu truy vấn MDX có thể được viết theo mẫu sau dùng thứ tự của mỗi trục. Lưu ý, trong phiên bản MDX Sample Application đang thử nghiệm, ta chỉ có thể truy vấn tối đa hai chiều.

SELECT

{[Measures].[SoSP],[Measures].[SoLuong],[Measures].[Thanh Tien]} on axis(0),

{TopCount([San Pham].[Loai Hang].members,5, [Measures].[So Luong])} on axis(1)

FROM Ban_Hang

WHERE ([ThoiGian].[All ThoiGian].[2003])

+ Trong câu truy vấn SQL, mệnh đề FROM có thể chỉ đến nhiều bảng dữ liệu. Tuy nhiên, mệnh đề FROM trong câu truy vấn MDX bị giới hạn bởi một khối duy nhất. Thông tin từ các khối có thể được tham chiếu theo từng giá trị bằng cách dùng hàm LookupCube

+ Mệnh đề WHERE được dùng để mô tả chiều cắt dữ liệu. Nếu một chiều không được đề cập trong mệnh đề WHERE, SQL Analysis Services vẫn xem nó như một chiều cắt, nhưng được lọc theo số thành viên mặc định của nó. Mệnh đề WHERE có thể thay đổi tiến trình lọc cho một chiều nào đó, giúp tinh chỉnh dữ liệu kết quả.

3.4 PHÂN TÍCH, THIẾT KẾ KHO DỮ LIỆU THƢƠNG MẠI ĐIỆN TỬ 3.4.1 Nhìn lại hệ thống thiết kế OLTP

Cần nhìn lại CSDL OLTP vì những lý do sau:

- Làm rõ sự khác nhau giữa việc thiết kế OLTP và OLAP nhằm tránh những lỗi gặp phải khi thiết kế CSDL

- Hiểu về hệ thống OLTP sẽ trợ giúp cho quá trình tách một CSDL OLTP thành một CSDL OLAP vì hầu hết CSDL OLAP được bắt nguồn từ CSDL OLTP

Như vậy, trước khi bắt đầu nghiên cứu thiết kế kho dữ kiệu, ta cần hiểu ba đặc trưng cơ bản và các kết quả liên quan của chúng:

- Lược đồ quan hệ thực thể - Chuẩn hóa các bảng CSDL - Kết quả thiết kế hệ thống OLTP

* Lược đồ quan hệ thực thể:

Đặc trưng chủ yếu của việc thiết kế hệ thống OLTP là sử dụng lược đồ quan hệ thực thể. Mô hình quan hệ thực thể cho phép những người thiết kế mô tả bề ngoài cấu trúc và ngữ cảnh của CSDL.

Hình 3.1 Sơ đồ quan hệ thực thể dịch vụ mua bán hàng hoá hữu hình.

* Chuẩn hóa các bảng CSDL :

Chuẩn hoá là một tập hợp tuần tự các bước thực hiện những quy tắc thiết kế CSDL để đưa các quan hệ về các dạng chuẩn nhằm:

- Loại bỏ sự trùng lặp thông tin

- Cung cấp những thay đổi hiệu quả tới cấu trúc bảng

- Thu gọn tối đa những thay đổi của bảng tới ứng dụng sử dụng

Hầu hết các quan hệ trong hệ thống OLTP đều đã được chuẩn hóa về dạng chuẩn 3NF.

* Kết quả thiết kế hệ thống OLTP:

Thiết kế OLTP tiếp cận tập trung vào giao dịch đáp ứng thời gian riêng lẻ và dữ liệu được cập nhật chính xác hơn là phân tích truy vấn. Trên cơ sở đó, thiết kế OLTP có cả những lợi thế và bất lợi:

- Ngăn ngừa những cập nhật bất thường

- Bảo đảm dữ liệu chắc chắn thông qua giao dịch

- Giảm thiểu số lượng truy cập CSDL cho việc thực hiện các khả năng xảy ra của nghiệp vụ.

- Điều khiển các giao dịch rời rạc

- Truy cập từng phần mà được chỉ rõ bởi vì tất cả các ứng dụng được lưu trong một vùng riêng lẻ.

Những bất lợi của việc thiết kế OLTP:

- Khó thiết kế cho phân tích báo cáo. Dữ liệu quan hệ thực thể được nhìn nhận cho những truy vấn từng dòng nhưng không cho nhiều ràng buộc, kết nối nhiều truy vấn.

- Thực hiện giảm các chỉ mục. Những chỉ mục mà đòi hỏi cải thiện việc phân tích báo cáo làm giảm việc thực hiện hệ thống OLTP.

3.4.1.1 Phân tích dịch vụ mua bán hàng hoá hữu hình và phi vật thể

Dịch vụ mua bán hàng hoá hữu hình được xây dựng để phục vụ các nhóm đối tượng: người bán hàng, người mua hàng, người quản lý (Trung tâm thông tin thương mại), cổng thanh toán (VASC payment).

Khách hàng, thông qua giao diện web, gửi các yêu cầu về các thông tin mua hàng đến hệ thống TMĐT đặt tại trung tâm thông tin thương mại. Sau khi hình thành đơn đặt hàng, hệ thống sẽ tự động nối với cổng thanh toán, gửi các thông tin về thanh toán tới cổng. Cũng tại đây, các ngân hàng tương ứng sẽ nhận các dữ liệu của mình và gửi kết quả trả lại sau khi đã xử lý.

Như vậy, dịch vụ mua bán hàng hoá hữu hình của hệ thống TMĐT được phân chia thành những phân hệ chủ yếu sau :

1. Phân hệ hàng hoá:

- Mỗi nhà cung cấp được trang bị một kho hàng riêng ảo và tự mình cập nhật, quản lý hàng của mình.

- Như vậy, chỉ nhà cung cấp mới có quyền cập nhật, sửa đổi các thông tin trong kho. Các thông tin có thể được cập nhật, sửa đổi là tên hàng, chủng

loại hàng, mô tả chi tiết hàng, hình ảnh của mặt hàng, nhà sản xuất, nhà cung ứng, đơn vị, đơn giá, số lượng hàng trong kho ...

2. Phân hệ nhà cung cấp:

- Quản lý các nhà cung cấp và các siêu thị, đối tuợng cung cấp hàng hoá cho hệ thống.

- Với mỗi nhà cung cấp, các thông tin cần quản lý bao gồm: tên nhà cung cấp, địa chỉ, các mặt hàng mà nhà cung cấp đó cung cấp.

- Cho phép mỗi nhà cung cấp sử dụng kho hàng riêng ảo của mình để tự quản lý hàng hoá của mình, cập nhật thông tin cho các hàng hoá nhanh chóng và chính xác.

3. Phân hệ tạo lập đơn hàng

- Với mỗi phiên giao dịch, hệ thống sẽ sinh ra một giỏ hàng cho khách và sẽ quản lý giỏ hàng này cho tới hết phiên giao dịch.

- Các thông tin giỏ hàng lưu trữ bao gồm: tên hàng, số lượng, đơn giá, thành tiền, tổng.

- Khi kết thúc việc lựa chọn hàng, hệ thống sẽ tiến hành quá trình tạo lập đơn hàng.

- Mỗi mặt hàng cụ thể, khi được mua tại một thời điểm cụ thể có thể có chương trình khuyến mại giảm giá. Phân hệ sẽ cập nhật thông tin đó vào đơn hàng trước khi tính tiền thanh toán cho khách hàng.

- Thực hiện việc bóc tách đơn hàng ra thành nhiều đơn hàng nhỏ, theo từng nhà cung cấp, để phục vụ việc chuyển tiền vào tài khoản của từng nhà cung cấp và giúp việc cung ứng hàng của từng nhà cung cấp được chính xác, rõ ràng.

4. Phân hệ khách hàng

- Là nơi lưu trữ tập trung các thông tin về khách hàng, tích hợp tất cả các thông tin về khách hàng từ các ứng dụng.

- Thông tin về khách hàng là đồng nhất trong toàn bộ hệ thống

- Để có thể thực hiện các giao dịch trọn vẹn, khách hàng phải đăng ký để trở thành thành viên của hệ thống.

- Như vậy, hệ thống sẽ có một cơ sở dữ liệu về các thông tin cơ bản của khách hàng và sẽ kiểm tra mỗi khi đăng nhập và lấy những thông tin cần thiết để tạo lập đơn hàng.

- Dễ dàng thiết lập, duy trì và cung cấp các báo cáo về tình trạng khách hàng cho ban quản lý.

5. Phân hệ thanh toán

Toàn bộ dữ liệu có liên quan đến thanh toán sẽ được lưu trong một cơ sở dữ liệu riêng, bao gồm hai bảng: bảng dữ liệu gửi đi và bảng dữ liệu nhận về.

Các dữ liệu trong bảng dữ liệu gửi đi bao gồm: tên chủ tài khoản trả, mã số tài khoản trả, ngân hàng trả, tên chủ tài khoản nhận, mã số tài khoản nhận, ngân hàng nhận, số tiền, mã số đơn hàng, thời gian thanh toán, ...

Các dữ liệu trong bảng dữ liệu nhận về bao gồm: mã số đơn hàng, thời gian thanh toán, tình trạng thanh toán (thành công hay không),....

3.4.1.2 Phân tích dịch vụ mua bán một số dịch vụ du lịch

Ngoài các loại hàng hoá hữu hình và phi vật thể trên, hệ thống còn được thiết kế để có thể mua bán một loại hình thương mại thứ ba là dịch vụ. Các dịch vụ được thực hiện trong hệ thống là các dịch vụ du lịch, bao gồm: dịch vụ đặt tour du lịch, dịch vụ đặt phòng khách sạn, dịch vụ đặt vé máy bay.

Hệ thống quản lý dịch vụ du lịch được chia thành các phân hệ sau:

1. Phân hệ tạo lập đơn hàng

Khách hàng có thể đặt các tour du lịch trong nước, ngoài nước, đặt phòng ở các khách sạn miền Bắc, miền Nam, miền Trung, đặt vé máy bay của một số hãng máy bay trong nước.

Các thông tin tìm được từ cơ sở dữ liệu sẽ được đưa ra theo mức độ ngày càng chi tiết, cụ thể hơn, giúp khách hàng lựa chọn chính xác, đúng nhu cầu.

Đơn hàng sẽ được tạo lập sau mỗi phiên giao dịch của khách hàng.

Mỗi đơn hàng sẽ lưu giữ các thông tin về khách hàng, về tour, về thời gian dự định thực hiện tour, số lượng người tham gia, và trên cơ sở đó là tổng số tiển cần phải thanh toán.

Đối với các đơn hàng đặt tour, ngay sau khi thực hiện lệnh đặt hàng, đơn hàng sẽ được sinh ra và gửi đến cổng thanh toán, tương tự như trường hợp mua hàng ở các siêu thị.

Đối với việc đặt phòng tại khách sạn, sau khi chấp nhận đặt hàng, một đơn hàng tương ứng được sinh ra, người quản lý sẽ liên hệ trực tiếp với khách sạn và chỉ khi nhận được sự chấp nhận chính thức của khách sạn, người quản lý mới cập nhật trạng thái để đơn hàng được gửi đến cổng thanh toán.

Tương tự, đối với các đơn hàng đặt vé máy bay, người quản lý cũng phải liên hệ với đại lý bán vé chính thức của hãng và chỉ khi có kết quả chấp nhận, mới cập nhật trạng thái của đơn hàng để gửi ra cổng thanh toán.

Với qui trình xử lý như vậy, hệ thống sẽ giải quyết được một số mâu thuẫn thường nảy sinh giữa bên mua và bên bán dịch vụ.

3. Phân hệ khách hàng

Khách hàng có thể tự đăng ký tham gia mua bán dịch vụ khi đã được hệ thống lớn xác nhận.

Khi đã sử dụng các chức năng của hệ thống để đặt hàng các thông tin về khách hàng sẽ được cập nhật vào các bảng dữ liệu riêng về từng dịch vụ.

Điều này cho phép quản lý khách hàng theo dịch vụ để có các chính sách hậu mãi kịp thời, thích hợp.

4. Phân hệ hàng hoá

Hàng hoá ở đây được hiểu là các dịch vụ. Người quản lý có thể truy nhập vào các trang web quản lý để cập nhật, sửa đổi thông tin về các tour, về khách sạn cũng như các chuyến bay.

3.4.2 Phân tích hệ thống kho dữ liệu thƣơng mại điện tử

Mục tiêu của giai đoạn này là phân tích những yêu cầu của bài toán để xác định các chiều thông tin, dữ liệu mà kho dữ liệu sẽ chứa đựng, những yêu

cầu cụ thể của người sử dụng đầu cuối để xác định dữ liệu được lưu trong kho sẽ sử dụng như thế nào.

Các bước phân tích bao gồm: - Phân tích nghiệp vụ bài toán

- Xác định các nguồn dữ liệu cũng như nội dung dữ liệu sẽ được lưu trong kho dữ liệu

- Phân tích được dữ liệu phát sinh hàng tháng, năm và lượng dữ liệu cần lưu trữ

- Phân tích lớp người sử dụng

- Xác định nhiệm vụ của kho dữ liệu thương mại điện tử

Giai đoạn phân tích hệ thống sẽ tập trung vào phân tích hệ thống về chức năng và phân tích về dữ liệu.

3.4.2.1 Phân tích các chức năng

Chức năng chính của kho dữ liệu là thu thập, tổng hợp, lưu trữ, xử lý và cung cấp thông tin về nghiệp vụ thương mại điện tử như:

- Thông tin về việc quản lý bán hàng hữu hình. - Thông tin về việc quản lý bán hàng phi vật thể. - Thông tin về việc quản lý đặt phòng khách sạn. - Thông tin về việc quản lý đặt vé máy bay. - Thông tin về việc quản lý các dịch vụ du lịch.

Đồng thời sử dụng công cụ trợ giúp cho việc phân tích số liệu hỗ trợ ra quyết định.

Kho dữ liệu thương mại điện tử chứa đựng nhiều thông tin tổng hợp từ các hệ tác nghiệp khác nhau phục vụ cho công tác nghiệp vụ thương mại điện tử. Các dữ liệu chi tiết phục vụ cho các chức năng chính của hệ thống tác nghiệp không được lưu trong kho. Kho dữ liệu TMĐT được thiết lập để thu thập, tổng hợp, lưu trữ, xử lý và cung cấp thông tin một cách tổng thể, đồng nhất phục vụ việc ra quyết định của ban lãnh đạo, đồng thời cung cấp thông tin chi tiết và

Để thực hiện được các chức năng trên kho cần lưu trữ các bảng phân loại, các bảng danh mục nghiệp vụ:

- Danh mục sản phẩm - Danh mục nhà cung cấp - Danh mục khách hàng

- Danh mục hình thức thanh toán - Danh mục mức ưu đãi

- Danh mục các tour du lịch - Danh mục chuyến bay - Danh mục khách sạn

Kho dữ liệu TMĐT là một kho dữ liệu chủ đề có nhiệm vụ thu thập thông tin từ các CSDL hệ thống tác nghiệp khác nhau sau khi đã đựơc xử lý bởi các hệ thống tác nghiệp đó hoặc từ các hệ thống bên ngoài, sau đó tổ chức lưu trữ và thiết lập mô hình khai thác. Sau khi khảo sát, các yêu cầu khai thác dữ liệu của

Một phần của tài liệu Xử lý phân tích trực tuyến OLAP và ứng dụng trong khai thác kho dữ liệu (Trang 54)

Tải bản đầy đủ (PDF)

(107 trang)