mysql学习笔记--数据库设计
一、数据库基本概念
1. 关系:两个表的公共字段
2. 行:也称记录,也称实体
3. 列:也称字段,也称属性
4. 数据冗余:相同的数据存在不同的地方。
注意:冗余只能减少,不能杜绝。
减少冗余,只能分表
方便查找,允许一定的冗余
5. 数据完整性:正确性+准确性
二、实体和实体间的关系
1. 关系类型:一对一(主键和主键),一对多(主键和非主键),多对多(建立关系表)
三、数据库设计步骤
1. 收集信息:与该系统有关人员进行交流、坐谈、充分理解数据库需要完成的任务。
2. 标识对象(实体-entity),标识数据库要管理的关键对象或实体
3. 标识每个实体的属性(attribute)
4. 标识对象之间的关系(relationship)
四、绘制e-r图
五、数据规范化
1. 第一范式:确保每列原子性
确保每个字段不可再分
2. 第二范式:非键字段必须依赖于键字段
一个表只能描述一件事情
3. 第三范式:消除传递依赖
在所有的非键字段中,不能有传递依赖
4. 反三范式:当性能和规范化冲突时,我们首选性能。