达永编程网

程序员技术分享与交流平台

1-数据库基础知识01_数据库基础知识教程

1-1-什么是数据库

存储数据的仓库

1-2-常见数据库

Oracle Mysql SqlServer DB2

1-3-sql语句分类

1) DDL:数据定义语言(create drop)

2) DML:数据操作语句(insert update delete)

3) DQL:数据查询语句(select )

4) DCL:数据控制语句,进行授权和权限回收(grant revoke)

5) TPL:数据事务语句(commit rollback savapoint)

1-4-数据库三范式:

第一范式:1NF是对属性的原子性约束,要求字段具有原子性,不可再分解;(只要是关系型数据库都满足1NF)

第二范式:2NF是在满足第一范式的前提下,非主键字段不能出现部分依赖主键;解决:消除复合主键就可避免出现部分依赖,可增加单列关键字。

第三范式:3NF是在满足第二范式的前提下,非主键字段不能出现传递依赖,比如某个字段a依赖于主键,而一些字段依赖字段a,这就是传递依赖。解决:将一个实体信息的数据放在一个表内实现。

第一范式

第二范式


表中主键为 (学号,课程),我们可以表示为 (学号,课程) -> (成绩,课程学分), 表示所有非主键列 (成绩,课程学分)都依赖于主键 (学号,课程)。 但是,表中还存在另外一个依赖:(课程)->(课程学分)。这样非主键列 ‘课程学分‘ 依赖于部分主键列 ’课程‘, 所以上表是不满足第二范式的。我们把它拆成如下2张表:

第三范式

最后,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,提高读性能,就必须降低范式标准,适当保留冗余数据。具体做法是: 在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,减少了查询时的关联,提高查询效率,因为在数据库的操作中查询的比例要远远大于DML的比例。但是反范式化一定要适度,并且在原本已满足三范式的基础上再做调整的。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言