[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