数据库中的关系、范式、索引

1.关系:是一个已命名的二维数据表。每个关系(表)包含一组已命名的列,以及任意数目的未命名的行。

关系的性质:

(1)数据库中每个关系(表)的名字是唯一的

(2)任意行的任一列值是原子的(单值)。在关系内,不允许有多值属性。即行列相交只能对应一个值,不能有几个值。

(3)每一行是唯一的,同一关系内的任意两行都不能相同。

(4)表中的每个属性(列)的名字是唯一的。

(5)关系中行,列的顺序都是无关的。

2.规范化

规范化是将含有异常的关系分解为更小的、良构的关系的过程。

规范化可以分为几个阶段来实现和理解,每个阶段都对应有一个范式。

范式是根据函数依赖(或是属性间联系)对关系应用某些简单准则后所得到的关系状态。

第一范式:任何多值属性都被去除,表中所有行与所有列交叉处都只有一个值

第二范式:所有部分函数依赖都被去除

第三范式:所有传递依赖都被去除。

3.相关概念

函数依赖:是存在于两个属性或两个属性集之间的约束。对任意关系R,当以下条件成立时,我们称属性B函数依赖于属性A:对于任意的有效地属性A的实例,它的值唯一决定B的值。B对A的函数依赖可以用箭头表示如下:A->B。

部分函数依赖:是这样一个函数依赖,关系中的一个或多个非键属性函数依赖于部分主键。

传递依赖:是在两个或多个非键属性间的函数依赖

4.索引

索引也是一张表,它包含有两列,键和包含该键值的记录或记录组的位置。

5.数据库优化

①调整数据结构的设计。这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。
②调整应用程序结构设计。这一部分也是在开发信息系统之前完成,程序员在这一步需要考虑应用程序使用什么样的体系结构,是使用传统的Client/Server两层体系结构,还是使用Browser/Web/Database的三层体系结构。不同的应用程序体系结构要求的数据库资源是不同的。
③调整数据库SQL语句。应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL语句的执行效率最终决定了ORACLE数据库的性能。ORACLE公司推荐使用ORACLE语句优化器(Oracle Optimizer)和行锁管理器(row-level manager)来调整优化SQL语句。
④调整服务器内存分配。内存分配是在信息系统运行过程中优化配置的,数据库管理员可以根据数据库运行状况调整数据库系统全局区(SGA区)的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序全局区(PGA区)的大小。需要注意的是,SGA区不是越大越好,SGA区过大会占用操作系统使用的内存而引起虚拟内存的页面交换,这样反而会降低系统。
⑤调整硬盘I/O,这一步是在信息系统开发之前完成的。数据库管理员可以将组成同一个表空间的数据文件放在不同的硬盘上,做到硬盘之间I/O负载均衡。
⑥调整操作系统参数,例如:运行在UNIX操作系统上的ORACLE数据库,可以调整UNIX数据缓冲池的大小,每个进程所能使用的内存大小等参数。 
实际上,上述数据库优化措施之间是相互联系的。ORACLE数据库性能恶化表现基本上都是用户响应时间比较长,需要用户长时间的等待。但性能恶化的原因却是多种多样的,有时是多个因素共同造成了性能恶化的结果,这就需要数据库管理员有比较全面的计算机知识,能够敏感地察觉到影响数据库性能的主要原因所在。另外,良好的数据库管理工具对于优化数据库性能也是很重要的。

posted on 2009-12-17 23:27  怂QQ  阅读(657)  评论(0)    收藏  举报