i5OS对象 |
DB2对象 |
模式(Schema) |
库(Libary) |
表(Table) |
物理文件(Physical File) |
分区表(Partitioned Table) |
多成员(Member)的物理文件 |
索引(Index) |
键索引逻辑文件(Keyed Logical File) |
视图(View) |
逻辑文件(Logical File) |
数据库(Database) |
系统ASP或IASP |
索引表(Catalog Tables) |
交叉引用文件(Cross Reference File) |
日志和日志接收器(Journal and Journal Receiver) |
日志和日志接收器(Journal and Journal Receiver) |
别名(Alias) |
DDM文件 |
约束(Constraint) |
无 |
触发器(Trigger) |
程序(Program) |
存储过程(Stored Procedure) |
程序(Program) |
用户自定义函数(User-defined Function) |
程序(Program) |
用户自定义类型(User-defined Type) |
SQL UDT对象 |
序列(Sequence) |
数据域(Data area) |
SQL 包(SQL Package) |
SQL Package |
模式:一个逻辑概念,又叫集合(collection),在IBM i中使用库作为模式的实际存储对象;
使用SQL语句CREATE SCHEMA建立一个模式,系统对应建立一个同名的库。
表:用来存放数据的对象,SQL中有行列组成;在IBM i中对应物理文件,物理文件(单成员)由很多记录组成,
没条记录由各个字段组成;row — record,column — field;数据库表的记录格式与物理文件的记录格式完全相同。
分区表:一种特殊表,根据用户的要求将数据存储到不同物理文件的不同成员中去;
普通的表使用单一成员的物理文件,最多能存4GB条记录;
使用分区表,可以存储更多的数据,理论上,分区表可以最多有256个分区,最大存储1TB条数据。
建立分区表时,系统会根据用户指定的分区数自动创建一个多成员的物理文件。
索引:数据库中建立索引既是在IBM i中建立一个键索引逻辑文件(Keyed Logical File)。
视图:视图本身不包含数据,它只存储了一个对原始数据进行过滤的筛选语句,IBM i中逻辑文件就能对数据进行过滤:
S — select;O — omit等
数据库:IBM i中指数据库管理系统实例,通常情况下系统上只运行一个实例,运行在系统ASP上(Auxiliary Storage Pool);
如果用户配置了独立ASP(IASP),那么可以看做一个单独的数据库系统实例。
SQL目录:系统自动创建,由一系列的表和视图组成,这些表和视图描述了系统中的表、视图、索引、包、存储过程、
函数、文件、序列、触发器和约束的相关信息;
这些信息是系统自动收集,用于数据库系统优化和查询优化等,他们存储在QSYS库和QSYS2可中的一组交叉索引文件中。
日志和日志接收器:记录数据库中表和视图(物理文件和逻辑文件)的改变,主要用于数据库事物处理中
COMMIT、ROLLBACK、SAVEPOINT、RELEASE SAVEPOINT语句的操作所涉及的事物提交;
或者回滚以及保存点的操作,也就是说,当为物理文件或逻辑文件建立了日志接收器和日志,
那么我们对其所作的任何修改都会被记录到日志中;
别名:SQL表或者视图的别名,使用CREATE ALIAS创建其别名之后,可以将其当做原始表或者视图使用。
约束:是一些规则,保证数据符合设计要求;分三种:
1.唯一约束
2.引用约束
3.检查约束
触发器:一组SQL操作,在对特定表或者视图进行增删改的时候触发。分为BEFORE,AFTER,INSTRAD OF触发器;
INSTRAD OF触发器主要是对于可以进行更新和删除的视图进行操作,对视图的操作也就是对其基于的表进行操作,
所以将对表的操作语句替代了对视图的操作语句,也可以称为:替代触发器。
存储过程:是一个通过SQL CALL语句进行调用的程序,DB2支持外部存储过程和SQL存储过程;
外部存储过程调用的程序可以使任何程序或服务程序;SQL存储过程完全有SQL语句定义。
用户自定义函数:以调用DB2内建函数方式调用的外部程序;DB2支持外部函数、SQL函数和有源函数(SourcedFunction);
外部函数可以是任何ILE程序或者服务程序,SQL函数完全用SQL语句定义,
有源函数是基于已存在的内建函数或者用户自定义函数所定义的函数。
用户自定义类型:基于DB2中存在的数据类型定义的用户数据类型。
序列:实现列的自动增长,CREATE SEQUENCE SQ_NAME START WITH 1 INCREACEMENTBY 1;
而IMB i中使用数据域可以实现列的自动增长:先去除数据域里面的值(在本次程序执行中使用),
然后再将增加的值写回去(下一次程序使用)。
SQL包:用于存储SQL语句在远程数据库系统上运行时所需要的控制结构信息,
远程数据库系统通过这些控制结构了解如何运行相应的SQL语句。