数据库基础

数据库设计三大范式:

  • 第一范式:数据表中的每一列必须是不可拆分的最小单元(原子性);
  • 第二范式:表中所有列必须依赖于主键,一个表只表述一件事情;
  • 第三范式:表中每一列只与主键直接相关而不是间接相关,表中每一列只能依赖主键;
反范式的优点
  • 可以避免关联,因为所有的数据几乎都可以在一张表上显示;
  • 可以设计有效的索引;
反范式的缺点
  • 表格内的冗余较多,删除数据时候会造成表有些有用的信息丢失。

数据库五大约束

  1. primary KEY:设置主键[1]约束
  2. UNIQUE:设置唯一性约束,不能重复值
  3. DEFAULT:默认值约束
  4. NOT NULL:设置非空约束,改字段不能为空
  5. FOREIGN KEY:设置外键[2]约束

设置外键

CONSTRAINT 外键名 FOREIGN KEY(外键字段)REFERENCES 参照表(参照字段)ON DELETE SET NULL ON UPDATE CASCADE设置参照完整性

  • RESTRICT拒绝参照表删除或更新参照字段;
  • CASCADE删除活更新参照表的参照字段时,外键表的记录同步删除更新;
  • SET NULL 删除活更新参照表的参照字段时,外键表的外键设为NULL;
  • 用户量大,并发度高,为此数据库服务器很容易成为性能瓶颈,尤其受IO能力限制,且不能轻易地水平扩展;若是把数据一致性的控制放到事务中,也即让应用服务器承担此部分的压力,而引用服务器一般都是可以做到轻松地水平的伸缩;

  1. 主键:主键默认非空、唯一性约束,自动增长一定是主键,主键不一定自动增长; ↩

  2. 外键:只有INNODB的数据库引擎支持外键,外键必须与参照列的数据类型相同(数据值型要求长度类型都相同,字符串要求类型相同,长度可以不同) ↩

你可能感兴趣的:(数据库基础)