Bài giảng Các kỹ thuật mô hình hóa các chiều cơ sở

Các bước mô hình kho dữ liệu • Độ thô dữ liệu (Data Granularity) • Lưu trữ dữ liệu • Các phân cấp thuộc tính • Truy vấn KDL và OLAP • Các lỗi thường gặp khi xây dựng 1 KDL

pdf71 trang | Chia sẻ: haohao89 | Lượt xem: 1845 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Bài giảng Các kỹ thuật mô hình hóa các chiều cơ sở, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 5: Kỹ thuật mô hình hoá các chiều cơ sở Giới thiệu • Các bước mô hình kho dữ liệu • Độ thô dữ liệu (Data Granularity) • Lưu trữ dữ liệu • Các phân cấp thuộc tính • Truy vấn KDL và OLAP • Các lỗi thường gặp khi xây dựng 1 KDL • Ví dụ Các tầng • Tầng khái niệm Conceptual layer – dữ liệu và xử lí dữ liệu • Tầng logic Logical layer – dữ liệu và xử lí kinh doanh • Tầng vật lý Physical layer – cấu trúc bên trong • Các chủ thể, dữ kiện và mối quan hệ Tầng trong hệ thống thông tin Conceptual Layer Logical Layer Physical Layer Physical Layer Logical Layer Operational systems Warehouse Product Dimension Manufacturer Brand Product Các thành phần chính • Phân cấp thuộc tính của các chiều • Mối quan hệ • Dữ kiện Account Year Time Dimension Account Week Region Location Dimension Store Product_key Store_key Acct_Week_key Sales Data District Các tiến trình mô hình hóa • Xác định yêu cầu của người dùng • Hướng dẫn người dùng hiểu về công nghệ KDL Các tiến trình mô hình hóa • Định nghĩa mô hình kinh doanh • Mô hình hóa các chiều • Chọn mô hình lưu trữ Conceptual Model Physical Model Logical Model Các công cụ và phương pháp • Chọn các công cụ với giao diện đồ họa – Tạo lập tài liệu – Định nghĩa các liên kết và ràng buộc • Phương pháp luận • Mô hình hoá • Xây dựng sản phẩm Tóm lược các lược dồ –Sao –Bông tuyết –Đa sao Mô hình hóa các chiều • Mô hình dựa vào nội dung của dữ liệu • Mô hình với các tổng hợp cần thiết • Mô hình phải đáp ứng yêu cầu phân tích sâu, và tổng hợp • Có thể không chuẩn hóa - star • Có thể chuẩn hóa - snowflake • Xây dựng các phân cấp Mô hình các bảng tóm tắt • Định nghĩa các bảng tóm tắt trước khi thiết kế • Dùng các bảng riêng để chứa các tổng hợp/tóm tắt SALES FACTS Sales$ Region Month 10,000 North Jan 97 12,000 South Feb 97 11,000 North Jan 97 15,000 West Mar 97 18,000 South Feb 97 20,000 North Jan 97 10,000 East Jan 97 2,000 West Mar 97 SALES BY MONTH/REGION Month Region Tot_Sales$ Jan 97 North 41,000 Jan 97 East 10,000 Feb 97 South 40,000 Mar 97 West 17,000 SALES BY MONTH Month Tot_Sales Jan 97 51,000 Feb 97 40,000 Mar 97 17,000 Khi nào thì tóm tắt dữ liệu • Phân tích và đưa ra quyết định để truy cập trực tiếp các tổng hợp có sẵn hay tính toán tại thời điểm thực hiện câu hỏi. • Việc tính toán các tỉ số nén cho phép quyết định nên chọn phương án nào Queried Rows Displayed Rows Calculation Ratio 1,341 22 22/11341 0.0164 234 22 22/234 0.09 30 22 22/30 0.73 20 22 22/20 1.1 Các công cụ • Logic Works • Micro Strategy • Oracle Designer/2000 Data Mart Designer • Prism Solutions • Smart Corporation Ví dụ Kho dữ liệu: Grocery Store • Một dây chuyền các cửa hàng tạp phẩm nằm rãi rác 3 bang ở Mỹ • Các kho: các siêu thị với các cửa hàng như tạp phẩm, bơ sữa, thịt, thức ăn lạnh, bánh mỳ, đồ uống, .. • Khoảng 60.000 sản phẩm tại mỗi kho Ví dụ điển hình của KDL trích từ KIM 96 Cơ sở • Dữ liệu sẵn sàng cho việc xây dựng KDL – Dữ liệu từ các hệ thống nguồn: OLTP – Được làm sạch • Xây dựng kho DL: – Mô hình các tiến trình kinh doanh nào ? – Định nghĩa độ thô của dữ liệu để phù hợp với KDL – Mô hình hoá cấu trúc KDL – Biến đổi dữ liệu theo cấu trúc Kho DL – Tính toán các tổng hợp và các dữ kiện suy dẫn Các tiến trình mô hình • KDL miêu tả khung nhìn của một tiến trình kinh doanh • Sự quyết định mô hình tiến trình kinh doanh nào có tác động quan trọng – Nhằm vào các vấn đề gì ? – Các câu hỏi được đặt ra ? – Các thông tin cần thiết – KDL trung tâm hay các chợ dữ liệu Tiến trình kinh doanh • Dữ liệu OLTP – Point of sales (POS) data: Dữ liệu bán hàng – Dữ liệu nhà cung cấp – Dữ liệu kế toán – Dữ liệu khách hàng – Sự quảng cáo Mục đích: Xây dựng một CSDL hoạt động hàng ngày Ví dụ về độ thô • Độ thô nào cho dữ liệu POS? Các khả năng ? – Toàn tác đơn theo từng khách hàng từng sản phẩm tại từng kho – Toàn tác nhóm theo từng khách hàng từng sản phẩm tại từng kho – Toàn tác nhóm hàng ngày theo từng kho từng sản phẩm – Toàn tác nhóm hàng tuần theo từng kho từng sản phẩm – Toàn tác nhóm hàng ngày từng sản phẩm tại từng vùng Độ thô • Toàn tác nhóm hàng ngày theo từng kho từng sản phẩm – Dữ kiện theo từng khách hàng từng sản phẩm tại từng kho không phù hợp cho việc phân tích thị trường – Dữ kiện theo từng tuần, hay tháng cũng không phù hợp vì sẽ không phân tích được sự khác nhau giữa các ngày • Sự quyết định độ thô nào phụ thuộc vào tiến trình kinh doanh và các câu hỏi cần trả lời Tầng 2-Các phương pháp lưu trữ dl • Dữ liệu được dùng cho việc phân tích trực tuyến phải được lưu trữ theo một loại CSDL để có thể truy cập bởi công cụ OLAP • Dùng loại nào trong: – MOLAP – ROLAP – HOLAP – Các chợ dữ liệu Ví dụ: Kho DL Grocery • Các CSDL quan hệ • CSDL quan hệ được sử dụng trong OLTP tại các công ty • Các chuyên gia CNTT tại các công ty đã làm quen nhiều với CSDL quan hệ • ROLAP được dùng rộng rãI ROLAP được dùng để lưu trữ KDL Grocery Các buớc thực hiện • Chọn các tiến trình kinh doanh cho mô hình – Sales • Chọn cấp độ của tiến trình kinh doanh – SKU by Store by Promotion by Day – Chọn độ thô • Chọn các chiều – Time, Store, Promotion, Product • Chọn các dữ kiện – Dollar_sales, unit_sales, dollar_cost, customer_count Ước luợng dung luợng • Time dimension: 2 years = 730 days • Store dimension: 300 stores reporting each day • Product dimension: 30,000 products, only 3000 sell per day • Promotion dimension: 5000 combinations, but a product only appears in one combination per day • Number of fact records: 730*300*3000*1 = 657,000,000 • Number of fields: 4 key + 4 fact = 8 fields • Total DB size: 657,000,000 * 8 fields * 4 bytes = 21 GB Dữ kiện (Facts) và Chiều • Dữ kiện: – Miêu tả các vùng kinh doanh – Không thay đổi khi nó đã được sinh ra – Được lưu tại một cấp thô nào đó • Chiều: – Thông tin tham chiếu qua đó cỏc sự kiện có thể được cấu trúc cho việc phân tích – Định nghĩa các phân cấp Ví dụ về dữ kiện và chiều • Kho Grocery • Dữ kiện: – POS: sự kiện bán hàng • Chiều: – Thời gian (Time) – Kho (Store) – Quảng cáo (Promotion) – Sản phẩm (Product) Chọn lược đồ nào cho Grocery ? • Lược đồ bông tuyết có độ chuẩn hóa cao • Sử dụng ít không gian đĩa hơn • Việc truy cập các bảng phức tạp hơn bởi phải tham chiếu đến nhiều bảng • Lược đồ hình sao dễ quản trị hơn, và đáp ứng yêu cầu trả lời nhanh câu hỏi Chọn luợc đồ hình sao cho KDL Grocery Các thuộc tính • Quyết định chọn các trường nào để đưa vào bảng dữ kiện và chiều • Các phân cấp thuộc tính • Các cấp độ tổng hợp • Xem xét các khả năng của câu hỏi và các ràng buộc của các bản • Các tác động của các toán tử OLAP Ví dụ của bảng dữ kiện • Chứa dữ liệu thích hợp cho vùng kinh doanh • Bao gồm các khoá của các chiều tham chiếu • Dữ liệu được lấy từ hệ thống OLTP: dữ liệu bán hàng POS • Độ thô: sản phẩm được bán hàng ngày tại từng kho • Định nghĩa nơi lưu trữ các tổng hợp Ví dụ của bảng dữ kiện • Các thuộc tính dữ kiện bán hàng: Keys Time_key Product_key Store_Key Promotion_key Facts Dollars_sales Units_sales Dollars_cost Customer_count Ví dụ của bảng dữ kiện • Khoá của bảng dữ kiện được hợp thành từ bốn khóa ngoài của các bảng chiều • Các dữ kiện được lấy từ hệ thống bán hàng POS • Các thuộc tính suy dẫn dựng cho việc phân tích • Dung lượng: ??? Ví dụ của chiều: thời gian • Chiều thời gian (Time) là một chiều cơ bản có trong tất cả các KDL • Các thuộc tính phân cấp tự nhiên: – Năm->Tháng ->Tuần ->ngày • Có cấu trúc không đơn giản do: – Có nhiều loại phân cấp, đa phân cấp (Multi hierarchies) Ví dụ của chiều: thời gian Ví dụ của chiều: thời gian Dim ension Time Year Quarter Month Day Holiday W eek Period Ví dụ của chiều: Sản phẩm • Nhận dạng mỗi sản phẩm bởi SKU (Stock Keeping Unit) • Dựa trên các mã sản phẩm phổ thông (UPC - Universal Product Code (UPC) ) • Bao gồm các mã đặt biệt cho việc lưu trữ sản phẩm như thịt tươi,.. • Lưu miêu tả của các sản phẩm • Dung lượng, các nhóm sản phẩm, các nhánh,. Ví dụ của chiều: sản phẩm Ví dụ của chiều: sản phẩm Dim ension Product Department Category Subcategory Product Diet Type Ví dụ của chiều: sản phẩm • Được quản lý bởi tổng kho và được phân bố đến các kho • Định nghĩa loại của phân cấp • Chuẩn hóa và không chuẩn hóa • Thường có thêm nhiều thuộc tính phụ có trong chiều sản phẩm Ví dụ của chiều: kho • Miêu tả mỗi kho của hệ thống liên kết các của hàng tạp phẩm • Chiều địa lí • Được tạo ra tại tổng kho bởi việc thu thập thông tin từ các kho • Có hai loại phân cấp: phân cấp địa lý và vùng bỏn hàng • Các thuộc tính miêu tả kho: dung lượng, vị trí,. Ví dụ của chiều: kho Ví dụ của chiều: kho • Phân cấp địa lí: – Store->Store_zip->Store_county- >Store_state • Phân cấp vùng bán hàng – Store->sales_district->sales_region Ví dụ của chiều: kho Dim ension Store Region District Town Store Ví dụ của chiều: Quảng cáo • Miêu tả điều kiện để một sản phẩm được bán, ví dụ: giảm giá tạm thời, sự trợ giúp của báo,.. • Được gọi là chiều nguyên nhân: yếu tố được nghĩ tới để thay đổi việc bán sản phẩm • Các điều kiện liên quan mật thiết: giảm giá, hay phiếu thưởng • Để phân tích các sản phẩm được bán tăng lên trong quá trình quảng cáo • Không dùng để phân tích các sản phẩm nào không bán được. Ví dụ của chiều: quảng cáo Ví dụ của chiều: quảng cáo • Giành được trong giai đoạn khuyến mãi • Có hay không các sản phẩm sự tụt xuống ngay sau khi kết thúc quảng cáo • Có hay không việc bán các sản phẩm tăng lên trong quá trình quảng cáo • Có hay không việc bán các sản phẩm làm tăng việc buôn bán tổng thể so với giai đoạn trước Ví dụ của bảng dữ kiện • Các thuộc tính dữ kiện bán hàng: Keys Time_key Product_key Store_Key Promotion_key Facts Dollars_sales Units_sales Dollars_cost Customer_count Các thuộc tính phụ trợ cho việc phân tích Ví dụ của bảng dữ kiện • Thêm vào: – Dollar_sales, uni_sales, và dollar_cost, và phụ thuộc vào các chiều – Có khả năng tính toán các tổng hợp trong tất cả các chiều, ví dụ: việc bán hàng hay chi phí từng tuần, từng tháng, từng nhóm mặt hàng, từng vùng – Customer_count không phụ thuộc hoàn toàn vào các chiều Ví dụ của customer_count: • Customer_count theo từng tuần từng sản phẩm từng kho có thể tính toán được • Customer_count theo từng tuần, từng vùng bán hàng có thể tính toán được • Customer_count theo từng tuần, từng nhúm( sản phẩm hàng theo từng kho không thể tính toán được: – Lượng hàng hóa cho sản phẩm A tại kho 1 có customer_count là 20 – Lượng hàng hóa cho sản phẩm B tại kho 1 có customer_count là 60 – Lượng hàng hóa cho hai sản phẩm A và B tại kho 1 có customer_count nằm giữa 20 va 80 Thay đổi customer_count: • Thay đổi độ thô bằng việc lưu lại các toàn tác đơn theo từng customer-> customer_count có thể tính theo từng nhóm • Tính customer_count theo phân cấp của chiều kho: store brand, subcategory,… Các bảng tổng hợp • Mục đích: trả lời nhanh các câu hỏi thường gặp • Các bước: – Nhận diện các câu hỏi thường gặp – Nhận diện các chiều và các tổng hợp tương ứng – Định nghĩa phân cấp của các tổng hợp – Tạo một cách có chọn lựa các bảng dữ kiện tổng hợp tính toán trước – Tạo các bảng chiều tổng hợp Nhận diện các câu hỏi thường gặp • Tạo một danh sách các câu hỏi thường gặp • Tiến hành trong giai đoạn thiết kế KDL • Căn cứ trên hệ thống OLTP và các báo cáo • Nhưng: được theo dõi và tiến hành trong quá trình thao tác của KDL: xem thử các user đang làm gì ! • Tác động của user với các khả năng • Thiết lập danh sách Ví dụ nhận diện các câu hỏi • Lượng hàng hoá bán được của bánh mì trong suốt các giai đoạn nghỉ so với các giai đoạn khác • Lượng hàng hoá bán được trong các quận phía tây so sánh với các quận phía đông • Lượng hàng hoá bán được thức ăn nhanh trong 24 tháng gần đây • Sự có lợi của quảng cáo bằng báo chí so với radio, tv… Nhận diện các chiều • Chọn các chiều liên quan thường xuyên đến các câu hỏi • Xem xét dung lượng của các bảng tổng hợp Ví dụ nhận diện các chiều • Các chiều: – Sản phẩm (Product) ? – Store ? – Time ? – Promotion ? Chọn chiều nào ? Nhận diện các phân cấp • Với một chiều, tạo (các) phân cấp căn cứ trên các thuộc tính sẵn có • Xem xét các câu hỏi thích hợp • Xem xét các dữ liệu sẵn có • Xem xét các thuộc tính của bảng dữ kiện Phân cấp Product Dim ension Product Departm ent Category S ubcategory P roduct D iet Type Phân cấp Store Dim ension Store Region District Town Store Phân cấp Time Dimension Time Year Quarter Month Day Holiday W eek Period Các bảng dữ kiện tổng hợp • Nhận diện các bảng dữ kiện yêu cầu • Các tổng hợp ở thứ tự cao có thể được tính toán từ các tổng hợp thứ tự thấp, – ví dụ: lượng hàng bán được theo từng tháng có thể tính được dựa trên lượng hàng bán được từng ngày trong tháng. • Ước lượng dung lượng • Kiểm tra sự sẵn có của dữ liệu • Kiểm tra các bảng tổng hợp chiều cần thiết Ví dụ bảng dữ kiện tổng hợp • Các bảng dữ kiện tổng hợp được yêu cầu: – Tổng hợp 1 chiều: • Từng loại sp theo từng kho theo từng ngày • Từng loại sp theo từng kho theo từng tháng • Từng loại sp theo từng kho theo từng năm – Tổng hợp 2 chiều: • Từng loại sp theo từng kho theo từng ngày • Từng loại sp theo từng pho theo từng tháng • Từng loại sp theo từng quận theo từng năm Ví dụ bảng dữ kiện tổng hợp • Các bảng dữ kiện tổng hợp này lấy được từ bảng dữ kiện cơ sở • Kiểm tra các thuộc tính phụ: – Dollar_sales ? – Unit_sales ? – Dollar_cost ? – Customer_count ? Liên kết giữa dữ kiện và chiều • Liên kết giữa bảng dữ kiện với các bảng chiều trong lược đồ hình sao • Liên kết giữa các bảng dữ kiện tổng hợp căn cứ trên các phân cấp của các bảng chiều • Định nghĩa các thuộc tính phân cấp tại các bảng chiều Các bảng dữ kiện tổng hợp • Các bảng dữ kiện phụ có thể được thêm vào khi có yêu cầu cần thiết • Số lượng và dung lượng của các bảng dữ kiện có thể bùng nổ tổ hợp • Kiểm tra các bảng dữ kiện nào là cần thiết và có thể tính toán được Các bảng dữ kiện tổng hợp • Tính theo các chiều • Product: theo category, theo.. • Store: theo district, theo region, • Time: month, year Tổng hợp 1 chiều • Category theo Store theo ngày • Region theo Product theo ngày • Theo tháng theo product và theo Store • Toàn bộ các mặt hàng theo kho theo ngày Truy vấn bản dữ kiện tổng hợp • Các câu hỏi được chuyển sang dạng lệnh SQL • Ví dụ: – Trình bày số lượng hàng bán được theo loại tại kho A vào ngày đầu năm 2003 dựa vào bảng dữ kiện co sở: Select category_description,sum(sales_dollars) From base_sales_fact,product,store,time Where base_sales_fact.product_key=product.product_key And base_sales_fact.store_key=product.store_key And base_sales_fact.time_key=product.time_key And store.city=“A” and time.day=“January 1 2003” Group by category_description Truy vấn bảng dữ kiện tổng hợp • Nếu bảng tổng hợp category đã tồn tại Select category_description,sum(sales_dollars) From category_sales_fact,product,store,time Where category_sales_fact.product_key=product.product_key And category_sales_fact.store_key=product.store_key And category_sales_fact.time_key=product.time_key And store.city=“A” and time.day=“January 1 2003” Group by category_description • Category_sales_fact và chiều tương ứng category_product thay thế cho base_sales_fact và chiều product Truy vấn bảng dữ kiện tổng hợp • Đọc câu hỏi và chuyển sang câu hỏi tổng hợp sẵn có • Siêu dữ liệu cung cấp thông tin của các bảng tổng hợp có sẵn • Sự tồn tại của các bảng tổng hợp là trong suốt đối với người dùng • Có thể xây dựng các câu hỏi thống kê Truy vấn bảng dữ kiện tổng hợp • Thay thế bảng và các chiều cơ sở bằng các mảng và chiều tổng hợp • Sắp xếp các bảng tổng hợp • Bắt đầu từ độ thụ chi tiết nhất Chi phí quản lí các view
Tài liệu liên quan