《DB2数据库基础.ppt》由会员分享,可在线阅读,更多相关《DB2数据库基础.ppt(54页珍藏版)》请在课桌文档上搜索。
1、DB2数据库基础,第一章DB2简介,UDB(Universal Database)的前身为DB2,是IBM公司开发的关系型数据库管理系统。从其诞生之日开始,DB2就定位于要为各种规模的企业提供稳定、高效的数据管理支持。可以说,DB2是当前适用范围最广泛的数据库产品。,DB2简介(一),DB2产品几乎覆盖了当前所有流行的硬件和操作系统平台在大型机操作系统上,有DB2 for OS/390、DB2 for MVS/ESA、DB2 for VSE 和DB2 for VM等多种产品;在由IBM公司设计的小型机AS/400上,DB2已经嵌入在操作系统OS/400之中,成为其不可分割的一部分。DB2对UN
2、IX操作系统的支持同样十分广泛,可以在AIX、HP-UX、Solaris、SCO-UNIX、SINIX 等多种系统上找到其相应的版本。另外,在PC操作系统上,DB2可以对Window 9x、Windows NT以及OS/2等多种操作系统提供支持。DB2 6.1还增加了对Linux操作系统的支持。,DB2简介(二),DB2系列产品还针对相应的平台进行了一定的优化,以适应各个操作系统的特性。DB2产品除了能够对各种硬件和操作系统平台进行支持之外,为了适应不同用户群的需要,DB2提供了不同级别的产品,对小到个人用户、大到跨国企业的不同需求提供支持。,DB2 V7版本产品介绍,卫星版(DB2 Ever
3、yplace Edition)个人版(DB2 Personal Edition)工作组版(DB2 Workgroup Edition)企业版(DB2 Enterprise Edition)企业扩展版(DB2 Enterprise Extended Edition),DB2 V8版本产品介绍,DB2 Everyplace EditionDB2 Personal EditionDB2 Workgroup Server Edition DB2 Workgroup Server Unlimited Edition DB2 Enterprise Server Edition,第二章DB2数据库基本概念,
4、系统,DB2体系结构中的最高一层是系统,一个系统表示DB2的一个安装。在一个由很多机器组成的网络环境中,我们有时也称系统为节点(NODE),一个系统表示一个节点。一个系统可以包含多个DB2实例,每个实例能够管理一个或多个数据库。数据库被驻留在数据库分区组中的表空间分区,表空间存储表数据。,实例,实例有时也称为数据库管理器(Database Management Application),是数据库管理器在内存中的映像,是管理数据的DB2代码。实例相当于Informix的Informix Server的概念,在一台机器上可以有多个相互独立的实例,实例之间是彼此独立,同时运行,不会相互影响。每个实例
5、可以管理若干个数据库,一个数据库只属于一个实例。它可控制对数据执行的操作,并管理分配给它的系统资源。每一个实例都是一个完整的环境,它包含一个给定的并行数据库系统定义的所有数据库分区。一个实例有其自己的数据库,并且其全部数据库分区共享相同的系统目录。,实例(一),实例是一种逻辑数据库管理器环境,在该环境中可以编目数据库和设置配置参数。可以在同一物理服务器上创建多个实例,并为每个实例提供唯一的数据库服务器环境。多个实例可以提供下列内容:将一个实例用于开发环境,而将另一个实例用于生产环境为一个特定环境调整实例限制存取机密信息控制为每个实例指定 SYSADM、SYSCTRL 和 SYSMAINT 权限
6、优化每个实例的数据库管理器配置限制实例故障的影响。如果发生实例故障,则只有一个实例受影响。其它实例可以继续正常工作,实例(二),系统中的实例不是越多越好,如果在系统中创建的实例过多,不仅会造成额外的资源消耗(内存、硬盘空间等),也会增大管理开销。因为每个实例要求:附加的系统资源(虚拟内存和磁盘空间)更多管理任务,因为要管理附加实例。,数据库,关系数据库使用一组表来管理数据,一个表由在行和列中以逻辑关系排列的数据组成,每个表的数据在逻辑上相关,在表之间能够定义关系。每个数据库包含一组系统编目表、配置文件和恢复日志,系统编目表用于描述数据的逻辑和物理结构,配置文件包含所有为数据库分配的相关配置参数
7、值,恢复日志记录正在进行的事务处理和可存档的事务处理。数据库可以本地、也可以是远程的。本地数据库物理上位于使用中的工作站,当数据库物理上驻留在另一台机器上,则称为远程的。,表空间,表空间是数据库中表数据与数据库之间的逻辑中间层,数据库中的物理空间组织为表空间的集合,而表空间是表的逻辑集合。每个表空间包含容器集合,容器(container)是用来描述物理空间分配的一般术语。系统将数据存储在自己的表空间容器中。,表空间(一),每个表都在某一个或某几个表空间中,为了提供性能,或者为了具有表空间备份,可以将一个表的常规数据存储在第一个表空间中,将一个表的索引存储在第二个表空间中,将大对象存储在第三个表
8、空间中。多个表可以赋予相同的表空间中,在分区数据库环境中,表空间驻留在数据库分区组中。,表空间(二),将表赋予表空间,将表空间映射到物理存储介质,可以让管理员有效控制数据库的性能。例如,可以使用最快的设备,用于存储频繁使用的表,使用较慢的设备存储并非经常使用的数据。表空间的概念提供了对服务器工作站上物理设备的更加灵活的使用。,表空间(三),目前具有两种类型的表空间:系统管理表空间(SMS):是由操作系统分配和管理的空间。数据库管理表空间(DMS):是数据库管理器控制的存储空间。存储模型包括有限的设备,是DB2数据库管理器管理的空间。,模式,模式是数据库对象的逻辑分组集合,它细化了数据库的“粒度
9、”,它帮助分组表和其它数据库对象。模式可以归个人所有,拥有者可以控制对数据以及其中的对象的存取。模式是数据库对象特征划分的结果集,它可以表示数据库对象集的特点,有一定的安全作用。数据库中所建的每一个对象都有模式,这些模式会隐式或显示地增加为对象的前缀。建用户时,系统会为每个用户建立与用户名同名的模式名。当建数据库中的对象时,如写明了它的模式名即对象的前缀,此模式名为该对象的模式;如未指明模式名,那么与当前用户名相同的模式名为当前对象的模式。,模式(一),模式名用来作为对象名的第一部分。创建一个对象时,可将其分配给特定模式,若不指定模式,则它被分配给默认模式,默认模式通常是创建该对象的人员的帐号
10、。例如,名为BTP的用户可以有一个名为BTP.BTPBID的表。,表,表是数据库的基本组成单元,是客观世界中实体的一种描述。表由行、列组成。DB2中一个表至多可有500列,表的每列描述了对应实体的一个属性,同一列的数据都具有相同的数据类型。表的每一行都描述了一个实体的信息。所有数据库和表数据都被存储在表空间中,表中的数据在逻辑上是相关的。可定义表之间的关系。根据数学规则和关系运算来操作数据。,视图,视图是高效率的数据操纵机制。视图是“虚拟”的表,视图不是真正的表,不需要永久性存储器,它的数据本质上还是来自于数据库中的基表。视图是从一个或几个基本表导出的表,也可从其它视图导出。某一用户可以定义一
11、个或多个视图,同时经授权一个视图也可为多个用户共享,这一点与基表类似。按ANSI/SPARC报告的观点,外模式(或子模式)是由若干基本表和若干视图组成。但视图是一个虚表,而基表是一个实表。虚表只有定义,没有对应的物理数据;而实表既有定义,又有对应的物理数据。虽然如此,视图一经定义就可和基表一样被查询、被删除,还可用来定义新的视图。但更新(增、删、改)视图的操作有一定限制。视图给用户和应用程序提供了一种灵活的操纵数据的方式。,索引,索引是一组关键字,其每一个都指向一些行。可创建唯一(unique)索引,以确保索引关键字的唯一性。索引关键字是定义索引的一个列或一些列的有序集合。使用唯一索引将确保在
12、编入索引的列中,每个索引关键字的都是唯一的。数据的商业规则更详细地描述了关键字和索引。在表中,用户可按自己需求,组合各列作为索引项列,并对它建索引,但是,建索引要花费一定开销。主要指空间占用的开销。因为,建索引时,对列值要全部复制,再加上指针,都需占用空间。另一方面开销是在发生表修改时,每次对表的列值修改,相应索引必然要改。实际上,数据库的维护工作中,索引维护经验是很重要的实践内容。虽然,关系型数据库的数据,独立于库模型,允许增加或删除索引。但是,查询的每次执行,与索引的选择是相关的。,系统编目表,每个数据库都会创建和维护一组描述数据的逻辑和物理结构的系统编目表。这些表包含有关数据库对象(表、
13、视图、索引以及约束和数据库授权)的定义的信息,以及用户对这些对象所拥有的权限的安全性信息。这些表存储在SYSCATSPACE表空间中。它们在数据库创建时被创建,当创建、修改或者删除一个对象的时候,DB2插入、更新或者删除描述对象的目录行。系统编目表是只读类型,因为他们是被DB2维护的。不能显式地创建或卸载它们,但是可以使用目录视图查询它们的内容。,系统编目表(一),创建数据库时,除了系统编目表对象本身外,在系统编目中还定义以下数据库对象:在SYSFUN模式中创建一组用户定义函数(UDF)。在SYSCAT模式中创建一组系统编目表的只读视图。在SYSSTAT模式中创建一组可以更新的目录视图。这些可
14、以更新的视图允许用户更新特定的统计信息来调查数据库的性能。也可以不使用RUNSTATS实用程序来更新统计信息。,数据库恢复日志,数据库恢复日志保存对一个数据库所做的全部更改的记录,包括对新表的添加或对现存表的更新。这个日志由大量日志块组成,每一个日志块包含在名为日志文件的一个单独文件中。数据库恢复日志可以用于确保故障(例如系统断电或应用程序出错)时不会使数据库处于不一致的状态。如果发生故障,就回滚已进行但未落实的更改,重新执行可能没有实际写入磁盘的所有已落实的事务。这些操作确保了数据库的完整性。,程序包,程序包是在准备包含编译以后的SQL语句和控制结构的程序的时候,所产生的一个对象,这些SQL
15、语句和控制结构存在于单个源文件中,并且在运行中使用。包由段(section)组成。段包括编译以后的SQL语句。虽然每个段对应于单个语句,但是并非每个语句具有一个段。,别名,别名是数据库、表、视图和更定别名的可替换名称。,认证,认证提供了一种用户将权限分组,控制对实例、数据库和数据库对象的访问和操作。如果用户具有管理员权限,则具有数据库对象的所有操作权限。如果具有系统权限,则能够管理系统,但是不能访问数据。SYSADM是管理权限中的最高级别,包括该实例中的所有的数据库权限,能够授予和回收所有其它权限。DBADM提供了特定数据库的管理权限。它允许用户访问和修改数据库中的所有对象。具有DBADM权限
16、的用户能够授予和回收数据库上的权限,但是不能授予和回收DBADM权限。,认证(一),SYSCTRL是控制数据库管理员使用资源的权限,但是,它不允许访问数据库中的数据。SYSMANINT是执行维护操作的权限,如启动和停止DB2数据库管理器,备份和恢复数据库,但是不允许访问数据库中的数据。LOAD权限在数据库级别,与INSERT表权限相关联,允许用户装载数据到表中。数据库相关的权限存储在数据库系统编目表中,系统权限存储在数据库管理员配置文件中。可以使用控制中心授予和回收数据库权限。,配置参数,配置参数能够影响数据库或者数据库管理员的操作特性,它们存储在配置文件中。数据库管理员配置参数在DB2实例创
17、建的时候创建的。其中所包含的参数能够在实例层、独立于实例的任何数据库影响系统资源。这些参数的许多值是系统默认值,管理员可以修改它们,用于提高数据库的性能。数据库管理员配置参数存在于服务器和客户机上。客户机上的参数作为数据库管理配置参数的一个子集,能够在服务器上进行设置。数据库的配置文件是在数据库创建的时候创建的,它位于数据库所在的地方。每个数据库存在一个配置文件。在一些特定的数据库环境中,每个数据库分区存在一个配置文件。配置参数定义了分配给数据库的资源数量。配置参数的许多值可以被修改,提高性能和容量。不同的修改依赖于特定数据库的类型。,数据元素,数据元素用于存储数据库管理员的性能和操作信息,应
18、用程序可以使用这些信息。这些信息对于调试性能,诊断问题是非常有用的。快照可以用于提取数据库管理器特定对象和对象组的当前的活动。而且,管理员可以收集透明事件(使用快照进行监视非常困难的事件)的信息,如死锁和事务完成。管理员可以使用控制中心事件监视器操作数据元素。,数据库目录,数据库目录是一种开放式系统基础(OSF)的体系结构,它提供支持在分布式计算环境中创建、使用和维护应用程序的工具和服务,它位于操作系统、网络和分布式应用程序之间,允许客户端应用程序存取远程服务器。使用本地目录时,目标数据库的物理位置单独存储在每个客户端工作站上的数据库目录和节点目录中,因此,数据库管理员可能要花费大量时间来更新
19、和更改这些目录。数据库目录服务提供取代本地目录的中心目录,它允许将有关数据库或数据库管理器实例的信息一次性记录在中心目录中,且任何更改或更新都在该位置进行。,第三章 数据库安装,第四章数据库备份与恢复,在防止关键数据的丢失当中,恢复用户自己的环境十分重要。有一些工具可以帮助用户管理自己的环境和保证用户可以对自己的数据实施充分的恢复措施。,第一节事务,在象DB2这样的关系数据库中,工作单元被称为事务或交易(transaction)。事务是应用程序进程内的一个可恢复的SQL操作序列。对数据库的任何一次读或写都是在某次事务内完成的。,第二节日志文件的使用,为了确保用户数据的完整性,DB2已经实施提前
20、写日志存档模式。提前写日志存档的基础是指:当发出删除、插入或更新数据库中某一数据的 SQL调用时,所做出数据变更首先要写到日志文件中去。当发出一条 SQL委托确认命令时 DB2要保证把为了重新运作(replay)所需要的日志文件都写入磁盘中。,第三节日志管理配置参数,DB2的日志存档进程使用着一系列的参数。每当用户改变这些参数值时,用户都必须终止与数据库的连接,然后再重新建立与数据库的连接,以便使得所读出的数据库配置带有变更后的数据。LOGBUFSZ LOGRETAIN LOGPRIMARY LOGSECOND NEWLOGPATH,第四节日志类型,DB2中的两类日志:循环日志(Circula
21、r logging)归档日志(Archival logging),循环日志,用这种类型的日志,将按顺序使用各个日志文件。当保留在这类日志文件中的所有工作单元被委托确认或退回时,这些日志文件可以被重新使用。数据循环日志使用两类日志文件:主日志文件(Primary log files)辅助日志文件(Second log files),归档日志,归档日志(archival logging)是这样一种日志管理技术,其中的日志文件处于非活动状态时便将它们做归档处理。联机归档(On_line Archival)脱机归档(Off-line Archival),第五节日志文件的用途,日志文件用于以下情形:退回
22、(Rollback)事故恢复(Crash Recovery)前滚恢复(Roll Forward Recovery),事故恢复,如果用户的系统经历了磁盘故障、停电或其它类型的事故,就需要事故恢复去将数据库返回到一致的可用状态。,前滚恢复,每当恢复表空间备份或数据库备份时,就调用 ROLLFORWARD DATABASE命令。前滚(roll forward)应用记录到数据库日志文件中的事务。,第五章DB2常用命令,DB2的启动和关闭 DB2启动:db2start DB2关闭:db2stop,数据库管理器配置参数,在改变数据库管理器配置参数之后,用户都必须分别使用命令db2stop和db2start
23、,停止并重新启动数据库管理器。这将使对数据库管理器配置参数的修改生效。,数据库管理器配置参数,可以使用以下命令查看现有数据库管理器配置文件中的配置参数的当前值:db2 get database manager configuration 可简写为:db2 get dbm cfg 可以使用以下命令更新数据库管理器配置文件中的单个配置参数的值:db2 update database manager configuration using,数据库配置参数,可以使用以下命令查看数据库配置文件中的配置参数的当前取值:db2 get database configuration for 数据库名 可简写为
24、:db2 get db cfg for 数据库名 可以使用以下命令更新数据库配置文件中的单个配置参数的取值:db2 update database configuration for 数据库名 using 参数名 参数值 可简写为:db2 upadte db cfg for 数据库名 using 参数名 参数值,数据库性能优化,RUNSTATS命令会更新表和相应索引的物理特性的统计。db2 runstats on table 表名 REORGCHK命令会计算数据库上的统计,以判断表是否需要重新组织。db2 reorgchk on table 表名 REORG TABLE命令可以通过移动行来对表
25、进行重新组织,它不仅可以使行不再分离,而且会将其按照索引次序进行放置。db2 reorg table 表名,事例相关命令,创建实例 db2icrt 删除实例 db2idrop 显示所有实例 db2ilist 显示当前数据库管理实例 db2 get instance 设置实例在系统启动时是否自动启动 db2iauto,管理服务器相关命令,创建管理服务器 dasicrt 删除管理服务器 dasidrop 显示管理服务器 dasilist,数据库相关命令,连接数据库 db2 connect to 数据库名 断开数据库连接 db2 connect reset db2 terminate db2 for
26、ce application all 列出所有数据库 db2 list db directory 列出所有活动的数据库 db2 list active databases,数据库相关命令,列出当前数据库下所有的表 db2 list tables for all 显示数据库空间使用情况 db2 list tablespaces show detail 显示当前连接的数据库 db2 get connection state 显示当前的实例 db2 get instance,第六章控制数据访问,用户可以使用两种方式限制对数据库对象的访问:分配权限赋予特权,权限,权限(Authorities)为用户提供了在事例或者数据库中执行管理和维护任务的能力。DB2 UDB定义了几种类型的权限:系统管理权限(SYSADM)系统控制权限(SYSCTRL)系统维护权限(SYSMAINT)数据库管理权限(DBADM),特权,特权(privilege)允许用户在特定数据库对象上执行特定功能。用户能够以3种不同方法获得对象的特权:通过对象的所有权,通过特定的GRANT语句,或者具有更高层次特权的用户会自动具有其它相关特权。数据库特权 模式特权 表空间特权 表特权,