MySQL
1. 数据库的设计:
- 表和表之间的关系:
\qquad 1. 一对一:
\qquad \qquad 如:人和身份证。
\qquad \qquad 分析:一个人只能由一个身份证,一个身份证只能对应一个人。
\qquad \qquad 实现方式:合成一张表或者在任意一张表中添加唯一的外键来指向另一方的主键
\qquad 2. 一对多(多对一)
\qquad \qquad 如:部门和员工。
\qquad \qquad 分析:一个部门有多个员工,一个员工只能对应一个部门
\qquad \qquad 实现方式:在“多”的地方建立外键,指向“一”的一方的主键。
\qquad 3. 多对多
\qquad \qquad 如:学生和课程
\qquad \qquad 分析:一个学生可以选择很多门课程,一门课程也可以被很多个学生选择。
\qquad \qquad 实现方式:需借助一个中间表来完成,中间表中至少包含了两个字段,这两个字
\qquad \qquad \qquad \qquad 作为中间表的外键分别指向两张表的主键。 - 数据库的设计范式
\qquad 为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中,这种规则就是范式。范式是符合某一种级别的关系模式的集合。关系型数据库中的关系必须满足一定的要求,即满足不同的范式。
\qquad 目前关系型数据库有六种范式,分别为:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。要求最低的范式是第一范式。第二范式在第一范式的基础上又进一步的添加了要求,其余范式依次类推。一般上,我们只要遵循前三种范式,数据库的设计便会有太大的问题。
1)第一范式
第一范式(1NF)用来确保每列的原子性,要求每列(或者每个属性值)都是不可再分的最小数据单元(也称为最小的原子单元)。
2)第二范式
第二范式(2NF)在第一范式的基础上更进一层,要求表中的每列都和主键相关,即要求实体的唯一性。如果一个表满足第一范式,并且除了主键以外的其他列全部都依赖于该主键,那么该表满足第二范式。
\qquad 1. 函数依赖:A–>B,如果通过A属性(属性组)的值,可以确定唯一的B属性的值,则B \qquad 依赖于A
\qquad 2. 完全函数依赖:如果A是一个属性组,B属性的值的确定需要依赖于A属性组的所有值。
\qquad 3. 部分函数依赖:A–>B,如果A是一个属性组,B属性的值的确定只需要需要依赖于A属 \qquad 性组中的一些值即可。
\qquad 4. 传递函数依赖:A–>B,B–>C,如果通过A属性(属性组)的值,可以确定唯一的B属性 \qquad 的值,再通过B属性(属性组)的值,可以确定唯一的C属性的值,则称C传递函数依赖于 \qquad A。
\qquad 5. 码:如果在一张表中,一个属性或属性组,被其他属性所完全依赖,则称这个属性或属 \qquad 性组为该表的码。(主属性为码属性组中的所有属性,非主属性为除码属性组外的属性)
3)第三范式
第三范式(3NF)在第二范式的基础上更进一层,第三范式是确保每列都和主键列直接相关,而不是间接相关,即限制列的冗余性。如果一个关系满足第二范式,并且除了主键以外的其他列都依赖于主键列,列和列之间不存在相互依赖关系,则满足第三范式。
2. 数据库的备份和还原:
\qquad
1.命令行的方式:
\qquad
\qquad
语法:mysqldump -u用户名 -u密码 数据库名称 > 保存路径;
\qquad
\qquad
还原:登录数据库、创建数据库、使用数据库、执行文件:source 文件名称
\qquad
2. 图形化工具
\qquad
\qquad
不同的图形化工具操作大同小异,比较简单,这里就不提了。