MySQL
MySQL
数据库常识
关系模型
以二维表描述数据
术语 | 说明 |
---|---|
关系 | 一个二维表就是一个关系 |
元组 | 一行 |
属性 | 一列 |
域 | 属性取值范围 |
数据约束 | 说明 |
---|---|
实体完整性约束 | 约束关系主键值非空 |
参照完整性约束 | 关系之间的基本约束 |
用户定义的完整性约束 |
关系数据库的规范化
第一范式
- 每个属性只有一值
- 关系中每个数组包含相同数量的值
- 关系中每个数组一定不同
表中每一列都是不可再分的基本数据项,每行每列只能存一个属性
第二范式
每个实体(一行)必须可以被唯一地区分,要设置”区分列”(主键)
实体的属性完全依赖于主键,不能存在只依赖主键一部分的属性,若存在,则要将其分离出来作为一个新的实体。新实体和原实体是一对多关系
第三范式
不存在非关键字列对任意候选关键字列的传递函数依赖。
若关系表中存在关键字段A——>非关键字段B——>非关键字段C
应改为 关键字段A——>非关键字段B 两个表
非关键字段B——>非关键字段C
设计原则
- 数据最大程度共享,最小冗余度,数据有效分离
- 保证输入和修改数据时的一致性与正确性
- 保证数据与使用数据的应用程序之间的高度独立性
实体与关系
关系 | 说明 |
---|---|
一对一 | 表A的一条记录在表B中只有一条相匹配的记录 |
一对多 | |
多对多 | 靠建立连接表实现 |
数据库的体系结构
三级模式结构 | 说明 |
---|---|
模式(逻辑模式) | 全体数据的逻辑结构和特征的描述(唯一) |
外模式(用户模式) | 用户能看见和使用的局部数据逻辑结构和特征的描述(模式的子集,多个) |
内模式(存储模式) | 数据在数据库内部的表示方式 |
三级模式之间的映射 | 说明 |
---|---|
外模式/模式映射 | 一个模式有多个外模式,每个外模式有一个外模式/模式映射 ,保证数据与程序的逻辑独立性 |
模式/内模式映射 | 唯一,定义逻辑结构与存储模式的对应关系,保证数据与程序的物理独立性 |