关系数据理论(包含什么是数据依赖、函数依赖)
https://www.cnblogs.com/JCSU/articles/1324032.html
- 需求分析
数据库需求的作用点:
- 数据是什么
- 数据有哪些属性
- 数据和属性各自的特点有哪些
为什么要进行数据分析
- 了解系统中所要存储的数据
- 了解数据存储的特点。如,一些时效性的数据,可以定义规则过期自动清理
- 了解数据的生命周期。
有的数据增长量很大,但它们不是核心数据,对这些数据可采用分库分表存储。如,开发人员希望把日志类数据存储在数据库中,从数据库管理员的角度来看,这种数据是不适合存储在数据库中的。因为日志这种数据增长量极大,并且不属于核心数据。如果非要存储在数据库中的话,可在数据库存储之前定义好这类数据的归档或清理规则。随着数据库的上限,就会进行数据库的归档。如果当这个表增长量很大的时候,再进行归档,工作量会很大还会影响线上的使用。
搞清楚一些问题
- 实体与实体之间的关系(如1对1,1对多,多对多)
- 实体所包含的属性有哪些
- 哪些属性或属性的组合可以唯一标识一个实体
逻辑设计
使用ER图进行数据库逻辑建模
逻辑设计是做什么的
1、将需求转为数据库的逻辑模型
2、通过ER图的形式对逻辑模型进行展示
3、同所选用的具体的DBMS系统无关
设计范式概要
操作异常
数据冗余
指相同数据在多个地方存在,或者说表中的某个列可由其他列计算得到,这样就说表中存在着冗余数据。
各个范式的特点
第一范式(1NF)
数据库表中的所有字段都是单一属性,不可再分的,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。这个单一属性是由基本的数据类型所构成的,如整数、浮点数、字符串等;总而言之第一范式要求数据库中的表都是二维表(二维表:由行和列所组成的表)。’
下图是一张不符合1NF的表:
第二范式(2NF)
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。例如,员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是惟一的,因此每个员工可以被惟一区分。这个惟一属性列被称为主关键字或主键、主码。