《Oracle数据库教程第01章.ppt》由会员分享,可在线阅读,更多相关《Oracle数据库教程第01章.ppt(72页珍藏版)》请在三一办公上搜索。
1、,Oracle 10g数据库基础教程,Oracle 简介,Oracle的原义是“神喻”,即神说的话。在中国商代,出现了刻在龟壳上的文字,被称为神的指示。所以,在中国,Oracle 被翻译成“甲骨文”。在数据库领域,Oracle代表两个含义:一是Oracle(甲骨文)公司;另一是指该公司的数据库系统产品Oracle数据库管理系统。,第1章 Oracle 10g简介,课程描述Oracle 10g是当前最流行的大型关系数据库之一,支持包括32位Windows、64位Windows、OS、HP-UX、AIX5L、Solaris和Linux等多种操作系统,拥有广泛的用户和大量的应用案例。,本章知识点,O
2、racle 10g数据库的版本Oracle 10g体系结构,Oracle 10g的四个版本,Oracle数据库10g标准版1Oracle数据库10g标准版Oracle数据库10g企业版Oracle数据库10g个人版,1.1 Oracle 10g产品概述,Oracle数据库10g标准版1(Oracle Database 10g Standard Edition One)1、为工作组、部门级和互联网/内联网应用程序提供了前所未有的易用性和很高的性价比。2、从针对小型商务的单服务器环境到大型的分布式部门环境,包含了构建关键商务的应用程序所必需的全部工具。3、Standard Edition One
3、仅许可在最高容量为两个处理器的服务器上使用。,Oracle 10g产品概述,Oracle数据库10g标准版(Oracle Database 10g Standard Edition)1、该版本提供了标准版1的前所未有的易用性、能力和性能,并且利用真正应用集群提供了对更大型的计算机和服务集群的支持。2、它可以在最高容量为4个处理器的单台服务器、或者在一个支持最多4个处理器的服务器的集群上使用。,Oracle 10g产品概述,Oracle数据库10g企业版(Oracle Database 10g Enterprise Edition)1、为关键任务的应用程序提供了高效、可靠、安全的数据管理。2、为
4、企业提供了满足当今关键任务应用程序的可用性和可伸缩性需求的工具和功能。3、包含了Oracle数据库的所有组件,并且能够通过购买选项和程序包得到进一步增强。支持OLTP(联机事务处理),有大规模的实时生产数据产生的企业环境中。,Oracle 10g产品概述,Oracle数据库10g个人版(Oracle Database 10g Personal Edition)需要与Oracle数据库10g标准版1、Oracle 数据库标准版和 Oracle 数据库企业版完全兼容的单用户开发和部署。,1.2 Oracle 10g数据库系统的体系结构,Oracle 10g数据库系统的体系结构 数据库服务器是信息管
5、理的关键,Oracle 10g体系结构概述,一个服务器可以实现以下功能:在多用户网络环境中管理大量的数据,从而保证许多用户同时访问相同的数据。防止没有授权的访问。提供有效的故障恢复解决方案。,Oracle 10g体系结构概述,Oracle数据库是按照规定的单位进行管理的数据集合,用于存储并获取相关信息。Oracle数据库是第一个为企业网格计算(grid computing)而设计的数据库系统,Oracle 10g的g就代表grid computing。Oracle数据库把数据存储在文件中,这些保存数据库不同信息的文件组成了Oracle的物理结构。,Oracle 10g体系结构概述,数据库的体系
6、结构可以按照逻辑结构和物理结构来划分:,Oracle 10g体系结构概述,Oracle将数据库按照规定的结构划分为不同级别的逻辑单元。这里指的逻辑单元包括表、视图等常见的数据库组件。逻辑结构和物理结构是分离的,对物理结构的管理可以不影响对逻辑存储结构的访问。,网格结构,网格计算是一种新的IT结构,它可以开发出高效低耗的企业信息系统。使用网格计算,连接并重组许多独立的、模块化的硬件和软件组件。网格计算的目的是解决企业信息技术中的一些常见问题。与其他计算模型相比,以网格形式设计和实现的系统可以提供更高质量的服务、更低的成本和更大的灵活性。,网格结构,区分网格计算和其他计算方式:虚拟(Virtual
7、ization)相互独立的资源(例如计算机、磁盘、应用程序组件和信息资源等)按照类型组织在一个池中,供用户使用。这种方式打破了资源提供者和用户之间的硬编码联系,系统可以根据特定的需要自动准备资源,而用户不需要了解整个过程。提供(Provisioning)用户通过虚拟层申请资源,由系统来决定如何满足用户的特定需求,从而对系统进行整体的优化。,网格结构,网络资源管理包括以下内容:基础资源 构成数据存储和程序执行环境的软件和硬件。硬件资源包括磁盘、处理器、内存和网络等,软件则包括数据库、存储管理、系统管理、应用服务器和操作系统等。通过扩展多个计算机的计算能力以及多个磁盘或磁盘组的存储能力,可以排除单
8、个资源故障所造成的影响,保障系统安全有效地运行。应用程序 业务逻辑和处理流程的编码。信息 用户需要的数据。信息可能保存在数据库或文件系统中,也可能以邮件格式或应用程序自定义格式保存。,网格结构,Oracle 10g的网格计算能力如下:服务器虚拟(Server Virtualization)Oracle实时应用集群(RAC)可以使一个数据库运行在网格的多个节点上,将多个普通计算机的处理资源集中使用。Oracle在跨计算机分配工作负载的能力方面具有独特的灵活性,因为它是唯一不需要随工作进程一起对数据进行分区和分配的数据库技术。存储虚拟(Storage Virtualization)Oracle 1
9、0g的自动存储管理(ASM)特性提供了数据库和存储之间的一个虚拟层,这样多个磁盘可以被看作是一个单独的磁盘组,在保证数据库在线的情况下,磁盘可以动态地加载或移除。网格管理 网格计算将多服务器和多磁盘集成在一起,并且对它们实现动态分配,因此独立的资源可以实现自我管理和集中管理就变得非常重要。Oracle 10g的网格控制特性提供了将多系统集成管理为一个逻辑组的控制台,可以管理网格中独立的节点,集中维护各组系统的配置和安全设置。,数据库逻辑结构,Oracle 数据库的逻辑结构包括方案(schema)对象、数据块(data block)、区间(extent)、段(segment)和表空间(table
10、space)等。数据库由若干个表空间组成,表空间由表组成,表由段组成,段由区间组成,区间则由数据块组成。,数据库逻辑结构,表空间和表、段、区间、数据块的关系,方案,方案是一组数据库对象的集合。在创建用户的时候,会同时生成一个与用户同名的方案,此方案归同名用户所有。方案对象直接处理数据库数据的逻辑结构,例如表(table)、视图(view)、索引(index)和簇(Clusters)等。,方案,表 数据库中最常用的数据存储单元,它包括所有用户可以访问的数据。作为关系型数据库,Oracle表由行和列组成。,列,行,列名,方案,视图 虚拟的表,它在物理上并不存在。视图可以把表或其他视图的数据按照一定
11、的条件组合起来,所以也可以把它看成是一个存储的查询。视图并不包含数据,它只是从基表中读取数据。,方案,索引 与表相关联的可选结构。创建索引可以提高读取数据的效率。索引的功能类似于书的目录一样,读者可以通过目录很快地在书中找到需要的内容,Oracle索引提供对表数据的访问路径,从而使用户能够快速定位指定的信息。在图书中,索引就是内容和相应页号的清单。在数据库中,索引就是表中数据和相应存储位置的列表。对于包含了大量数据的表来说,如果没有索引,那么对表中的数据检索时速度可能慢得令人难以忍受。,索引是一种可选的数据结构,在一个表上是否建立索引,不会对表的使用方式产生任何影响。但是如果在表中的某些字段上
12、建立了索引,能够显著地提高对该表的查询速度,并且可以在很大程度上减少查询时的硬盘I/O操作。如果一个表中包含有很多条记录,当对表执行查询时,必须将所有的记录一一取出,以便将每一条记录与查询条件进行比较,然后再返回满足条件的记录。这样进行操作的时间开销和I/O开销都是很巨大的,这时可以考虑通过索引来减小开销。,簇 有些表共享公共的列,并经常被同时访问,为了提高数据存取的效率,把这些表在物理上存储在一起,得到的表的组合就是簇。与索引相似,簇并不影响应用程序的设计。用户和应用程序并不关心表是否是簇的一部分,因为无论表在不在簇中,访问表的SQL语句都是一样的。,数据块,数据块是Oracle管理数据库存
13、储空间的最小数据存储单位。一个数据块对应磁盘上一定数量的数据库空间,标准的数据块大小由初始参数DB_BLOCK_SIZE指定。数据块既是逻辑单位,也是物理单位。,数据块的格式,公共的变长头:包含数据块的通用信息,如地址块和段类型等。表目录:包含在此块中有行数据的表的信息。行目录:包含此块中实际行数据的信息(包括在行数据区中每个行数据片的地址)。空闲空间行数据:包含表或索引数据。行数据的存储可以跨越数据块,也即,一行数据可以分别存储在不同的数据块中。,区间,区间是数据库存储空间中分配的一个逻辑单元,由一组相邻的数据块组成,它是Oracle分配磁盘空间的最小单位。MINEXTENTS定义了段所能包
14、含的最小区间数量,在创建段时,它所包含的区间数量只能为MINEXTENTS。,段,段由一组区间组成。,表空间,数据库可以划分为若干的逻辑存储单元,这些存储单元被称为表空间。每个数据库都至少有一个系统表空间(称为SYSTEM表空间)。在创建表时,需要定义保存表的表空间。,表空间,大文件表空间:是oracle 10g中一种新的表空间类型。只能包含一个单独的大文件,而不是若干个小文件,所以不需要考虑增加数据文件和处理多个文件的开销。在创建表空间时,系统默认创建小文件表空间(smallfile tablespace),这是传统的oracle表空间类型。系统表空间和辅助表空间只能使用小文件表空间创建。,
15、系统表空间:每个oracle数据库都包含一个SYSTEM表空间,当数据库创建时,它会自动创建;当数据库打开时,它始终在线。包含整个数据库的数据字典表。辅助表空间:数据库组件将SYSAUX表空间作为存储数据的默认位置,当数据库创建或升级时,它会自动创建。在进行普通的数据库操作时,Oracle数据库服务器不允许删除SYSAUX表空间,也不能对其进行改名操作。,撤销表空间:每个数据库中都可以包含多个undo表空间,在自动撤销管理模式中,每个Oracle实例都指定了唯一一个undo表空间。Undo区间由Oracle自动创建并维护。临时表空间:如果系统表空间是本地的,则在创建数据库时至少要创建一个默认的
16、临时表空间。如果删除所有的临时表空间,则SYSTEM表空间被用作临时表空间。,在线和离线表空间:除了SYSTEM表空间外,数据库管理员可以将其他任何表空间设置为在线和离线状态。表空间和方案的关系:同一方案中的对象可以存储在不同的 表空间中。表空间可以存储不同方案中的对象。,表空间,数据库、表空间和数据文件的关系,每个表空间由一个或多个数据文件组成。数据文件用于在物理上存储表空间中所有逻辑结构的数据。表空间中数据文件的大小之和就是表空间的存储容量(图中系统表空间存储容量为2MB,用户表空间的存储容量为4MB)。数据库中表空间的存储容量之和就是数据库的存储容量。,数据库物理结构,物理结构由构成数据
17、库的操作系统文件所决定。每个Oracle数据库都由3种类型的文件组成:数据文件、日志文件和控制文件。,数据文件,Oracle数据库有一个或多个物理的数据文件。数据库的数据文件包含全部数据库数据。逻辑数据物理地存储在数据文件中。数据文件有下列特征:一个数据文件仅与一个数据库联系。当数据库容量越界时,数据文件能够自动扩展。一个或多个数据文件组成一个表空间。,日志文件,每个数据库有两个或多个日志文件组,日志文件组用于收集数据库日志。日志的主要功能是记录对数据所作的修改,所以对数据库作的全部修改记录在日志中。为了防止日志文件本身的故障,Oracle允许镜像日志,在不同磁盘上维护两个或多个日志副本。,控
18、制文件,每个Oracle数据库有一个控制文件,记录数据库的物理结构。控制文件包含数据库名、数据库数据文件和日志文件的名字、位置和数据库建立日期等信息。,控制文件,控制文件(Control File)是一个较小的二进制文件,用于描述数据库结构。,描述信息如下:数据库建立的日期。数据库名。数据库中所有数据文件和日志文件的文件名及路径。恢复数据库时所需的同步信息。,要点注意:在打开和存取数据库时都要访问该文件。记录控制文件名及路径的参数为:CONTROL_FILES,数据库例程,每个运行的Oracle数据库都对应一个Oracle例程(Instance),也可以称为实例。当数据库服务器上的一个数据库启
19、动时,Oracle将分配一块内存区间,叫做系统全局区(SGA),并启动一个或多个Oracle进程。SGA和Oracle进程结合在一起,就是一个Oracle例程。,例程(instance),Oracle数据库结构又称为例程结构.数据库启动时:Oracle首先要在内存中获取、划分、保留各种用途的区域,运行各种用途的后台,即:创建一个例程(instance);然后由该例程装载(mount)、打开(open)数据库;最后由这个例程来访问和控制数据库的各种物理结构,如果把Oracle数据库比作一部汽车,instance相当于汽车的发动机一样,启动oracle数据库前提应先启动instance.,当用户连
20、接到数据库并使用数据库时,实际上是连接到该数据库的例程,通过例程来连接、使用数据库。所以例程是用户和数据库之间的中间层。例程与数据库的区别:数据库指的是存储数据的物理结构,总是实际存在的;例程则是由内存结构和一系列进程组成,可以启动和关闭。,内部存储结构,内存结构是Oracle数据库体系中最为重要的一部分,内存也是影响数据库性能的第一因素.按照内存的使用方法的不同,Oracle数据库的内存又可以分为SGA(System Global Area)和PGA(Program Global Area).,内存结构,系统全局区(System Global Area,SGA)程序全局区(Program G
21、lobal Area,PGA),系统全局区(SGA),SGA是ORACLE系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。每个例程都只有一个SGA.它是不同用户进程与服务进程进行通信的中心,数据库的各种操作主要在SGA中进行,所以称其为系统全局区.创建例程时,Oracle为SGA分配内存;终止例程时,释放SGA所占用的内存.,数据库缓冲区(Database Buffer Cache),保存最近从数据文件中读取的数据块,其中的数据被所有用户共享.两个参数影响DBC:DB_BLOCK_SIZE 缓冲区数据块大小 DB_BLOCK_BUFFERS 缓
22、冲区数据块个数,重做日志缓冲区,当执行DML(Data Manipulation Language,数据操纵语言)如:update、delete、insert或者create、alter、drop 等语句时,Oracle都会为这些操作生成重做记录.重做日志高速缓冲区就是用于存储重做记录的缓存.,重做日志缓存工作原理,日志写进程,归档进程,为提高效率,重做记录并不直接写入磁盘的重做日志文件,而是先写入重做日志缓存;当重做日志缓存中的重做记录达到一定数量时,由LGWR进程写入重做日志.(先内存后磁盘),共享池(Shared Pool),共享池保存了最近执行的SQL语句、PL/SQL程序和数据字典信
23、息,是对SQL语句和PL/SQL程序进行语法分析、编译、执行的内存区.,Java池,8i以后提供的对Java的支持,用于存放Java代码、Java程序等.一般不小于20M,以便虚拟机运行.,大池,大池用于需要大内存操作提供相对独立的内存空间,以便提高性能。大池是可选的内存结构。DBA可以决定是否需要在SGA中创建大池。需要大池的操作:数据库备份和恢复 大量排序的SQL语句 并行化的数据库操作,数据字典缓冲区,在Oracle运行过程中,Oracle会频繁的对数据字典中的表、视图进行访问,以便确定操作的数据对象是否存在、是否具有合适的权限等信息。数据字典缓冲区保存了最常用的数据字典信息。数据字典缓
24、存中存放的记录是一条一条的,而其他缓存区中保存的是数据块.,PGA(Program Global Area),PGA是用户进程连接到数据库,并创建一个对应的会话时,由Oracle为服务进程分配的,专门用于当前用户会话的内存区。PGA是非共享的,而SGA是共享的。PGA大小由操作系统决定,并且分配后保持不变;会话终止时,自动释放PGA所占的内存。,1.2.7 进程结构,进程是操作系统中的一个概念,是一个可以独立调用的活动,用于完成指定的任务。进程与程序的区别是:进程是动态创建的,完成后销毁;程序是静态的实体,可以复制、编辑。进程强调执行过程,程序仅仅是指令的有序集合。进程在内存中,程序在外存中。
25、,进程结构,用户进程 运行应用程序或Oracle工具。Oracle进程 运行Oracle服务器代码。Oracle进程包括服务器进程和后台进程。,用户进程,当用户运行一个应用程序时,就建立一个用户进程。,服务进程,服务进程 处理用户进程的请求。处理过程分析SQL命令并生成执行方案。从数据缓冲存储区中读取数据。将执行结果返回给用户。,后台进程,后台进程 为所有数据库用户异步完成各种任务。,应用程序结构,客户/服务器结构,应用程序结构,多层结构是对客户/服务器结构的一种扩展:客户端。应用程序服务器。数据库服务器。Oracle Net Services,1.2.9 事务,事务是包含一组数据库操作的逻辑
26、工作单元。在事务中包含的数据库操作是不可分割的整体,要么一起被执行,要么回滚到执行事务之前的状态。事务做为一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务。,事务具有以下4个属性:(1)原子性:事务应作为一个逻辑工作单元看待,事务中的所有语句要么全部执行,要么全部取消。(2)一致性:事务中的任何操作都不能破坏数据库的完整性。事务如果能够执行成功,则事务所修改的数据必须遵循数据库中各种约束、规则的要求,所有数据应该处于一致性状态。(3)隔离性:当多个事务同时运行时,不同的事务互不干扰,独立运行。(4)永久性:当事务执行成功后,事务对数
27、据库所做的操作结果会永久保持。,总 结,Oracle体系结构由内存结构、进程结构、存储结构组成内存结构由SGA、PGA组成存储结构由逻辑存储、物理存储组成进程结构由用户进程和Oracle进程组成.,逻辑存储结构,逻辑存储结构主要描述Oracle数据库的内部存储结构,即从技术概念上描述在Oracle数据库种如何组织、管理数据.因此,逻辑存储结构是和操作系统平台无关的,是由Oracle数据库创建和管理的.,物理存储结构,物理存储结构主要描述Oracle数据库的外部存储结构,即在操作系统种如何组织、管理数据.因此,物理存储结构是和操作系统平台有关的.DBA注意 DBA必须对这两种存储结构有清晰的理解
28、,并且要清楚在一个具体数据库应用系统中,这两种存储结构的具体对应关系,否则就不能进行正常的管理操作、数据库备份与恢复、性能优化等。,ORACLE与SQL SERVER的比较,所支持的操作系统 数据吞吐量 多语言支持,所支持的操作系统的比较,SQL SERVERWINDOWS,ORACLEUNIXLINUXSUN SOLARISWINDOWS,数据吞吐量的比较,SQL SERVER面对中小型应用一般在30-40GB左右,ORACLE面对大中型应用最大可管理170TB 左右,多语言支持,SQL SERVER分为各种语言的版本每种版本只支持一种语言语言支持的数目不多,ORACLE不按照语言划分版本多语言支持共支持100多种语言,