Data warehouse và kho dữ liệu hướng chủ đề có thể được định nghĩa bằng ngôn ngữ truy vấn khai phá dữ liệu (data mining query language) như mô tả bên dưới.
Định nghĩa lược đồ được miêu tả theo cú pháp sau:
define lược đồ (tên lược đồ) [<danh sách chiều>]: <danh sách độ đo>
Định nghĩa chiều được miêu tả theo cú pháp sau:
define dimension (tên chiều) as (<danh sách các thuộc tính>)
Bây giờ hãy xét ví dụ làm thế nào để định nghĩa lược đồ hình sao, lược đồ bông tuyết và lược đồ chòm sao trong nội dung mô tả ở phần trên.
Định nghĩa lược đồ hình sao:
define lược đồ sales_star [time, item, branch, location]:
dollars_sold = sum(sales_in_dollars), units_sold = count(*)
define dimension time as (time_key, day, day_of_week, month, quarter, year) define dimension item as (item_key, item_name, brand, type, supplier_type) define dimension branch as (branch_key, branch_name, branch_type)
define dimension location as (location_key, street, city, province_or_state, country)
Lệnh define lược đồ ở trên tạo ra một lược đồ gọi là sale_star tương ứng tới bảng sự kiện sales ở trung tâm của lược đồ. Lệnh này chỉ ra các chiều và hai độ đo là
dollars_sold và units_sold. Các chiều cụ thể là time, item, branch và location. Lệnh
define dimension được dùng để định nghĩa ra các chiều này.
Định nghĩa lược đồ bông tuyết:
define lược đồ sales_snowflake [time, item, branch, location]:
dollars_sold = sum(sales_in_dollars), units_sold = count(*)
define dimension time as (time_key, day, day_of_week, month, quarter, year) define dimension item as (item_key, item_name, brand, type, supplier
(supplier_key, supplier_type))
define dimension branch as (branch_key, branch_name, branch_type) define dimension location as (location_key, street, city
(city_key, city, province_or_state, country))
Định nghĩa này thì tương tự như định nghĩa của sale_star trong định nghĩa lược đồ hình sao nhưng khác ở chỗ là bảng chiều time và location được chuẩn hoá. Cụ thể là,
chiều item của lược đồ sale_star đã được chuẩn hoá trên lược đồ sales_snowflake
thành hai bảng chiều là item và supplier. Chú ý rằng định nghĩa chiều cho supplier thì được chỉ ra trong định nghĩa của chiều item. Định nghĩa chiều supplier theo cách này tạo ra một supplier_key trên định nghĩa chiều item. Tương tự như vậy, chiều location
của lược đồ sale_star đã được chuẩn hoá trên lược đồ sale_sowflake thành hai bảng chiều, location và city. Định nghĩa chiều city được chỉ ra trong cùng định nghĩa của chiều location. Theo cách này, thuộc tính city_key được tao ra một cách tường minh trong định nghĩa bảng chiều location.
Định nghĩa lược đồ chòm sao thực:
Lược đồ chòm sao có thể được định nghĩa như là một tập hợp của các lược đồ liên kết lại. Dưới đây là một ví dụ định nghĩa lược đồ chòm sao ở trên:
define lược đồ sales [time, item, branch, location]:
dollars_sold = sum(sales in dollars), units_sold = count(*)
define dimension time as (time_key, day, day_of_week, month, quarter, year) define dimension item as (item_key, item_name, brand, type, supplier_type) define dimension branch as (branch_key, branch_name, branch_type)
define dimension location as (location_key, street, city, province_or_state, country)
define lược đồ shipping [time, item, shipper, from location, to location]:
dollars_cost = sum(cost_in_dollars), units shipped = count(*)
define dimension time as time in lược đồ sales define dimension item as item in lược đồ sales
define dimension shipper as (shipper_key, shipper_name, location as location in lược đồ sales, shipper_type)
define dimension from_location as location in lược đồ sales define dimension to_location as location in lược đồ sales
Lệnh define lược đồ được sử dụng để định nghĩa ra lược đồ dữ liệu là sales và
shipping tương ứng với 2 bảng sự kiện của lược đồ chòm sao được mô tả ở trên. Các chiều time, item và location của lược đồ sales được chia sẻ với lược đồ shipping. Trong ví dụ trên phần định nghĩa lược đồ shipping, chiều time được lấy lại định nghĩa từ từ chiều sales.