一、Sybase數據庫簡介
1.版本
1984年,Mark B. Hiffman和Robert Epstern創建了Sybase公司,並在1987年推出了Sybase數據庫產品。Sybase主要有三種版本,一是UNIX操作系統下運行的版本,二是Novell Netware環境下運行的版本,三是Windows NT環境下運行的版本。現在最新版本已經是 12.5,在各主流Unix操作系統中均有廣泛應用。IBM AIX,HP unix,Digital Unix,Sun solaris等等。
2.Sybase數據庫的特點
(1)它是基於客戶/服務器體系結構的數據庫
一般的關系數據庫都是基於主/從式的模型的。在主/從式的結構中,所有的應用都運行在一台機器上。用戶只是通過終端發命令或簡單地查看應用運行的結果。 而在客戶/服務器結構中,應用被分在了多台機器上運行。一台機器是另一個系統的客戶,或是另外一些機器的服務器。這些機器通過局域網或廣域網聯接起來。客戶/服務器模型的好處是:
● 它支持共享資源且在多台設備間平衡負載
● 允許容納多個主機的環境,充分利用了企業已有的各種系統
(2)它是真正開放的數據庫
由於采用了客戶/服務器結構,應用被分在了多台機器上運行。更進一步,運行在客戶端的應用不必是Sybase公司的產品。對於一般的關系數據庫,為了讓其它語言編寫的應用能夠訪問數據庫,提供了預編譯。Sybase數據庫,不只是簡單地提供了預編譯,而且公開了應用程序接口DB-LIB,鼓勵第三方編寫DB-LIB接口。由於開放的客戶DB-LIB允許在不同的平台使用完全相同的調用,因而使得訪問DB-LIB的應用程序很容易從一個平台向另一個平台移植。
(3)它是一種高性能的數據庫
Sybase真正吸引人的地方還是它的高性能。體現在以下幾方面:
● 可編程數據庫
通過提供存儲過程,創建了一個可編程數據庫。存儲過程允許用戶編寫自己的數據庫子例程。這些子例程是經過預編譯的,因此不必為每次調用都進行編譯、優化、生成查詢規劃,因而查詢速度要快得多。
● 事件驅動的觸發器
觸發器是一種特殊的存儲過程。通過觸發器可以啟動另一個存儲過程,從而確保數據庫的完整性。
● 多線索化
Sybase數據庫的體系結構的另一個創新之處就是多線索化。一般的數據庫都依靠操作系統來管理與數據庫的連接。當有多個用戶連接時,系統的性能會大幅度下降。Sybase數據庫不讓操作系統來管理進程,把與數據庫的連接當作自己的一部分來管理。此外,Sybase的數據庫引擎還代替操作系統來管理一部分硬件資源,如端口、內存、硬盤,繞過了操作系統這一環節,提高了性能。
3.Sybase數據庫的組成
Sybase數據庫主要由三部分組成:
(1) 進行數據庫管理和維護的一個聯機的關系數據庫管理系統Sybase SQL Server;
Sybase SQL Server是個可編程的數據庫管理系統,它是整個Sybase產品的核心軟件,起著數據管理、高速緩沖管理、事務管理的作用。
(2) 支持數據庫應用系統的建立與開發的一組前端工具Sybase SQL Toolset;
ISQL是與SQL Server進行交互的一種SQL句法分析器。ISQL接收用戶發出的SQL語言,將其發送給SQL Server,並將結果以形式化的方式顯示在用戶的標准輸出上。
DWB是數據工作台,是Sybase SQL Toolset的一個主要組成部分,它的作用在於使用戶能夠設置和管理SQL Server上的數據庫,並且為用戶提供一種對數據庫的信息執行添加、更新和檢索等操作的簡便方法。在DWB中能完成ISQL的所有功能,且由於DWB是基於窗口和菜單的,因此操作比ISQL簡單,是一種方便實用的數據庫管理工具。
APT是Sybase客戶軟件部分的主要產品之一,也是從事實際應用開發的主要環境。APT工作台是用於建立應用程序的工具集,可以創建從非常簡單到非常復雜的應用程序,它主要用於開發基於表格(Form)的應用。其用戶界面采用窗口和菜單驅動方式,通過一系列的選擇完成表格(Form)、菜單和處理的開發。
(3) 可把異構環境下其它廠商的應用軟件和任何類型的數據連接在一起的接口Sybase Open ClIEnt/Open Server。
通過Open ClIEnt的DB-LIB庫,應用程序可以訪問SQL Server。而通過Open Server的SERVER-LIB,應用程序可以訪問其它的數據庫管理系統。
二、Sybase有關概念
Sybase SQL Server是一個多庫數據庫系統。這些數據庫包括系統數據庫和用戶數據庫。 而不論是系統數據庫還是用戶數據庫,都建立在數據庫設備上。
1.數據庫設備
所有的數據庫都創建在數據庫設備上。所謂數據庫設備,不是指一個可識別的物理設備,而是指用於存儲數據庫和數據庫對象的磁盤原始分區或操作系統文件。增加一個新的數據庫設備時,必須對這些設備“初始化”。初始化的過程就是將物理磁盤、磁盤分區或操作系統文件變為Sybase數據庫可以識別的設備。初始化數據庫設備使用DISK INIT命令:
DISK INIT
NAME=設備名,
PHYSNAME=物理設備名,
VDEVNO=虛擬設備號,
SIZE=塊數
其中,NAME指數據庫設備名,此名將用於CREATE DATABASE和ALTER DATABASE命令。PHYSNAME是原始磁盤分區或操作系統文件名。VDEVNO是數據庫設備的標識號,在SQL Server中,它必須是唯一的。SIZE的單位是2K的塊,對於新創建的數據庫,最小的SIZE是model數據庫的尺寸,即1024個2K的塊(2M)。
例如:/*將/dev目錄下400M的物理設備初始化為Sybase的數據庫設備tele114_log01*/
1>disk init
2>name=“tele114_log01”,
3>physname=“/dev/rtelelog”
4>vdevno=4
5>size=204800 /*2Kbyte*204800=400Mbyte*/
6>go
2、段
數據庫設備從邏輯上被劃分為數據庫段以允許將某一特定的對象放置在指定的段上(創建對象時指定),一數據庫設備可擁有多達192個段,一段可使用255個邏輯設備上的存儲空間。當用戶創建一個數據庫時,SQL Server 會自動在該數據庫中創建三個段: SYSTEM、LOGSEGMENT 、DEFAULT,這三個段分別用來存儲數據庫的系統表、事務日志和其他數據庫對象 。
在數據庫中創建段的步驟是:
x 先用Disk init 初始化物理設備
x 通過使用Create database 和alter database 的on 子句,使數據庫設備對數據庫可用,於是新設備自動增加到數據庫的default 和system段。
一旦數據庫設備存在並對數據庫可用,使用存儲過程Sp_addsegment 定義數據庫的段。語法如下:
Sp_addsegment 段名,數據庫名,設備名
3、系統數據庫
安裝Sybase數據庫時自動生成的下列系統數據庫:
● 主數據庫master;
● 模型數據庫model;
● 系統過程數據庫sybsystemprocs;
● 臨時數據庫tempdb。
也可選擇下列數據庫:
● 安全審核數據庫sybsecurity;
● 示例數據庫pubs2;
● 命令語法數據庫sybsyntax。