📜  数据仓库什么是星型模式(1)

📅  最后修改于: 2023-12-03 14:54:53.839000             🧑  作者: Mango

数据仓库:星型模式

在数据仓库中,经常使用的一种数据建模方法就是星型模式。这种模型的主要思想是将数据从一个中心事实表(fact table)开始,通过和其他维度表(dimension tables)建立关联,从而构建一个星型的结构。

中心事实表

中心事实表是数据仓库中最重要的表。它通常包含的是大量的指标数据,例如销售额、订单数量等等。中心事实表的每一行代表一个事实(例如一个订单),每一个列表示一个指标(例如订单的数量或者总价值)。

维度表

每个维度表都代表了数据的一个方面。例如,时间维度表包含了时间信息,包括年、月、日等等。每个维度表通常都包含了一个自己独有的主键,作为和中心事实表进行关联的方式。

星型模型的优点

星型模型的主要优点是简单、易于理解。它能够让程序员快速地存储和查询数据,而且它具有一个很好的性能。在实际的应用中,星型模型通常被用于建立 OLAP 数据库,而另一种建模方式——雪花模型(snowflake schema)则常用于建立 OLTP 数据库。

代码实现

在实际编程中,可以使用 SQL 语句来创建一个星型模型。建立中心事实表和维度表的步骤如下:

CREATE TABLE factSales (
    orderId INT,
    productId INT,
    customerID INT,
    orderDate DATE,
    quantity INT,
    price FLOAT
);

CREATE TABLE dimProduct (
    productId INT PRIMARY KEY,
    productName VARCHAR(50),
    categoryId INT,
    categoryDescription VARCHAR(50),
    brandId INT,
    brandDescription VARCHAR(50)
);

CREATE TABLE dimCustomer (
    customerId INT PRIMARY KEY,
    customerName VARCHAR(50),
    customerAddress VARCHAR(100),
    customerCity VARCHAR(50),
    customerState VARCHAR(50),
    customerCountry VARCHAR(50)
);

CREATE TABLE dimDate (
    dateId INT PRIMARY KEY,
    day INT,
    month INT,
    year INT,
    quarter INT,
    holiday VARCHAR(50)
);

在以上代码中,我们成功创建了一个包含一个中心事实表和三个维度表的简单星型模型。