interbase

关系数据管理系统
InterBase是一种关系数据管理系统(Relational database management system RDBMS)，它提供了在单机或多用户环境中的快速数据处理及共享的工具。InterBase的核心是提供透明的多机种支持的网络运行服务器技术。InterBase是可以在Windows 95、Windows NT、Novell NetWare及多种UNIX操作系统上运行的工具。
定义
版本
InterBase的Windows 95和Windows NT版有两种形式，一是基于单机应用的 Local InterBase，另一种为基于远程、多机工作方式的InterBase Server。两种服务器都带有Windows 的客户工具，包括用户授权和数据库管理器Server Manager、用作数据库定义及操作的Windows ISQL以及一系列其它高效的工具。
详细资料
本地服务器
作为一种单用户32位ANSI SQL的本地服务器，InterBase是与Borland的客户开发工具（如Delphi、Visual dBase）的Client/Server版共同发售的。单用户版是基于PC开发的，并被用来开发在本地数据库环境中独立应用的SQL应用程序及远端服务器连接的客户/服务器（Client/Server）应用程序。
远端服务器
作为一种多用户的、32 位ANSI SQL支持的远端服务器，InterBase Server是单独发售或同Borland的有限客户使用的Client/Server版开发工具（如 Delphi）一起发售的。
开发者可以使用基于数据库引擎(Borland DataBase Engine--BDE）、核心数据库及连通性软件（connectivity middleware）的Borland用户开发工具建立Client/Server应用程序。通过InterBase SQL Links连接到InterBase数据库服务器。
当使用了Borland的客户端开发工具（如Delphi Client/Server suit）时，BDE被作为InterBase Server 的 API接口使用。直接对 InterBase API进行操作的应用程序必须用InterBase Server Developer版来创建。
使用InterBase Server，客户的应用程序也可以在其宿主语言中嵌入SQL、动态SQL语句。此外，这些应用程序还可以用 InterBase API的底层函数来编写。InterBase通过InterBase API提供了访问入口。
InterBase Server还包含了一个驱动程序，它专为开放式数据库接口(ODBC）而设计，使得ODBC客户端应用程序同InterBase Server共享数据。
特性
InterBase提供了RDBMS的全部优点，下面是InterBase的一些关键特性：
表附录C.1 InterBase的关键特性
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
特性（Feature) ；简介（Description)
─────────────────────────────────────
支持网络协议支持Microsoft NetBEUI/命名管道和TCP/IP协议， 便
于通讯。（只用于InterBase Server)
与SQL-92入口的一致性　 通过交互式SQL工具和Borland桌面应用程序使ANSI
的标准SQL可被利用
同时访问多个数据库 ；一个应用程序可以在同一时间访问多个数据库
多代结构 ；服务器可保持（必须的）纪录的老版本。这样多个事务可
以查到一致的数据库视图
查询优化 ；服务器对用户进行自动优化处理， 或用户可以人为指定
查询方案。
BLOB数据类型 Binary Large Objects（二进制大对象） 可以包含非格式化
数据如图像和文本
定义参考完整性 自动交叉表格关系（在Fore|GN和Primary Key之间）进行
强制转换
存储过程数据库中可编程元素。用其进行高级的查询及数据操作
触发器；自包含的程序模块。当指定表格中的数据被插入、 更
新或删除时被激活
事件警报器 ；从数据库向应用程序传递消息，允许应用程序接收数据
库改变的异步通知消息
可更新的视图 ；当数据改变时，可立即在视图上反映出来
用户定义函数(ODFS) ；在服务器上运行的程序模块
外部连接 在两个表之间构造关联，并进行更复杂的操作
显式事务管理 ；对事务开始通讯及回转，也含已命令事务的全方位控制
多程序同时访问数据 ；一个应用程序读取表格，不需要禁止其它程序访问此表
多维数组；按索引表排列的多列数据
自动两阶段提交 ；多数据库协作事物中，在提交前先检查所有数据库的修
改情况（只用于InterBase Server)
InterBase的API 底层函数库。使得应用程序构造SQL/DSQL语句， 直接
访问InterBase引擎并接收返回结果 （仅InterBase　Server
Developer 版）
gpre ；将嵌入的SQL/DSQL 语句的变量转换成为可由语言编译
器读取格式的处理器。（仅InterBase Server Developer版）
服务器管理器 ；一种Windows工具，对数据库进行备份、修复、保持及
（Server Manager) ；安全性的管理
Windows ISQL Windows的一种直观交互式的数据定义及查询工具。
命令行（Command-line)ISQL InterBase的直观交互式SQL工具的命令行版，可以用其
替代Windows ISQL
Comdiag InterBase通讯诊断工具
命令行DBA工具 InterBase数据库管理工具的命令行版本。可以用其替代
服务器管理器Server Manager
头文件 ；在应用程序开头包含的文件。定义了 InterBase 的数
（Header Files) ；据类型及函数调用（仅InterBase Server Developer版）
制作文件（make file) 用来演示如何使用Borland MAKE工具来在Windows下
编译、链接InterBase应用程序的文件 （仅 InterBase
Server Developer 版）
例程 C程序，可进行编译、链接。程序可以用来在服务器上
查询InterBase数据库范例。（仅 InterBase Server
Developer 版）
消息文件 INTERBAS.MSG文件，含呈送给用户的消息。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
约束
约束是由操作系统及硬件引入的限制项目。
对象限制
数据库大小 ：没有严格限制
每个数据库可含文件 ：65536.元数据则只允许更少的文件数目（须为SHORT类型）
一个事务中打开的数据库数 ：没有严格限制
每个数据库中可含表格 ：65536（用SHORT数字表示）
每个表格的行、列数 ：无限制，记录可以到64K。可创建列数视所用数据类型而
定。
行大小 ：64K
每个数据库索引个数 ：无严格限制
每个表格的索引数 ：无严格限制
每个触发器所容事件 ：无限制
每存贮过程所容事件 ：无限制
BLOB大小 ：32GB(BLOB段大小64K)
数组大小 ：64K
可联表格 ：无限制
查询嵌套层数 ：无限制
每一综合检索的列数 ：16
每一存贮过程的嵌套层数 ：Windows 3.X系统为75、Windows 95及WindowsNT为
750、其它系统 1000
每一触发器的嵌套层数 ：同上存贮过程的规定
存贮过程长度 ：48K
排序从句键 ：64K
触发器长度 ：64K
语法规则
表附录C.2讲述了语句及简码中的语法约定，并提供了用法的简单例程。
表附录C.2 InterBase的语法约定
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
约定　用途　实例
─────────────────────────────────────
大写（UPPERCASE）　应用时必须被正确输入的关　SET TERM Ⅱ；
键字
斜体（italic) ；不能被分为更小单元的参数　CREATE TABLE,name
例如表格名称不能再细分　（<col>[,<col>；…];@
<；斜体>(<italic>) 在尖括号中的参数可以被划　CREATE TABLE name
分为更小的句法单元，例如　（<col>[,<col>；…]
列定义（<col>；）可以被再分为　 　 <col>=mane<datatype>
名称、数据类型和强制定义　 　[CONSTRAINT name<type>]
方括号[ ] ；方括中放可选项语句　<col>,[<col…]
省略号…　 ；省略号表示括号中的句子可　（<col>,[<col>；…];
以重复需要的若干次
分隔符|　 ；分隔符表示其分隔的两个句　SET TRANSACTION
子中的任何一个可被用，但　{SNA PSHOT
不会都用　[TABLE STABILITY]|
READ COMMITTED}
花括号{ } 在花括号中的分隔符隔开多 SET TRANSACTION
种选项，必须使用其中之一， {SNAP SHOT[TABEL
在实际应用此语句时，必须　STABILITY] | READ
有一个选项被包含　COMMITTED
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
对象命名规则
在InterBase文件集中，InterBase数据库对象如表格（tables）、视图（views）及列（columns）的名称，显示为大写字符。因为这是数据库系统表格存贮信息的方式。
当程序员或用户创建一个数据库对象或用名称来指定对象时，大小写并不是很重要，只须遵守以下的数据库对象命名规则即可：
① 每一个名字的第一个元素一定要是字母，即以字母（A-Z或a-z）开头
② 对象名最长限度为31个字符，其中包括美元符号（$）、下划线（_），数字0-9，字母A-Z和a-z。一些对象会约束名称，限制长度为27字节
③ 保证对象名的唯一性。在所有情况下，同类型（如表格、视窗）的对象，名称必须是唯一的。多数情况下，在数据库范围内的对象名称亦必须是唯一的
文件命名规则
InterBase对于很多平台都是可用的。多数情况下，在多机种网络环境中的用户可以访问他们的InterBase数据库文件，即使客户端和服务器端的平台是不相同的，只需知道目标平台上的文件命名规则即可。
因为文件命名规则在不同的平台上区别很大，而且由于核心的InterBase文件集对这些平台都是相同的，因此所有的文件名在文本状态及例子中都是用DOS的 "8.3" 规则的，即最长8个字符的文件名和最长 3个字符的扩展名。例如，所有服务器上的示范数据库都是employee.gdb.
您可能注意到在例子中都用了扩展名：“.gdb”，它是缺省的 InterBase 数据库扩展名。通常情况下，InterBase完全支持各种平台的文件命名规则，包括节点和路径名的用法。InterBase能识别用命令和语句表明的两种类型的文件名称说明。一种叫做主文件说明，另一种叫做次级文件说明。一些命令和语句在用次级文件说明时对节点名称要进行规范限制。
在语法上，文件说明表示如下：
“<file spec>；”
文件说明
⒈主文件说明
在进行主文件说明时，InterBase语法总支持完整文件说明，包括可选的节点名和完全的路径。例如，CREATE DATABASE用语法表示如下：
CREATE {DATABASE |SCHEMA]"<file spec>"
[USER "username"[PASSWORD"password"]
[PAGE-SIZE [=] int]
[LENGTH [=] int [PAGE[S]]
[DEFAULT CHARACTER SET charset]
…
在以上句子中，<filespec>；紧跟在CREATE DATABASE后面，它支持节点名和路径说明，包括一个指定平台的驱动器或指定列。
2、次级文件说明
对于支持多种文件说明的InterBase语法，例如CREATA DATABASE，所有在第一个文件说明后的均为次级文件说明。次级文件说明通常不包含节点名称， 但可能说明一个完整的路径，例如，CREATE DATABASE的句法说明如下：
CREATE {DATABASE |SCHEMA} : "filespec"
[USER "username" [PASSWORD "password"]]
[PAGA SIZE [=] int [PAGE[S]]]
[DEFAULT CHARACTER SET charset]
[<secondary-file]
<secondary-file> = FILE "filespec" [<fileinto>][<secondaryfile]
<fileinfo>=LENGTH[=]int[PAGEE]|STARTING[AT[PAGE]]int[<fileinfo>]
在次级文件说明中，<filespec>；不支持节点名称的说明。