1.前情提要
数据库的范式:
第一范式: 要求表中不能有重复属性,而且属性不能再被拆分
第二范式: 主键与普通属性之间的关系, 每个属性必须依赖
于主属性
第三范式: 主键与普通属性之间的关系, 每个属性只能依赖
于主属性
BC范式 : 候选键只有一个
第四范式: 消除一对多属性 (爱好)
超键,候选键,主键 : 属性集(身份证号,姓名,性别,年龄)
-
超键 : 在关系中能够唯一标识元组属性的
属性集
称为关系模式的超键(超键是能唯一确定一个人的属性组
)
.
属性集中的超键 ([身份证号],[姓名],[姓名,性别,年龄]) -
候选键 : 是
没有多余属性
的超键属性集中的候选键: ([身份证号],[姓名])
-
主键是选中的一个候选键
属性集中的主键: 选[身份证号] 和 [姓名] 均可
总的来说 :候选键是超键的子集,主键是候选键中的一个。
数据库引擎:InnoDB和MyISAM区别
MyISAM 存储 : 如果表对事务要求不高,
同时以查询添加为主
.(例如: 论坛中的回复表 发表表)
INNODB :对事务要求高
,存储的数据要求的都是重要数据
.(订单表,账号表)
区别:
项目 | MyISAM | INNODB | |
---|---|---|---|
1 | 事务安全 | 不支持事务 | 支持事务 |
2 | 外键 | 不支持外键 | 支持外键 |
3 | 锁机制 | 时表锁 | 行锁 |
4 | 查询和添加速度 | 批量添加或者删除很快 | 较慢 |
5 | 全文索引 | 支持全文索引 | (新版本)支持 |
6 | 空间利用率 | 低 | 高 |
数据存储文件
- MyISAM :
1. .frm 用于存储表的定义
2. .MYD用于存放数据
3. .MYI 用于存放表的索引 - InnoDb(索引组织表)
1. .frm 用于存储表的定义
2. .ibd 用于存储表的索引和数据