久闻DB2大名,苦于一直没机会学习。正好最近学习mainframe,有幸能接触到DB2。DB2给我的印象是大型的关系型数据库,适合大型的企业应用。它的产品线主要分为两条:1,for mainframe(主机平台DB2);2,for LUW(开放平台DB2)。在这里主要讨论针对主机平台的DB2,目前最新的DB2版本是V11。
一,DB2特性
那么DB2相较于其他关系型数据库的优点有哪些呢,前面读过一篇文章--解密DB2独步江湖的五大法宝。该文章罗列出DB2的五大特性,在此借鉴一下,分别有:
1,深度压缩,DB2的深度压缩大大减少了储存空间和大小,提高了I/O效率。
2,pureXML,V9版本后增加了该性能,可以在数据库表中以原有格式存储XML数据。成为关系型和xml数据混合型的数据库利器。
3,高可用性和高扩展性,purescale。
4,高兼容性,可与其他数据库产品无间协作,还可以实现对oracle和sybase的迁移。
5,卓越性能,在IBM Power7的开发过程中即融入了与IBM DB2高性能结合的设计,DB2 能够自动利用基于 POWER7 系统的大规模硬件并行性,从而降低成本,提高性能。它可以在无需修改应用的情况下自动地利用并优化多线程。这样,运行在Power系统上的DB2如虎添翼,完成相同工作只需要更少的的处理器、更低的软硬件成本(需要获取授权的处理器更少)和维护成本,从而“普度”那些为高昂的运行成本困扰着的数据库管理者们。
二,DB2主要组件
接着看看DB2的主要组件
1,数据引擎,管理和控制所有的数据访问,产生存储数据的访问路径-packages,提供事物管理(transaction management),并发控制(concurrency control),确保数据完整性和数据安全
2,SQL接口,命令行或文件输入接口。例,SPUFI(SQL processor using file input),QMF,CLP(command line processor)
3,管理接口,图形化管理工具
4,应用接口,Embedded SQL,ODBC,JDBC/SQLJ,DAO(data objects)
三,DB2 Object Hierarchy
DB2的主要对象分为subsystem,database,tablespace(indexspace),table(view、index等)
每个subsystem包含很多databases,并都有自己的catalog(tables,views和package的描述信息),directory和log等,每个database都有很多table space和index space,他们是管理数据的物理存储。原则上一个table space放一个table,但在V9以后可以放多个table。
DB2 UDB subsystem -->databases(table space和index space)--.>table spaces(index space) --.>tables(view、index等)
再来复习一下SQL命令:DDL(CREATE,ALTER,DROP,DELCARE),DML(增删改查),DCL(REVOKE,GRANT,CONNECT,COMMIT,ROLLBACK)
例:
CREATE DATABASE DB00001; 注:数据库名不超过8个字符
CREATE TABLESPACE TS00001 IN DB00001;
CREATE TABLE T00001 (NO CHAR(1) NOT NULL,注:表名最长256个字符
NAME CHAR (5) ,
BONUS DECIMAL(15,2),
PRIMARY KEY(NO)) IN DB00001.TS00001;注:原则上一个space放一个table,但在V9以后可以放多个table。
CREATE UNIQUE INDEX 索引名 ON T00001(NO);