数据库:DB Design Rule
概念
概念设计术语
- 实体: 客观存在,可以相互区别的事物就是实体,它可以是具体的对象,一个人,一个房子等等,也可以是一个抽象的对象,马克思主义,毛泽东思想等等.
- 实体集: 同类实体的集合.
- 属性: 实体的特性就是属性, 类似对象属性.
- 实体标识符: 唯一标识实体的属性或属性集,也称关键码
逻辑设计术语
- 字段: 标记实体属性的命名单位
- 记录: 字段的有序集合成为记录,一般用一个记录来描述一个实体
- 文件: 同一类记录的集合, 例如 MYSQL 中一个表保存为一个持久化文件.
- 关键码: 唯一标识文件中每个记录的字段或字段集.
设计三范式
1NF
在关系模型中,对域添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。即实体中的某个属性有多个值时,必须拆分为不同的属性.
这里的不可分割数据项并非都是一些基本数据项, 实际情况下可能是一些大型字符串(JOSN)格式, 不可分割视情况而定.有些关系模型中突破了1NF的限制,这种称为非1NF的关系模型。换句话说,是否必须满足1NF的最低要求,主要依赖于所使用的关系模型
2NF
满足第二范式(2NF)必须先满足第一范式(1NF).
第二范式(2NF)要求数据库表中的每个实例或记录必须可以被唯一地区分. 要求实体的属性完全依赖于主关键字
3NF
在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖).
第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主关键字信息.
设计12法则
Rule
- 信息法则
- 保证访问法则
- 空值的系统化处理
- 基于关系模型的动态联机目录
- 统一的数据子语言法则
- 视图更新法则
- 高级的插入、更新和删除操作
- 数据的物理独立性
- 数据的逻辑独立性
- 数据完整性的独立性
- 分布独立性
- 非破坏性法则
Intro
1 | # 信息法则 |
设计阶段划分
需求(建房子)
“需求”是一切的基础, “需求” 或者 “业务” 决定了持久层, 代码层等一切设计.
概念模型
ER模型是一种概念模型设计方法
“E-R” 模型, 实体关系模型, 用以描述信息需求和要存储在数据库中的信息的类型. ER 模型强调数据库规划师、数据库操作人员和数据库管理系统的作用.通过将需求利用 ER 工具表达出来, 并最终将 ER 转换为关系模型.
概念模型表达了”数据”的整体逻辑结构,它是”系统用户”对整个应用项目设计的数据的全面描述;概念模型是从”用户”的观点出发,对数据建模.
一个好的概念模型决定了后续逻辑模型, 一定程度上影响了数据库设计的好坏.
逻辑模型
设计系统的模式和外模式,对于关系模型主要是基本表和视图.
逻辑模型表达了”数据库”的整体逻辑结构,但它是”设计人员”对整个项目数据库的全面描述;逻辑模型是从”数据库实现”的观点出发,对数据建模.
物理模型
物理模型(内部模型)是数据库最底层的抽象,它描述数据在磁盘或磁带上的存储方式(文件的结构),存取设备(外存的空间分配)和存取方法(主索引和辅助索引).
经验杂谈
开发者和DBA
开发者:一个精通OOP和ORM的开发者,设计的数据库往往更为合理,更能适应需求的变化,数据库的规范化,与OO的部分思想雷同。
DBA:设计的数据库的优势是能将DBMS的能力发挥到极致,能够使用SQL和DBMS实现很多程序实现的逻辑,与开发者相比,DBA优化过的数据库更为高效和稳定
实践是检验真理的标准
项目开发.