25

Tôi đang cố gắng tìm hiểu về OLAP và kho dữ liệu, và tôi đang bối rối về sự khác biệt giữa mô hình quan hệ và chiều. Mô hình hóa chiều là mô hình hóa quan hệ cơ bản, nhưng cho phép dữ liệu dư thừa/không chuẩn hóa?Cơ sở dữ liệu quan hệ so với chiều, sự khác biệt là gì?

Ví dụ: giả sử tôi có dữ liệu bán hàng lịch sử trên (sản phẩm, thành phố, doanh số bán hàng). Tôi hiểu rằng những điều sau đây sẽ là một điểm-of-view quan hệ:

 
Product | City | # Sales 
Apples, San Francisco, 400 
Apples, Boston, 700 
Apples, Seattle, 600 
Oranges, San Francisco, 550 
Oranges, Boston, 500 
Oranges, Seattle, 600 

Trong khi đây là một điểm-of-view chiều hơn:

 
Product | San Francisco | Boston | Seattle 
Apples, 400, 700, 600 
Oranges, 550, 500, 600 

Nhưng nó có vẻ như cả hai quan điểm tuy nhiên sẽ được triển khai trong một lược đồ hình sao giống hệt nhau:

 
Fact table: Product ID, Region ID, # Sales 
Product dimension: Product ID, Product Name 
City dimension: City ID, City Name 

Và nó sẽ không đến khi bạn bắt đầu thêm một số chi tiết bổ sung cho mỗi thứ nguyên mà sự khác biệt bắt đầu xuất hiện. Ví dụ, nếu bạn muốn theo dõi các khu vực là tốt, một cơ sở dữ liệu quan hệ sẽ có xu hướng có một bảng khu vực riêng biệt, để giữ cho mọi thứ bình thường:

 
City dimension: City ID, City Name, Region ID 
Region dimension: Region ID, Region Name, Region Manager, # Regional Stores 

Trong khi một cơ sở dữ liệu chiều sẽ cho phép denormalization để giữ khu vực dữ liệu bên trong thứ nguyên thành phố, để dễ dàng cắt lát dữ liệu hơn:

 
City dimension: City ID, City Name, Region Name, Region Manager, # Regional Stores 

Điều này có đúng không?

+1

Đọc trên sự khác biệt giữa OLTP và OLAP. http://datawarehouse4u.info/OLTP-vs-OLAP.html – Oded

+2

Vâng, tôi đã đọc về sự khác biệt. Phần tôi đang bối rối là khi một cái gì đó đề cập rằng OLAP thường liên quan đến chiều, chứ không phải là quan hệ, dbs. Chiều không chỉ đơn giản là tham khảo khía cạnh "bình thường hóa sao/bông tuyết"? Hay có các lược đồ sao/bông tuyết "quan hệ" cũng có? – grautur

Trả lời

15

Giản đồ sao thực sự nằm ở giao điểm của mô hình dữ liệu quan hệ và mô hình dữ liệu chiều. Nó thực sự là một cách để bắt đầu với một mô hình chiều và ánh xạ nó thành các bảng SQL có phần giống với các bảng SQL mà bạn nhận được nếu bạn bắt đầu từ một mô hình quan hệ.

Tôi nói hơi giống nhau vì nhiều phương pháp thiết kế quan hệ dẫn đến thiết kế chuẩn hóa hoặc ít nhất là thiết kế gần như chuẩn hóa. Một lược đồ sao sẽ có các khởi hành đáng kể từ việc chuẩn hóa hoàn toàn.

Mỗi lần khởi hành từ quá trình chuẩn hóa hoàn toàn đều mang theo sự bất thường về cập nhật dữ liệu do hậu quả. (Tôi bao gồm anomlaies trên chèn, cập nhật và xóa các hoạt động dưới một chiếc ô). Những điều bất thường đó không liên quan gì đến mô hình dữ liệu bạn đã bắt đầu.

Nhận xét về OLTP so với OLAP có liên quan ở đây. Các dị thường cập nhật sẽ có những tác động khác nhau lên hiệu suất và/hoặc khó khăn về lập trình trong hai tình huống đó.

Ngoài lược đồ dấu sao trong một databaase SQL, có các sản phẩm cơ sở dữ liệu chiều có lưu trữ dữ liệu dưới dạng vật lý duy nhất cho sản phẩm đó. Với những sản phẩm đó, bạn không thấy lược đồ hình sao nhiều như bạn thấy việc triển khai trực tiếp mô hình chiều và giao diện có thể khác biệt với sản phẩm. Một số giao diện cho phép các hoạt động OLAP hoàn toàn là điểm-và-click.

Giống như một sự phân tích từ câu hỏi của bạn, tôi đã xây dựng một lược đồ hình sao như một bước trung gian giữa một cơ sở dữ liệu OLTP hỗ trợ một ứng dụng dựa trên giao dịch và một datacube bên trong Cognos PowerPlay. Sử dụng các kỹ thuật ETL tiêu chuẩn, việc chuyển giao kết hợp từ cơ sở dữ liệu OLTP vào lược đồ sao và sau đó từ lược đồ sao đến khối dữ liệu thực sự tốt hơn chuyển trực tiếp từ cơ sở dữ liệu OLTP đến datacube. Đây là một kết quả bất ngờ.

Hy vọng điều này sẽ hữu ích.

11

Nói một cách đơn giản Cơ sở dữ liệu chuẩn hóa OLTP được thiết kế theo quan điểm "giao dịch" tối ưu nhất. Cơ sở dữ liệu được chuẩn hóa để hoạt động tối ưu với hệ thống giao dịch. Khi tôi nói tối ưu hóa hệ thống giao dịch tôi có nghĩa là ..getting đến một trạng thái thiết kế của cấu trúc cơ sở dữ liệu, nơi tất cả các hoạt động giao dịch như xóa, chèn, cập nhật và chọn được cân bằng để cung cấp cho tầm quan trọng bằng nhau hoặc tối ưu cho tất cả chúng tại bất kỳ thời điểm nào .. chúng cũng có giá trị như nhau trong một hệ thống giao dịch.

Và đó là những gì hệ thống bình thường cung cấp .. cập nhật tối thiểu có thể cho cập nhật dữ liệu, chèn tối thiểu có thể cho mục nhập mới, xóa một địa điểm để xóa danh mục, v.v. chi nhánh tạo ra bảng tổng thể ..... nhưng điều này đi kèm với chi phí "chậm trễ" chọn hoạt động .. nhưng như tôi đã nói (bình thường) không phải là mô hình hiệu quả nhất cho tất cả các hoạt động .. "Tối ưu" ... đã nói chúng tôi có các phương pháp khác để nâng cao tốc độ tìm nạp dữ liệu..như chỉ mục vv

Mặt khác Mô hình chiều (chủ yếu được sử dụng cho thiết kế nhà kho dữ liệu) có nghĩa là chỉ quan trọng cho một loại hoạt động ... như trong kho dữ liệu nhà .. cập nhật dữ liệu/chèn diễn ra định kỳ .. và chi phí một lần của nó. Vì vậy, nếu một trong những cố gắng tinh chỉnh cấu trúc dữ liệu bình thường để chỉ lựa chọn là hoạt động quan trọng nhất tại bất kỳ điểm nào trong thời gian ... chúng tôi sẽ kết thúc nhận được một không chuẩn hóa (tôi sẽ nói một phần không chuẩn hóa) .. chiều sao cấu trúc.

  • tất cả các phím nước ngoài một nơi Fact chiều -không để định kích thước tham gia (tức là bậc thầy để làm chủ bàn tham gia) .. bông tuyết đại diện cho cùng một chiều hướng
    • sự kiện được thiết kế lý tưởng mang theo chỉ số ..measures hoặc phím nước ngoài
    • chiều được sử dụng để thực hiện mô tả và thông tin phi aggregatable
    • dự phòng dữ liệu bị bỏ qua ... nhưng trong những trường hợp hiếm hoi nếu Kích thước bản thân phát triển quá nhiều thiết kế .snowflake được xem như option..but mà vẫn có thể tránh được

Để biết chi tiết, vui lòng xem qua các sách chi tiết về chủ đề này.

5

Tôi vừa mới đọc về sự khác biệt giữa Mô hình dữ liệu quan hệ và tham số vì chúng tôi chủ yếu sử dụng mô hình quan hệ tại doanh nghiệp của mình nơi chúng tôi lưu trữ Kho dữ liệu doanh nghiệp (EDW).

Theo Steve Hoberman trong cuốn sách của ông "Mô Hình Dữ Liệu Made Simple" sự phân biệt giữa 2 loại mô hình là thế này:

  • Relational Data Models chụp các giải pháp kinh doanh cho thế nào là một phần của công trình kinh doanh, aka quá trình kinh doanh
  • Dimensional mô hình dữ liệu nắm bắt được thông tin chi tiết công việc kinh doanh cần phải giải đáp thắc mắc về tốt như thế nào nó đang làm

có thể lập luận rằng một mô hình quan hệ cũng có thể được sử dụng như một nền tảng mà trên đó để trả lời các câu hỏi kinh doanh, nhưng ở cấp độ chiến thuật. "Có bao nhiêu đơn đặt hàng ở trạng thái chưa được thực hiện cho khách hàng x do giữ tín dụng?"Nhưng sự khác biệt là ở chỗ câu hỏi báo cáo cần 'hạt bản địa' của bảng và khi câu hỏi báo cáo có thể được trả lời bằng dữ liệu tóm tắt. vì cả hai bảng đều không lưu giữ Lệnh Bán hàng tại 'hạt bản địa' của nó, và do đó không nắm bắt được quy trình kinh doanh của việc tạo ra một đơn đặt hàng. Sự khác biệt duy nhất giữa 2 bảng là trong bảng thứ hai kích thước thành phố đã được được tìm thấy trong bảng thực tế

+0

Tôi nghĩ rằng bạn có câu trả lời hay nhất, tôi sẽ thêm vào đó, thời điểm bạn cần số liệu thống kê, ngay cả với tất cả các tinh chỉnh bạn thử trong mô hình quan hệ của mình. phím – delmalki

1

Tôi tìm thấy mô tả tôi tìm thấy trên http://www.orafaq.com/node/2286 rất hữu ích khi đến lược đồ hình sao từ góc độ quan hệ.

Hãy xem xét mô hình dữ liệu được chuẩn hóa hoàn toàn. Bây giờ nghĩ chính xác điều ngược lại, nơi bạn hoàn toàn không chuẩn hóa mô hình dữ liệu quan hệ của mình để bạn chỉ có một bản ghi phẳng như bảng tính lớn với một hàng rất rộng. Bây giờ sao lưu từ bản ghi phẳng này chỉ một chút để bạn có một mô hình dữ liệu chỉ có hai cấp độ sâu; một cái bàn lớn, và một vài cái bàn nhỏ mà chiếc bàn lớn chỉ lại. Đây là một lược đồ STAR. Vì vậy, một mô hình dữ liệu ngôi sao thực sự có hai thuộc tính, nó luôn luôn là hai cấp độ sâu, và một mô hình ngôi sao thực sự luôn luôn chỉ chứa một bảng lớn là trọng tâm của mô hình.

Các vấn đề liên quan