[TOC]
### 关系数据库——数据完整性
#### 一、物理表间关系
1、表间关系的含义:
同一个关系数据库当中的不同表中的数据之间存在一种关系,这种关系将数据库里各表中的每条数据记录都和数据库中唯一的主题相联系,从而使得对每一个数据的操作都成为对数据库的整体操作。
2、表间关系的类型:
* 一对一
* 一对多
* 多对多
3、建立表间关系的目的:
* 保证数据的完整性
-> 表间关系的建立使主表和从表之间建立数据约束关系,防止输入错误的数据;
* 保证数据的一致性
-> 当存在多个表的时候,通过建立主表和从表的关系,可以在主表更新时,从表自动更新,省去手动更新;
* 方便多表查询
-> 方便连接两个或多个表,一次就能够查找到多个相关数据。
#### 二、主外键物理表
在第3章里我们介绍了主键的设置和选择,为了建立表间关系,还需要在子表里设置外键。
1、外键的作用
外键通过引用另外一个数据表记录的主键字段,在两个表之间建立联系。
外键是子表里的一个字段,引用父表(主表)里的主键。
要求:
* 外键列类型尽可能与主键列类型保持一致
* 外键列应该加上 NOT NULL
2、外键约束
外键约束是确保表与表之间引用完整性的主要机制。
#### 三、主外键物理表的数据插入、删除和更新规则
主表和从表里的数据在插入删除时,要遵循以下规则:
(1)当主表中没有对应的记录时,不能将记录添加到子表;
上面的例子里学员成绩表 score 中不能出现在学员信息表 student 中不存在的学号。
(2)不能更改主表中的值而导致子表中的记录孤立;
把 student 表中的学号改变了,score 表中的学号也应当随之改变。
(3)子表存在与主表对应的记录,不能从主表中删除该行 ;
不能把有成绩的学员删除了。
(4)删除主表前,先删子表;
先删除学员成绩表 score、后删除学员信息表 student。
- 授权管理
- 角色管理
- 设置密码
- 5.6 版本
- 系统用户
- 当前用户
- 目录
- 设计规划
- 数据字典
- 状态监控
- 查看MYSQL表占用空间状态
- show table status
- SHOW 命令
- SHOW TABLE STATUS
- 表格输出
- 调优
- 书籍培训
- 数据库管理员的第一本书(原书第2版)
- 视频
- 收获,不止SQL优化
- 基本概念
- 工具
- phpMyadmin
- 变更管理
- 数据关系与原则
- 数据完整性
- 业务完整性
- 字段更新(1)
- 订单应用(1)
- 订单应用(2)
- 表间数据连接
- 数据管理
- Cheet Sheet
- Database Administrator
- 索引设计
- Mysql 四种常见的索引
- MySQL索引之主键索引
- MySQL索引使用对查询、插入速度的影响
- 查询优化
- 存储优化
- 分割数据表字段
- Procedure_Analyse优化表结构
- 性能优化
- 拆分DELETE/INSERT语句
- MySQL命令
- 表复制
- 如何快速创建相同结构的表
- 主键设计
- 为什么推荐InnoDB引擎使用自增主键?
- INFORMATION_SCHEMA
- _5.6版本
- USER_PRIVILEGES