LanDom
作者LanDom·2010-07-05 18:28
软件开发工程师·互联网企业

DB2 数据库的组成

字数 4615阅读 1236评论 0赞 1
DB2 数据库的组成
 
        1、
数据库的逻辑、物理和性能特性
       
        DB2 数据库实际上由一个对象集合组成。从用户的角度来看,数据库是一组通常以某种方式相关联的表。
       
        从数据库管理员(DBA,也就是您)的角度来看,数据库比这要复杂一点儿。实际的数据库包含许多物理对象和逻辑对象:
       
        ● 表、视图、索引、模式
       
        ● 锁、触发器、存储过程、包
       
        ● 缓冲池、日志文件、表空间
       
        这些对象中的一部分(比如表或视图)帮助决定如何对数据进行组织。其他对象(比如表空间)涉及数据库的物理实现。最后,一些对象(比如缓冲池和其他内存对象)只处理如何管理数据库性能。
       
        DBA 应该首先关注数据库的物理实现,而不是直接研究所有可能的参数和对象组合。
       
        2、
DB2 存储模型
       
        DB2 利用一个逻辑存储模型和一个物理存储模型来处理数据。用户操作的实际数据放在表中。表由行和列组成,用户并不知道数据的物理表示。这一事实有时候称为数据的物理独立性。
       
        表本身放在表空间中。表空间作为数据库与包含实际表数据的容器对象之间的一层。表空间可以包含多个表。
       
        容器 是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间。表空间可以跨许多容器,这意味着可以突破操作系统对于一个容器可以包含的数据量的限制。
       
        3、
表、索引、长字段和表空间
       
        表、索引和长字段(有时候称为二进制大对象,BLOB)是在 DB2 数据库中创建的对象。这些对象映射到表空间,表空间本身映射到物理磁盘存储。
       
        表是数据记录的无序集合。它由列和行组成,行常常也称为记录。表可以是持久的表(基表)、临时的(声明)表或临时的(派生)表。从 DBA 的角度来看,空间都会分配给这些表对象,但是是在不同的表空间中。
       
        索引 是与一个表相关联的物理对象。索引用来在表中实施惟一性(也就是说,确保没有重复的值)以及改进检索信息时的性能。运行SQL(结构化查询语言)语句并不需要索引;但是,如果创建索引来提高查询处理的速度,您的用户会因此受益!
       
        长字段(即 BLOB)是表中的一种数据类型。这种数据类型通常由非结构化数据(图像、文档、音频文件)组成,常常包含大量的信息。如果在表中存储这种类型的数据,就会在删除、插入和操作这些对象时导致过大的开销。所以并不是将它们直接放在表的行中,而是存储一个指针,这个指针链接到一个 Large 表空间(以前称为 Long Field 表空间)。DBA 需要了解这种数据类型,从而创建适当的表空间来包含这些对象。
       
        另一种特殊的数据类型是 XML(eXtensible Markup Language,可扩展标记语言)。XML 这种数据类型可以存储在行中,也可以存储在与 BLOB 对象相似的单独的表空间中。XML 数据类型的独特之处在于,它可以跨一个表中的多个页面,而其他数据类型必须放在与行相同的页面中。DBA 需要利用应用程序设计器来决定表中存储的 XML 对象应该放在常规(数据)页面中,还是放在自己的单独的表空间中。如果检索性能是重要的因素,DBA 应该使用比较大的页面大小并将 XML 列放在与常规数据相同的表空间中。
       
        4、
DMS 和 SMS 表空间
       
        表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。DB2 支持三种表空间:
       
        ● 系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。
       
        ● 数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。
       
        ● DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。DMS 容器需要比较多的维护,在 DB2 V8.2.2 中引入了自动存储,作为简化空间管理的方式。
       
        SMS 表空间需要的维护非常少。但是,与 DMS 表空间相比,SMS 表空间提供的优化选项少而且性能不好。
       
        除了使用 SMS 表空间可以简化管理之外,这两种存储模型之间最显著的差异是表空间的最大大小。如果页面大小为 4k ,那么 SMS 表空间最大存储限制为 64GB,而 DMS 表空间则为 2TB。
       
        5、
DMS 与自动存储
       
        DB2 8.2.2 引入了自动存储的概念。自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。
       
        启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。
       
        引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广