Oracle 10g 数据库管理应用与开发标准教程完整版课件361页

上传人:e****s 文档编号:243408913 上传时间:2024-09-22 格式:PPT 页数:361 大小:574.50KB
返回 下载 相关 举报
Oracle 10g 数据库管理应用与开发标准教程完整版课件361页_第1页
第1页 / 共361页
Oracle 10g 数据库管理应用与开发标准教程完整版课件361页_第2页
第2页 / 共361页
Oracle 10g 数据库管理应用与开发标准教程完整版课件361页_第3页
第3页 / 共361页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,第三级,*,单击此处编辑母版标题样式,第三级,*,单击此处编辑母版标题样式,第三级,*,单击此处编辑母版标题样式,第三级,*,单击此处编辑母版标题样式,第三级,*,单击此处编辑母版标题样式,第三级,*,单击此处编辑母版标题样式,第三级,*,单击此处编辑母版标题样式,第三级,*,单击此处编辑母版标题样式,第三级,*,单击此处编辑母版标题样式,第三级,*,Oracle 10g,数据库管理应用与开发 标准教程,第,1,章,Oracle,关系数据库,第,2,章,Oracle,数据库体系结构,第,3,章,SQL,基本查询,第,4,章 修改,SQL,数据与,SQL*Plus,命令,第,5,章 用户、模式和表,第,6,章 高级查询,第,7,章,PL/SQL,编程基础,第,8,章 过程、函数和程序包,第,9,章 表类型,第,10,章 索引,第,11,章 视图、序列和同义词,第,12,章 触发器,第,13,章 事务与并发控制,第,14,章 安全,第,15,章 管理存储结构,第,16,章 备份与恢复,ORACLE,系统特点,ORACLE,公司于1979年,首先推出基于,SQL,标准的关系数据库产品,可在100多种硬件平台上运行(所括微机、工作站、小型机、中型机和大型机),支持很多种操作系统。用户的,ORACLE,应用可方便地从一种计算机配置移至另一种计算机配置上。,ORACLE,的分布式结构可将数据和应用驻留在多台计算机上,而相互间的通信是透明的。1992年6月,ORACLE,公司推出的,ORACLE7,协同服务器数据库,使关系数据库技术迈上了新台阶。,具体特点如下:,l,支持大数据库、多用户的高性能的事务处理。,ORACLE,支持最大数据库,其大小可到几百千兆,可充分利用硬件设备。支持大量用户同时在同一数据上执行各种数据应用,并使数据争用最小,保证数据一致性。系统维护具有高的性能,,ORACLE,每天可连续24小时工作,正常的系统操作(后备或个别计算机系统故障)不会中断数据库的使用。可控制数据库数据的可用性,可在数据库级或在子数据库级上控制。,l,ORACLE,遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准。所以它是一个开放系统,保护了用户的投资。美国标准化和技术研究所(,NIST),对,ORACLE7 SERVER,进行检验,100%地与,ANSI/ISO SQL89,标准的二级相兼容。,l,实施安全性控制和完整性控制。,ORACLE,为限制各监控数据存取提供系统可靠的安全性。,ORACLE,实施数据完整性,为可接受的数据指定标准。,支持分布式数据库和分布处理。,ORACLE,为了充分利用计算机系统和网络,允许将处理分为数据库服务器和客户应用程序,所有共享的数据管理由数据库管理系统的计算机处理,而运行数据库应用的工作站集中于解释和显示数据。通过网络连接的计算机环境,,ORACLE,将存放在多台计算机上的数据组合成一个逻辑数据库,可被全部网络用户存取。分布式系统像集中式数据库一样具有透明性和数据一致性。,l,具有可移植性、可兼容性和可连接性。由于,ORACLE,软件可在许多不同的操作系统上运行,以致,ORACLE,上所开发的应用可移植到任何操作系统,只需很少修改或不需修改。,ORACLE,软件同工业标准相兼容,包括许多工业标准的操作系统,所开发应用系统可在任何操作系统上运行。可连接性是指,ORALCE,允许不同类型的计算机和操作系统通过网络可共享信息。,什么是,Oracle ?,美国,ORACLE,公司, 主要生产数据库产品, 也是主要的网络计算机的倡导者,n. ,宗(古希腊)神谕, 预言, 神谕处, 神使, 哲人, 圣贤,Oracle,中文译为甲骨文,Oracle,公司是世界最大的企业软件公司之一,为世界最大和最成功的企业提供企业软件。公司提供数据库、工具和应用软件产品,以及相关的咨询、教育和支持服务。总部位于加利福尼亚州的,Redwood Shores,。,Oracle,公司是第一家在其整个产品线上开发和部署,100,基于互联网的企业软件的软件公司,其产品线包括:数据库、服务器、企业商务应用软件、应用软件开发和决策支持工具。,Oracle,公司是全球最大的信息管理软件及服务供应商,也是全球第二大独立软件公司,成立于,1977,年,总部位于美国加州,Redwoodshore,,,Oracle,是世界上第一个商品化的关系型数据库管理系统,也是第一个在其全线产品中开发并部署,100%,基于互联网企业软件的公司,为世界上,150,个以上的国家提供数据库、服务器、开发工具和企业应用产品,还有相关的咨询、教育和支持服务。,1983,年,Oracle3,1984,年,Oracle4,1986,年,Oracle5,1988,年,Oracle6,1989,年,1997,年,Oracle8,1999,年,Oracle8i,2000,年,Oracle9i,2003,年,Oracle10g,第一版,2004,年,Oracle10g,第二版,2007,年,Oracle11g,其中,,i,代表,internet,g,代表,grid,12,第,1,章,Oracle,关系数据库,本章先从介绍关系数据模型开始,介绍如何根据实际的应用创建数据库,并规范化数据库;然后介绍世界上最优秀的关系数据库之一,Oracle,数据库的应用模式,这也是数据库领域最常用的应用模式;最后介绍,Oracle,数据库系统的完装和数据库的创建,这是进行所有工作的第一步。,13,本章学习目标:,关系模型的组成,理解关系模型中的一些常术语,掌握关系数据库的设计,掌握数据库的规范化,正确安装,Oracle 10g,了解,Oracle,数据库的应用模式,能够使用,DBCA,创建数据库,掌握如何启动和关闭,Oracle,服务,能够通过,SQL*Plus,连接到,Oracle,数据库,14,1.1,关系数据模型,数据库技术始于,20,世纪,60,年代。当时计算机的主要应用领域正由科学计算逐步转向事条处理,这一转变促进了数据库技术的发展。到,20,世纪,70,年代,数据库技术达到了飞速的发展。教授发表了“大型共享数据库数据的关系模型”论文,他提出了关系数据库理论和模型,为关系数据库模型奠定了理论基础,从而使数据库技术成为计算机科学的一个重要分支。,15,1.1.1,数据结构,在关系数据库系统中,关系是关系数据模型的核心。关系数据库系统中最主要的数据结构就是关系。在实际的表示中,关系可以用一个由“行”和“列”组成的二维表来直观地表示。表中的每一列表示为关系的一个属性,每列的名字即为一个属性名,每一行表示一个记录代表一个物理实体。关系数据库中,所有的数据都是通过表来进行存储的,可以说如果没有表数据就无法进行存储和表示。,16,1.1.2,关系操作,对所有的关系数据库来说,有大量的操作方式可以使用,这些实用的操作方式能让用户看到所需要的数据。关系模型中常用的关系操作包括:选择,(Select),、投影,(Project),、连接,(Join),、除,(Divide),、并,(Union),、交,(Intersection),、差,(Difference),等查询操作和增加,(Insert),、删除,(Delete),、修改,(Update),操作两在部分。其中,查询操作是其最重要的部分。,17,1.1.3,关系的完整性约束,关系模型的完整性规则是对关系的某种约束条件。关系模型允许定义三类完整性约束;实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系数据库系统自动支持。用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。,18,1.2,关系与关系模式,在数据库中要区分型和值,型是指对某一类数据的结构和属性的说明,值是型的一个具体赋值。在关系数据库中,关系模式是型,关系是值,关系模式是对关系的描述。因为关系实质上是一个二维表,表中的每一行在关系模式中被称为元组,一个元组由许多属性组成,也就是表中的列。关系是元组的集合,因此关系模式必须指出这个元组集合的结构,即它由哪些属性组成,以及这此属性的取值等。,1.3,数据库的设计,在数据库的设计过程中,有许许多多需要考虑的因素,如数据库的背景、应用环境等方面都需要有深入的了解,只有对这些因素都进行详细分析,设计的数据库才能易于使用和维护,并且具有高效和一致的特征。,1.3.1,实体,-,关系模型,实体关系模型也称为,E-R,数据模型,(Entity-Relationship data model),。设计,E-R,数据模型的出发点是为了有效和更好地模拟现实世界,而不需要考虑在机器中如何实现。下面介绍,E-R,数据模型的三个抽象概念。,1,实体,(Entity),2,属性,(Attribute),3,联系,(Relationship),1.3.2 E-R,图的绘制,实体,-,关系图是表现实体,-,关系模型的图形工具,简称,E-R,图。,E-R,图提供了用图形表示实体、属性和联系的方法。在,E-R,图中,约定实体用方框表法,属性用椭圆表示,联系用菱形表示,并其内部填上实体名、属性名、联系名。,1.3.3,将,E-R,模型转化为关系模式,在,E-R,模型建立后,就可以将实体、实体间的联系等模型转变为关系模式,即生成数据库中的表,并确定表的列。下述讨论由,E-R,模型生成表的方法。,1,实体转化为表,2,实体间联系的处理,1.4,关系数据库规范化理论,数据库理论与设计中有一个重要的问题,就是在一个数据库中如何构造合适的关系模式,它涉及一系列的理论与技术,从而形成了关系数据库设计理论。由于合适的关系模式要符合一定的规范化要求,所以又可称为关系数据库的规范化理论。,1.4.1,函数依赖,函数依赖表示了关系模式中属性组合之间的一对多联系。例如,,XY,就表示了,Y,的一个值可以对应,X,的多个值。如果属性组合,X,和,Y,之间有一对一的联系,那么,,XY,和,YX,就都成立。,1.4.2,范式理论,范式是数据库设计中一个重要的过程,可以通过它来消除数据库中冗余的数据。因此,在确定设计的数据库之前,还需要对数据库中的表进行范式处理以确保数据库遵从适当的范式,从而使设计的数据库更加规范。范式为数据库提供了许多好处,具有很多优点:,大大减少了数据冗余,改进了数据库整体组织,增强数据的一致性,增加数据库设计的灵活性,1.5 Oracle,数据库的应用系统结构,随着计算机技术、特别是网络技术的迅速发展,数据库技术也取得了长足的发展。对数据库的使用方式提出了不同的要求。除客户,服务器,(C/S),系统结构外,还出现了浏览器,/,服务器,(B/S),结构以及分布式数据库系统结构。下面简要介绍,Oracle,数据库应用系统的不同结构,即分布式数据库系统结构、客户,服务器系统结构和浏览器,服务器系统结构。,1.5.1 Oracle,分布式数据库系统结构,数据库系统可按数据分布方式分为集中式数据库和分布式数据库。集中式数据库是将数据集中存放在一台计算机上,而分布式数据库系统是将数据存放在由计算机网络联接的不同的计算机上。一个分布式数据库是由分布于计算机网络上的多个逻辑相关的数据库组成的集合,网络每个节点具有独立处理能力,可以执行局部应有,也可通过网络执行全局应用。,1.5.2 Oracle,客户,服务器系统结构,客户,服务器结构,(C/S),是软件系统较为流行一种工作模式。在,C/S,结构模式中,所有的数据集中存储在服务器中,数据处理由服务器完成,一般采用硬件资源配置比较高的机器作为服务器,而使用配置比较低的,PC,机作为客户端。服务器与客户端之间通过专用网络联接,一般为局域网或企业内部网。,1.5.3 Oracle,浏览器,服务器系统结构,随着网络技术的迅速发展,基于,Web,的产品和标准的出现,使以,Web,技术为先导的,Internet,得到了迅猛发展。信息在,Internet,上的交换与发布都需要数据库的参与。使用,Oracle,数据库作为后台,通过,ODBC,和,JDBC,连接数据库,应用,JSP,、,ASP,和,PHP,开发,形成了动态网页的设计主流。,1.6 Oracle 10g,安装,Oracle,的安装程序,Universal Installer,是基于,Java,的图形界面安装向导工具。利用它可以帮助用户完成不同操作系统环境下不同类型的,Oracle,安装工作。无论是在,UNIX,环境下,还是本书所介绍的,Windows,环境下,都可以通过使用,Universal Installer,以完成正确的安装。,查看,Oracle,版本信息,select * from v$version;,Oracle,主页:,Oracle,中国:,/cn,卸载,Oracle 10g,a.,开始运行输入“,regedit”,b.,依次点击,HKEY_LOCAL_MACHINESOFTWAREORACLE,点右键删除,c. HKEY_LOCAL_MACHINESYSTEMControlSet001Service,删除,Service,中所有以,Oracle,开头的键值,d.,退出注册表,重启。找到,Oracle,的安装目录,并删除(注:若不能删除,可将,Oracle,改名再删除)。最后删除,C:Program FilesOracle,目录。,1.7,创建数据库,如果在安装,Oracle,系统时,如果选择不创建数据库,只是安装,Oracle,数据库服务器软件,在这种情况下,要使用,Oracle,系统则必须创建数据库。如果在安装系统时已经创建了数据库,虽然也可以在一台,Oracle,数据库服务器中创建多个数据库,但为了使用,Oracle,数据库服务系统充分利用服务器的资源,建议应在一台服务器上只创建一个数据库。,在,Oracle 10g,中,创建数据库有两种方式:一种是利用图形界面的,DBCA(,数据库配置向导,),进行创建数据库;另一种是通过,SQL,语句的,CREATE DATABASE,命令。,开始,程序,OracleOraDb10g_home1,配置和移植工具,Database Configuration Assistant,如果有多个数据库,连接后如果查看登录的是哪个数据库,可使用以下命令:,select name from v$database;,show parameter db_name;,(,普通用户不能使用此命令),1.8,数据库的启动与关闭,在用户试图连接到数据库前,必须先启动数据库。每个启动的数据库都对应一个实例。数据库实例就是为了运行数据库,,Oracle,系统所运行的所有进程和分配的内存结构的组合体。实例可以简单地理解为数据库在运行时位于内存中的部分,而数据库可理解为运行是位于硬盘中的部分。,1.9 Oracle,默认用户,对于刚接触,Oracle,的初学者而言,在安装,Oracle,数据库服务或创建数据库时,通常会采用大量的默认设置。使用默认设置的优点是能够避免复杂的参数设置,并且不会因为错误地设置,而导致数据库创建失败。但是使用默认安装时,,Oracle,实例只对,SYS,、,SYSTEM,、,DBSNMP,、,SYSMAN,和,MGMT_VIEW,共,5,个账户进行解锁。可以通过在,SQL*Plus,工具中查询,DBA_USERS,数据字典以查看,Oracle,实例对各账户的设置情况。,第2章 Oracle数据库体系结构,数据库的体系结构是从某一角度来分析数据库的组成和工作过程,以及数据库如何管理和组织数据。因此,在开始对,Oracle,进行操作之前,用户还需要理解,Oracle,数据库的体系结构。了解,Oracle,的体系结构不仅可以使用户对,Oracle,数据库有一个从外到内的整体认识,而且还可以对以后的具体操作具有指导意义。特别是对,Oracle,的初学者,对,Oracle,体系结构的掌握将直接影响到以后的学习。,38,本章学习目标:,理解什么是,Oracle,的物理存储结构,以及其组成,理解,Oracle,体系的逻辑存储结构,理解,Oracle,体系的逻辑存储结构与物理结构的关系,了解,Oracle,体系的内存管理方式,了解什么是数据库实例,了解数据库实例的主要后台进程的作用,理解,Oracle,数据库中数据字典的作用,39,2.1 物理存储结构,物理存储结构是指从物理角度分析数据库的构成,即,Oracle,数据库创建后所使用的操作系统文件。从物理存储结构上分析:每一个,Oracle,数据库是主要由三种类型的文件组成:数据文件、日志文件和控制文件,另外还包括一些参数文件。其中:数据文件的扩展名为,.DBF,;日志文件的扩展名为,.LOG,;控制文件的扩展名为,.CTL,。,40,2.2.1 数据文件,数据文件,(Data File),用于存储数据库数据的文件,如表中的记录,索引,数据字典信息等都存储于数据文件中。在存取数据时,,Oracle,数据库系统首先从数据文件中读取数据,并存储在内存中的数据缓冲区中。当用户查询数据时,如果所要查询的数据不在数据缓冲区中,则这时,Oracle,数据库进行启动相应的进程从数据文件中读取数据,并保存到数据缓冲区中。当用用户修改数据时,用户对数据的修改保存在数据缓冲区中,然后由,Oracle,的相应后台进程将数据写入到数据文件中。这样的存取方式减少了磁盘的,I/O,操作,提高了系统的响应性能。,查看数据文件信息,1.,使用命令,查询数据字典,dba_data_files,或,v$datafile,2.,在,oem,中查看,注:查看表结构用,desc,命令,42,2.2.2 日志文件,在,Oracle,中,日志文件也叫做重做日志文件或重演日志文件,(Redo Log Files),。日志文件用于记录对数据库的修改信息,对数据库所作的修改信息都被记录在日志中。这包括用户对数据库中数据的修改和数据库管理员对数据库结构的修改。如果,只是对数据库中的信息进行查询操作,则不会产生日志信息。由于日志文件记录的对数据库的修改信息,如果用户对数据的操作由于出现的故障,而使修改的数据没有保存到数据文件中,那么就可以利用日志文件找到数据的修改,这样以前所做的工作就不会因为故障而丢失。,在,Oracle,数据库中,日志文件是成组使用的。日志文件的组织单位叫做日志文件组,日志文件组中的日志文件叫做日志成员。,Oracle,数据库要求每个数据库实例都至少有两个重做日志文件组,每一个重做日志文件组中有一个或多个日志成员,(,即多个日志文件组成,),。,在日志工作工程中,多个日志文件组之间是循环使用的。当一个日志文件组被填满后,将会发生日志切换,系统自动转换到另一个日志文件组。,查看日志文件的信息可以使用数据字典,V$log,或,V$logfile,如:,select group#,status from v$log;,CURRENT,表示当前使用的,ACTIVE,的表示非当前但是还是处于活动状态,日志中指向的缓存中的脏数据块还没有完全被刷到磁盘上,INACTIVE,表示不活动的,相应数据块都写入磁盘,UNUSED,表示还没使用过,强制切换日志的命令,alter system switch logfile;,根据在事务信息将被覆盖时,是否应该将文件归档,数据库分为以下两种归档模式:,ARCHIVELOG,(归档日志),或,NOARCHIVELOG,(非归档日志)模式。,查看归档模式可使用的命令:,Archive log list;,或:,select log_mode from v$database;,数据库运行在非归档模式时,如果发生日志切换,则日志信息直接被覆盖。,数据库运行在归档模式时,如果发生日志切换,则系统将启用arch进程将要被覆盖的日志信息保存到磁盘上形成归档日志。,47,2.2.3 控制文件,控制文件,(Control Files),是一个很小的二进制文件,它用于描述数据库的物理结构。数据控制文件一般在安装,Oracle,系统时自动创建,并且其存放路径由服务器参数文件的,CONTROL_FILES,参数值来确定。,控制文件存放了与,Oracle,数据库有关的关键控制信息。在创建数据库时生成,数据库发生物理变化会被自动更新。,名字通常为*,.ctl,格式,控制文件中的内容只能够由,Oracle,本身来修改。每个数据库必须至少拥有一个控制文件。一个数据库也可以同时拥有多个控制文件,(,完全相同,),,但是一个控制文件只能属于一个数据库。,查看控制文件的信息可通过数据字典,V$controlfile。,50,2.2.4 参数文件,除了构成,Oracle,数据库物理结构的三类主要文件外,,Oracle,数据库还具有另外一种重要的文件:参数文件。参数文件记录了,Oracle,数据库的基本参数信息,主要包括数据库名、控制文件所在路径、进程等。与旧版本的初始化参数文件不同,在,Oracle10g,中还可以使用二进制服务器参数文件,并且该服务器参数文件在安装,Oracle,数据库系统时由系统自动创建,文件的名称为,,sid,为所创建的数据库实例名。,中的参数由,Oracle,系统自动管理,启动,Oracle,数据库时文件打开的先后顺序:,当,Oracle,例程启动时,首先打开参数文件,从参数文件中读取控制文件的名字和位置,登录数据库时,打开控制文件,,Oracle,从控制文件中读取数据文件和日志文件列表并打开其中的每一个文件。,2.2 逻辑存储结构,数据库的逻辑结构是从逻辑的角度分析数据库的构成,即创建数据库后形成的逻辑概念之间的关系。,Oracle,在逻辑上将保存的数据划分成一个个小单元进行存储和管理,高一级的存储单元由一个或多个低一级的存储单元组成。,Oracle,的逻辑存储单元从大到小依次为:数据块,(DATA BLOCKS),、盘区,(EXTENT),、段,(SEGMENTS),和表空间,(TABLE SPACES),。,数据存储层次,数据库由一个或多个表空间组成;,表空间由一个或多个数据文件组成,表空间中包含段;,段,(,表、索引等,),由一个或多个盘区组成。段存在于表空间中,但是在表空间中可以有许多数据文件中的数据;,盘区是在磁盘上连续的块的组。一个盘区在一个表空间中,且在表空间中单一的文件中;,块是数据库中最小的分配单元,也是数据库使用的最小,I/O,单元。,2.3.1 数据块,数据块是,Oracle,用来管理存储空间的最基本单元,也是最小的逻辑存储单元。,Oracle,数据库在进行输入输出操作时,都是以块为单位进行逻辑读写操作的。数据块的大小由初始化参数,DB_BLOCK_SIZE,确定,在创建数据库之后不可以修改。,查看块的大小可用如下命令:,Show parameter db_block_size;,2.3.2 盘区,盘区是由一系列物理上连续的数据块所构成的存储结构,它也是磁盘空间分配的最小单元。一个或多个数据块组成一个盘区,而一个或多个盘区组成一个段。当一个段中的所有空间被使用完后,系统将自动为该段分配一个新的盘区。,缺省情况下,数据库会使用表空间中存储的存储参数来管理他们的区。,2.3.3 段,段不是存储空间的分配单位,而是一个独立的逻辑存储结构。段存于表空间中并且由盘区组成。,段,用来存储用户建立的数据库对象。,按照段中据存数据的特征,可以将段分为四种类型:数据段、索引段、回退段、,LOB,段和临时段。,1,数据段,2,索引段,3,临时段,4,LOB,段,5,回退段,注:查看段的信息可以用数据字典,dba_segments,数据段,用于存储数据库表中的数据。当用户创建表时,系统将自动在相应的表空间创建数据段。,在一个表空间中创建了多少个表,相应地在该表空间中就有多少个数据段,且数据段的名称与表名相同。,索引段,用于存储用户在表中建立的索引信息。在创建索引时,,Oracle,将为索引创建一个索引段。,临时段,当处理查询时,,Oracle,可能会需要使用到一些临时存储空间,用于临时保存解析过的查询语句以及在排序过程中产生的临时数据。,Oracle,会自动在专门用于存储临时数据的表空间为操作分配临时段。,当用户操作完毕后,临时段将自动消除。,LOB,段,当表中含有,CLOB,或,BLOB,等大型对象类型数据时,系统将创建,LOB,段以存储相应的大型对象数据。,LOB,段独立于保存表中其他数据的数据段。,回退段,回退段用于存放数据修改之前的值(包括数据修改之前的位置和值)。,回退段的作用主要有以下几方面:,(,1,)事务回滚,(,2,)事务恢复,(,3,)读一致性,每个数据库至少拥有一个回退段。,2.3.4 表空间,表空间是在,Oracle,中用户可以使用的最大的逻辑存储结构,用户在数据库中建立的所有内容都被存储在表空间中。,Oracle,使用表空间将相关的逻辑结构组合在一起,表空间在物理上与数据文件相对应,每一个表空间是由一个或多个数据文件组成的,一个数据文件只可以属于一个表空间,这是逻辑与物理的统一。所以存储空间在物理上表现为数据文件,而在逻辑上表现为表空间。,表空间就像一个文件夹,是存储数据库对象的容器。,表空间是由数据文件组成,这些数据文件是数据库实际存放数据的地方,数据库的所有系统数据和用户数据都必须存放在数据文件中。,Oracle,中除了用户创建的存放数据对象的数据表空间外,还有以下类型的表空间:,(,1,),System,表空间,存放诸如表空间的名称、表空间所含数据文件等数据管理所需的信息。,(,2,)回滚表空间(,RollBack TableSpace,),用于保存回滚段。,(,3,)临时表空间(,Temp TableSpace,),用于存储临时表。,1表空间的分类,在数据库中使用多个表空间具有如下优势:,(,1,)能够将数据字典与用户数据分离开来,避免由于字典对象和用户对象保存在同一个数据文件中而产生的,1,0,冲突。,(,2,)能够将回退数据与用户数据分离开来,避免由于硬盘损坏而导致永久性的数据丢失。,2表空间的使用,(,3,)能够将表空间的数据文件分散保存到不同硬盘上,平均分布物理,I,0,操作。,(,4,)能够将某个表空间设置为脱机状态或联机状态,以便对数据库的一部分进行备份和恢复。,(,5,)能够将某个表空间设置为只读状态,从而将数据库的一部分设置为只读状态。,(,6,)能够为某种特殊用途专门设置一个表空间,比如临时表空间等,以优化表空间的使用效率。,(,7,)能够更加灵活地为用户设置表空间限额。,如果表空间只对应一个数据文件,该表空间中所有的对象都存储在此数据文件中。如果表空间对应于多个数据文件,可将一个对象的数据存储在该表空间的任意一个数据文件中,也可将同一个对象的数据分布在表空间的多个数据文件中。,3表空间中对象的存储,2.3 内存结构,内存结构是,Oracle,数据库体系结构中最为重要的部分之一,内存也是影响数据库性能的主要因素。在,Oracle,数据库中,服务器内存的大小将直接影响数据库的运行速度,特别是多个用户连接数据库时,服务器必须有足够的内存支持,否则有的用户可能连接不到服务器,或查询速度明显下降。,Oracle,实例启动以后,将在内存中创建一个内存结构。内存结构中存储着数据库运行过程中所要处理的一些数据。它主要包括几方面的数据:缓存的数据、解析后的,SQL,或,PL/SQL,程序代码、用户的会话信息、后台进程所需的共享信息和数据。,内存结构是,Oracle,使用计算机上的内存存放常用信息和所有运行在该机器上的,Oracle,程序。,按照系统对于内存的使用方法不同,,Oracle,数据库的内存分为:,系统全局区(,SGA),程序全局区(,PGA),排序区,(SORT AREA),大池,(LARGE POOL),Java,池,(Java POOL),2.3.1 系统全局区,系统全局区,(SGA),是一组为系统分配的共享的内存结构,可以包含一个数据库实例的数据或控制信息。如果多个用户连接到同一个数据库实例,则在实例的,SGA,中数据可为多个用户共享。在数据库实例启动时,,SGA,的内存被自动分配;当数据库实例关闭时,,SGA,被回收。,SGA,按其作用不同,可以分为数据缓冲区、日志缓冲区和共享池。,(,1,)数据缓冲区,数据缓冲区是,SGA,区中的一部分,存放着,Oracle,系统最近从数据文件中读取的数据块。如果用户再次查询这些数据库中的数据,就可以直接从缓冲区中找到返回给用户,从而提高了速度。另外,当用户对数据进行修改时,首先对缓冲区中的数据进行修改,等待某一个时机,通过,DBWR,进程写回数据文件。,10g,中,DB_CACHE_SIZE,参数可以决定数据缓冲区的大小。,数据缓冲区由许多相同大小的缓存块组成,这些缓存块的大小与数据块的大小相同。根据缓冲块是否被使用,可将数据缓冲区中的缓冲块分为如下,3,类:,脏缓存块,保存的是被修改过的数据。,空闲缓存块,不包含任何数据,命中缓存块,正在被用户访问的缓存块,(2)日志缓冲区,日志缓冲区用于存储数据库的修改信息。对数据库进行修改的任何事务(,Transaction,)在记录到日志文件之前都必须首先放到日志缓冲区(,Redo Log Buffer,)中。,数据库系统定期通过后台进程,LGWR,将缓冲区的内容写入日志文件。,参数,LOG_BUFFER,可以决定日志缓冲区的大小。,(3)共享池,共享池用于缓存与,SQL,或,PL/SQL,语句、数据字典等相关数据。,共享池中的库缓冲区用于缓存已经解析并执行过,SQL,或,PL/SQL,语句的一些信息。这样如果有会话还需要再次执行这段代码就可以直接使用,不需要重新解析。,共享池中的数据字典缓冲区保存最常用的数据字典信息。,共享池的总容量由,shared_pool_size,参数决定。,2.3.2 程序全局区,程序全局区,(PGA),是包含单独用户或服务器数据和控制信息的内存区域。,PGA,是在用户连接到,Oracle,数据库,并创建一个会话时,由,Oracle,自动分配的。与,SGA,不同,,PGA,是非共享区,只有服务进程本身才能访问它自己的,PGA,区,每个服务进程都有它自己的,PGA,区。各个服务进程在各自的,PGA,区中保存自身所使用到的各种数据。,PGA,的内容与结构和数据库的操作模式有关,在专用服务器模式下和共享服务器模式下,,PGA,有着不同的结构和内容。,2.3.3 排序区,排序区用于为排序显示的,SQL,语句提供内存空间,系统使用专门的内存区域进行数据的排序,这部分空间称为排序区。在,Oracle,数据库中,用户数据的排序有两个区域,一个是内存排序区,另一个是磁盘临时段。在排序区能够满足要求的情况下,系统将优先使用排序区,如果内存不够,,Oracle,将自动使用磁盘临时表空间进行排序。使用排序区可以显著提高排序操作的速度。排序区的大小由参数,SORT_AREA_SIZE,设置。,2.3.4 大池,大池是数据库管理员能够配置的可选内存空间,可以用于不同类型的内存存储。在执行某些特定类型的操作时,可能需要在内存中使用大量的缓存,这些特定类型的操作包括:,数据库的备份或恢复操作。,执行具有大量排序操作的,SQL,语句。,执行并行化的数据库操作。,2.3.5 Java池,由于,Oracle,提供了对,Java,语言的支持,所以系统提供了,Java,池。,Java,池主要用于为,Java,语言提供语法分析区。,Java,池的大小由参数,JAVA_POOL_SIZE,确定。,2.4 实例的进程结构,当数据库启动时,首先启动实例,系统将自动分配,SGA,,并启动,Oracle,的多个后台进程,内存区域和后台进程合称为一个,Oracle,实例。,进程是操作系统中的一种机制,它可以执行一系列的操作步骤。,Oracle,实例有两种类型:单进程实例和多进程实例。,单进程实例数据库系统中,一个进程执行全部的,Oracle,代码。,多进程,Oracle,实例,允许使用多个进程来执行,Oracle,代码的不同部分,对每一个连接的用户都有一个进程。,进程,又称任务,是操作系统中一个极为重要的概念。一个进程执行一组操作,完成一个特定的任务。对,Oracle,数据库管理系统来说,进程由用户进程、服务器进程和后台进程所组成。,进程与程序的区别,在于前者是一个动态概念,后者是一个静态实体;程序仅仅是指令的有序集合,而进程则强调执行过程。进程可以动态地创建,完成任务后即会消亡。,在,Oracle,运行和交互过程中涉及到两类进程。一类是用户进程,这类进程建立与数据库的连接,向数据库发出各种服务请求,接收数据库的响应信息。一类是,Oracle,进程,这类进程是由,Oracle,系统产生的,用以完成一些特定的服务功能。,Oracle,进程包括服务进程和后台进程。,当用户想要得到,Oracle,系统提供的服务时,就会启动一些客户端的用户进程对系统进行访问,提出一些操作请求。无论客户端的大小如何,都是一个用户进程。,1用户进程,服务器进程是由Oracle系统创建的,用来处理用户进程提出的操作请求。根据服务进程类型的不同,可以分为专用服务进程和共享服务进程。服务进程的主要任务是解析并执行用户提交的操作请求、根据请求进行实际的操作,将操作结果返回用户进程。,2服务器进程,服务器进程处理与应用程序相连的用户进程的请求,它与用户进程相通讯,为相连的用户进程的Oracle请求服务。,后台进程帮助用户进程和服务器进程进行通信。,Oracle,的后台进程主要包括:,(,1,),SMON,系统监视进程(,system monitor,),(,2,),PMON,进程监视进程(,process monitor,),(,3,),DBWR,数据库写入进程,(,4,),LGWR,日志写入进程,(,5,),ARCH,归档进程(,archiver process,),(6),CHPT,检查点进程,3后台进程,(,1,) 数据库写入进程,DBWR,数据库写入进程主要负责将数据库缓冲区中的脏缓存块写入数据文件中。在数据库中进行了一些更改的操作,系统并不是立即对数据文件进行修改,而是先存放在数据库缓存中,等到一定时机才将它们写回文件中。数据库写入进程会在下面几种情况下发生:脏缓存块达到了一定的阀值、没有空闲缓存块、隔了一定的时间段和在检查点发生的时候。,(,2,) 日志写入进程,LGWR,日志写入进程负责将重做日志缓冲区中的重做记录写入联机重做日志文件。重做日志缓存是循环使用的,执行了日志写入进程以后,就为系统腾出了一些缓存的空间。日志写入进程在下面几种情况下发生:用户通过,COMMIT,命令提交当前事物时、重做日志缓存到达三分之一满的状态、有1,MB,的重做日志记录、每隔3秒钟和在数据库写进程执行之前。,(,3,) 归档进程,ARCH,当数据库服务器以归档模式运行时,将已经写满的联机重做日志文件的内容拷贝到归档日志文件中时发生。,Archive log list,-,显示归档模式,如果数据库是非归档模式,改为归档模式的步骤如下:,Shutdown immediate; -,关闭数据库,Startup mount; -,启动到,mount,状态,alter database archivelog; -,改为归档模式,(alter database noarchivelog; -,改为非归档模式,),archive log list; -,显示归档模式,Alter database open; -,打开数据库,注意:在,10g,中只要设了归档模式,就为自动归档模式,在,9i,中自动归档还需要用命令设置,(archive log start),(,4,)检查点进程,CKPT,检查点就是一个事件,当该事件发生时,数据缓冲区中的脏缓存块将被写入数据文件,同时系统对数据库的控制文件和数据文件进行更新,以记录当前数据库的状态。,通常情况下,检查点在日志切换时产生。,检查点进程负责执行检查点并更新控制文件,启用,DBWR,进程将脏缓存块中的数据写入数据文件。,(,5,)系统监视进程,SMON,系统监视进程在数据库启动时负责对数据库进行恢复操作。这个操作主要是针对上一次数据库非正常关闭的情况,在启动数据库时,系统监视进程会自动读取重做日志文件对数据库进行恢复。另外,系统监视进程还会在系统运行过程中定期被唤醒,负责回收临时存储空间中不再被使用的空间和合并一些表空间中的碎片。,(,6,)进程监视进程,PMON,进程监视进程和系统监视进程一样是被定时唤醒的一个后台进程,它主要针对一些失败的用户进程进行资源的回收和状态的恢复。所谓资源回收就是将用户进程占用的一些锁、,SGA,区和,PGA,区的资源释放。所谓状态恢复就是将该用户提交的操作回退到未提交事务前的状态。,(,7,) 恢复进程,RECO,RECO,负责在分布式数据库环境中自动恢复失败的分布式事务。,(,8,)调度进程,dnnn,在共享服务器模式下,数据库实例启动的同时也将启动一定数量的服务进程,在调度进程,Dnnn,的调度下为任意数量的用户进程提供服务。,2.5 数据字典,数据字典由一系列只读的基础表和视图组成,保存了关于数据库本身以及其中存储的所有对象的基本信息。可以认为数据字典记录了数据库实例自身的重要信息。,对数据字典的管理和维护有,Oracle,系统负责。,注:数据字典中的内容都被保存在,SYSTEM,表空间中。,100,第,3,章,SQL,基本查询,数据库中的作用不仅是存放数据,它还需要根据用户的要求显示数据。显示数据通常采用,SELECT,语句查询的形式,查询可以用一个简单的语句返回表中所有的记录,或通过一组限定子句严限格限制返回哪些数据行。,SELECT,语句由一系列灵活的子句组成,这些子句共同确定检索哪些数据。,101,本章学习目标:,使用,SQL*Plus,与数据库建立连接,使用,SELECT,语句检索数据,使用,WHERE,子句限定搜索条件,使用,ORDER BY,子句排序查询结果集,使用,GROUP BY,子句分组查询结果集,在,SQL,语句中使用函数,102,3.1 SQL,语句概述,SQL,是,Structured Query Language,(结构查询语言)的缩写,用户可以使用,SQL,语言建立或删除数据库对象,插入、更新和删除数据库中的数据,并且可以对数据库执行各种日常管理。,SQL,语言并不是,Oracle,数据库的专利,它是所有关系数据库管理系统的标准语言,也就是说,可以使用,SQL,语言对所有的关系数据库进行操用。,SQL,语言是数据库的核心语言。全称是“结构化查询语言(,Structured Query Language)”,,是关系数据库操作的标准语言。,1. DDL(,数据定义语言),CREATE ALTER DROP,2. DML(,数据操作语言),SELECT INSERT UPDATE DELETE,3. DCL(,数据控制语言),GRANT REVOKE COMMIT ROLLBACK,104,3.2 SQL*Plus,在,Oracle,系统中,,SQL,或,PL/SQL,语言的运行主要是通过,SQL*Plus,工具,因此,在使用,PL/SQL,进行查询之前有必要先介绍,SQL*Plus,。,SQL*Plus,是一个用于连接,Oracle,数据库的工具。通过,SQL*Plus,用户就可以建立位于相同服务器上的数据库连接,或者建立位于网络中不同服务器的数据库连接。,SQL*Plus,工具可以满足,Oracle,数据库管理员的大部分需求。,105,3.4 SQL SELECT,语句,在,Oracle,系统中,最经常用的语句是,SELECT,语句。,SELECT,语句可以用来根据用户的要求从数据库中检索出数据,它是,SQL,语言中使用频率最高的语句。,SELECT,语句由许多子句组成。使用适当的子句可以完成选择、投影和连接等运算。,选择:指定表中的行,用,where,子句 完成。,投影:指定表中的列,用,select,子句 完成,连接:把两个或两个以上的表中的 数据连接起来,显示在一个查 询结果中。用,from,子句完成。,SELECT,语法格式:,SELECT,字段1,字段2,FROM,表1,表2,WHERE,查询条件,GROUP BY,分组字段1,分组字段2,HAVING,分组条件,ORDER BY,列1,列2,注意:,1.,若只允许在结果中出现不同的记录,应使用关键字,distinct,。,2.,若要改变查询结果中的列名,应用关键字,as,或省略。 如:,select name as,姓名,from xsxx,109,3.5,在,SQL*Plus,中使用函数,无论什么样的计算机语言,都提供了大量的函数,使用这些函数可以大大提高这些计算机语言的运算、判断功能。在,PL/SQL,语言中,通过使用函数,可以大大增强,SELECT,语句操作数据库数据的功能。在,Oracle,系统中,提供了字符串函数、数字函数、日期时间函数和转换函数。,110,第,4,章 修改,SQL,数据与,SQL*Plus,命令,操作存储的数据是所有数据库的主要功能之一。对于数据库而言,它必须能够让用户添加、修改和删除其中的数据,以保持数据的适时性和准确性。对数据库的这些操作需要使用一定的语句来完成。执行数据操作任务的语句被称为数据操作语言,DML,,,DML,也是,PLSQL,语言的重要组成部分。常用的,DML,语言包括:,INSERT,、,UPDATE,和,DELETE,语句,它们分别完成了对数据的添加、修改和删除等操作。,111,本章学习目标:,能够根据需求使用,INSERT,语句向表中添加数据,能够更新表中的数据,能够使用,DELETE,语句删除表中的数据,掌握,TRUNCATE,语句清容表内容,根据需要设置系统环境参数,设置查询结果的显式格式,能够使用相应的命令进行文件操作,理解动态查询,能够使用帮助命令,获知指定的,SQL*Plus,命令信息,112,4.1,添加数据,在,Oracle,系统中,最为常用的添加数据的方法是使用,INSERT,语句。与,SELECT,语句相比,,INSERT,语句语法形式要简单得多。,INSERT,语句的语法形式如下:,INSERT INTO table_name (column1 ,column2) ,VALUES ( value1 , value2 ) | select query,注意事项:,1.,如果在,insert into,后没有指定列名,那么,values,子句必须按表结构中定义的列的次序为每个列提供值。,2.,如果在,insert into,子句中指定了列名,那么每一个指定的列只能有一个值,且值的次序必须与表中定义的次序相同,3.,如果在,insert,语句中使用,select,查询,则,insert into,子句中指定的列名必须与,select,指定的列名相匹配。,4.,当某列的数据类型为字符串时,其值应该用单引号括起来。,114,4.2,更新数据,如果表中输入的数据存在错误,则可以使用,UPDATE,语句来修改。,UPDATE,语句可以实现对表中一条或多条记录进行更新。使用,UPDATE,语句修改表中数据的语法形式如下:,UPDATE table_name,SET column1=express1,column2=express2 |,(column1,column2)=(select query),WHERE condition,注意:,如果在,update,语句中没有指定,where,子句,那么表中所有的行都将被修改。,115,4.3,删除数据,如果表中某数据不再需要了,则应该及时删除该数据,以释放该数据所占用的空间。在,Oracle,系统中,删除表中的数据可以使用,DELETE,语句,或者,TRUNCATE,语句。,注意:,只从表中删除数据,不删除表结构,如果要删除表结构,应用,drop table,语句 。,删除的记录能进行回滚,,truncate,不能进行回滚。,4.4 SQL*Plus,命令,在,SQL*Plus,工具中,用户通过使用各种,SQL*Plus,命令,可以实现格式化查询结果、打印查询结查、保存查询语句,基至创建动态查询。在运行,SQL,语句时,配合使用,SQL*Plus,命令,可以实现许多特殊的功能。,117,第,5,章 用户、模式和表,从数据库用户的角度看,数据库中的数据是以表、视图等方式存储的。此外,用户还可以通过为表创建索引,以提高查询的执行速度。在,Oracle,系统中,对表、视图和索引的创建、维护是通过模式实现的。在本章中,我们将初步介绍,Oracle,中的模式概念,并重点介绍如何在模式中创建基本对象,基本表,以及在创建表时使用的各种完整性约束。,118,本章学习目标:,理解什么是模式,了解模式对象与非模式对象之间的区别,初步掌握如何创建用户账户,并进行基本的管理,了解在创建表时,Oracle,允许使用的数据类型,掌握如何在,SQL*Plus,环境中创建基本的表,掌握如何在表中使用,NULL,值和默认值,掌握如何在,SQP*Plus,中修改已经存在的表的结构,理解如何在表中定义各种约束,以保证数据的完整性,查看创建的表信息,119,5.1,用户和模式,在,Oracle,系统的逻辑结构中,包含了只能存储字节的数据块,到可以容纳整个数据库的表空间等多级别的存储结构,但是所有这些逻辑结构都不是数据库用户可以直接进行操作的对象。用户可以直接操作的是类似表、索引和视图这样的对象。在,Oracle,数据库中,这些对象不是随意保存在数据库中的,,Oracle,是通过“模式”来组织和管理这些数据库对象。,5.1.1,模式,Oracle,系统中的模式是一系列逻辑数据结构或对象的集合。一个模式只能被一个数据库用户所拥有,并且模式的名称与该用户的名称相同。因此,,Oracle,数据库中的每一个用户都拥有一个唯一的模式,该用户创建的所有模式对象都保存在自己的模式中。,数据库中对象名在一个模式中是唯一的,在不同模式中可以创建具有同名的数据库对象。在,Oracle,内部以点表示法来进行区分。,默认情况下,用户所创建的数据库对象都保存在自己的模式中。,5.1.2,模式对象与非模式对象,模式对象主要包括表、索引、触发器、,PL/SQL,包、视图、存储过程等。当用户在数据库中创建一个模式对象后,这个模式对象默认地属于这个用户的模式。如果其它用户需要使用这个模式对象,则必须在对象名前加上它所属的模式
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!