三范式
1NF:原子性,字段不可分;
2NF:唯一性,有主键,非主键字段依赖主键;
3NF:每列都与主键有直接关系,不存在传递依赖,非主键字段不能相互依赖;
例子:
1NF:(关系数据库中create不出这样的表)
2NF:无主键,存在问题:插入异常。
3NF:
学生表:学号, 姓名, 所在学院, 学院电话,关键字"学号";
存在依赖传递: (学号) → (所在学院) → (学院地点, 学院电话)
存在问题:数据冗余
修正:
学生表:学号, 姓名, 所在学院;
学院表:学院, 电话。
注:NoSQL中与关系型数据库其中最大的不同点是不支持1NF,不固定属性,可以为数组。
性能调优
(2ÿ
1NF:原子性,字段不可分;
2NF:唯一性,有主键,非主键字段依赖主键;
3NF:每列都与主键有直接关系,不存在传递依赖,非主键字段不能相互依赖;
例子:
1NF:(关系数据库中create不出这样的表)
2NF:无主键,存在问题:插入异常。
3NF:
学生表:学号, 姓名, 所在学院, 学院电话,关键字"学号";
存在依赖传递: (学号) → (所在学院) → (学院地点, 学院电话)
存在问题:数据冗余
修正:
学生表:学号, 姓名, 所在学院;
学院表:学院, 电话。
注:NoSQL中与关系型数据库其中最大的不同点是不支持1NF,不固定属性,可以为数组。
性能调优
1、服务器角度,方法:观察CPU占用等排除非SQL的问题。
2、定位哪条SQL问题,方法:AWR(Oracle才有)。
3、SQL结果是否正确,方法:有历史纪录看历史,无则观察测试环境。
4、从业务角度分析SQL性能。
5、从SQL角度分析SQL性能,方法:explain plan,具体调优如下:
(2ÿ