第1章OracleDatabase11g体系结构与Oracle之前的版本相比,OracleDatabase11g进行了有意义的升级.
新增加的功能使得开发人员、数据库管理员和最终用户能够更好地控制数据的存储、处理和检索.
本章将介绍OracleDatabase11g体系结构的重要部分.
后面的章节将详细讨论这些新的功能,包括SQL重放、变更管理和结果缓存等内容.
本章的目标是从总体上介绍在Oracle应用程序中可以使用的功能以及后面描述这些功能的章节.
本书主要分为8个部分.
第Ⅰ部分名为"关键的数据库概念",概述了不同的OracleDatabase11g选项、怎样安装Oracle软件、怎样创建或升级数据库,以及怎样规划应用程序的实现.
第I部分中的这几章形成了一个通用词汇表,这个词汇表帮助最终用户和开发人员连贯巧妙地共享相同的概念,第Ⅰ部分关键的数据库概念4并确保任何开发工作的成功.
本章和第4章针对Oracle的开发人员和最终用户;第2~3章针对数据库管理员.
第Ⅱ部分名为"SQL和SQL*Plus",介绍了关系数据库系统和应用程序的理论与技术,包括SQL(StructuredQueryLanguage,结构化查询语言)和SQL*Plus.
本部分先假设读者具有相对很少的数据处理知识,然后通过一些非常高深的问题和复杂的技术来逐步深入.
这里刻意使用了简洁而且符合习惯的语言,同时给出了一些独特而有趣的示例;同时严格地避免使用未定义的术语或行话.
该部分主要是针对刚开始学习Oracle的开发人员和最终用户,或者是需要快速回顾一下Oracle某些功能的读者.
逐步介绍了SQL的基本功能和Oracle的交互式查询工具SQL*Plus.
阅读完这部分后,您应该完全掌握所有的SQL关键字、函数和运算符.
在Oracle数据库中,您应该能够编写复杂的查询、创建数据表以及插入、更新和删除数据.
第Ⅲ部分名为"高级主题",讨论了Oracle的高级选项,包括虚拟专用数据库(virtualprivatedatabase)、DataPump、复制(replication)、文本索引、外部表、变更重放,以及开发人员与数据库管理人员应该如何使用闪回选项.
这一部分介绍的大部分功能,最终用户可能都不会直接用到,但他们使用的应用程序却是基于这些功能的.
第Ⅳ部分名为"PL/SQL",讨论了PL/SQL.
讨论的主题包括回顾PL/SQL的结构,以及触发器、存储过程和包.
本部分同时讨论了标准的PL/SQL和本地动态的PL/SQL.
第Ⅴ部分名为"对象关系数据库",深入讨论了面向对象功能,如抽象数据类型、方法、对象视图、对象表、嵌套表、可变数组和大对象.
第Ⅵ部分名为"Oracle中的Java",讨论了Oracle数据库中的Java功能.
这一部分概述了Java的语法以及关于JDBC和Java存储过程的章节.
第Ⅶ部分名为"指南",概述了OracleDatabase11g中的实时应用群集(RealApplicationCluster)和可用的网格体系结构以及使用Oracle调整工具方面的案例分析,还介绍了客户端高速缓存等新特性,以及数据库管理和如何在Oracle中使用XML.
第Ⅷ部分名为"命令和术语参考",是Oracle服务器的参考——它本身就可构成一本书.
阅读这个参考的介绍性内容有助于提高这部分内容的阅读效率,而且能够更好地理解它.
该部分包含了Oracle的大多数主要命令、关键字、产品、功能和函数的参考,各个主题之间带有大量交叉引用.
虽然该参考是为Oracle开发人员和用户准备的,但是要求读者对相应的产品比较熟悉.
为了能以最高的效率使用该参考中的任意一个条目,阅读其介绍性内容是完全值得的.
这些介绍性内容非常详细地说明了参考中包含了什么内容,不包含什么内容,以及怎样阅读这些条目.
在www.
oraclepressbooks.
com网站的下载页面上,包含了本书中用到的所有数据表的表创建语句和行插入内容.
正在学习Oracle的任何人将这些数据表下载到自己的OracleID或实际ID上之后,就可以方便地试验或扩展这些范例了.
1.
1数据库和实例每一个Oracle数据库都是一个数据的集合,这些数据包含在一个或多个文件中.
数据库第1章OracleDatabase11g体系结构5有物理和逻辑两种结构.
在开发应用程序的过程中,您会创建诸如表和索引这样的结构,这些结构用于数据行的存储和快速检索.
可以为对象的名称创建同义词(synonym),通过数据库链接在不同的数据库中查看对象,并能够限制对象的访问权限.
甚至可以使用外部表访问数据库之外的文件中的数据行,其效果就像访问表中的数据行一样.
在本书中,您将看到如何创建这些对象,并在这些对象的基础上开发应用程序.
Oracle实例(instance)由命名为系统全局区(SystemGlobalArea,SGA)的内存区域和相应的后台进程组成,这些后台进程负责SGA和数据库磁盘文件之间的交互.
在Oracle实时应用集群(OracleRealApplicationCluster,RAC)中,会有多个实例同时使用同一个数据库(参考第50章).
这些实例通常位于不同的服务器上,这些服务器保持高速互连(interconnect).
1.
2数据库技术在Oracle数据库中,基本的结构是表.
OracleDatabase11g支持多种类型的表,包括如下几种:关系表(relationaltable)使用Oracle提供的数据类型(请参考"命令和术语参考"中的"数据类型"),可以创建存储行数据的表,这些行是由应用程序插入和操作的.
表中包含列定义,可以根据应用程序的需求变化添加或删除列.
创建表使用createtable命令.
对象关系表(object-relationaltable)为了充分利用诸如类型继承等功能,可以使用Oracle的对象关系功能.
可以定义自己的数据类型,并在列定义、对象表、嵌套表、可变数组等其他的地方使用这些数据类型.
详细内容请参考本书的第Ⅴ部分.
索引组织表(index-organizedtable)可以创建一个表,这个表把数据存储在一个索引结构中,使得表中的数据根据索引的值排列.
详细内容请参考第17章.
外部表(externaltable)可以把存储在平面文件中的数据看作是一个表,用户可以对其直接进行查询,并在查询中把它和其他表关联起来.
可以使用外部表,在不需要把大量数据导入到数据库中的情况下就可以对这些数据进行访问.
请参考第28章.
注意,Oracle另外还支持BFILE数据类型,它是一个指向外部二进制文件的指针.
在创建一个BFILE或外部表之前,必须在Oracle中(通过createdirectory命令)创建一个目录别名,使这个目录指向外部文件的物理位置.
关于BFILE和其他大对象数据类型的详细内容,请参考第40章.
分区表(partitionedtable)可以把一个表分成多个部分,并单独管理表的每一个部分.
可以向表添加新的分区、拆分已经存在的分区并在独立于其他分区的情况下管理某个分区.
对表进行分区能够简化维护操作,或者能提高用户查询的效率.
可以按照一定的数据范围、数据列表、列数据的哈希值或者这几个条件的某种组合来对表进行分区.
详细内容请参考第18章.
物化视图(materializedview)物化视图是由查询检索到的数据的一个副本.
用户查询可能会被重定向到物化视图,以避免在查询执行期间访问大型表——Oracle优化第Ⅰ部分关键的数据库概念6程序会自动重写查询.
您可以创建并管理刷新时间表以便让物化视图中的数据对业务需求保持必要的更新.
详细内容请参考第26章.
临时表(temporarytable)可以使用createglobaltemporarytable命令创建一个表,该表允许多个用户在其中插入数据.
每个用户只能看到他自己在表中插入的数据.
详细内容请参考第14章.
群集表(clusteredtable)如果两个表通常会被一起查询,那么可以通过群集(cluster)结构把它们存储到物理相邻的位置上.
详细内容请参考第17章.
删除的表(Droppedtable)可以通过flashbacktabletobeforedrop命令迅速恢复已删除的表.
您可以一次把多个表和整个数据库恢复到某个时间点之前的状态.
Oracle支持闪回查询(flashbackquery),这种查询将返回表以前某个版本中的数据.
为了访问表,可以使用视图.
视图能够处理连接(join)和聚集(aggregation),限制返回的数据行数,或者更改显示的列.
视图可以是只读的,也可以是可更新的,而且它们可以引用本地表或远程表.
远程表可以通过数据库链接来访问.
可以用同义词隐藏表的物理位置.
关于数据库链接的详细内容请参考第25章,关于视图的详细内容请参考第17章.
为了调整对表的访问,Oracle支持很多种类型的索引,列举如下:B*树索引(B*-treeindex)B*树索引是Oracle中的标准索引类型,它对于选择符合某个等式条件或范围条件的数据非常有用.
这种索引由createindex命令创建.
位图索引(bitmapindex)对于只有极少几个值的列,位图索引也许能够提高查询性能.
位图索引只应该在数据被批量加载(对于很多数据仓库或报表应用程序)时使用.
反转键索引(reversekeyindex)如果在插入连续数据时会牵涉到I/O操作,Oracle会在存储数据之前动态地反转已经按索引排序好的数据.
基于函数的索引(function-basedindex)除了以一列作为索引,如Name,还可以把基于函数的列作为索引,如UPPER(Name).
这个基于函数的索引可以为Oracle优化器在选择执行路径时提供更多的选择.
分区索引(partitionedindex)可以对索引分区,以支持分区表或者简化索引管理.
索引分区可以只作用于表分区,也可以作用于表中的所有行.
文本索引(textindex)可以以文本数据为索引,以支持高级的搜索功能,如扩展单词词干或搜索短语.
文本索引是由Oracle维护的一系列表和索引值,这些表和索引值能够满足复杂的文本搜索需要.
OracleDatabase11g对文本索引进行了改进,使它的管理和维护变得更简单.
关于上面列出的索引类型(除了文本索引以外)的详细信息,请参考第17章和第46章.
关于文本索引请参考第27章.
1.
2.
1存储数据所有这些逻辑结构都必须存储在数据库中的某个地方.
Oracle维护一个数据字典(参考第45章),这个字典中记录了与所有对象(对象所有者、定义、相关的权限等)有关的元数据.
对于需要自己的物理空间来存储的对象,Oracle会在一个表空间(tablespace)中为其分配空间.
第1章OracleDatabase11g体系结构71.
表空间表空间由一个或多个数据文件组成;数据文件是表空间的一部分,而且也只能是一个表空间的一部分.
OracleDatabase11g至少为每个数据库创建两个表空间:SYSTEM和SYSAUX,以支持其内部管理的需要.
可以使用Oracle托管文件(OMF,Oraclemanagedfile)简化数据文件的创建和维护.
您可以创建一种特殊的表空间,称为bigfile表空间,其大小可达几千个TB.
借助于OMF,对bigfile的管理使得对表空间的管理对DBA完全透明;DBA可以把表空间作为一个整体来管理,而不用担心空间的大小和底层数据文件的各种结构.
如果一个表空间被指定为临时表空间,则这个表空间本身是永久性的,但是保存在它里面的数据段是临时的.
Oracle使用临时表空间来支持诸如创建索引和连接处理这样的排序操作.
临时数据段和永久对象不应该存储在相同的表空间中.
表空间可以按字典的方式进行管理,也可以按本机的方式进行管理.
在按字典方式进行管理的表空间中,空间的管理记录在数据字典中.
在按本机方式(默认方式)进行管理的表空间中,Oracle在表空间的每个数据文件中都维护了一个位图,这个位图用于跟踪可用空间的大小.
只有存储限额(quota)是在数据字典中进行管理的,这极大地减少了对数据字典表的争用.
2.
自动存储管理自动存储管理(automaticstoragemanagement,ASM)功能将自动完成对数据库所使用的数据文件和其他操作系统级别文件的分布规划,把这些文件分配到所有可用的磁盘空间中.
当在ASM实例中添加了新的磁盘时,Oracle会自动在定义好的磁盘阵列的所有磁盘上重新分配数据库文件,以获得更优的性能.
ASM实例的多路复用功能使得数据丢失的可能性降到最低,而且比手工管理关键性文件并把备份保存到不同的物理磁盘上要高效得多.
请参考第51章.
3.
自动撤消管理为了支持事务,Oracle能够动态地创建和管理撤消数据段(undosegment),这个数据段有助于维护数据块和数据行在修改前的镜像.
以前查询过被您修改的数据行的用户仍将看到原来的数据行,就像他们开始查询的时候一样.
自动撤消管理(automaticundomanagement,AUM)使得Oracle可以直接管理撤消数据段,而无需数据库管理员进行干预.
另外,使用AUM还简化了闪回查询的使用.
您可以执行闪回查询来查看在一定时间间隔内对数据所进行的各种修改.
关于撤消数据段、闪回查询和闪回版本查询的更多内容,请参考第29章和第30章.
4.
删除的数据OracleDatabase10g中新增的回收站(recyclebin)概念使得表空间和数据文件对空间的需求发生了变化.
删除一个表的默认动作是保留为它分配的空间;可以通过RECYCLEBIN数据字典视图查看它的空间使用情况.
如果两次创建一个表并把它删除掉,那么回收站中将会第Ⅰ部分关键的数据库概念8出现这个表的两个副本.
虽然这种体系结构大大简化了恢复偶然删除的数据表的恢复,但是同时也显著地增加了数据库所使用的空间.
使用purge命令可以删除回收站中原来的内容.
查看附录A可以了解purge命令的语法.
1.
2.
2数据保护您可以完全控制数据的访问权限.
可以授予其他用户对对象执行特定操作(如select、insert等)的权限.
您还可以进行更进一步的授权操作.
可以对角色授权,然后再把角色授予用户,从而将权限分成可管理的组.
Oracle支持一系列非常详细的权限级别;您可以控制哪些行可以访问和在审核期间哪些行将触发审核事件,以便把事件记录下来.
如果使用虚拟专用数据库(VirtualPrivateDatabase,VPD)选项,那么用户的表查询始终都受到限制,而不管他们用什么方法访问表.
您可以对敏感数据启用列屏蔽功能,也可以对存储在磁盘上的数据进行加密.
关于VPD实现的详细内容,请参考第20章.
除了保护数据访问的安全以外,您还可以审核数据库中的各种事件.
可以审核的事件包括授权的操作(如创建用户)、修改数据结构和访问特定的行和表.
1.
2.
3可编程的结构Oracle支持很多可编程的访问方法.
SQL语言对所有应用程序的开发工作都非常重要,关于它的详细讨论将贯穿在本书中.
其他的访问方法列举如下:PL/SQL如本书第Ⅳ部分所描述的,PL/SQL对大多数应用程序的实现都是非常关键的.
可以使用PL/SQL创建存储过程和函数,而且可以在查询中调用创建的函数.
过程和函数可以集中放到程序包中.
另外还可以创建触发器,用于告诉数据库当在数据库内部发生不同的事件时应分别采取什么样的步骤.
触发器可能会在某些数据库事件(如启动数据库)发生时触发,也可能在对数据行或数据结构进行修改(例如试图删除一个表)时触发.
无论哪种情况,您都将在触发事件发生时使用PL/SQL来控制数据库或应用程序的行为.
动态SQL可以在程序运行的时候产生SQL命令并把这些命令传递给过程,然后通过动态SQL执行该过程.
详细内容请参考第36章.
SQL*Plus正如本书所述,SQL*Plus为Oracle数据库提供了一个简单的接口.
SQL*Plus可以很好地满足基本的报表需求,但是它在脚本编程方面的功能更突出.
它为从数据字典中检索数据和创建数据库对象提供了一个统一的接口.
Java和JDBC您将在本书的第Ⅵ部分看到,Oracle对Java和JDBC的支持使得您可以用Java取代PL/SQL来完成很多操作.
您甚至可以编写基于Java的存储过程.
Oracle中Java的功能正随着新版本的发布不断得以扩展和加强.
XML如第52章所述,可以使用Oracle的XML接口和XML类型通过XML执行数据的插入和检索.
面向对象的SQL和PL/SQL可以使用Oracle创建和访问面向对象的结构,包括用户定义的数据类型、方法、大对象(LOB)、对象表和嵌套表.
详细内容参考第Ⅴ部分.
第1章OracleDatabase11g体系结构9DataPumpOracleDatabase10g中新增的DataPumpImport和DataPumpExport这两个功能大大增强了原来使用的Import实用程序和Export实用程序的可管理性和性能.
可以在修改模式和数据的时候使用DataPump把数据库中的数据快速提取出来并存储到其他数据库中.
关于使用DataPump的详细内容请参考第24章.
SQL*Loader可以使用SQL*Loader把平面文件快速加载到Oracle数据表中.
可以在一次加载过程中把单个平面文件加载到多个数据表中,而且加载是并行完成的.
详细内容参考第23章.
外部程序和过程可以把SQL嵌入到外部程序中,或者创建过程库,以后可以将这个库链接到Oracle.
详细内容参考第35章.
UTL_MAILUTL_MAIL是OracleDatabase10g中才引入的一个程序包,它允许PL/SQL应用程序开发人员直接发送电子邮件,而不用了解如何使用底层的SMTP协议栈.
1.
3选择体系结构和选项Oracle为开发基于OracleDatabase11g的应用程序提供了一整套非常有用的工具.
您可以使用OracleDatabase11g引入的很多功能,而与您所选择的应用程序体系结构没有关系.
如果您曾经用Oracle以前的版本实现过应用程序,那么应该检查一下您的数据库,并找出OracleDatabase11g中的新功能可对应用程序加以改进的地方.
例如,如果曾实现过物化视图,那么也许可以利用扩展物化视图增量(fast选项)刷新的新功能.
Oracle提供了一系列的过程,用以帮助您管理物化视图的刷新时间表.
例如,您可以执行一个过程来生成描述信息,给出刷新可能性和妨碍您使用最快速选项的配置问题.
您可以根据一组示例查询使用Oracle提供的另一个过程来生成调整物化视图结构的推荐配置.
有一些新功能稍微发生了一些变化,但这些变化对应用程序或编写代码的方法产生的影响却很大.
例如,可以使用变更重放功能来捕获在一个数据库中执行的命令,并在另一个数据库中重放这些命令.
一些有意义的新功能还包括"不可见"索引、简化的表维护以及版本对象.
应该根据可用的新特性重新评估应用程序原有的体系结构.
在下面的几章中,您将了解到怎样安装OracleDatabase11g和怎样把旧版本的数据库升级到OracleDatabase11g的数据库.
随后几章将简要介绍一下应用程序的规划,然后用大量的篇幅分别介绍SQL、PL/SQL、Java、面向对象的功能和XML的使用方法,从而使您能够最大限度地发挥Oracle数据库的作用.
随着业务流程的变化,应用程序的体系结构也会不断发生变化.
在调整应用程序的体系结构的同时,应该了解Oracle数据库最新的功能并确定应用程序如何才能最好地使用它们,以便提高应用程序的功能和性能.
新网好不好?新网域名便宜吗?新网怎么样?新网是国内老牌知名域名注册商,企业正规化运营,资质齐全,与阿里云万网和腾讯云DNSPOD同为国内服务商巨头。近日新网发布了最新的七月放价季优惠活动,主要针对域名、云主机、企业邮箱、SSL证书等多款云产品推送了超值的优惠,其中.com顶级域名仅19.9元/首年,.cn域名仅16元/首年,云主机1核心2G内存3Mbps带宽仅9.9元/月,企业邮箱更是免费送1年,...
昔日数据怎么样?昔日数据是一个来自国内服务器销售商,成立于2020年底,主要销售国内海外云服务器,目前有国内湖北十堰云服务器和香港hkbn云服务器 采用KVM虚拟化技术构架,湖北十堰机房10M带宽月付19元起;香港HKBN,月付12元起; 此次夏日活动全部首月5折促销,有需要的可以关注一下。点击进入:昔日数据官方网站地址昔日数据优惠码:优惠码: XR2021 全场通用(活动持续半个月 2021/7...
近期联通CUVIP的线路(AS4837线路)非常火热,妮妮云也推出了这类线路的套餐以及优惠,目前到国内优质线路排行大致如下:电信CN2 GIA>联通AS9929>联通AS4837>电信CN2 GT>普通线路,AS4837线路比起前两的优势就是带宽比较大,相对便宜一些,所以大家才能看到这个线路的带宽都非常高。妮妮云互联目前云服务器开放抽奖活动,每天开通前10台享3折优惠,另外...
oracle数据库视频为你推荐
.cn域名cn域名有什么用啊?硬盘工作原理高人指点:电子存储器(U盘,储存卡,硬盘等)的工作原理阿丽克丝·布莱肯瑞吉行尸走肉第六季女演员firetrap我发现好多外贸店都卖其乐的原单,有怎么多原单吗18comic.fun有什么好玩的网站百花百游迎得春来非自足,百花千卉共芬芳什么意思百度关键词分析如何正确分析关键词?mole.61.com摩尔庄园RK的秘密是什么?www.kanav001.com跪求下载[GJOS-024] 由愛可奈 [Kana Yume] 現役女子高生グラビア种子的网址谁有抓站工具一起来捉妖神行抓妖辅助工具都有哪些?
到期域名查询 个人域名备案流程 免费cn域名 dns是什么 pw域名 美元争夺战 私服服务器 圣迭戈 realvnc dd444 e蜗 个人域名 seednet 1g空间 qq对话框 美国堪萨斯 防cc攻击 徐州电信 免费稳定空间 阵亡将士纪念日 更多