MySQL基础概念与实际开发
2018-09-15 本文已影响0人
小白碗里来
1.1 数据库基本概念
1、关系:两个表的公共字段
2、行:也称记录,也称实体
3、列:也称字段,也称属性
就表结构而言,表分为行和列;
就表数据而言,分为记录和字段;
就面向对象而言,一个记录就是一个实体,一个字段就是一个属性
4、数据冗余:相同的数据存储在不同的地方
(1)、冗余只能减少,不能杜绝。
(2)、减少冗余的方法是分表
(3)、为减少数据查找的麻烦,允许数据有一定的冗余
5、数据完整性:正确性+准确性=数据完整性
正确性:数据类型正确
准确性:数据范围要准确
1.2 实体和实体之间的关系
1、一对一
2、一对多 (多对一)
3、多对多
1.2.1 一对一(1:1)
1、主表中的一条记录对应从表中的一条记录
1.2.2 一对多 1:N
1、主表中的一条记录对应从表中的多条记录。
2、一对多和多对一是一样的
列子:班级和学生关系
1.2.3 多对多(N:M)
主表中的一条记录对应从表中的多条记录,从表中的一条记录对应主表中的多条记录
列子:班级和讲师的关系
如何实现多对多?
答:建立第三张表来保存关系。
1.3 数据库设计的步骤
1.3.1 数据库设计具体步骤
1、 收集信息:与该系统有关人员进行交流、坐谈,充分理解数据库需要完成的任务
2、 标识对象(实体-Entity)标识数据库要管理的关键对象或实体
3、 标识每个实体的属性(Attribute)
4、 标识对象之间的关系(Relationship)
5、 将模型转换成数据库
6、 规范化
1.3.2 绘制E-R图
E-R(Entity-Relationship)实体关系图
E-R图的语法
示例图:
1.3.3 将E-R图转成表
1、 实体转成表,属性转成字段
2、 如果没有合适的字段做主键,给表添加一个自动增长列做主键。
1.4 数据规范化
Codd博士定义了6个范式来规范化数据库,范式由小到大来约束,范式越高冗余越小,但表的个数也越多。实验证明,三范式是性价比最高的。
1.4.1 第一范式:确保每列原子性
如果仅仅起地址的作用,不需要统计,可以不拆分;如果有按地区统计的功能需要拆分。
1.4.2 第二范式:非键字段必须依赖于键字段
一个表只能描述一件事
1.4.3 第三范式:消除传递依赖(非键与非键关系不要和上面混淆)
在所有的非键字段中,不能有传递依赖