数据库概论的笔记(二)

2015-02-02 13:29:56 · 作者: · 浏览: 35
执行顺序。

1)执行该表上的before触发器

2)激活触发器上的sql语句

3)执行该表上的after触发器。

规范化

设R(U)是属性集U上的关系模式。X,Y是U的子集。如果对于R(U)的任意一个可能的关系R,R中不可能存在两个元组在X上的属性值,而在Y上的属性值不等,则称x函数圈定y,或者是y函数依赖于x。

1.完全函数依赖

在R(U)中,如果y函数依赖于y,并且对于x的任何一个真子集x',都有y函数不依赖于x'.则称y对x完全函数依赖。

2.范式

1)。一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的激活。这种过程叫做规范化。

2)。关系,作为一张二维表,对他有一个最起码的要求:每一个分量必须是不可分的数据项。满足这一条件的关系模式就属于第一范式。

3.如果关系R属于第一范式,且每一个非主属性完全函数依赖于吗,即消除部分函数依赖,来达到第二范式。

4)。关系模式R中如果不存在这样的吗Y,属性组Y及非数主属性Z(Z不属于Y),使得y函数依赖于X,且Z函数依赖于Y成立,X不依赖于Y.。则称关系模式属于第三范式。如果是第三范式,它的任何非键属性都并不传递依赖于任何候选键。

进程

进程的概念一分为二,task是申请资源的最小单位,而thread是调度和运行的最小单位。一个task可以有多个thread,这些thread共享task的所有资源,共同完成一个任务。

1.线索机制与进程机制的比较

1)线索比进程占用更少的资源。

2线索调度比较灵活。.

3)线索切换开销较小:线索共享同一地址空间,而进程的地址空间是私有的。

4)线索通信简便

游标

系统为用户开设的一个数据缓冲池,存放sql语句的执行结果,每一个游标区都有一个名字。

PL/SQL ( procedural language/sql)

pl/sql是编写数据库存储过程的一种过程语言,是对sql的扩展,使其增加了过程化语句功能。

1.pl/sql概述

pl/sql程序的基本结构是块,每个快完成一个逻辑操作

注:

1.pl/sql块主要有两种类型,即命名块和匿名块。匿名块每次执行时都要进行编译,它不能存储到数据库中,也不能在其他的pl/sql块中引用。

2.存储过程和函数是命名快,他们被编译后保存在数据库中,可以被反复的调用,运行速度较快。

pl/sql的创建

1.creste procedure 过程名(【参数1,参数2,...】)

as

2.alter procedure 过程名1 rename to 过程名2;

执行pl/sql

call /perform procedure 过程名(【参数列表】);

删除pl/sql

drop procedure 关系名();

注:

1.l优化时,在既有选择操作和链接操作时,应当先做选择操作,这样参加连接的元组就可以大大减少。者是代数优化

2.选择操作算法有全表扫描和索引扫描,应当选用索引扫描。

3.表的连接采用index join代价页较小。这是物理优化。

总结

1.关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户自定义完整性。

2.存储过程与函数的区别

存储过程是用户定义的一系列sql语句的集合,设计特定的表或其他对象的任务,用户可以调用存储过程;

而函数通常是数据库已定义的方法,它接受参数并返回某种类型的值并且不涉及特定的用户表。