3NF浅谈BI领域的数据模型设计
/**********************************/
在桃山等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都做网站、成都网站制作 网站设计制作定制网站制作,公司网站建设,企业网站建设,高端网站设计,成都营销网站建设,外贸营销网站建设,桃山网站建设费用合理。
目录:
第一部分:基础概念
第二部分:设计方式
第三部分:银行业数据模型基本概念介绍
第四部分:银行业数据模型分主题介绍
第五部分:ODS和EDW
/**********************************/
第一部分:基础概念
1.什么是LDM(Logic Data Module)
LDM是一个业务组织的信息表示方式
不是Database
平台独立
是对业务数据的逻辑表示
定义存在的数据实体和它们之间的关系
业务人员通过LDM就可以知道其业务问题能否被解决
2.LDM的特点
稳定性:
可以长期满足业务需求
正确性:
对真实世界的业务one-to-one 的数据映射
共享性:
不是为特定部门或特定应用需求而设计
灵活性:
当业务环境变化后,只要进行最小的改动
3.LDM的行业特性
不同行业有不同的LDM参考模型
通信(Communication) cLDM
金融(Financial) FISLDM
医疗(HealthCare)
零售(Retail)
交通(Transportation)
旅游(Travel)
制造(Manufacture)
4.为什么要使用LDM(实施端)
减少成本(cost savings)
降低风险(Reduce Risk)
1:1 Mapping(LDM->PDM)
低维护量(Low Maintenance)
沟通(Communication)
全企业级(Cross Functional)
客户中心(Customer Centric)
5.为什么要用LDM(客户端)
生成一个精确(accurate)和一致(consistent)的业务数据视图
对业务规则的清晰表达
可以超越当前数据的局限,提供数据集成的路线图
对各个层级的参与者提供沟通的手段
6.建模框架( Data Modeling Frame Work)
7.LDM(Logic Data Module)和PDM(Physical Data Module)
8.LDM和ERD
ERD (Entity Relationship Diagram)
ERD 是一个标准建模技术,对LDM进行图形化的表达
ERD技术可以通过不同的产品进行体现:
Erwin
Power Designer
Visio
ERD 需要表达:
实体(Entity)。所有事物
关系(Relationship)。不同业务实体之间的关联关系
属性(Attribute)。实体或者关系的数据事实(data fact),是最低层级的信息,且业务含义不可拆分
主键(Primary Key)
关系描述符(Relationship Descriptor)
外键(Foreign Key)
9.LDM和Table Layout (表样式)
Table Layout 通过在LDM中加入样例数据(sampling data),使得业务人员可以更直观的理解数据。
键属性用蓝色表示,非键属性用红色表示
第二部分:设计方式
建模方式:
第一步:定义业务需求与范围(Requirement)
第二步:定义实体(Entity)
第三步:定义关系(Relationship/PK/FK)
第四步:定义属性(No-key Attribute)
第五步:验证模型(Verify)
第六步:正则化(Normalization)
第七步:历史数据建模(History Modeling)
第一步:定义业务需求和范围
LDM的构建是一个渐进的过程,也是随着企业业务和管理模型不断扩展而演进的。
LDM是对信息的表示方式,信息的分类就是主题,通过主题定义信息的范围
同一主题的内容也可能随着业务进行扩充
第二步:定义实体
什么是实体:
需要表达和维护的信息就是实体,可以包括人、地点、产品等任何概念。实体是逻辑模型的概念,对应物理模型就是表。
实体的名称:
在整个模型中是唯一的
一般是一个名词(如客户),可以加上修饰词(如VIP客户)
实体定义时会发生的错误:
同义不同名(如员工worker和雇员employee)
同名不同义(如产品和促销都定义为product)
实体中的主键(Primary Key):
主键是实体中的每个实例(instance) 区别于其他实例的标志。在物理模型中,主键是不同行(row)的区分标志。
在定义实体时,一般要最先定义主键。在图形表示的时候,一般放在最前面。
定义主键的一些原则:
每个实体(表)必须要有主键。即使表是multiset(可能出现重复记录)也必须要有主键。
每个表只能有一个主键。
主键值必须唯一(ANSI标准允许不唯一,为了保证数据加载性能,可能主键值不唯一)
主键值不能为空
主键值不能被修改
主键值可以由多个值构成。
第三步:定义关系(Relationship)
什么是关系(Relationship):
关系是两个不同实体交互方式的表达(如客户购买产品,员工在那个部门)
直接关系与间接关系如下图所示,在模型中,只要定义直接关系,而不用定义间接关系。
定义关系的原则:
关系是唯一的(由涉及的表唯一标示)
关系对与实体内的所有实例都是适用的(物理模型中对表中的所有row都是适用的)
需要定义关系的集合表达方式(cardinality)。如1:1、1:M、M:M
定义关系的步骤:
Step1: 识别实体之间是否有关系
是否存在关系
是直接还是间接关系
定义关系的名称
Step2: 识别实体之间的集合表达方式
1:1
1:M
M:M
Step3:用外键(Foreign Key)将关系表达出来
外键是表示两个实体中的实例的互相的数量关系
外键定义的原则:
一个实体可以有0/1/M个外键
外键的值可以不唯一(1:M/M:M)
外键的值可以为空(客户可以没有账户)
外键的值可以被更改(客户的账户号可以被修改)
外键可以由多个属性构成
A表的外键的属性和值必须在B表中的PK中存在
定义M:M关系需要新建一个关系实体(Associative Entities):
客户与产品的关系是M:M关系,所以需要定义一个关系实体(订购 subscription)
将A实体与B实体的主键放在一起,就构成了关系实体。
关系实体的主键是A实体主键+B实体主键
递归关系:
在实体内部存在的关系,实体的外键是本实体的主键
如下图所示
管理者本身也是一个员工
MgrEmp# 是Empolyee外键,对应的主键是Empolyee的Emp#
第四步: 定义属性( Attribute Modeling)
属性是描述实体(entity)的相关的、细节的数据项
定义属性的原则:
名称在本实体内唯一
与本实体相关
不能够被别的属性所描述
有单一的值域空间
属性应该是对实体内的所有实例都是有效的
属性的类型:
键属性(主键、外键)
非键属性
派生属性,能够从别的属性中计算而得的属性
第五步:验证模型(Verify)
通过模型验证发现上述4步的问题,不断修正,多次循环。
与客户讨论,确认客户的业务需求、业务问题和业务约束条件能否通过模型进行体现。
不要考虑任何有关物理模型的问题。
但客户的业务需求能够通过模型进行表达,就结束模型的优化。
第六步:正则化(Normalization)
正则化是设计实体的属性的规则,使得实体-属性能够更加精确的反应客观事实
正则化的作用:
减少数据冗余(避免数据多处存储)
减少由于数据修改导致的数据不一致(只修改了一处数据,而另一处忘了修改)
正则化的原则“一个事实,一处存放”(one fact ,one place)
1NF,2NF,3NF 解决非键属性对主键的依赖性
4NF, 5NF 解决是键属性互相之间的依赖关系。
一般LDM建模只要求到3NF
什么是3NF:
1NF: The Key(有主键,且没有重复的属性)
2NF: The Whole Key (非键属性对主键的依赖关系)
3NF: And Nothing But Key(属性对主键依赖关系是直接的,而非间接的)
第七步:历史数据建模(History Modeling)
业务人员不仅要对当前(current)的数据进行分析,而且要对数据的变化进行追踪(track),而且需要对历史数据进行分析。
这就要求对数据的变化历史进行建模,这就是历史数据建模(History Modeling)
History Modeling的原则:
Current和History:
如果在模型中既存在当前实体(current entity)也存在历史实体(history entity),那么当前实体的信息必然是冗余的。
在设计LDM中,只需保留历史实体,在进行物理模型设计时,可以加上一个当前标志(current flag),表明哪些记录是对应当前实体的信息。
历史数据建模:
将需要保存历史信息的属性放入到历史实体(History Entity)中。
时间属性作为主键的一部分。
历史实体(History entity)的主键必然是一个符合主键(包括多个属性)
First Normal Form (1NF)
First normal form (1NF) sets the very basic rules for an organized database:
· Eliminate duplicative columns from the same table.
· Create separate tables for each group of related data and identify each row with a unique column or set of columns (the primary key).
Second Normal Form (2NF)
Second normal form (2NF) further addresses the concept of removing duplicative data:
· Meet all the requirements of the first normal form.
· Remove subsets of data that apply to multiple rows of a table and place them in separate tables.
· Create relationships between these new tables and their predecessors through the use of foreign keys.
Third Normal Form (3NF)
Third normal form (3NF) goes one large step further:
· Meet all the requirements of the second normal form.
· Remove columns that are not dependent upon the primary key.
网页标题:3NF浅谈BI领域的数据模型设计
新闻来源:http://myzitong.com/article/ihogso.html