不知道大家对Data Vault了解吗?看了简单的介绍,说是一种混合的数据仓库建模方法,解决了3NF和星型模型的缺陷。有谁对此有深入的了解吗,
可以介绍下。。。
On Dec 19, 10:55 am, Qing <happys...@gmail.com> wrote:
> 我也很想知道。
> 这个概念也应该出来很久了吧,不过看来一直没有流行起来。我在ttnn里面搜了一下,在06年的时候,在谈论hub-spoke的时候谈到过,不过也没有展开。
>
> 请dw建模大虾们来普及一下...
>
> 2008/12/19 小水牛 <Lucian.n...@gmail.com>
>
>
>
> > 不知道大家对Data Vault了解吗?看了简单的介绍,说是一种混合的数据仓库建模方法,解决了3NF和星型模型的缺陷。有谁对此有深入的了解吗,
> > 可以介绍下。。。- Hide quoted text -
>
> - Show quoted text -
> > - Show quoted text -- Hide quoted text -
链接体:是3NF的多对多关系的物理表现形式,它表现的是多个业务键之间的关系。包含以下特征:
代理键
代理键间的映射关系
装载时间戳:这里可以理解为ETL进行日加载的时间。
数据源:就是可以追索到的原系统,比如,CRM,ERP等
附属体:业务领域中的其余信息可能随着时间而变化,所以附属体必须有能力存储新的或者变化的各种粒度的数据,他们将被存储在附属体内。如类别、产品、供
应商、命令细节、命令、顾客、托运人和雇员,他只是包含仅非外键属性,具有一下特征
主键1-》映射中心体的主键或者链接体的主键
主键2-》装载时间戳
选择型主键:顺寻代理键,他可能有多个值,比如账单或者地址信息
数据源:记录数据的来源系统
> > - Show quoted text -- 隐藏被引用文字 -
>
> - 显示引用的文字 -
如:
Create Table Hub_Category (
CategoryID int NOT NULL,
CategoryName nvarchar(15) NOT NULL,
LOAD_DATE DateTime Not Null,
RECORD_SOURCE nvarchar(12) not null,
Primary Key (CategoryID)
)
现在供应商想买一个某类中的某个产品,这就是一种关系,可以建立链接体的表: LNK_PRODUCTS
Create Table LNK_PRODUCTS (
ProductID int NOT NULL,
CategoryID int NOT NULL,
SupplierID int NOT NULL,
LOAD_DATE DateTime Not Null,
RECORD_SOURCE nvarchar(12) not null,
Primary Key (ProductID),
Foreign Key (SupplierID) references HUB_Supplier,
Foreign Key (CategeoryID) references HUB_Category
)
至于供应商交易的具体信息就是属于附属信息了,但是需要分开理解,供应商交易的信息和产品交易的信息,这是这对不同的业务实体的,所以有产品的附属信息
表和供应商的附属信息表了,如一下是产品交易的附属信息表:
Create Table SAT_Products (
ProductID int NOT NULL,
LOAD_DATE DateTime Not Null,
QuantityPerUnit nvarchar(20),
UnitPrice money,
UnitsInStock smallint,
UnitsOnOrder smallint,
ReOrderLevel smallint,
Discontinued bit,
RECORD_SOURCE nvarchar(12) not null,
Primary Key (ProductID,LOAD_DATE)
Foreign Key (ProductID) references HUB_Products
)
通过主键和 HUB_Products ,以及LNK_PRODUCTS关联,然后通过LNK_PRODUCTS中的(SupplierID ,
LOAD_DATE DateTime)找到具体的供应商交易信息。
> > - 显示引用的文字 -- 隐藏被引用文字 -
>
> - 显示引用的文字 -
这是我的一点想法,欢迎大家拍砖.....
> > 可以介绍下。- 隐藏被引用文字 -
>
> - 显示引用的文字 -
> > - 显示引用的文字 -- Hide quoted text -