Database 如何创建数据集市

Database 如何创建数据集市,database,database-design,data-warehouse,Database,Database Design,Data Warehouse,这是我第一次尝试创建数据集市/仓库,我对如何最好地设计模式有点困惑。项目背景:我最初创建了一个关系数据库,用于捕获客户的信息。简化模式如下所示: ClientTbl: ID:PK; FName:String; LName:String; ClientEDU(one to many) ID:PK; ClientID:FK; SchoolName:String; Degree:String; GPA:String; ClientJobs(One to many) ID:P

这是我第一次尝试创建数据集市/仓库,我对如何最好地设计模式有点困惑。项目背景:我最初创建了一个关系数据库,用于捕获客户的信息。简化模式如下所示:

 ClientTbl:
 ID:PK;
 FName:String;
 LName:String;

 ClientEDU(one to many)
 ID:PK;
 ClientID:FK;
 SchoolName:String;
 Degree:String;
 GPA:String;

 ClientJobs(One to many)
 ID:PK;
 ClientID:FK;
 OrganizationName:string;
 Industry:String;
 StartDate:Date;
 EndDate:Date;
 Salary:double;
 CityLocation: String;
这是一个简化的例子。事实上,我还有几张桌子,上面有数千条记录。每当我想在这些表上运行查询时,都会非常耗时。我觉得创建一个数据集市会有所帮助。这样,我们可以每晚运行数据集市更新,这将非常耗时。然后将查询到的数据放在我们的DM中,以便快速查询。我只是对如何最好地设计模式有点困难。根据上面的示例表,我想在数据集市中回答的示例问题是:

 % of clients that attend each school in our db
 % that have each degree in our db
 Avg salary of client
 Avg length of stay at a job
 % of clients that worked in each city, that is found in the db
从我的阅读中,我知道事实表将包含所有计算值(平均工资、长度等),每个维度将包含数据(工作或教育),但我不明白它们是如何联系在一起的。我的事实表是否会为每个客户都有一行?就一排

任何帮助都会很好


谢谢

我不认为“数据仓库”是你的灵丹妙药

你应该专注于为什么你的结果是“耗时的”

你问的问题一点也不奇怪

有些事情与。。比如你真的有一个字符串学校名称作为学校的主键吗


也许发布一个实际的模式子集,以及一个您遇到困难的特定查询,然后您就可以获得关于如何改进它们的实际帮助。

我不认为“数据仓库”是您的灵丹妙药

你应该专注于为什么你的结果是“耗时的”

你问的问题一点也不奇怪

有些事情与。。比如你真的有一个字符串学校名称作为学校的主键吗


也许发布一个实际的模式子集和一个您遇到困难的特定查询,然后您就可以获得关于如何改进这些查询的实际帮助。

这是一个难题,因为它涉及客户的人口统计摘要

你有一份看起来像事实的工作。它有一个持续时间和一个工资,这是衡量标准。我们知道它们是度量单位,因为它们有合适的单位

鉴于工作事实,这一事实的维度是什么

  • 客户

  • 时间开始了

也许你知道这份工作的其他方面(例如地理、行业)

时间是一个时间点。这通常是一个包含日期的表格,以及日期所属的所有不同报告类别:季度、周、会计期间等

客户是个人;而且人们并没有形成一个特别好的维度。他们有自己的很多方面

选择一。“雪花”模式。将客户视为一种具有多个维度的事实,包括他们自己的地理位置、学位、学校等等

选择2。“人口”方面。这是学位课程、GPA范围、学校名称等的摘要。这实际上是正确的工作事实和客户之间的联系。工作属于人口统计范畴。许多客户也属于这一类别

我的事实表是否会为每个客户都有一行?就一排

事实表中每个可测量的事实实例都有一行与该事实的各个维度相关联

工作事实有两个衡量标准:薪水、持续时间和至少对维度的外键引用:开始日期和人口统计。如果您有工作的其他维度属性(如地理或行业),则这些是工作的外键

客户人口统计将与一个或多个工作关联

地理或工业也是如此


由于客户是一种特殊情况,一个或多个客户也将对相应的客户人口统计维度行进行FK引用。

这是一个难题,因为它涉及客户的人口统计摘要

你有一份看起来像事实的工作。它有一个持续时间和一个工资,这是衡量标准。我们知道它们是度量单位,因为它们有合适的单位

鉴于工作事实,这一事实的维度是什么

  • 客户

  • 时间开始了

也许你知道这份工作的其他方面(例如地理、行业)

时间是一个时间点。这通常是一个包含日期的表格,以及日期所属的所有不同报告类别:季度、周、会计期间等

客户是个人;而且人们并没有形成一个特别好的维度。他们有自己的很多方面

选择一。“雪花”模式。将客户视为一种具有多个维度的事实,包括他们自己的地理位置、学位、学校等等

选择2。“人口”方面。这是学位课程、GPA范围、学校名称等的摘要。这实际上是正确的工作事实和客户之间的联系。工作属于人口统计范畴。许多客户也属于这一类别

我的事实表是否会为每个客户都有一行?就一排

事实表中每个可测量的事实实例都有一行与该事实的各个维度相关联

工作事实有两个衡量标准:薪水、持续时间和至少对维度的外键引用:开始日期和人口统计。如果您有工作的其他维度属性(如地理或行业),则这些是工作的外键

客户人口统计将与一个或多个工作关联

地理或工业也是如此

由于客户机是一种特殊情况,一个或多个cl