购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 对象层次关系

本节我们将简要概述DB2对象的层次关系,理解这些对象的概念,以及它们之间的关系,对于我们接下来深入学习DB2有很大的帮助。

图2.3所示是数据库对象逻辑层次关系图,最高层次的对象是系统。一个系统可以简单理解为一个DB2产品版本,如DB2 9.5版本的安装。从DB2 9开始,一台物理机器上可以安装多个产品版本,即多版本共存。

一个系统可以创建一个或多个实例(instance),每个实例可以管理一个或多个数据库(database)。

图2.3 DB2对象逻辑层次关系图

实例也叫数据库管理器(Database Manager),可以理解为一个运行时环境,包括一组进程/线程和内存。数据库是指信息的物理存储。

关于实例和数据库的关系,许多DB2初学者很容易混淆。我们通过一个比喻来理解。数据库好比一个岛屿,而实例就是通向岛屿的桥梁,出入岛屿必须经过桥梁,即使桥塌了,岛屿仍然还在,但却无法出入岛屿。对应到DB2的术语,只有实例在运行的时候,才可以访问数据库。如果实例挂起或停止了,虽然数据仍在,但却无法访问。

在DB2中,一个实例可以包含多个数据库,删除实例并不会删除数据库,这与Oracle的体系结构存在根本差别,但一个数据库只能属于一个实例。

表(Table)是数据库最重要的对象,表是二维结构,由行和列构成的。对于应用程序来说,对数据的访问和操作都是通过表。那么这些表数据存在什么地方呢?自然是磁盘上的某个地方,但是数据库如何能够管理哪个表存放在什么磁盘上,这就是表空间(Tablespace)的职责了。

可以把整个数据库想象成一个N层的房子,每一层就相当于一个表空间。每当用户创建一个表的时候,都需要指定创建在哪个表空间中,也就是去哪一层。

每一个表空间可以容纳一个或多个表与索引等对象。表空间实际上是逻辑上的概念,物理上对应着一个或多个容器。所谓容器是用来真正存放数据的地方,可以是文件,可以是裸设备(理解为没有格式化的磁盘),也可以是目录。一个表空间可以跨越多个容器,但每个容器只能归属于一个表空间。用房屋的比喻,则可以将每一个容器看成每一层中的各个单元。

相信大家对DB2的对象层次关系有了一个清楚的认识。总结一下,就是一个系统可以创建一个或多个实例,每一个实例中包含一个或多个数据库,每个数据库中包含一个或多个表空间,每个表空间包含一个或多个容器,而每个表和索引则可以存在于一个或多个表空间中。

DB2数据库通过日志来保证一致性。当用户更改某些数据的时候,为了保证这些更改在系统崩溃或者回滚的时候能够再次被使用,则需要记入事务日志。事务日志中记录的是每一个数据页中一个给定记录的更改或者行数据的插入和删除。

除此之外,每个数据库还包括一些控制文件。 YHkZtpd7lx526WQCW5nOaBgIO6/7aGl/zGWEpJSCvFIb053duUhiOUxO0RPocK5N

点击中间区域
呼出菜单
上一章
目录
下一章
×