一. 如何学习Oracle
1. 数据库管理员
管理Oracle(启动停止、数据库故障恢复)
提升Oracle性能(分配内存)优化数据存储结构……2. 数据库程序员编写业务SQL数据库脚本编程(函数、存储过程、触发器)3. java程序员首先应该了解Oracle数据库基本的体系结构,然后重点掌握PL/SQL及Oracle的开发工具二. Oracle 数据库简介 1. 对象关系型的数据库管理系统 (ORDBMS)2. 在管理信息系统、企业数据处理、因特网及电子商务等领域使用非常广泛3. 在数据安全性与数据完整性控制方面性能优越4. 跨操作系统、跨硬件平台的数据互操作能力5. Oracle数据库的主要特点:a. 支持多用户、大事务量的事务处理b. 数据安全性和完整性控制c. 支持分布式数据处理d. 可移植性三. Oracle 体系结构1. 数据库的体系结构是指数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制2. Oracle服务器提供开放、全面和综合的信息管理,它由Oracle数据库和Oracle实例组成管理数据库的后台进程和内存结构的集合称为 Oracle 实例
四. Oracle 实例
1. Oracle 实例是后台进程和内存结构的集合2. 在一般的情况下,每个Oracle数据库都必须对应一个Oracle 实例,但是在特殊情况下,一个服务器中一个数据库可以对应多个实例。所以在建立数据库之前,必须先指定Oracle实例的系统标识符(System Identifier),即Oracle SID。这个Oracle SID就是Oracle实例的名称。因为Oracle SID可以用来区分不同的Oracle数据库,所以SID名称必须是唯一的。五. Oracle 实例内存结构Oracle 的内存结构包含以下两个内存区:系统全局区 (SGA)、程序全局区 (PGA)注意:当服务器进程启动时分配程序全局区1. SGA(系统全局区)分为以下几个区:日志缓冲区、共享池、数据缓冲区 SGA保存了数据库环境和字典信息,由多个数据库进程共享a. 日志缓冲区 :日志记录数据库的所有修改信息减少了保存日志时对磁盘的操作,提高了数据库性能。b. 数据缓冲区 :用于存储从磁盘数据文件中读入的数据,所有用户共享。数据缓冲区的大小对数据库的读取速度有直接的影响。已读取常见表格的数据,减少了对磁盘的操作,提高了数据库性能。c. 共享池 :共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域,共享池的大小直接影响数据库的性能。保存了对SQL分析结果,减少了分析相同SQL的时间,提高SQL执行效率。2. 程序全局区(PGA)包含单个服务器进程所需的数据和控制信息a. PGA是在用户进程连接到数据库并创建一个会话时自动分配的,保存每个与Oracle 数据库连接的用户进程所需的信息b. PGA为非共享区,只能单个进程使用,当一个用户会话结束,PGA释放六. 后台进程Oracle各种进程中,最重要的就是后台进程:1. PMON 进程监控进程:清理出现故障的进程。释放所有当前挂起的锁定。释放故障进程使用的资源。2. SMON 系统监控进程在实例失败之后,重新打开数据库时自动恢复实例。整理数据文件的自由空间,将相邻区域结合起来。释放不再使用的临时段。3. DBWR 数据写入进程 :管理数据缓冲区,将最近使用过的块保留在内存中。将修改后的缓冲区数据写入数据文件中。4. LGWR 日志写入进程 :负责将日志缓冲区中的日志数据写入日志文件。系统有多个日志文件,该进程以循环的方式将数据写入文件。七. Oracle 数据库1. Oracle 数据库由操作系统文件组成,这些文件为数据库信息提供实际物理存储区2. Oracle 数据库包括逻辑结构和物理结构逻辑结构指数据库创建之后形成的逻辑概念之间的关系
A.物理架构a. 数据文件:用于存储数据库数据,如表、索引数据等。b. 日志文件:记录对数据库的所有修改信息,用于故障恢复。c. 控制文件:记录数据库物理结构的二进制文件。B. 逻辑架构:指Oracle的逻辑上是用什么“单位”进行存储a. 数据块:数据块是Oracle服务器所能分配、读取或写入的最小存储单元。Oracle服务器以数据块为单位管理数据文件的存储空间。b. 区:区为段分配空间,它由连续的数据块组成。当段中的所有空间已完全使用时,系统自动为该段分配一个新区。区不能跨数据文件存在,只能存在于一个数据文件中。c. 段:段是构成表空间的逻辑存储结构,段由一组区组成。按照段所存储数据的特征,将段分为四种类型,即数据段、索引段、回退段和临时段。d. 表空间是数据库中最大的逻辑单位,一个 Oracle 数据库至少包含一个表空间,就是名为SYSTEM的系统表空间。每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联。表空间的大小等于构成该表空间的所有数据文件大小之和。创建表空间的语法是:CREATE TABLESPACE tablespacename
DATAFILE ‘filename’ [SIZE integer [K|M]]
[AUTOEXTEND [OFF|ON]];
e. 模式:英文Schema,模式是对用户所创建的数据库对象的总称。模式对象包括表、视图、索引、同义词、序列、过程和程序包等。与用户的关系:模式名称就是控制该模式的用户名称。八. 实例与数据库关系1. 两者关系一个实例只能管理一个数据库一个数据库可能由多个实例同时管理2. 单实例与多实例一个数据库只有一个实例管理,叫单实例数据库。一个数据库同时由多个实例管理,叫多实例数据库。九. PL/SQL程序简介1. PL/SQL程序组成组成PL/SQL程序的最基本的单元是PL/SQL块。2. PL/SQL块的分类A. 匿名块:直接执行的块B. 命名块:通过名称调用的块a. 子程序(包括存储过程和函数):类似JAVA的方法和函数b. 触发器:类似JAVA的事件处理代码,当某件事情发生时自动执行c. 包:类似JAVA的package,主要的作用组织代码和避免命名冲突。十. PL/SQL运行机制1. 了解PL/SQLPL/SQL是对标准SQL的扩充。PL/SQL执行需要PL/SQL引擎执行,PL/SQL引擎可能一般安装在服务端,但也有可能安装在客户端。2. 运行机制A. 服务器端的PL/SQL引擎(如Oracle服务器)执行过程a. 标准SQL交给SQL引擎处理b. 非标准部分交给PL/SQL引擎处理B. 客户端的PL/SQL引擎(如Oracle Forms)执行过程a. 标准SQL交给服务器的SQL引擎处理b. 非标准部分交给PL/SQL引擎在客户端处理,如果没有SQL,则所有PL/SQL 都是在客户端处理的。十一. PL/SQL块的编译过程1. 为什么要编译PL/SQL块必须编译为机器码才能够执行2. PL/SQL块a. 匿名块:执行前编译b. 命名块: 在创建时或修改进即时编译3.编译过程A. PL/SQL引擎B. 语法检查:检查PL/SQL代码的语法或编译错误。a. 绑定:如果语法检查通过,编译器则为Oracle存储数据的程序变量分配一个存储地址,这个过程称为绑定。绑定允许Oracle在程序运行时引用存储地址。
b. 检查对表、列等对象的引用
C. 产生伪代码,并且设置合法状态注意,即使状态设置为合法,如果在执行对应的表不存在,则执行仍会失败,并且状态自动设置为不可用。
十二. 使用PL/SQL的好处1. 为什么要使用PL/SQLa. 减少网络流量,提高应用程序性能b. 提供模块化程序开发能力,简化了开发和维护c. 具有良好的兼容性,不同的开发工具可以使用相同的PL/SQL脚本d. 允许定义标识符,增加了程序可读性e. 提供了程序控制结构,增强的业务处理能力f. 提供了异常处理,让PL/SQL程序更健壮十三. 数据字典a. 数据字典保存数据对象和段的信息,它是一个存放在SYSTEM表空间的只读对象,不允许任何人对其进行修改。b. 数据库对象包括:用户、角色、表空间、表、视图、簇、类型、同义词、序列、索引、数据库链接、存储过程、函数、包、触发器等。c. Oracle将这些数据库对象组合到一个称为Schema(翻译为模式)的集合中。一个Schema只能够被一个数据用户所拥有,并且Schema的名称与这个用户的名称相同。十四. 表 在Oracle中表的概念以及创建、删除、修改表的语法与其它数据库基本相同。Oracle表常见的数据类型:如表数据类型 | SQLServer | Oracle |
整数 | int,smallint,bigint | number(m) |
小数 | decimal | number(m,n) |
定长字符串 | char | char |
变长字符串 | varchar | varchar2 |
日期 | smalldatetime,datetime | date |
新闻热点
疑难解答