MySQL的一些概念

Posted KumataのBloG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL的一些概念相关的知识,希望对你有一定的参考价值。

数据库与服务器、客户端的层次关系

 

 

关于数据库

程序中需要存储数据的方式:

1 变量(列表、元组、集合、字典、嵌套)

2 外存(文件)(*.ini)

3 表格、Excel(*.xls、*.xlsx、*.csv)

4 结构化数据库

 

数据库中的基本概念

记录(Record):数据库中的一行

字段(Field):数据库中的一列

 

实体(Entity):现实中客观存在并可以被区分的事物。比如:学生、课程

属性(Attribute):实体锁具有的特征。比如:对于学生实体,所体现的属性有:学号、姓名、年龄、性别

关系(RelationShip):实体与实体之间的依赖。包括:一对一、一对多、多对多。

以上三者(实体、属性、关系)可以组成ER图(实体关系图)

 

通过Visio的数据库模型图建立表:

 

建表的时候需要考虑范式的约束

一般有如下范式:1NF 2NF 3NF BCNF 4NF 5NF

1NF:属性不可分

姓名

电话号码

年龄

座机

手机

张三

020-84444444

13777777777

23

李四

020-85555555

13888888888

34

如上,因为电话属性可以拆分为座机和手机,所以不满足1NF,修改如下:

姓名

座机

手机

年龄

张三

020-84444444

13777777777

23

李四

020-85555555

13888888888

34

 

2NF:符合1NF。非主属性完全依赖于关键字

学号

姓名

课程编号

考试成绩

101

张三

201

73

102

李四

202

53

该表中的依赖关系:

学号——姓名

(学号、课程编号)——考试成绩

该表的关键字是:(学号、课程编号)

这里的非主属性姓名依赖于学号,是关键字的一部分,而不是全部。所以不满足2NF

需要拆分成两个表

学号

姓名

101

张三

102

李四

 

学号

课程编号

考试成绩

101

201

73

102

202

53

这样就满足2NF了

 

3NF:符合1NF和2NF,并且消除传递依赖

学号

课程编号

老师

职称

101(张三)

201(高等数学)

张老湿

砖家

102(李四)

202(大学英语)

陈教授

叫兽

103(王五)

202(大学英语)

陈教授

叫兽

显然满足1NF

该表的关键字是:(学号、课程编号)。后面的非主属性完全依赖于关键字,所以满足2NF

(学号、课程编号)——上课老师

老师——职称

像这种A依赖于B,B依赖于C的设计,就称为传递依赖,是不满足3NF

需要拆分成两个表

学号

课程编号

老师

101(张三)

201(高等数学)

张老湿

102(李四)

202(大学英语)

陈教授

103(王五)

202(大学英语)

陈教授

 

老师

职称

张老湿

砖家

陈教授

叫兽

这样就满足了3NF的标准了

后面还有BCNF、4NF、5NF。但是我们设计数据库一般要求达到3NF即可

以上是关于MySQL的一些概念的主要内容,如果未能解决你的问题,请参考以下文章

MySQL datetime的更新,删除网上的一些老概念

MySQL的一些基本概念

MySql中的一些概念,比如索引临时表事务

mysql 锁与事务的一些概念

Gis系统相关的一些概念

mysql丶gtid概念