这篇文章主要讲述的是数据仓库建模的一些基本概念,包括:实体、属性、域、关系、键、约束、范式、命名规范等。
实体
实体通常是名词,如“人”、“事”等的抽象化对象;比如:员工、公司等等;
实体,就是你想要在数据库里存储的所有信息;
实体对应数据库就是表,实体中的实例就是一行行的数据;
属性
属性用来描述实体的具体特性,如下图所示
属性的分类---按内容
属性的内容非常广泛,包括但不限于:
1. ID 2. 描述 3. 引用 4. 分类 5. 限制 6. 数量 7. 时间相关
8. 人物相关 9. 地点相关 10. 状态 11. 审计 12. 派生 等等等
属性的一些特性(空 默 类 多 派)
1. 是否允许为空,即强制的,还是可选的?
2. 是否有默认值?
3. 数据类型是什么?
4. 是单值还是多值?
5. 派生属性是如何计算的?
域
可以从高中学习的集合的概念引申一下,即为作用域;域是属性的所有取值范围的集合,其实可以理解为自定义的数据类型,并可以加一些约束;域类型如:
1. 格式:VARCHAR, currency,email
2. 列表:枚举类型、gender
3. 范围:from x to y, 年龄取值范围 0-150
使用域可以提高数据质量,使数据模型更易于理解和便于沟通;
关系
关系是 动词
老师 教 课程 ,老师和课程都是实体,教 是关系
用于表示实体和实体之间的关系;
在概念模型层级,存在1:N,0:N, 1:1, 0:1, M:N这几种情况
在逻辑模型和物理模型层级,需要消除M:N的情况,通常是建立关系映射表
键
候选键:一个或者多个属性的组合,可以唯一确定实体的一个实例,候选键也可以叫做候选主键,可以选为主键的;
主键:从候选键中,选中用来作为唯一标识的属性或者属性组,被称为主键;
可选建:候选键中,没有选中的其他键,称为可选键;
主键的特点:
1. 唯一性,不可重复;
2. 强制性,不可以为空
3. 永久性,不可改变;
4. 最小集合,不可掺杂多余的属性;
单键与复合键:
单键:主键如果是一个属性,称为单键;
复合键:主键如果是多个属性的组合,称为复合键。
自然键和代理键:
自然键:已经真是存在的键,通常具有商业含义,比如身份证ID,护照编码等。可以是单键,也可以是复合键;
代理键:完全没有商业含义,通常由当前的系统自动生成,都是单键。
约束
约束存在的目的就是将商业规则应用到数据库的设计中;约束分为:
1. 唯一标识
2. 非空约束
3. 默认值
4. 检查
5. 参照完整性