CHƯƠNG 1 KHO DỮ LIỆU
4.2 XÂY DỰNG CÁC KHỐI VÀ CHIỀU CHO GIẢI PHÁP OLAP
4.2.1 Tiến trình trợ giúp quyết định dựa vào dữ liệu
Để ứng dụng OLAP, chúng ta cần xây dựng một mô hình phục vụ cho phân tích OLAP dựa trên tình huống của bài toán, các vấn đề và các mục tiêu đã xem xét. Đó chính là quá trình xác định các khối định tổ chức, định nghĩa cấu trúc các chiều và định nghĩa các công thức/ luật cần thiết cho tính toán. Trên cơ sở mô hình OLAP, CSDL OLAP đã được thiết lập, người khai thác hệ thống sẽ uốn nắn việc tìm kiếm thông tin của mình bằng cách liên tục đặt ra những yêu cầu truy vấn, thực hiện rồi nhận xét kết quả nhằm tìm hiểu dần những thông tin tiềm ẩn của dữ liệu nguồn (thu thập những vấn đề quan tâm), để tiến tới chỗ có đủ cơ sở nhận định, từ đó đưa ra những quyết định đúng đắn, mang tính chiến lược.
Tiến trình trợ giúp quyết định dựa vào dữ liệu cho bài toán cụ thể có thể được minh hoạ như sơ đồ sau [12]:
Hình 4.2 Tiến trình trợ giúp quyết định dựa vào dữ liệu
4.2.2 Xây dựng các khối OLAP 4.2.2.1 Khối (cube) 4.2.2.1 Khối (cube)
Đối tượng chính của OLAP là khối, một sự biểu diễn đa chiều của dữ liệu chi tiết và tổng thể. Khối là phần tử chính trong xử lý phân tích trực tuyến, cung cấp cơ chế truy vấn dữ liệu với thời gian trả lời nhanh và không phụ thuộc vào số lượng dữ liệu trong khối hoặc sự phức tạp của câu truy vấn.
Công việc tạo một khối gồm ba bước sau: (1). Xác định các khối
(2). Thiết kế các khối kết hợp (các thành phần dữ liệu được tính toán trước)
1. Xác định yêu cầu bài toán
1.1 Xác định các vấn đề gặp phải 1.2 Xác định các mục tiêu cần đạt đến
2. Xây dựng mô hình OLAP cho bài toán
2.1 Xác định các khối dữ liệu cơ sở
2.2 Định nghĩa cấu trúc các chiều 2.3 Định nghĩa các công thức/ luật
cần thiết cho tính toán
3. Phân tích dữ liệu - Ra quyết định
3.1 Đưa ra yêu cầu truy vấn
3.2 Nhận xét kết quả truy vấn
(3). Xử lý khối
* Xác định các khối
Một khối bao gồm: một bảng sự kiện, một hoặc nhiều bảng chiều, các đơn vị đo và các phân hoạch. Việc xác định các khối dựa trên yêu cầu phân tích của người sử dụng.
Ví dụ, kho dữ liệu thương mại điện tử có thể tạo lập nhiều khối khác nhau:
+ Khối thống kê số lượng hàng bán theo khu vực, theo thời gian.
+ Khối thống kê số lượng hàng bán theo sản phẩm của từng nhà cung cấp, theo thời gian.
+ Khối thống kê số lượt phòng đã đặt, số tiền đã thu được theo từng loại phòng của từng khách sạn theo thời gian
+ Khối thống kê số ghế đã đặt theo từng hãng bay, theo thời gian ...
Để xác định một khối, ta chọn một bảng sự kiện và các đơn vị đo lường đồng nhất (các cột theo sự quan tâm của người dùng khối) trong bảng sự kiện. Sau đó, chọn các chiều, mỗi chiều gồm một hay nhiều bảng liên quan khác. Các chiều cung cấp sự mô tả rõ ràng các đơn vị đo lường được chỉ ra bởi người dùng khối.
Ví dụ, khối phân tích, thống kê lượng hàng bán, số tiền thu được theo từng sản phẩm của từng nhà cung cấp theo thời gian bao gồm các cột chứa các đơn vị đo lường số lượng, thành tiền từ bảng BANHANG_FACT và các chiều nhà cung cấp, sản phẩm, thời gian. Khối này cho phép ngưòi dùng phân tích số lượng bán đựơc và tổng số tiền thu được thành các nhóm khác nhau theo sản phẩm, theo nhà cung cấp và theo thời gian.
Mỗi chiều có thể chứa các cấp độ để chỉ sự phân chia rõ ràng của người dùng. Mỗi cấp độ con trong chiều thường chi tiết hơn mức cha nó.
Ví dụ, chiều thời gian là một chiều phân cấp chuẩn với các cấp độ năm, quý, tháng, tuần, ngày. Chiều sản phẩm cũng có thể chia thành các cấp độ: loại
Cấp độ chiều là một công cụ mạnh để phân tích dữ liệu. Chúng cho phép người sử dụng có thể đưa ra yêu cầu về thông tin ở mức độ khái quát cao, sau đó có thể mở rộng để tìm hiểu chi tiết hơn.
* Tạo khối
Như vậy, để tạo một khối, chúng ta cần thực hiện các công việc sau: 1. Chọn bảng sự kiện cho khối cần tạo
2. Tạo các đơn vị đo (measures): Chọn các cột (có kiểu dữ liệu là kiểu số) trong bảng sự kiện để làm các đơn vị đo, đồng thời gán công thức tính toán cho từng đơn vị đo (sum, average, max, min,...)
3. Tạo lập các chiều dữ liệu: mỗi chiều tương ứng với một bảng (bảng chiều) trong sơ đồ hình sao mà bảng sự kiện ở trên là bảng trung tâm. Trong mỗi bảng chiều chọn các cột làm mức (level) của chiều đó. Chúng ta cần chọn các mức sao cho có thể đáp ứng được việc tham chiếu cuốn lên và khoan sâu theo các mức khác nhau.
4. Xử lý khối
* Xử lý khối
Quá trình xử lý khối bao gồm viêc đọc dữ liệu các bảng chiều để xác định cấp độ dữ liệu hiện tại, đọc các bảng sự kiện, tính toán các dữ liệu đặc biệt và lưu trữ dữ liệu trong khối đa chiều.
Xử lý khối là thuật ngữ dùng để chỉ sự tải trọn vẹn dữ liệu của khối. Tất cả các chiều, dữ liệu bảng sự kiện được đọc và tất cả các khối liên kết đặc biệt được tính toán.
Sau khi được xử lý, khối sẽ được cung cấp cho yêu cầu của người sử dụng.
4.2.2.2 Chiều (dimension)
Để xác định một chiều, chọn một hoặc nhiều cột trong các bảng chiều. Nếu ta chọn các cột phức tạp thì tất cả các cột này cần phải có quan hệ với nhau, chẳng hạn giá trị của chúng có thể được tổ chức theo hệ thống phân cấp đơn. Để xác định hệ thống phân cấp, sắp xếp các cột từ chung nhất tới cụ thể nhất.
Mỗi cột trong chiều góp phần vào một cấp độ cho chiều. Các cấp độ được sắp đặt theo nét riêng biệt và được tổ chức trong hệ thống cấp bậc hợp logic cho việc đào sâu (drill down). Ví dụ, chiều thời gian miêu tả ở trên cho phép người dùng khối đào sâu từ năm tới quý, từ quý tới tháng và từ tháng tới ngày.
* Chiều có phân cấp
Phân cấp làm cột sống của việc gộp dữ liệu hay nói một cách khác là dựa vào các phân cấp mà việc gộp dữ liệu mới có thể thực hiện được. Phần lớn các chiều đều có một cấu trúc đa mức hay phân cấp.
Chẳng hạn, nếu cần đưa ra những quyết định về việc bán hàng gì vào thời gian nào,... để nâng cao hiệu quả của việc kinh doanh thì chúng ta cần quan sát và phân tích dữ liệu về việc bán hàng được gộp theo nhà cung cấp, theo sản phẩm và theo thời gian, tức là chúng ta đã thực hiện một phép gộp. Khi cần đưa ra các quyết định khác thì chúng ta cần thực hiện những phép gộp tương ứng khác. Nghĩa là có nhiều tiến trình gộp. Vậy nên, các tiến trình gộp này phải được thực hiện một cách dễ dàng linh hoạt để có thể hỗ trợ những phân tích không hoạch định trước. Điều này có thể được giải quyết trên cơ sở có sự trợ giúp của những phân cấp rộng và sâu.
4.2.2.3 Các đơn vị đo lƣờng (measure)
Các trường đơn vị đo là các trường số liệu đặc thù của các bảng sự kiện. Đó chính là số liệu tổng hợp hoặc chi tiết theo các chiều khác nhau. Trong các khối phân tích, thống kê về quản lý bán hàng, có các trường sau đây thường được sử dụng làm đơn vị đo:
Bảng sự kiện Trƣờng đơn vị đo
BanHang_Fact
Đơn gia Thành Tiền Số lượng Giá trị hoá đơn
4.2.2.4 Các phân hoạch (partition)
Các phân hoạch đóng vai trò quan trọng trong các bảng khai thác khi khối lượng dữ liệu lớn. Nó cho phép phân chia dữ liệu theo một số tiêu thức nào đó.
Trong các khối dữ liệu của hệ thống thương mại điện tử, chúng ta có thể thiết kế các partition dựa vào chiều thời gian. Cụ thể, một khối có thể chứa trong mỗi phân hoạch dữ liệu của mỗi năm trước đó và các phân hoạch cho mỗi quý của năm hiện tại. Cuối năm các bảng phân hoạch của bốn quý có thể được hợp nhất trong một phân hoạch đơn cho năm đó.
4.2.2.5 Khối ảo
Có thể tạo liên kết các khối trong một khối ảo, tương tự như các bảng có thể liên kết tạo thành các khung nhìn trong một cơ sở dữ liệu quan hệ. Một khối ảo cung cấp sự truy cập tới dữ liệu trong các khối kết hợp không đòi hỏi xây dựng một khối mới, trong khi nó cho phép ta duy trì thiết kế tốt nhất cho mỗi khối riêng biệt.
Chúng ta có thể tạo ra một khối mới từ các khối đã có bằng cách sử dụng các đơn vị đo và các chiều của các khối đã có mà không cần tốn kém không gian nhớ.
Các bước để tạo một khối ảo:
1. Chọn các khối cần tạo khối ảo từ nó 2. Chọn các đơn vị đo cho khối ảo 3. Chọn các chiều cho khối ảo 4. Xử lý khối