1

我无法理解标准化和维度数据建模中建模层次结构之间的差异?我将非常感谢您的时间和回答。

4

1 回答 1

1

在事务数据库的规范化模式中,层次结构可能如下所示:

create table geopolitical_area (
  id bigint primary key,
  type text not null,
  name text not null,
  code char(2),
  parent_id bigint null references geopolitical_area(id)  
);

insert into geopolitical_area values
(1, 'Country', 'Canada', 'CA', null),
(2, 'Region', 'British Columbia', 'BC', 1);

注意同一张表的外键。

在数据仓库的维度模式中,层次结构可能如下所示:

create table dim_customer (
  id bigint,
  name text,
  country_name text,
  country_code char(2),
  region_name text,
  region_code char(2) ...
);

insert into dim_customer values
(666, 'Neil McGuigan', 'Canada', 'CA', 'British Columbia', 'BC' ...);

请注意,层次结构已被展平。

通常,您使用 OLAP 分析数据仓库,您会在其中告诉您的 OLAP 服务器国家 > 地区层次结构。

例如,在 Mondrian OLAP 服务器中,层次结构可能如下所示:

<Dimension name="location">
  <Hierarchy>
    <Table name="dim_customer" />
    <Level name="Country" column="country_code" nameColumn="country_name" />
    <Level name="Region" column="region_code" nameColumn="region_name" />
  </Hierarchy>
</Dimension>
于 2013-09-06T17:47:36.513 回答