您的当前位置:首页DB2复习整理

DB2复习整理

2023-03-09 来源:世旅网


1. 信息模型:概念层面上对对象进行抽象的管理

独立于具体的实现和协议

隐藏了实现和协议的细节

不描述数据模型的对象

被软件开发者用来实现一个给定的应用

数据模型可以被用来将一个信息模型映射到一个软件应用

一种信息模型可能存在多种实现方式,数据模型就是其中之一

2. 规范化:规范化可以避免冗余和异常(redundancy and anomalies)还有信息的丢失

3. 关系型数据库组件:关系的每一个都能被唯一的识别

关系必须有一个主键

关系型数据库的表中不要求有主键,但建议这么做

不定义两个表间的关系

4. 编目(cataloguing):编目就是建立远程通信,用一个远程数据库实现——

编目远程系统

在远程节点里编目数据库

三种方式——配置助手(configuration assistant)graphical

数据工作室(data studio)graphical

命令行处理器(command line processor)CLP

例子——

Catalog tcpip node db2_node remote mysystem server db2tcp42

Catalog database sample as mysample at node db2node authentication server

5. DB2存储—表空间:是一个介于逻辑表和物理容器间的逻辑对象

允许特定逻辑设备或特定逻辑设备的一部分的数据的低着分配

所有的表,索引和其他数据都存储在表空间中

可以和一个特定的缓冲池联系起来

在一个数据库建立的时候用户临时表空间不会自动建立

6. DB2存储—缓冲池:是用来缓存表和索引数据的一块主存空间

每一个数据库至少有一个缓冲池,默认是用IBMDEFAULTBP,缓冲池可以创建,删除,更改。SYSCAT.BUFFERPOOLS目录视图可以访问数据库中定义的缓冲池中的信息

每一个表空间都和一个相同大小的缓冲池相连,将缓冲池的大小设置为和表空间一样大可以增加命中率

可提供自由化内存转换器(Self-Turning Memory Managerz—STMM)

7. DB2存储—表空间管理: 自动地存储表空间automatic storage table space

通过允许你指定数据库管理器存放表空间的存储路径简化存储

管理

自动处理表空间大小的调整

为常规/大型表空间创建一个DMS表空间

为用户或者系统临时表空间创建一个SMS表空间

8. IBM关于DB2的产品:Express-C——免费开发,发布,部署

2核2G内存

不提供支持,没有保证

不包括复制服务和高可用性,包括pureXML

Express——入门级的,得到完全支持的数据服务器

4核4G内存

包括性能专家(performance expert),高可用性(high available),pureXML

可提供Fixed Term License(FTL)

Workgroup Server——比Express更大的负载

16核或4个插槽16G内存

和Express相同,但包含High Avaliable Feature Pack

包含性能专家

Enterprise Server——高负荷,大数据仓库

没有内存使用量和处理器的限制

9. well-formed XML:必须有一个且仅有一个根元素

每一个元素必须以一个开始标签开始以一个结束标签结束

一个元素可以含有其他元素,属性或文本节点

属性值必须附上双引号(double quotes),文本节点却不要

Valid XML:一个有效的XML文件首先要是一个良构的XML文件

要顺从XML schema document(XML架构文件)和document type definition(DTD文档类型定义) document所定义的规则

10. XQuery和SQL/XML:DB2支持两种查询语言——XQuery和SQL/XML,这两种查询语言是

对SQL标准的扩展,提供了各种各样的发布函数来将XML数据转化成关系模式或将关系模式转化成XML数据

XPath是这两种查询语言是基石,提供了在XML文件内导航(navigate)的能力

XQuery有两个访问数据库的函数——db2-fn:sqlquery和db2-fn:xmlcolumn其结果以项目序列(a sequence of items)的方式返回

SQL/XML提供了同时使用XML和关系数据的函数

11. flwor语句:从一个XML列中检索(retrieve)所有XM文件,然后用一个XQuery语句处理

12. 数据库事务:一个或多个SQL操作的序列,组成一个单元,在一个原子事件中发生

也被称为一个工作单元

同一个事物中的语句不能同时执行(cannot have parallelism)

对数据库的一个事务执行后结果可以是永久性的(committed),也可以被退回(roll back)

Commit有两种方式,手动(manual commit)和自动(auto-commit),手动是使用commit或rollback语句,自动是数据库管理器在每条SQL语句之后执行一个commit操作

一个事务提交后保证了所有的操作都被完成,在一个回滚事务中所有的操作被返还(reverted)

13. 并发问题(concurrency):脏读——在一个事务中读一个为提交的数据(when a

uncommitted data is read )

14. 当前已提交:是游标稳定性的变种(a variation on cursor stablity)

避免了超时(timeouts)和死锁(deadlocks)

基于日志的(log based),没有管理开销(no management overhead)

15. 视图:视图可以被视为一个虚拟表,从一个或多个表或视图中推出来的

用来限制对敏感数据的访问或从一个单一对象不同的表中组织数据

并不包含真实的数据,只有视图定义本身被真实地存储与数据库中

当通过视图改变数据时,数据是在基础性的表本身被修改的,不是在视图中修改

在检索数据时可以与表交替使用

一些视图的更新依赖于它的定义

视图可以被删除,更新,插入,只读

16. 细粒化特权(granular privileges):

提供了一种不同的方式看待一个或多个表中的数据

是一个对结果表的命名规范

允许多个用户查看相同数据的不同表达

17. 触发器(triggers):触发器定义了一组操作,这组操作在响应对一个特定的表进行插入,更

新,删除操作时执行

和约束条件(constraints)类似,触发器用来加强数据完整性和业务规则

和约束条件不一样的是,触发器可以被用来更新其他表,自动地生成或转换插入的或更新的行的值,能够启动函数来执行像发出错误消息或警报这样的函数

用触发器实施在数据库中增强业务规则(enforce business rules)的逻辑

18. DB2安全:DB2中有两种机制来允许你实现一个安全计划

验证(anthentication)和授权(authorization)

19. 验证authentication:确定你就是你说的那个人(determine that you are who you say you

are

发生在当一个用户连接数据库的时候(Occurs when a user

connects to the database)

可以依赖于一个独立的产品

20. 特权privileges:

架构特权(schema privilege)——createin允许用户在架构中创建对象

alterin允许用户在架构中修改对象

dropin允许用户在架构中删除对象

表空间特权(tablespace privilege)——use允许用户在表空间中创建表

表和视图特权——control为用户提供了对一个表或视图的全部的特权,包括删除它的能力,以及授予和撤销特定表特权(grant and revoke individual table priviledge)的能力

Delete允许用户从表或视图中删除行(delete rows)

Insert允许用户向表或视图中插入一行(insert a row),并且运行IMPORT实用工具

Select允许用户从一个表或视图中检索行(retrieve rows),创建基于表的视图(create a view on a table),并且运行EXPORT实用工具(run the export utility)

Update允许用户修改表或视图中的项目,或者表或视图中特定列的项目

仅限于表的特权——alter允许用户修改表(modify on a table)

Index允许用户创建一个表的目录

References允许用户创建和删除外部码(create and drop a foreign key),把某个表指定为关系中的父表(specifying the table as the parent in a relationship)

包特权(package privilege)——如果从表所有者那里撤销,所有其他特权都要被明确地撤销(be explicitly revoked)

Control提供给用户一种重新绑定,删除或执行包的能力

Bind允许用户重新绑定或绑定包,以及添加具有相同包名称和创建者的心得包版本

Execute允许用户执行或运行一个包

目录特权(index privileges)——control允许用户删除目录

序列特权(sequence privilege)——usage允许用户使用next value和previous value序列表达式

Alter允许用户执行重新启动一个序列或改变未来序列值增量等任务

例程特权(routine privilege)——execute允许用户调用某个例程,创建源自例程的函数,以及在create view或create trigger等任何DDL语句中引用例程

21. 授予特权(granting privileges):

显式(explicit)——特权可以被明确地授予用户或群通过GRANT和REVOKE命令

隐式(implicit)——当特定的命令发布时DB2会自动授予特权

间接(indirect)——包中包含了可执行格式的SQL语句,用户只需要EXECUTE特权来运行它们

22. 可信上下文(trusted context):

DB2能够在不断开与数据库的链接的情况下改变用户

提供了一种方式使最终用户在三层环境中的身份可以简单而有效地传到数据库服务器

在一个数据库服务器和特定的应用层间引入可信上下文的概念

为什么不直接保持一个普通用户的ID——

用于审计时会丢失用户身份

难以区分应用需要的行动(acions needed by app)还是用户需要的行动(actions needed by users)

中间层被过度授权(over ganted privileges)

如果ID受害(ID is compromised),会有很高的安全风险

23. 循环日志(circular logging):

基本日志文件用来记录所有事务,当事务被提交的时候重用

辅助日志文件被分配当下一个基本日志文件因为动态事务并不存在时

当基本日志和辅助日志都满了的并且不能被重用的时候,日志满的情况就会发生,并且会返回SQL0964C错误信息

只允许完全的(full),离线(offline)的备份(backup)

不能进行向前滚(roll-forwad)恢复

24. 无限日志(infinite logging):

无限日志提供了无限的活动日志空间,通过把LOGSECND设为-1

辅助日志文件会一直被分配直到工作单元被提交或存储被耗尽(storage is exhausted)

归档的日志(archived logs)可能会影响回滚(roll back)和崩溃恢复(crash recovery)的性能

数据库必须被配置为使用归档日志(archived logs)

日志文件有256种

控制参数——NUM_LOG_SPAN一项活动文件可以跨越的日志文件数量

MAX_LOG一个单一事务会消耗的活动基本日志文件空间百分比

25. 增量备份(incremental backups):

备份自从最近一次,成功的,完全备份的操作以来所有改变的数据库数据

增量Delta,备份自从最后一次成功的备份以来的所有改变的数据

需要使TRACKMOD数据库配置参数处于开着的状态

既支持数据库的备份也支持表空间的备份

适用于大型数据库,由于只备份增量(only backing up incremental changes)改变节省很多空间(considerable savings)

26. 自动数据库备份(automatic database backup):

简化了DBA的数据库管理任务,通过总是允许执行一个根据需要最近的完全数 据库备份(ensure that a recent full backup of the database is performed as needed)

为配置自动备份的方法——图形用户接口configure automatic maintenance wizard

命令行auto_db_backup auto_maint

存储过程automaint_set_policy 系统存储过程

27. 嵌入式SQL应用(embedded SQL Application):

由于源代码含有嵌入式SQL代码,宿主语言编辑器不能处理它

需要一个预编译过程(a pre-compliation phrase)来用有效的宿主语言(valid host language syntax)语法取代嵌入式SQL

预编译器用定界符(delimiter)来标识待翻译的SQL语句

在进行应用编译和链接之前(prior to application compilation and linkink)——

利用DB2预编译器准备包含嵌入式SQL的源文件(source files),输出改进的源文件(modified source file)和绑定文件(包含了对应用代码中的静态SQL语句的访问计)

将应用中的语句绑定到目标数据库

进过预编译和绑定之后,就可以使用与特定宿主语言相关的开发工具对嵌入的SQL进行编译和链接

28. 用户定义函数(User Defined Functions):

用户定义函数(UDF)是特殊的对象用来扩展和增强DB2内置函数所提供的支持

可以用C/C++,Java,.NET来卡法UDF

和DB2的内置函数不同,用户定义函数可以充分利用系统调用和DB2的管理API

SQL UDF是用SQL PL进行编码,External UDFs是用某种编程语言进行编码

用户定义函数总是会返回一个值SQL标量(SQL Scalar),表(Table)或行(Row)

通过执行CREATE FUNCTION的SQL语句来创建用户定义函数

29. 用户定义函数的执行:

函数可以在一个SQL语句内部被调用

用户定义的表函数是通过在SQL语句中的FROM自居内引用该函数而被调用的

对表函数的引用必须在TABLE子句之后,而且必须在括号内

SELECT EMPO,LASTNAME,FIRSTNAME FROM

TABLE(DEPTEMOLOYEES(‘A00’)) AS D

使用DEPTEMOLOYEES函数

30. 静态和动态SQL:

SQL语句的结构必须在预编译阶段被完全的定义(w因为在预编译阶段就要将嵌入式SQL转化为宿主语言能识别的)

动态执行的SQL语句,必须在应用运行时被建立,执行和编译

使用动态SQL的情节(scenario)向最终用户提示某SQL语句关键部分的交互应用(interactive application)

31. 存储程序(stored procedures):

是一个完全由SQL语句和SQL PL代码的普通程序,能够被某个应用调用

存储程序(SP)可以被本地调用(locally)或远程调用(remotely)

本地调用——从另一个存储程序或触发器中调用

远程调用——从一个应用中调用

外部的存储程序是用高级程序语言些的存储程序

外部存储程序比SQL存储程序更强大因为相比于SQL语句它们可以利用系统调用和管理API,缺点是由于它们在DB2引擎外部,和SQL存储程序比较起来效率稍低

32. 存储程序—PL/SQL支持:

PL/SQL(Procedural Langeage/Structured Query Language)语句可以用DB2接口编译和执行,降低了使现有PL/SQL方法和DB2数据服务器工作的复杂性

受支持的接口——DB2 command line processor(CLP)

DB2 CLPlus

IBM Data Studio

IBM Optim Development Studio

PL/SQL语句的执行不会从这些就扣中自动调用,PL/SQL语句执行之处必须在DB2数据服务器中启动

33. IBM数据服务器客户端的类型:

IBM数据服务器客户端由2个包构成——

IBM数据服务器客户端(IBM Data Server Client):完全的包,支持数据库利用ODBC,CLI管理和应用开发,不包含GUI管理工具

IBM数据服务器运行时间客户端(IBM Data Server Runtime Client):没有开发库,包含所有运行时包

34. 开发常例工具:

图形用户接口工具——IBM Data Studio:便于使用的开发环境,简化了创建常例的进程,可以在一个操作系统上开发存储程序并在另一个操作系统上使用它们

命令行接口——DB2命令行处理器(DB2 Command Line Processor DB2 CLP)

35. HARD(Read-only Standby Server):

允许复制数据到另一个备用服务器上,在服务器发生故障的时候可以接替

因篇幅问题不能全部显示,请点此查看更多更全内容