日期:2014-05-16  浏览次数:20374 次

oracle第一章的总结
第一章:Oracle数据库基本概念总结:
Oracle的发展历史,Oracle公司原名为SDL,是由1977年6月,在硅谷创建的一个只有3个人的名为
软件开发实验室的公司,最开始开办这公司的3个人,并没有一个明确的方向,直到后来看见了1970年
IBM公司的CODD博士提出关系模型理论后。在1979年Oracle更名为RSI,1983年再次更名为Oracle。
   在Oracle的庞大的应用体系中,包括了两个方向,一个是DBA,一个是对数据库编程的数据库程序员
   什么是PL/SQL:   PL/SQL是procedural language(过程语言)的缩写,本身是指Oracle特有的脚步语言,表示了数据库
脚步开发是面向过程的。
   组成PL/SQL的最基本的单元是PL/SQL块,块可以分为匿名块,命名块。命名块又包括:子程序,包,触发器
用户编写的匿名块代码放在客服端,而命名块放在服务器,无论是放在那里,都需要PL/SQL引擎执行,引擎安装
在Oracle数据库服务器中或一些客服端的应用开发工具中,因此PL/SQL可以在Oracle服务器或者一些应用开发工具
环境中运行。
   如何处理PL/SQL:   SQL语句处理器总是在服务器的上,PL/SQL是对标准SQL的扩充,那么PL/SQL代码包含了SQL的内容,又包含了PL/SQL
本身所添加的的过程性语句。如果PL/Sql引擎在服务器上,那么整个PL/SQL块,将发送的服务器的PL/SQL引擎,PL/SQL
引擎在接受发送过来的PL/SQL块后,由自己处理执行过程性语句等PL/SQL本身添加的内容,而将SQL语句剥离出来转发到
SQL引擎。如果PL/SQL引擎在客服端,只需将SQL语句发送的Oracle的服务器。
   PL/SQL的编译过程:   每次一个匿名的PL/SQL块执行时,代码被送到服务器上的PL/SQL引擎。在这里进行PL/SQL的编译.
1)语法检查:PL/SQL代码的语法或编译错误,变量有没定义,语句结尾有没分号等。
2)绑定: 如果通过了语法检查,编译器为Oracle存储数据程序变量分配空间,这个过程称之为绑定。
3)伪代码产生:伪代码是对PL/SQL引擎的指令列表,对于命名块,伪代码存储在数据库中,以备程序下次执行使用,
一旦编程成功PL/SQL块的状态值设置为valid(有效)反之为(invalid).
   使用PL/SQL的好处:
1)提高应用程序的性能.
   以往的SQL语句,如果执行了20句SQL语句,那么就要与服务器交互20次,而PL/SQL可以作为单个单元进行发送,只需一次。
2)提供模块化程序开发能力。
3)具有良好的兼容性。
4)允许定义标示符。
5)提供程序控制结构。
6)提供异常处理。
Oracle数据库的体系架构:
    Oracle体系架构包括了,实例和数据库。而实例包括了内存和进程,内存包括了SGA和PGA。
Oracle内存结构主要可以分为共享内存区,共享内存区主要由SGA组成,非共享内存区主要由PGA组成
SGA包括几个总要的区域:1)数据库缓冲区:是SGA的主要成员,用来存放读取自数据文件的数据块副本,或者用户曾经处理过的数据,主要是减少对磁盘的读写
当用户首次查询某块数据时,首先在该区域进行检索,如果找到了称为缓存命中(CACHE HIT)反之为缓存失效(cache missi)
2)重做日志文件区,该区域记录了所有数据库的操作,在适当的时机由LGWR进程将其写入磁盘,在数据损坏时可以必要的恢复,
3)共享池:是SGA最关键的内存片段,共享词分为库缓存,数据辞典缓存,库缓存包括了共享SQL区,私有SQL区,
   Oracle对SQL语句处理过程:1)语法检查。
2)语义检查,检查SQL语句中访问对象是否存在等
3)对SQL语句进行解析:利用内部算法对SQL语句进行解析,生成解析树,以及执行计划。
4)执行SQL,返回结果。
   注意:第一次执行SQL语句时,SQL解析结果(解析树以及执行计划)放在共享SQL区,而解析SQL语句时所需要的表的名称,字段名称,数据
类型,等数据存放在数据辞典缓存中,在一次执行执行SQL语句时,Oracle利用内部算法取得该SQL的HASH值,然后在库缓存查找是否存在该HASH
值,如果存在将此SQL与缓存区的进行比较,如果相同,就利用已有的的解析树和执行计划。
   Oracle数据库的逻辑结构:1)表空间。最大的独立的存储空间,通常一个业务系统就需要一个表空间,相当与SQLserver的数据库
2)段,相同的数据保存在相应的段。如数据段,索引段,回滚段。
3)块,最小的存储空间,通常为2K。
4)区,最小的分配单位。通常为4K。
   Oracle数据库的物理结构:
1———数据文件。
2———重做日志文件
3———控制文件
4———初始化参数文件
  Oracle的序列:
创建序列:
  Create sequence 序列名  increment by 增量种子数 start with 起始数字 maxvalue 最大数;
删除序列:
  drop sequence 序列名。
  注意:创建序列完毕之后,该序列有nextval和nextValue两个属性,一个是返回下一个序列,一个是当前
序列的值。



[b][/b][color=red][/color]