数据库完整性
关系数据库的三大完整性:
- 实体完整性:定义主键,检查其是否唯一(默认在主键上自动创建索引,避免全表扫描比较),是否为空。
- 参照完整性:定义外键,可以为空但不能为错误的值。其中,对参照表进行插入元组或者修改外码值可能破坏被参照表的完整性,拒绝处理;
对被参照表删除元组或者修改主码值可能破坏参照表的完整性,可以拒绝执行(NO ACTION)、级联操作(CASCADE)、设置空值(SET NULL)。 - 用户定义完整性:定义其他约束,如列值非空(NOT NULL)、列值唯一(UNIQUE)、检查条件(CHECK短语)、默认值(DEFAULT)。
数据库三大范式
- 第一范式:原子性,字段不可再分。指数据库表的每一列都是不可再分的数据项。
- 第二范式:唯一性,在第一范式的基础上,要求数据库表的每一行都可以被唯一区分,通常通过加主码实现。
- 第三范式:无冗余性,在第二范式的基础上,消除间接依赖。即任何字段不能由其他字段派生出来,不能冗余。
数据库设计
- 需求分析:了解与分析用户需求
- 概念结构设计:遵循第三范式建立E-R模型
- 逻辑结构设计:将E-R图转换为关系模型
- 物理结构设计:为关系模式确定存取方法(索引or聚簇),以及设计关系、索引等数据库文件的物理存储结构。可以降低范式,增加字段,允许冗余。
- 数据库实施
- 数据库运行和维护
MySQL数据库优化
推荐文章:https://www.cnblogs.com/villion/archive/2009/07/23/1893765.html