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以及一系列其它高效的工具。
一、Local InterBase
作為一種單用戶32位ANSI SQL的本地服務器,InterBase是與Borland的客戶開發工具(如Delphi、Visual DBase)的ClIEnt/Server版共同發售的。單用戶版是基於PC開發的,並被用來開發在本地數據庫環境中獨立應用的SQL應用程序及遠端服務器連接的客戶/服務器(ClIEnt/Server)應用程序。
二、InterBase 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的特性簡介
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文件,含呈送給用戶的消息。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
四、InterBase的約束
約束是由操作系統及硬件引入的限制項目。
對象限制
數據庫大小 :沒有嚴格限制
每個數據庫可含文件 :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 II;
鍵字
斜體(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>”
八、文件說明
1.主文件說明
在進行主文件說明時,InterBase語法總支持完整文件說明,包括可選的節點名和完全的路徑。例如,CREATE DATABASE用語法表示如下:
CREATE {DATABASE |SCHEMA]"<file spec>"
[USER "username"[PASSWORD"passWord"]
[PAGE-81ZE [=] 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>不支持節點名稱的說明。