• 沒有找到結果。

Oracle 12c从入门到精通(第二版) - 万水书苑-出版资源网

N/A
N/A
Protected

Academic year: 2021

Share "Oracle 12c从入门到精通(第二版) - 万水书苑-出版资源网"

Copied!
23
0
0

加載中.... (立即查看全文)

全文

(1)

1

Oracle 数据库概述

Oracle Database 12c Release 1(12.1.0.1.0)数据库系统具有良好的体系结构、强大 的数据处理能力、丰富实用的功能和许多创新的特性,并根据用户对象需求的不同,提 供了不同的版本。

本章将首先回顾一下数据库的一些基本概念和基础知识,以及 Oracle 数据库 12c 的 一些基本术语,并对 Oracle 的产品结构和创新特性进行介绍。

1.1 Oracle 数据库产品结构及组成

Oracle 数据库 12c 在 Windows 平台上提供有三个版本:标准版 1(SE1)、标准版(SE)、 企业版(EE)。三个版本都是 64 位的,并无 32 位版本,Oracle 12c 可以访问的内存空 间是该 Windows 操作系统能访问的最大内存空间,并在数据库规模上无限制,而不再像 Oracle 11g 限制 11GB。均能够满足客户对各种领域(性能和可用性、安全性和合规性、 数据仓储和分析、非结构化数据和可管理性)的特殊需求。

1.1.1 标准版 1

Oracle 数据库 12c 标准版 1(SE1)功能全面,可适用于最多容纳两个插槽 CPU 的 单台服务器,它提供了企业级性能和安全性,易于管理,并可随需求的增长轻松进行扩 展。与标准版一样,标准版 1 可向上兼容其他数据库版本,并随企业的发展而扩展,从 而使得企业能够以最低的成本获得最高的性能,保护企业的初期投资。

(2)

标准版 1 的主要优点如下:

 应用服务支持。以企业级性能、安全性、可用性和可伸缩性支持所有业务管理

软件。

 多平台自动管理。可基于 Windows、Linux 和 UNIX 操作系统运行,自动化的

自管理功能使其易于管理。

 全面的开发功能。借助 Oracle Application Express、Oracle SQL 开发工具和

Oracle 面向 Windows 的数据访问组件简化应用开发。

 灵活的订制服务。用户可以仅购买所需功能,并在需求增长时轻松添加更多功能。

1.1.2 标准版

Oracle 数据库 12c 标准版(SE)功能全面,可适用于最多容纳四个插槽 CPU 的单 台服务器或者集群服务器,它通过应用集群服务实现了高可用性,提供了企业级性能和 安全性,易于管理并可随需求的增长轻松扩展。标准版可向上兼容企业版,并随企业的 发展而扩展,从而保护企业的初期投资。 标准版的主要优点如下:  多平台自动管理。可基于 Windows、Linux 和 UNIX 操作系统运行,自动化的 自管理功能使其易于管理。

 丰富的开发功能。借助 Oracle Application Express、Oracle SQL 开发工具和

Oracle 面向 Windows 的数据访问组件简化应用开发。

 灵活的订制服务。用户可以仅购买现在所需要的功能,并在以后通过真正应用

集群轻松进行扩展。 1.1.3 企业版

Oracle 数据库 12c 企业版(EE),对最多容纳 CPU 插槽无限制,可以运行在 Windows、 Linux 和 UNIX 的集群服务器或单台服务器上。对正在部署私有数据库云的客户和正在 寻求以安全、隔离的多租户模型发挥 Oracle 数据库强大功能的 SaaS(Software as a Service,软件即服务)供应商有极大帮助,提供了综合功能来管理要求最严苛的事务处 理、大数据和数据仓库,客户可以选择各种 Oracle 数据库企业版选件来满足业务用户对 性能、安全性、大数据、云和可用性服务级别的期望。 企业版的主要优点如下:  使用新的多租户架构,无需更改现有应用即可在云上实现更高级别的整合。  自动数据优化特性可高效地管理更多数据、降低存储成本和提升数据库性能。  深度防御的数据库安全性可应对不断变化的威胁和符合越来越严格的数据隐 私法规。  通过防止发生服务器故障、站点故障、人为错误以及减少计划内停机时间和提

(3)

升应用连续性,获得最高可用性。

 可扩展的业务事件顺序发现和增强的数据库大数据分析功能。

 与 Oracle Enterprise Manager Cloud Control 12c 无缝集成,使管理员能够轻松管

理整个数据库生命周期。 Oracle 数据库 12c 企业版提供了许多选件以帮助企业发展业务,并达到用户期望的 性能。其中,选件包括真正应用集群、活动数据卫士、OLAP、内存数据库缓存、数据 挖掘、可管理性、分区、空间管理、Database Vault、高级压缩、内容数据库、真正应用 测试、全面恢复、高级安全性和标签安全性。 Oracle 数据库 12c 的所有版本都是用相同的代码构建的,版本之间是完全兼容的。 Oracle 数据库 12c 可用在多种操作系统上,包括开发工具和编程接口上。客户可以从标 准版 1 开始,随着业务的增长或者条件的变化,升级到标准版或企业版。只需要简单的 数据库升级、更新迁移与整合,用户就可以得到高性能、高可靠性、可扩展性和安全性, 这正是由于 Oracle 有一个这样的简便管理环境。

1.2 数据库基本术语

数据库技术是计算机技术中发展最为迅速的领域之一,已经成为人们存储数据、管 理信息和共享资源的最常用、最先进的技术。数据库技术已经在科学、技术、经济、文 化和军事等各个领域发挥着重要的作用。 1.2.1 数据库 顾名思义,数据库 DB(Database)即指存放数据的仓库,只不过该仓库位于计算 机的存储设备上。通常,这些数据面向一个组织、部门或整个企业,它们是按照一定的 数据组织模型存放在存储器上的一组相关数据集合。例如学生成绩管理系统中,学生的 基本信息、学籍信息、成绩信息等都是来自学生成绩管理数据库的。 除了用户可以直接使用的数据外,还有另外一种数据,它们是数据库的定义信息, 如数据库的名称、数据表的定义、数据库账户、权限等。用户不会经常性地使用这些数 据,但是对数据库来说非常重要。这些数据通常存放在一个“数据字典(Data Dictionary)” 中。数据字典是数据库管理系统工作的依据,数据库管理系统借助于数据字典来理解数 据库中数据的组织,并完成对数据库中数据的管理与维护。数据库用户可通过数据字典 获取有用的信息,如用户创建了哪些数据库对象,这些对象是如何定义的,这些对象允 许哪些用户使用等。但是,数据库用户是不能随便改动数据字典中的内容的。 数据字典是数据库管理系统中非常重要的组成部分之一,它是由数据库管理系统自动生成并 维护的一组表和视图。 提 示

(4)

过去人们只是把数据存放在文件柜里,当数据逐渐增多时,从大量的文件中查找数 据显得十分困难。如今人们利用计算机和数据库科学地保存和管理大量复杂的数据,首 先将所要应用的大量数据收集并抽取,然后将其保存并进行进一步的查询和加工处理, 以获得更多有用的信息。由此看来,数据库是长期存储在计算机内,有组织的、大量的、 可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的 冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。 1.2.2 数据库管理系统

在建立了数据库之后,由数据库管理系统(Database Management System,DBMS) 对数据库中的数据进行管理与操纵,科学地组织和存储数据、高效地获取和维护数据、 建立用户帐户和分配权限,以及向用户提供各种操作功能。 数据库管理系统(DBMS)是指数据库系统中对数据进行管理的软件系统,它是数 据库系统的核心组成部分,数据库系统的一切操作,包括查询、更新及各种控制,都是 通过 DBMS 进行的。DBMS 总是基于数据模型,因此可以把它看成是某种数据模型在 计算机系统上的具体实现。根据所采用数据模型的不同,DBMS 可以分成网状型、层次 型、关系型、面向对象型等。但在不同的计算机系统中,由于缺乏统一的标准,即使是 同种数据模型的 DBMS,它们在用户接口、系统功能等方面也是不同的。关系型 DBMS 是目前最流行的 DBMS,常见的如 Oracle、MS SQL Server、DB2 等。 如果用户要对数据库进行操作,实际是由 DBMS 把操作从应用程序带到外部级、 概念级,再导向内部级,进而操纵存储器中的数据。一个 DBMS 的主要目标是使数据 作为一种可管理的资源来处理。DBMS 应使数据易于为各种不同的用户所共享,应该增 进数据的安全性、完整性及可用性,并提供高度的数据独立性。 1.2.3 数据库系统 数据库系统(Database System,DBS)是指在计算机系统中引入数据库后的系统, 一般由数据库、数据库管理系统(及其开发工具)、应用系统和数据库管理员构成,如 图 1.1 所示。需要注意的是,数据库的建立、使用和维护等工作只靠一个 DBMS 是远远 不够的,还要有专门的人员来完成,这些人被称为数据库管理员(Database Administrator, DBA)。 通常,在不引起混淆的情况下,人们将数据库系统简称数据库。数据库系统在计算 机系统中的地位如图 1.2 所示。数据库系统的组成包括硬件平台、数据库、软件系统、 应用系统和相关人员。 1.硬件平台及数据库 硬件系统主要指计算机各个组成部分。鉴于数据库应用系统的需求,特别强调数据 库主机或数据库服务器外存要足够大,I/O 存取效率要高,主机的吞吐量要大,作业处

(5)

理能力要强。对于分布式数据库而言,计算机网络也是基础环境,其具体介绍如下:  要有足够大的内存,存放操作系统和 DBMS 的核心模块、数据库缓冲区和应 用程序。 图 1.1 数据库系统 图 1.2 数据库在计算机系统中的地位  有足够大的磁盘等直接存取设备以存放数据库,有足够的光盘、磁盘、磁带等 作为数据备份介质。  要求连接系统的网络有较高的数据传送率。  有较强处理能力的中央处理器(CPU)来保证数据处理的速度。 2.软件 数据库系统的软件需求,主要包括如下几个方面:  DBMS,为数据库的建立、使用和维护配置的软件。  支持 DBMS 运行的操作系统。  与数据库通信的高级程序语言及编译系统。  为特定应用环境开发的数据库应用系统。 3.数据库管理员及相关人员 数据库有关人员包括数据库管理员、系统分析员、应用程序员和普通用户,其各自 职责如下所述: (1)数据库管理员 数据库管理员(DBA)负责管理和监控数据库系统,负责为用户解决应用中出现的 系统问题。为了保证数据库能够高效正常地运行,大型数据库系统都设有专人负责数据 库系统的管理和维护。数据库管理员在数据库管理系统的正常运行中起着非常重要的作 硬件 操作系统 DBMS、编译系统 应用开发工具 应用系统 用户 应用系统 用户 用户 应用开发工具 数据库管理员 数据库管理系统 数据库 操作系统 用户

(6)

用。其主要职责如下:  决定数据库中的信息内容和结构。数据库中存放哪些信息,DBA 要参与决策。 因此 DBA 必须参加数据库设计的全过程,并与用户、应用程序员、系统分析 员密切合作共同协商,做好数据库设计工作。  决定数据库的存储结构和存取策略。  监控数据库的运行(系统运行是否正常,系统效率如何),及时处理数据库系 统运行过程中出现的问题。比如系统发生故障时,数据库会因此遭到破坏,DBA 必须在最短的时间内把数据库恢复到正确状态。  安全性管理,通过对系统的权限设置、完整性控制设置来保证系统的安全性。DBA 要负责确定各个用户对数据库的存取权限、数据的保密级别和完整性约束条件。  日常维护,如定期对数据库中的数据进行备份、维护日志文件等。  对数据库有关文档进行管理。 (2)系统分析员和数据库设计人员 系统分析员负责应用系统的需求分析和规范说明,和用户及 DBA 一起,确定系统 的硬件、软件配置,并参与数据库系统概要设计。数据库设计人员按照需求分析和总体 设计的框架,合理、有效、科学、安全地设计数据库结构,定义各个表结构、存储过程、 触发器。 (3)应用程序员 应用程序员是负责设计、开发应用系统功能模块的软件编程人员,他们根据数据库 结构编写特定的应用程序,并进行调试和安装。 (4)用户 这里的用户是指最终用户。最终用户通过应用程序的用户接口使用数据库。常用的 接口方式有浏览器、菜单驱动、表格操作、图形显示、报表等。 1.2.4 数据库模式 数据库系统结构是数据库的一个总的框架。尽管实际的数据库系统软件产品多种多 样,支持不同的数据模型,使用不同的数据库语言,建立在不同的操作系统之上,但绝 大多数数据库系统在总的体系结构上都具有三级模式的结构特征。学习数据库的三级模 式将有助于理解数据库设计及应用中的一些基本概念。 1.数据库的三级模式 数据库的三级模式为外模式、概念模式和内模式,如图 1.3 所示。 (1)概念模式 概念模式也称模式,是对数据库中全局数据逻辑结构的描述,是全体用户公共的数 据视图。这种描述是一种抽象描述,不涉及具体硬件环境与平台,也与具体软件环境无关。 概念模式主要描述数据的概念记录类型及其关系,还包括数据间的一些语义约束,

(7)

对它的描述可用 DBMS 中的 DDL 定义。 图 1.3 数据库系统结构——三级模式 (2)外模式(External Schema) 外模式也称子模式(Subschema)或用户模式,它是数据库用户(包括应用程序员 和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数 据视图,是与某一应用有关的数据的逻辑表示。 外模式通常是模式的子集。一个模式可以有多个外模式。由于它是各个用户的数据 视图,如果不同的用户在应用需求、看待数据的方式、对数据保密的要求等方面存在差 异,则其外模式描述就可能不同。即使对模式中的同一数据,在外模式中的结构、类型、 长度、保密级别等都可以不同。另外,同一外模式也可以为某一用户的多个应用系统所 使用,但一个应用程序只能使用一个外模式。 DBMS 提供外模式描述语言(外模式 DDL)来严格地定义外模式。 (3)内模式(Internal Schema) 内模式也称存储模式(Storage Schema),一个模式只有一个内模式。它是数据物理 结构和存储方式的描述,定义所有的内部记录类型、索引和文件的组织形式,以及数据 控制方面的细节。 内部记录并不涉及到物理记录,也不涉及到设备的约束。比内模式更接近于物理存 储和访问的那些软件机制是操作系统的一部分,即文件系统。如从磁盘读数据或写数据 到磁盘上的操作等。 数据库 内模式 概念模式 外模式 2 外模式 1 外模式 n 应用 1 应用 2 应用 3 应用 n 外模式/模式映像 模式/内模式映像 DBMS 外模式是保证数据库安全性的一个有力措施。每个用户只能看到和访问所对应的外模式中的 数据,数据库中的其他数据是看不到的。 提 示

(8)

DBMS 提供内模式描述语言(内模式 DDL)来严格地定义内模式。 2.数据库的二级映像 数据库系统的模式、内模式、外模式之间有很大的差别,为了实现用户和数据之间 的透明化,DBMS 提供了二级映像:外模式/模式映像和模式/内模式映像。有了这二级 映像,用户就能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式 与存储方式。正是这二级映像保证了数据库系统中的数据能够具有较高的逻辑独立性和 物理独立性。 (1)外模式/模式映像 数据库的每一个外模式都有一个外模式/模式映像,它定义了该外模式与模式之间 的对应关系,外模式/模式映像一般是在外模式中描述的。 模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应于 同一个模式可以有任意多个外模式。 如果模式需要进行修改,例如数据重新定义,增加新的关系、新的属性,改变属性 的数据类型等,那么只需对各个外模式/模式映像做相应的修改,使外模式尽量保持不变, 而应用程序一般是依据外模式编写的,因此应用程序也不必修改,从而保证了数据与程 序的逻辑独立性,这就是数据的逻辑独立性。 (2)模式/内模式映像 模式/内模式映像是唯一的,因为数据库只有一个模式和一个内模式。它存在于模 式和内模式之间,由于两级模式之间的数据结构可能不一致,甚至可能差别很大。模式 /内模式映像定义了模式和内模式之间的对应关系,即数据全局逻辑结构与存储结构之间 的对应关系。模式/内模式映像一般是在模式中描述的。当数据库的存储结构改变时,由 数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,因此应用程序也不 必改变。这就保证了数据与程序的物理独立性,简称数据的物理独立性。 在数据库的三级模式结构中,数据库模式即全局逻辑结构是数据库的中心与关键, 它独立于数据库的其他层次。因此设计数据库模式结构时应首先确定数据库的模式。 数据库的内模式依赖于它的全局逻辑结构,但独立于数据库的用户视图即外模式, 也独立于具体的存储设备。它是将全局逻辑结构中所定义的数据结构及其联系按照一定 的物理存储策略进行组织,以实现较好的时间与空间效率。 数据库的外模式面向具体的应用程序,它定义在逻辑模式之上,但独立于存储模式 和存储设备。当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式就 得做相应改动,所以设计外模式时应充分考虑到应用的扩充性。特定的应用程序是在外模 映像实质上是一种对应关系,是指映像双方如何进行数据转换,并定义转换规则。这样就能 使数据独立性得到保证。 提 示

(9)

式描述的数据结构上编制的,它依赖于特定的外模式,独立于数据库的模式和存储结构。 数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去。另 外,由于数据的存取由 DBMS 管理,用户不必考虑存取路径等细节,从而简化了应用 程序的编制,大大减少了应用程序的维护和修改工作。 1.2.5 数据模型 模型是现实世界特征的模拟与抽象。比如一组建筑规划沙盘,精致逼真的飞机航模, 都是对现实生活中的事物的描述和抽象,见到它就会让人们联想到现实世界中的实物。 数据模型(Data Model)也是一种模型,它是数据库中用于提供信息表示和操作手 段的形式构架,是数据库中用来对现实世界进行抽象的工具。由于计算机不可能直接处 理现实世界中的具体事物,因此人们必须事先把具体事物转换成计算机能够处理的数 据,即首先要数字化,要把现实世界中的人、事、物、概念用数据模型这个工具来抽象、 表示和加工处理。 数据模型按不同的应用层次分为 3 种类型,分别是概念数据模型(Conceptual Data Model),逻辑数据模型(Logic Data Model)和物理数据模型(Physical Data Model)。

1.概念数据模型 概念数据模型又称概念模型,是一种面向客观世界、面向用户的模型,与具体的数 据库管理系统无关,与具体的计算机平台无关。人们通常先将现实世界中的事物抽象到信 息世界,建立所谓的“概念模型”,然后再将信息世界的模型映射到机器世界,将概念模 型转换为计算机世界中的模型。因此,概念模型是从现实世界到机器世界的一个中间层次。 2.逻辑数据模型 逻辑数据模型又称逻辑模型,是一种面向数据库系统的模型,它是概念模型到计算 机之间的中间层次。概念模型只有在转换成逻辑模型之后才能在数据库中得以表示。目 前,逻辑模型的种类很多,其中比较成熟的包括层次模型、关系模型、网状模型、面向 对象模型等。 上述 4 种数据模型的根本区别在于数据结构不同,即数据之间联系的表示方式不同, 具体介绍如下:  层次模型用“树结构”来表示数据之间的联系。  关系模型用“二维表”来表示数据之间的联系。  网状模型用“图结构”来表示数据之间的联系。  面向对象模型用“对象”来表示数据之间的联系。 不同的应用程序有时可以共用同一个外模式。数据库的二级映像保证了数据库外模式的稳定性, 从而从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改。 注 意

(10)

3.物理数据模型 物理数据模型又称物理模型,它是一种面向计算机物理表示的模型,此模型是数据 模型在计算机上物理结构的表示。 通常,数据模型由数据结构、数据操纵和完整性约束三部分组成,这也称为数据模 型的三大要素。 1.2.6 数据完整性约束 数据完整性约束是对数据描述的某种约束条件,关系型数据模型中可以有三类完整 性约束:实体完整性、参照完整性和用户定义的完整性。 1.实体完整性(Entity Integrity) 一个基本关系通常对应现实世界的一个实体集。例如学生关系对应于学生的集合。 现实世界中的实体是可区分的,即它们具有某种唯一性标识。相应地,关系模型中以主 键作为唯一性标识。主键中的属性即主属性不能取空值。所谓空值即指“无意义”的值。 如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与现 实世界的应用环境相矛盾,因此这个实体一定不是一个完整的实体。 实体完整性规则:若属性 A 是基本关系 R 的主属性,则属性 A 不能取空值。 2.参照完整性(Referential Integrity) 现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是 用关系来描述的。这样就自然存在着关系与关系间的引用。 设 F 是基本关系 R 的一个或一组属性,但不是关系 R 的键,如果 F 与基本关系 S 的主键 Ks 相对应,则称 F 是基本关系 R 的外键(Foreign key),并称基本关系 R 为参 照关系(Referencing relation),基本关系 S 为被参照关系(Referenced relation)或目标 关系(Target relation)。关系 R 和 S 不一定是不同的关系。 参照完整性规则就是定义外键与主键之间的引用规则。参照完整性规则描述如下: 若属性(或属性组)F 是基本关系 R 的外键,它与基本关系 S 的主键 Ks 相对应(基 本关系 R 和 S 不一定是不同的关系),则对于 R 中每个元组在 F 上的值必须为:取空值 (F 的每个属性值均为空值)或等于 S 中某个元组的主键值。 【例 1-1】下面各种情况说明了参照完整性规则在关系中如何实现。在关系数据库 中有下列两个关系模式: 学生关系模式:S(学号,姓名,性别,年龄,班级号,系别),PK(学号) 学习关系模式:SC(学号,课程号,成绩),PK(学号,课程号),FK1(学号), FK2(课程号) 据规则要求关系 SC 中的“学号”值应该在关系 S 中出现。如果关系 SC 中有一个 元组(S07,C04,80),而学号 S07 却在关系 S 中找不到,那么就认为在关系 SC 中引用了 一个不存在的学生实体,这就违反了参照完整性规则。

(11)

另外,在关系 SC 中“学号”不仅是外键,也是主键的一部分,因此这里“学号” 值不允许为空。 3.用户定义的完整性(User-defined Integrity) 实体完整性和参照完整性适用于任何关系数据库系统。除此之外,不同的关系数据 库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。 用户定义的完整性就是针对某一具体关系数据库的约束条件,反映某一具体应用所 涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便 用统一的系统方法处理它们,而不要由应用程序承担这一功能。 【例 1-2】例 1-1 中的学生关系模式 S,学生的年龄定义为两位整数,但范围还很大, 为此用户可以写出如下规则把年龄限制在 15~30 岁之间:

CHECK(AGE BETWEEN 15 AND 30) 1.2.7 联机事务处理和联机分析处理

联机事务处理(Online Transaction Processing,OLTP)是数据库应用系统最底层的 应用,主要用于完成数据库应用系统的各项业务处理。

OLTP 是数据库应用系统发展中最早也是最迫切要求被实现的一层,它可以直接替 代手工劳动,极大地提高工作效率。它的应用需求推动了数据库技术,尤其是关系数据 库技术的发展,而后者又为其提供了强有力的支持。

随着 OLTP 系统的成熟,人们一方面在研究数据处理技术还可以带来什么,另一方 面又被 OLTP 产生的大量数据淹没,E.F.Codd 博士提出了联机分析处理(Online Analytical Processing,OLAP)的概念。OLAP 是一种软件技术,它使分析人员、经理和执行官能 够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。这些信息是 由 OLTP 系统中的原始数据转换过来的,按照用户的理解,它反映了用户环境真实的方 方面面,为中层领导和高层决策提供了参考和依据。 1.2.8 数据仓库 支持大量数据信息存储的技术叫做数据仓储或数据仓库。当把几个小型数据库集成 为一个大型数据库,并为一个较广泛的组织服务时,如果该数据库存储历史数据,提供 决策支持、数据汇总、只读数据,并且实质上充当所有向它提供数据的相关成品数据库 的数据接收器,那么它通常被叫做数据仓库(Data Warehouse)。 联机事务处理和联机分析处理代表了数据处理技术和数据应用的两个层次:联机事务处理提 高了工作效率和工作质量;联机分析处理从领导和决策出发,全面、真实、直观地反映经营活动 的各个方面。 提 示

(12)

数据仓库体系结构可以容纳各种格式的内部和外部数据,其中包括各种经营数据、 历史数据、现行数据、订阅数据库及来自 Internet 服务商的数据,还必须包括易于访问 的元数据。从而能够提供访问和综合来自各种数据商店的数据,进行复杂的数据分析, 创建各种多维数据视图。

数据仓库概念创始人 W.H.Inmon 于 1996 年在《Building the Data Warehouse》中明 确给出数据仓库的定义是:数据仓库是面向主题的、完整的、非易失的、随时间变化的、 用于支持决策管理的数据集合。其主要特征如下: (1)面向主题 与 OLTP 面向应用进行数据组织相对应,数据仓库的数据被划分成一个个的主题域。 主题是一个抽象的逻辑概念,是在一个较高层次上将数据分析归类的表示,对应于一个 宏观的分析领域,如政策、市场分析、价格趋势等。主题域应该具有独立性和完整性。 数据信息按主题进行组织,为按主题进行决策提供信息。 (2)完整性 数据在进入数据仓库之前,不是简单从各个业务系统中抽取出来的,必须经过系统 加工、汇总和整理,从而使数据仓库内的信息是关于企业的、一致的、全局的数据信息。 这一步是数据仓库建设中最关键、最复杂的一步,它完成了元数据从面向应用到面向主 题的转变。 (3)稳定性 与 OLTP 系统不同,数据按照一定的周期升级到数据仓库中,包括复杂提取、概括、 聚集和老化的过程。数据一旦进入数据仓库以后,在一般情况下长期保留。也就是说, 数据仓库基本上是只读的,反映历史数据的内容,是不同时点的数据库快照的集合,以 及基于这些快照的通过统计、综合和重组所导出的数据,而不是 OLTP 系统的数据。它 所涉及的操作主要是查询操作,用户不能对其进行删除或更新。一旦数据超过了数据仓 库的数据存储期限,这些数据将从当前的数据仓库中删去。 (4)时变性 数据仓库内的信息包括了企业各个历史时期的数据,而不只是企业当时或某一时间 点上的数据,用以支持数据分析,它可提供对数据的瞬时分析并衍生出数据值或对企业 的发展历程和未来趋势进行分析等功能。所谓变化即指数据仓库中存储的大量历史数 据、当前数据和综合数据等,它们处于永远的发展变化中。引起变化的因素包括新的数 据内容的引入、旧的数据的删除以及重新综合数据等。

1.3 Oracle 基本术语

除了在前述小节中所提到的有关数据库技术的基本概念外,Oracle 中还包含一些特 有的术语,下面将对其简单介绍。

(13)

1.3.1 数据字典 数 据字 典是 Oracle 数据库 的重 要组 成部分 。它由 一系 列拥 有数据 库元 数据 (metadata)信息的数据字典表和用户可以读取的数据字典视图组成,存放 Oracle 数据 库所用的有关信息,其中主要内容包括如下:  系统的空间信息,即分配了多少空间,当前使用了多少空间等。  数据库中所有模式对象的信息,如表、视图、簇、同义词及索引等。  例程运行的性能和统计信息。  Oracle 用户的名字。  用户访问或使用的审计信息。  用户及角色被授予的权限信息。  列的约束信息的完整性。  列的缺省值。 在 Oracle 数据库中,数据字典可以看作是一组表和视图结构。它们存放在 SYSTEM 表空间中。在数据库系统中,数据字典不仅是每个数据库的核心,而且对每个用户也是 非常重要的信息。用户可以用 SQL 语句访问数据字典。通过数据字典可实现如下功能:  当执行 DDL 语句修改方案、对象后,Oracle 会将本次修改的信息记录在数据 字典中。  用户可以通过数据字典视图获得各种方案对象和对象的相关信息。  Oracle 通过查询数据字典表或数据字典视图来获取有关用户、方案、对象的定 义信息以及其他存储结构的信息。  DBA 可以通过数据字典的动态性能视图监视例程的状态,作为性能调整的 依据。 1.3.2 数据文件 一个 Oracle 数据库可以拥有一个或多个物理的数据文件。数据文件包含了全部数据 库数据。逻辑数据库结构的数据也物理地存储在数据库的数据文件中。 数据文件具有如下特征:  一个数据库可拥有多个数据文件,但一个数据文件只对应一个数据库。  可以对数据文件进行设置,使其在数据库空间用完的情况下进行自动扩展。  一个表空间(数据库存储的逻辑单位)可以由一个或多个数据文件组成。 数据文件中的数据在需要时可以读取并存储在 Oracle 的内存存储区中。例如:用户 要存取数据库一个表的某些数据,如果请求的数据不在数据库的内存存储区中,则从相 应的数据文件中读取并存储在内存存储区。当数据被修改或是插入新数据时,不必立刻 写入数据文件,而是把数据暂时存储在内存,由 Oracle 的后台进程 DBWR 来决定何时

(14)

将其写入数据文件中,这是为了减少磁盘 I/O 的次数,提高系统的效率。 数据文件是用于存储数据库数据的文件,如表、索引数据等都物理地存储在数据文 件中。这就把数据文件和表空间联系在一起。表空间是一个或多个数据文件在逻辑上的 统一组织,而数据文件是表空间在物理上的存在形式。没有数据文件的存在,表空间就 失去了存在的物理基础;而离开了表空间,Oracle 就无法获得数据文件的信息,无法访 问到对应的数据文件,这样的数据文件就成了垃圾文件。 数据文件的大小有两种方式表示,即字节和数据块。数据块是 Oracle 数据库中最小 的数据组织单位,它的大小由参数“DB_BLOCK_SIZE”来确定。 1.3.3 控制文件 数据库控制文件是一个很小的二进制文件,它维护着数据库的全局物理结构,用以 支持数据库成功地启动和运行。创建数据库时,同时就提供了与之对应的控制文件。在 数据库使用过程中,Oracle 不断更新控制文件,所以只要数据库是打开的,控制文件就 必须处于可写状态。若由于某些原因控制文件不能被访问,则数据库也就不能正常工作 了。 每一个 Oracle 数据库有一个控制文件,它记录着数据库的物理结构,其中主要包含 下列信息类型:  数据库名称。  数据库数据文件和日志文件的名字和位置。  数据库建立日期。  日志历史。  归档日志信息。  表空间信息。  数据文件脱机范围。  数据文件拷贝信息。  备份组和备份块信息。  备份数据文件和重做日志信息。  当前日志序列数。  检查点信息(CHECKPOINT)。 Oracle 数据库的控制文件是在数据库创建的同时创建的。默认情况下,在数据库 创建期间至少有一个控制文件副本,如在 Windows 平台下,将创建 3 个控制文件的 副本。 每一次 Oracle 数据库的实例启动时,它的控制文件用于标识数据库和日志文件,当 着手数据库操作时它们必须被打开。当数据库的物理组成更改时,Oracle 自动更改该数 据库的控制文件。数据恢复时,也要使用控制文件。如果数据库的物理结构发生了变化,

(15)

用户应该立即备份控制文件。一旦控制文件不幸被毁损,数据库便无法顺利启动。也因 为如此,控制文件的管理与维护工作显得格外重要。

1.3.4 日志文件

日志文件也称为重做日志文件(Redo Log File)。重做日志文件用于记录对数据库 的所有修改信息,修改信息包括用户对数据的修改,以及管理员对数据库结构的修改。 重做目志文件是保证数据库安全和数据库备份与恢复的文件。 重做日志文件主要在数据库出现故障时使用。在每一个 Oracle 数据库中,至少有两 个重做日志文件组,每组有一个或多个重做日志成员,一个重做日志成员物理地对应一 个重做日志文件。在现实作业系统中为确保日志的安全,基本上对日志文件采用镜像的 方法。在同一个日志文件组中,其日志成员的镜像个数最多可以达到 5 个。有关日志的 模式包括归档模式(ARCHIVELOG)和非归档模式(NOARCHIVELOG)两种。 Oracle 在重做日志文件中以重做记录的形式记录用户对数据库进行的操作。当需要 进行数据库恢复时,Oracle 将根据重做日志文件中的记录,恢复丢失的数据。重做日志 文件是由重做记录组成的,重做记录又称为重做条目,它由一组修改向量组成。每个修 改向量都记录了数据库中某个数据块所做的修改。例如,如果用户执行了一条 UPDATE 语句对某个表中的一条记录进行修改,同时将生成一条重做记录。这条重做记录可能由 多个变更向量组成,在这些变更向量中记录了所有被这条语句修改过的数据块中的信 息。被修改的数据块包括表中存储这条记录的数据块,以及回滚段中存储的相应的回滚 条目的数据块。 利用重做记录,不仅能够恢复对数据文件所做的修改操作,还能够恢复对回滚段所 做的修改操作。因此,重做日志文件不仅可以保护用户数据库,还能够保护回滚段数据。 在进行数据库恢复时,Oracle 会读取每个变更向量,然后将其中记录的修改信息重新应 用到相应的数据块上。 日志成员镜像个数受参数 MAXLOGNUMBERS 的限制;若需要确定系统正在使用哪一个日 志文件组,则可以查询数据字典“V$LOG”,还可以查询数据字典“V$LOGFILE”,进一步找到 正在使用日志组中的哪个日志文件。管理员可以通过语句 ALTER SYSTEM SWITCH LOGFILE 来 强 行 地 进 行 日 志 切 换 ; 若 要 查 询 数 据 库 运 行 在 何 种 模 式 下 , 则 可 以 查 询 数 据 字 典 “V$DATABASE”,在数据字典“V$LOG_HISTORY”中记录着历史日志的信息。 提 示 数据文件、控制文件、日志文件还有一些其他文件(如参数文件、备份文件等)构成了 Oracle 数据库的物理存储结构,对应于操作系统的具体文件,是 Oracle 数据库的物理载体。 说 明

(16)

1.3.5 表空间 表空间是 Oracle 数据库中最大的逻辑结构。它提供了一套有效组织数据的方法,是 组织数据和进行空间分配的逻辑结构,可以将表空间看作是数据库对象的容器。简单地 说,表空间就是一个或多个数据文件(物理文件)的集合(逻辑文件),所有的数据对 象都被逻辑地存放在指定的表空间中。 一个数据库通常包括 SYSTEM、SYSAUX 和 TEMP 三个默认表空间,一个或多个 临时表空间,还有一个撤销表空间和几个应用程序专用的表空间。可以通过创建新的表 空间来满足需求,创建时需要决定表空间的类型。 1.表空间的类型 (1)系统表空间(System Tablespace) 系统表空间包括 SYSTEM 和 SYSAUX 表空间,系统表空间是所有数据库必须具备 的,自动创建,一般存放 Oracle 的数据字典表及相应数据。 (2)永久表空间(Permanent Tablespace) 永久表空间用于保存永久性数据,如系统数据、应用系统数据。每个用户都会被分 配一个永久表空间,以便保存其相关数据。除了撤销(Undo)表空间以外,相对于临时 表空间而言,其他表空间都是永久表空间,如系统表空间。 (3)临时表空间(Temporary Tablespace) 由于 Oracle 工作时经常需要一些临时的磁盘空间,这些空间主要为查询时带有排序 (如 Group by、Order by 等)的算法所用,当用完后就立即释放,对记录在磁盘区的信 息不再使用,因此称为临时表空间。一般安装之后只有一个 TEMP 临时表空间。 (4)撤销表空间(Undo Tablespace) 从 Oracle 9i 后,提供了一种全新的撤销空间管理方式,从而使得 DBA 能够很容易 地管理撤销空间,即“自动撤销管理”。而与此相对应,通过回滚段进行撤销空间管理 的方式被称为“手工撤销管理”。自动撤销管理方式也称为 SMU(System Managed Undo) 方式,而回滚段管理方式称为 RBU(Rollback Segments Undo)方式。在 Oracle 11g 数 据库中,系统默认为启用自动撤销表空间管理方式,同时也支持传统的回滚段管理方式。 在一个数据库中,只能采用一种撤销空间管理方式,而不能同时存在两种撤销空间 管理方式。数据库采用哪一种撤销空间管理方式,是由参数 UNDO_MANAGEMENT 来 确定。如果设置该参数为“AUTO”,在启动数据库时使用 SMU 方式;如果设置为 “MANUAL”,则在启动数据库时使用 RBU 方式。运行在自动撤销管理方式下的数据 在以前的版本中,Oracle 一直使用回滚段作为撤销存储空间。对于 DBA 而言,利用回滚段 进行撤销空间的管理是非常麻烦的,且很难获得较高的效率。 提 示

(17)

库,用撤销表空间来存储、管理撤销数据。Oracle 使用撤销数据来隐式或显式地回退事 务、提供数据的读一致性、帮助数据库从逻辑错误中恢复、实现闪回查询(Flashback Query)。

(5)大文件表空间和小文件表空间

从 Oracle 10g 开始,Oracle 引入了大文件表空间(Bigfile Tablespace),这是一个新 增的表空间类型。该类型的出现使存储能力有了显著的增强。大文件表空间不像传统的 表空间那样由多个数据文件组成,而是为了超大型数据库而设计的,如果一个超大型数 据库具有上千个数据文件,则更新数据文件头部信息(如 check-point)的操作可能会花 费很长时间。如果使用大文件表空间,可以使用大数据文件来减少文件的数量,从而减 少更新的时间。

小文件表空间(Smallfile Tablespace)是之前 Oracle 表空间的新名称,是默认创建 的表空间的类型。在小文件表空间中可以放置多达 1022 个数据文件,一个数据库最多 可以放置 64K 个数据文件。SYSTEM 和 SYSAUX 表空间总是被创建为小文件表空间。 2.表空间的状态 出于不同的使用需求,对表空间设置了不同的状态。通过改变表空间的状态,可以 控制表空间的可用性和安全性,也可以为相关的备份恢复等工作提供保障。表空间的状 态介绍如下: (1)读写(Read-Write)状态 这是表空间的默认状态。任何具有表空间配额并拥有相关权限的用户均可读写表空 间的数据。 (2)只读(Read-Only)状态 如果将表空间设置为只读状态,则任何用户(包括 DBA)均无法向表空间写入数 据,也无法修改表空间中的现有数据,这种限制和权限无关。 只读状态可以使表空间的数据不被修改,即仅能 SELECT,而无法进行 INSERT、 UPDATE 或是 DELETE 操作。只读状态一方面对数据提供了保护,另一方面对数据库 在 SMU 方式下,必须在数据库中创建一个撤销表空间,Oracle 将利用撤销表空间来保存撤 销记录。可以在创建数据库的同时建立一个默认的撤销表空间,也可以在数据库创建后再创建新 的撤销表空间。 注 意 一个大文件表空间中对应一个单一的数据文件或临时文件,但是文件可以达到 4G 数据块大 小。理论上当数据块大小为 2KB 时,大文件表空间可以达到 8TB;当数据块大小为 4KB 时,大 文件表空间可以达到 32TB。在实际环境中,还会受到操作系统的文件系统的限制。 提 示

(18)

中设置静态数据非常有好处。我们可以将不能被修改的静态数据保存在一个单独的表空 间中,并将这个表空间设置为只读状态,这样既可提高数据的安全性,又可减轻 DBA 的管理和维护负担。 (3)脱机(Offline)状态 在有多个应用表空间的数据库中,DBA 通过将某个应用表空间设置为脱机状态使 表空间暂时不可以被用户访问。如果需要访问该表空间时,必须将脱机状态设置为联机 状态。这样的设置增强了表空间的可用性,并提高了数据库管理的灵活性。 3.表空间的作用 对 Oracle 数据库来说,引入表空间概念具有以下作用:  控制用户所占用的空间配额。  控制数据库所占用的磁盘空间。  可以将表空间设置成只读状态而保证大量的静态数据不被修改。  能够将一个表的数据和这个表的索引数据分别存储在不同的表空间中,也可以 提高数据库的 I/O 性能。  可通过其将不同表的数据、分区表的不同分区的数据存储在不同的表空间中, 可以提高数据库的 I/O 性能,并有利于进行数据库的部分备份和恢复等管理 工作。  表空间提供了一个备份和恢复的单位,Oracle 可按表空间备份和恢复。 1.3.6 段 段(Segment)用于存储表空间中某一种特定的具有独立存储结构的对象的所有数 据,它由一个或多个区组成。段包含表空间中一种指定类型的逻辑存储结构,段是数据 区的集合,每个段都分配给特定的数据结构,存储在相同的表空间中。 Oracle 以数据区为单位为段分配空间,当段的数据区已满的时候,Oracle 为段分配 另一个数据区,段的数据区在磁盘上可能是不连续的。段和它所有的数据区都存储在一 个表空间中。在表空间中,一个段包含来自多个文件的数据区,段可以跨越数据文件。 按照段中所存储数据的特征和用途的不同,可以将段分成数据段、索引段、临时段和回 滚段几种类型。 1.数据段 数据段(Data Segment)用于存储表中的所有数据。当某个用户创建表时,就会在 该用户的默认表空间中为该表分配一个与表名相同的数据段,以便将来存储该表的所有 SYSTEM 表空间不能被设置为只读状态和脱机状态,因为在数据库运行过程中始终需要 SYSTEM 表空间数据的支持;另外,临时表空间也不能设置为只读状态。 注 意

(19)

数据。若创建的是分区表,则为每个分区分配一个数据段。显然,在一个表空间中创建 了几个表,该表空间中就有几个数据段。

数据段随着数据的增加而逐渐地变大。段的增大过程是通过增加区的个数实现的。 每次增加一个区,每个区的大小是块的整数倍。

2.索引段

索引段(Index Segment)用于存储索引的所有数据。当用户用 CREATE INDEX 语 句创建索引,或在定义约束(如主键)自动创建索引时,就会在该用户的默认表空间中 为该索引分配一个与索引名相同的索引段,以便将来存储该索引的所有数据。如果创建 的是分区索引,则为每个分区索引分配一个索引段。 3.临时段 临时段(Temporary Segment)用于存储排序操作所产生的临时数据。当用户使用 ORDER BY 语句进行排序或汇总时,在该用户的临时表空间中自动创建一个临时段,排 序结束,临时段自动消除。 在 Oracle 中,临时表空间一般是通用的,所有用户的默认临时表空间都是 TEMP 表空间。当然,可以在创建用户之后,指定临时表空间。 4.回滚段 回滚段(Rollback Segment)用于存储用户数据被修改之前的值,以便在特定条件 下回滚用户对数据的修改。Oracle 利用回滚段来恢复被回滚事务对数据库所做的修改, 或者为事务提供读一致性保证。需要注意的是,每个数据库都至少拥用一个回滚段。 1.3.7 区 区(Extent)是由物理上连续存放的块构成的。区是 Oracle 存储分配的最小单位, 由一个或多个块组成,一个或多个区将组成段。当在数据库中创建带有实际存储结构的 方案对象时,Oracle 将为该方案对象分配若干个区,以便组成一个对应的段来为该方案 对象提供初始的存储空间。当段中已分配的区都写满后,Oracle 就为该段分配一个新区, 以便容纳更多的数据。 1.3.8 数据块 数据块(Block)是最小的数据管理单位,也是执行输入输出操作时的最小单位。 相应地,操作系统执行输入输出操作的最小单位是操作系统块。Oracle 块的大小是操作 系统块大小的整数倍,可以在安装时选择“自定义安装”来指定,也可以在用 CREATE DATABASE 语句创建数据库实例时指定。其最小为 2KB,最大可达 64KB。 在数据块中可以存储各种类型的数据,如表数据、索引数据和簇数据等。无论数据 块中存放何种类型的数据,每个数据块都具有相同的结构。Oracle 数据块的基本结构由 以下几个部分组成:

(20)

 块头部:块头部包含块中一般的属性信息,如块的物理地址、块所属的段的类 型等。  表目录:若块中存储的数据是表数据(表中的一行或多行记录),则表目录存 储关于该表的信息。  行目录:存储该块中有效的行信息。  空闲空间:数据块中尚未使用的存储空间,当向数据中添加新数据时,将减小 空闲空间。  行空间:行空间是块中已经使用的存储空间,在行空间中存储了表或索引的 数据。 块头部、表目录和行目录共同组成块的头部信息区。块的头部信息区中并不存放实 际的数据库数据,它只起到引导系统读取数据的作用。因此,若头部信息区被损坏,则 整个数据块将失效,数据块中存储的数据将丢失。而空闲空间和行空间则共同构成块的 存储区,空闲空间和行空间的总和就是块的总容量。

1.4 Oracle 12c 的新特性

Oracle 12c 的新特性有很多,本节从数据库管理、CDB 与 PDB 和云端连接三个方 面对其主要的新特性进行概括性介绍。 1.4.1 数据库管理部分 在 Oracle 12c 数据库中,数据库管理部分的主要新特性为: (1)PL/SQL 性能增强 类似在匿名块中定义过程,现在可以通过 WITH 语句在 SQL 中定义一个函数,采 用这种方式可以提高 SQL 调用的性能。 (2)改善 Defaults 包括序列作为默认值;自增列;当明确插入 NULL 时指定默认值;METADATA-ONLY default 值指的是增加一个新列时指定的默认值,12c 的 default 值要求 NOT NULL 列。

(3)放宽多种数据类型长度限制 增加了 VARCHAR2、NVARCHAR2 和 RAW 类型的长度到 32KB,要求兼容性设置 为 12.0.0.0 以上,且设置了初始化参数 MAX_SQL_STRING_SIZE 为 EXTENDED,不支 表空间、段、区、数据块构成了 Oracle 数据库的逻辑存储结构,可通过 Oracle 数据库的数据 字典进行查询。逻辑存储结构从逻辑的角度分析数据库的组成,简单的说,多个数据块组成区、 多个区组成段,多个段组成表空间,多个表空间组成数据库。 说 明

(21)

持 CLUSTER 表和索引组织表;并不是真正改变了 VARCHAR2 的限制,而是通过 OUT OF LINE 的 CLOB 实现。

(4)TOP N 的语句实现

在 SELECT 语句中使用“FETCH next N rows”或者“OFFSET”,可以指定前 N 条 或前百分之多少的记录。

(5)行模式匹配

类似分析函数的功能,可以在行间进行匹配判断并进行计算。在 SQL 中新的模式 匹配语句是“MATCH_RECOGNIZE”。

(6)分区改进

Oracle Database 12c 中对分区功能做了较多的调整,Oracle 采用学习功能的执行计 划,使用运行读取过程使得查询结果更准确。 (7)Adaptive 执行计划 拥有学习功能的执行计划,Oracle 会把实际运行过程中读取到的返回结果作为进一 步执行计划判断的输入,因此统计信息不准确或查询结果与计算结果不准时,可以得到 更好的执行计划。 (8)统计信息增强 动态统计信息收集增加第 11 层,使得动态统计信息收集的功能更强;增加了混合 统计信息用以支持包含大量不同值,且个别值数据倾斜的情况;添加了数据加载过程收 集统计信息的能力;对于临时表增加了会话私有统计信息。 (9)临时 UNDO

将临时段的 UNDO 独立出来,放到 TEMP 表空间中,优点包括:减少 UNDO 产生 的数量;减少 REDO 产生的数量;在 ACTIVE DATA GUARD 上允许对临时表进行 DML 操作。 要使用这一新功能,需要做以下设置:  兼容性参数必须设置为 12.0.0 或更高。  启用 TEMP_UNDO_ENABLED 初始化参数。  由于临时 UNDO 记录现在是存储在一个临时表空间中,需要有足够的空间来 创建这一临时表空间。

 对于会话级,可以使用:ALTER SYSTEM SET TEMP_UNDO_ENABLE= TRUE;

以下所列的字典视图是用来查看或查询临时 UNDO 数据相关统计信息的:

 V$TEMPUNDOSTAT

 DBA_HIST_UNDOSTAT

 V$UNDOSTAT

要禁用此功能,你只需做以下设置:

(22)

(10)数据优化

新增了 ILM(数据生命周期管理)功能,添加了“数据库热图”(Database Heat Map), 在视图中可直接看到数据的利用率,找到哪些数据是最“热”的数据。可以自动实现数 据的在线压缩和数据分级,其中数据分级可以在线将定义时间内的数据文件转移到归档 存储,也可以将数据表定时转移至归档文件,也可以实现在线的数据压缩。

(11)应用连续性

Oracle Database 12c 之前 RAC 的 FAILOVER 只做到 SESSION 和 SELECT 级别,对 于 DML 操作则无能为力,对于 SESSION,进行到一半的 DML 会自动回滚;而对于 SELECT,虽然 FAILOVER 可以不中断查询,但是对于 DML 的问题更甚之,必须要手 工回滚。而 Oracle Database 12c 中终于支持事务的 FAILOVER。

(12)Oracle Pluggable Database

Oracle PDB 体系结构由一个容器数据库(CDB)和多个可组装式数据库(PDB)构 成,PDB 包含独立的系统表空间和 SYSAUX 表空间等,但是所有 PDB 共享 CDB 的控 制文件、日志文件和 UNDO 表空间。 1.4.2 CDB 与 PDB 部分 PL/SQL 是一种过程化编程语言,它主要用来编写包含 SQL 语句的程序,在 Oracle 12c 中其新功能主要体现在如下几个方面:

在 Oracle 数据库 12c 引入的多租户环境(Multitenant Environment)中,允许一个容 器数据库(Container Database,CDB)承载多个可插拔数据库(Pluggable Database,PDB)。 在 Oracle 12c 之前,实例与数据库是一对一或多对一关系:即一个实例只能与一个数据 库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当 进入 Oracle 12c 后,实例与数据库可以是一对多的关系。

一个 CDB 包含了下面一些组件:

 ROOT 组件:ROOT 又叫 CDB$ROOT,存储着 Oracle 提供的元数据和 Common User,元数据的一个例子是 Oracle 提供的 PL/SQL 包的源代码,Common User 是 指在每个容器中都存在的用户。

 SEED 组件:SEED 又叫 PDB$SEED,是创建 PDB 数据库的模板,不能在 SEED 中添加或修改一个对象。一个 CDB 中有且只能有一个 SEED。  PDB:CDB 中可以有一个或多个 PDB,PDB 向后兼容,可以像以前在数据库 中那样操作 PDB,这里指大多数常规操作。 这些组件中的每一个都可以被称为一个容器。因此,ROOT(根)是一个容器,SEED (种子)是一个容器,每个 PDB 是一个容器。每个容器在 CDB 中都有一个独一无二的 的 ID 和名称。

(23)

使用 ALTER PLUGGABLE DATABASE OPEN 语句打开 PDB。在一个 PDB 中只能看到 自己的用户,即使是在 pdb 登录模式下,cdb_也是可以使用的。在 CDB 中可以看到所 有 Container 中的用户。 1.4.3 云端连接 数据库与云的完美结合演绎了 Oracle 数据库 12c,辅以集成系统产品家族,让甲骨 文软件更高效地支持不同的业务需求。整个云平台的组件功能、性能变化巨大,却一脉 相承。 针对云计算所面临的海量数据的存储问题,传统的数据库存储结构已不能满足海量 数据的查询,数据库系统变得越来越复杂。而数据处理和迫切的大数据分析是数据库不 变的核心需求。Oracle 数据库 12c 的推出为企业刷新了全方位简化数据管理的方式。凭 借最新添加的热图和自动数据优化功能,Oracle 数据库 12c 可以轻松实现数据移动和数 据压缩的自动化。 Oracle 数据库 12c 集成了众多专门面向数据分析、存储的强大功能,使数据库管理 员和企业 IT 可以更加轻松地实施存储计划,实施信息生命周期管理策略,节省大量存 储空间并提升性能。在简化大数据分析方面,Oracle 数据库 12c 通过 SQL 模式匹配增强 了面向大数据的数据库内 MapReduce 功能,同时借助最新的数据库内预测算法,以及 开源数据与 Oracle 数据库 12c 的高度集成,数据专家可以更好地分析企业信息和大数据。 此外,利用 Oracle 数据库 12c 提供的智能压缩和存储分层功能,数据库管理员可基于数 据的活跃性和使用时间,轻松定义服务器管理策略,实现自动压缩和分层 OLTP、数据 仓库和归档数据。

Oracle 集成系统的优势明显,体现在:通过采用 Oracle Exadata 数据库云服务器, 知名在线支付公司 PayPal 在以 PB 级计的数据量基础上实现小于 100 毫秒的响应时间, 存储和计算能力提高 10 倍;Oracle Exalytics 商务智能云服务器助力汤森路透达到 100 倍的性能提升。 相比以往的 Oracle 数据库版本,Oracle 数据库 12c 推出了更多安全性创新,可帮助 客户应对不断升级的安全威胁和严格的数据隐私合规要求。新的校订功能使企业无需改 变大部分应用即可保护敏感数据,敏感数据基于预定义策略和客户方信息在运行时即可 校对。例如显示在应用中的信用卡号码。

參考文獻

相關文件

在這一節裡會提到,即使沒辦法解得實際的解函數,我們也 可以利用方程式藉由圖形(方向場)或者數值上的計算(歐拉法) 來得到逼近的解。..

(B)可使用 object pool 重複利用已經初始化且可使用的物件,以避免經常銷毀再重新配置。(C) 可利用遊戲空檔(如暫停、切景時)主動呼叫 GC,以增進遊戲體驗。(D)在

4.手機充電後,立刻拔掉充電器插頭,只要全球 行動電話 使用者做到 省下的能源 相當 10%行動電話

(三) 「愛,就是在別人的需要上,看到自己的責任」

• 內建元件庫(Common Libraries)則存放了 Flash 提供 的元件,讓使用者自由使用。Flash 內建的元件庫共有 3

※ 定義中的 final goods and services 要使用 value added to production,若 使用 total value 會重複計算到 intermediate inputs(因此 intermediate inputs 在其他企業中是

值得一提的是,Add-in 在 Inventor 運行時會自動加載的特性是一個非常實用的功 能。使用者可以在執行 Inventor 前選擇所需要加載的 Add-in,而沒有選擇的

解決方案:取出圖表說明並開啟原始的 PDF 檔供使用者瀏覽 利用資料庫語法來可得知圖表所在的位置,因此可使用 adobe acrobat 函式庫中的