容器数据库的制作方法

文档序号:8460738阅读:909来源:国知局
容器数据库的制作方法
【技术领域】
[0001 ] 本发明涉及数据库系统整合。
【背景技术】
[0002]在本节中描述的方法是可以实行的方法,但不一定是先前已被构想或实行的方法。因此,除非另外指出,否则不应当假设本节中描述的任何方法仅仅因为它们被包括在本节中就有资格作为现有技术。
[0003]数据库整合涉及在多个数据库间分配和共享硬件平台的计算机资源。数据库整合的重要目标包括隔离(isolat1n)、可移植性(transportability)和快速供给(provis1ning)。隔离是限制应用对适当的数据库的访问的能力:某个应用被允许访问数据库而其它应用则被阻止访问。
[0004]可移植性是另一个重要的目标。可移植性是高效地在主机之间移动数据库的能力。可移植性有助于计算机资源在被整合的数据库之间的分配。
[0005]快速供给是迅速地在主机上部署数据库的能力。快速供给通过使现有数据库能够被迅速地移动和/或复制到另一台主机来促进可移植性。快速供给还有助于将新数据库快速地部署到主机。
[0006]本文所讨论的是有效地满足这些目标的用于整合数据库的方法。
【附图说明】
[0007]附图中:
[0008]图1是描绘根据本发明实施例的数据库字典的示图。
[0009]图2是描绘根据本发明实施例的容器数据库的示图。
[0010]图3是示出为建立与可插拔数据库的数据库会话执行的操作的流程图。
[0011]图4是描绘可以在本发明实施例中使用的计算机系统的示图。
【具体实施方式】
[0012]在以下描述中,为了解释的目的,阐述了众多具体的细节,以便提供对本发明的透彻理解。但是,很显然,本发明没有这些具体细节也可以进行实践。在其它情况下,众所周知的结构和设备以框图形式示出,以避免不必要地使本发明模糊。
[0013]总体概述
[0014]本文所描述的是利用管理容器数据库的容器数据库管理系统(“容器DBMS”)整合数据库的方法。容器数据库可以包含多个单独的数据库,这些单独的数据库在本文中被称为可插拔数据库。每个可插拔数据库都由其自己单独的数据库字典定义。
[0015]数据库字典包括定义数据库中包含的数据库对象的元数据。实际上,数据库字典定义了数据库的总体。数据库对象包括表、表的列和表空间。表空间是用来为诸如表的各种类型的数据库对象存储数据的一个或多个文件集合。如果用于数据库对象的数据被存储在表空间中,则数据库字典将数据库对象映射到为该数据库对象保持数据的一个或多个表空间。
[0016]数据库字典被DBMS参考,以确定如何执行提交给DBMS的数据库命令。数据库命令可以访问由字典定义的数据库对象。
[0017]容器数据库可以为每个可插拔数据库包含多个数据库字典,每个这种数据库字典都定义可插拔数据库。当在容器DBMS上建立数据库会话时,通过将可插拔数据库的相应数据库字典建立为用于该数据库会话的数据库字典,每个数据库会话被给予对可插拔数据库的访问。通过数据库会话发出的数据库命令只能访问在为该数据库会话建立的数据库字典中定义的数据库对象。
[0018]数据库系统
[0019]本发明的实施例用在DBMS的上下文中。因此,对DBMS的描述是有用的。
[0020]DBMS管理数据库。DBMS可以包括一个或多个数据库服务器。数据库包括存储在诸如一组硬盘的持久性存储器机制上的数据库数据和数据库字典。数据库数据可以存储在一个或多个数据容器中。每个容器包含记录。每条记录中的数据被组织成一个或多个字段。在关系型DBMS中,数据容器被称为表,记录被称为行,并且字段被称为列。在面向对象的数据库中,数据容器被称为对象类,记录被称为对象,并且字段被称为属性。其它数据库体系架构可以使用其它的术语。
[0021]用户通过向数据库服务器提交使数据库服务器对存储在数据库中的数据执行操作的命令与DBMS的数据库服务器交互。用户可以是运行在客户端计算机上与数据库服务器交互的一个或多个应用。本文中多个用户也可以被统称为用户。
[0022]数据库命令可以是遵循数据库语言的数据库语句的形式。用于表示数据库命令的数据库语言是结构化查询语言(SQL)。存在许多不同版本的SQL,有些版本是标准的,有些是专用的,并且存在各种扩展。数据定义语言(“DDL”)命令被发送到数据库服务器,以创建或配置数据库对象,诸如表、视图或者复杂数据类型。SQL/XML是在对象-关系型数据库中操纵XML数据时所使用的SQL的常见扩展。
[0023]多节点数据库管理系统由共享对同一数据库的访问的互连节点组成。通常,节点经网络互连并且以变化的程度共享对共享储存的访问,例如,对一组盘驱动器和其上存储的数据块的共享访问。多节点数据库系统中的节点可以是经网络互连的一组计算机(例如,工作站、个人计算机)的形式。作为替代,节点可以是网格的节点,其中网格由节点组成,这些节点以刀片服务器的形式与机架上的其它刀片服务器互连。
[0024]多节点数据库系统中的每个节点都托管数据库服务器。服务器,诸如数据库服务器,是集成的软件组件和计算资源分配的组合,其中计算资源诸如存储器、节点和用于在处理器上执行集成的软件组件的过程,软件和计算资源的组合专用于代表一个或多个客户端执行特定的功能。
[0025]来自多节点数据库系统中多个节点的资源可以被分配用来运行特定的数据库服务器的软件。来自节点的软件和资源分配的每种组合都是在本文中被称为“服务器实例”或“实例”的服务器。数据库服务器可以包括多个数据库实例,其中一些或全部的数据库实例运行在单独的计算机上,包括单独的刀片服务器。
[0026]数据库字典和数据库数据存储
[0027]如前所述,数据库字典是DBMS的数据库管理的中心。数据库字典包含定义数据库中物理地或逻辑地包含的数据库对象的元数据。数据库对象包括表、列、数据类型、用户、用户权限和用于存储数据库对象数据的存储结构。数据库字典根据发出的DDL命令进行修改,以添加、修改或删除数据库对象。
[0028]图1绘出了数据库字典101。为了解释的目的,图1中只绘出了数据库字典101及其中包含的数据结构的的一些方面。数据库字典101包括Table_sys 102、Schema_sys103、Column_sys 104 和 Tablespace_sys 105。
[0029]Table_sys 102是包含元数据的表,其中元数据至少部分地定义数据库中的表。Table_sys 102包括⑴记录,其中每条记录都定义表,和⑵属性,其中每个属性描述表的方面或特性。在这些属性中有表名(Table Name)和模式(Schema)。Table_sys 102包含图1中未具体绘出的其它属性。表名是用于表的名称或标签,并且模式是表所属于的模式。模式是一组定义的和/或标记的数据库对象。Table_SyS 102中的一条记录将表定义为具有名称EMP并且属于模式SchA。另一条记录将表定义为具有名称DEPT并且属于模式SchA。Table_sys 102中的第三条记录将另一个表也定义为具有名称EMP,但是属于模式SchB。
[0030]Schema_sys 103 定义模式。Schema_sys 103 具有属性模式名称(Schema Name)以及其它属性。Schema_sys 103中的一条记录定义具有名称SchA的模式;另一条记录定义具有名称SchB的模式。
[0031]Column_sys 104是包含定义列数据库对象的元数据的表。Column_sys 104除其它属性之外还具有属性列名(Column Name)和表(Table)。列名是用于列的名称或标签,并且表识别列所属于的表。
[0032]Tablespace_sys 105是定义表空间的表。表空间是一个或多个文件的集合,或文件的一个或多个部分,或其组合,其用于为数据库对象存储数据,诸如用于表或索引的数据。Tablespace_sys 105中的每条记录都定义表空间。Tablespace_sys 105的每个属性都描述表空间的方面或特性。属性表空间名称(Tablespace Name)是用于表空间的名称或标签。属性对象(Object)识别表空间为其存储数据的数据库对象。属性文件(File)指定表空间中的一个或多个文件。Tablespace_sys 105中的一条记录将表空间定义为具有名称TS_EMP1并且被用来存储在模式SchA的表EMP,如由SchA.EMP的对象属性值所指定的。Tablespace_sys 105中的另一条记录将表空间定义为具有名称TS_DEPT1并且被用来存储在模式SchA的表DEPT的数据,如由SchA.EMP的对象属性值所指定的。Tablespace_sys105中还有的另一条记录将表空间定义为具有名称TS_EMP4并且被用来存储在模式SchB的表EMP,如由SchB.EMP的对象属性值所指定的。
[0033]数据库字典101是解释性的和说明性的数据库字典而不
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1