程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> InterBase概述

InterBase概述

編輯:Delphi

InterBase是一種關系數據管理系統(Relational database management system RDBMS),它提供了在單機或多用戶環境中的快速數據處理及共享的工具。InterBase的核心是提供透明的多機種支持的網絡運行服務器技術。InterBase是可以在Windows 95Windows NTNovell NetWare及多種UNIX操作系統上運行的工具。

  InterBaseWindows 95Windows NT版有兩種形式,一是基於單機應用的 Local InterBase,另一種為基於遠程、多機工作方式的InterBase Server。兩種服務器都帶有Windows 的客戶工具,包括用戶授權和數據庫管理器Server Manager、用作數據庫定義及操作的Windows ISQL以及一系列其它高效的工具。

一、Local InterBase

  作為一種單用戶32ANSI SQL的本地服務器,InterBase是與Borland的客戶開發工具(DelphiVisual 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|GNPrimary Key之間)進行

強制轉換

存儲過程 數據庫中可編程元素。用其進行高級的查詢及數據操作

觸發器 自包含的程序模塊。當指定表格中的數據被插入、

新或刪除時被激活

事件警報器 從數據庫向應用程序傳遞消息,允許應用程序接收數據

庫改變的異步通知消息

可更新的視圖 當數據改變時,可立即在視圖上反映出來

用戶定義函數(ODFS) 在服務器上運行的程序模塊

外部連接 在兩個表之間構造關聯,並進行更復雜的操作

顯式事務管理 對事務開始通訊及回轉,也含已命令事務的全方位控制

多程序同時訪問數據 一個應用程序讀取表格,不需要禁止其它程序訪問此表

多維數組 按索引表排列的多列數據

自動兩階段提交 多數據庫協作事物中,在提交前先檢查所有數據庫的修

改情況(只用於InterBase Server)

InterBaseAPI 底層函數庫。使得應用程序構造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系統為75Windows 95WindowsNT

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-Za-z)開頭

  ② 對象名最長限度為31個字符,其中包括美元符號($)、下劃線(_),數字0-9,字母A-Za-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>不支持節點名稱的說明。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved