DB2介绍
DB2是IBM公司开发的关系数据库管理系统,它有多种不同的版本,如:DB2工作组版(DB2Workgroup Edition)、DB2企业版(DB2 Enterprise Edition)、DB2个人版(DB2 Personal Edition)和DB2企业扩展版(DB2 Enterprise-Exended Edition)等,这些产品基本的数据管理功能是一样的,区别在于支持远程客户能力和分布式处理能力。
IBM db2与oracle一样都是后台大型数据库,在我国许多银行的后台服务器都是db2。
DB2数据库核心又称作db2公共服务器,采用多进程多线索体系结构,可以运行于多种操作系统之上,并分别根据相应平台环境作了调整和优化,以便能够达到较好的性能。
(1) 支持面向对象的编程
db2支持复杂的数据结构,如无结构文本对象,可以对无结构文本对象进行布尔匹配、最接近匹配和任意匹配等搜索。可以建立用户数据类型和用户自定义函数。
(2) 支持多媒体应用程序
db2支持大二分对象(blob),允许在数据库中存取二进制大对象和文本大对象。其中,二进制大对象可以用来存储多媒体对象。
(3) 备份和恢复能力
(4) 支持存储过程和触发器,用户可以在建表时显示的定义复杂的完整性规则
(5) 提供GUI和命令行,在windows和Unix下操作相同
(6) 支持异构分布式数据库访问
(7) 支持数据复制
db2的PENDING状态
- backup pending状态:是在修改数据库的日志模式所导致的;解决方法是对数据库再做一次备份。
- set integrity pending状态:是在load过程中,我们装载的数据发生违反参照完整性约束的行,导致表无法使用;结局方法:运行脚本:
set integrity for 表名
immediate checked for exception
in 表名 use <exception table name>//将异常行放入例外表中
DB2共有几种恢复方式?
三种
- 版本恢复:恢复通过使用一个以前建立的数据库备份,可以将数据库恢复到与原来状态完全一样。但只能恢复到你做的备份点上。
- 崩溃恢复:一般情况下自动完成,通过对系统参数配置,若服务器突然宕机,系统下次会启动读取日志,做过的进行redo,没做完的进行回滚。
- 前滚恢复:先进行版本恢复,再进行崩溃恢复。
分析import和load的区别。
import:
- 移动大量数据时速度变慢
- 创建支持XF格式的表和索引
- 可以导入到表,视图,别名中
- 在导入期间允许写的选项访问
- 所有导入的行都会被记录到日志
- 会检查约束
load: - 移动大量数据速度较快
- 表和索引事先必须存在
- 只能向表中导入
- 导入数据期间只能读操作,不允许写操作
- 触发器不会检查,会有唯一性检查。
若发布“select * from db2admin.employee”之后,系统返回错误信息“db2admin.employee是个未定义的名称”,分析是什么原因造成的?
- 可能是因为模式名schema不正确,当前并不是代表db2admin
- 可能是因为大小写有问题,当在建表的时候表名用上了引号,那么表名就会区分大小写。
## 在实验中曾发布如下语句:
create trigger reorder
after update
of qty on stock
referencing new as n
for each row mode db2sql
when (n.qty <=5)
insert into reorder values (n.itemno, current timestamp)
请解释该语句所实现的具体功能。分析该触发器能否阻止同一商品被重复插入reorder表中?若不能阻止,应该如何修改trigger?
语句功能:当顾客购买商品后,当商品库存小于5后,就往reorder中添加一条语句,代表该物品需要采购,该触发器无法阻止,修改如下:
create trigger reorder
after update
of qty on stock
referncing new as n ,old as m
for each row mode db2sql
when (n.qty<=5 and m.qty>5)
insert into reorder values (n.itemno,current timestamp)