课程名册:数据库设计那些事
课程章节:第一章,第二章
课程讲师:sqlercn
课程内容:
一.概念
就是根据业务系统的具体需要,结合我们所选用的DBMS(数据库管理系统),为这个业务系统构造出最优的数据存储模型。并建立好数据库中表结构及表与表之间的关联关系的过程。使之能有效对应系统中数据进行存储,并可以高效的对已经存储数据进行访问。
二.为什么要进行数据库设计
优良的设计 | 糟糕的设计 |
---|---|
减少数据冗余 | 大量数据冗余 |
避免数据维护异常 | 存在数据插入,更新,删除异常 |
节约存储空间 | 浪费大量存储空间 |
高效访问 | 低效访问 |
三.数据库设计步骤
1.需求分析
数据是什么
数据有哪些属性
数据和属性各自特点有哪些
了解系统中所要存储的数据
了解数据的存储特点
了解数据的生命周期
实体及实体之间关系(1对1,1对多,多对多)
实体所包含属性有什么
那些属性或属性组合可以唯一标识一个实体
2.逻辑设计
使用ER图对数据库进行逻辑建模
将需求转化为数据库逻辑模型
通过ER图的型式对逻辑模型进行展示
同所选用的具体数据库DBMS无关
3.物理设计
根据数据库自身的特点把逻辑设计转换为物理设计
4.维护优化
新的需求进行建表
索引优化
大表拆分
四.名词解释
关系:一个关系对应一张表
元组:一行即为一个元组
属性:表中的一列为一个属性,每个属性都有一个名称,称为属性名
候选码:表中的某个属性组,可以唯一确定一个元组
主码:一个关系有多个候选码,选定其中一个为主码
域:属性的取值范围
分量:元组的一个属性值
矩形:表示实体集
菱形:表示关系集
椭圆:表示实体的属性
线段:将属性连接到实体集,或将实体集连接到关系集
数据冗余:指相同的数据在多个地方存在,或者表中的某个列可以由其他列计算得到
五.数据库范式
第一范式:数据库表中所有字段都是单一属性,不可再分
第二范式:数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖
部分函数依赖是指存在组合关键字中某一个关键字决定非关键字的情况
换句话说:所有的单关键字段的表都符合第二范式
第三范式:如果数据表中不存在非关键字段对任意候选关键字段的传递函数依赖
BC范式:在第三范式基础上,数据库表如果不存在任何字段对任一候选关键字段的传递函数依赖。也就是说如果是复合关键字,则复合关键字之间也不能存在函数依赖关系
课程收获: