Sybase SQL Server體系結(jié)構(gòu)介紹
Sybase SQL Server是一個多庫結(jié)構(gòu)的RDBMS,體系結(jié)構(gòu)大致如下:
1.數(shù)據(jù)庫
服務(wù)器自身所使用的數(shù)據(jù)庫,也可以說是管理服務(wù)器和用戶數(shù)據(jù)庫的數(shù)據(jù)庫。Sybase在安裝時,自動創(chuàng)建了四個系統(tǒng)數(shù)據(jù)庫:
master、model、tempdb、sybsystemprocs
1) master數(shù)據(jù)庫
它是管理和控制用戶數(shù)據(jù)庫以及維護服務(wù)器正常運行的核心數(shù)據(jù)庫,它保存了大量的系統(tǒng)信息,如服務(wù)器配置、用戶、設(shè)備等。
在master數(shù)據(jù)庫中不允許普通用戶在其中創(chuàng)建數(shù)據(jù)庫對象,否則會使得master數(shù)據(jù)庫的事務(wù)日志很快變滿。如果事務(wù)日志用盡,就無法使用dump transaction命令釋放master數(shù)據(jù)庫中的空間。
2)model數(shù)據(jù)庫
它是為創(chuàng)建用戶數(shù)據(jù)庫而提供的模板。每當(dāng)創(chuàng)建新的數(shù)據(jù)庫時,SQL Server自動建立model數(shù)據(jù)庫的一份拷貝,并把它擴充到用戶所要求的大小,以此作為新用戶數(shù)據(jù)庫。
Model數(shù)據(jù)庫中包含每個用戶數(shù)據(jù)庫所要求的系統(tǒng)表。Model數(shù)據(jù)庫可以被修改以便定制新創(chuàng)建的。
3)tempdb數(shù)據(jù)庫
它是個臨時數(shù)據(jù)庫,為服務(wù)器運行與處理提供一個共享的存儲區(qū)域,如group by和order by的中間結(jié)果就存放在這里。Tempdb的空間為服務(wù)器中所有數(shù)據(jù)庫的所有用戶所共享。
每次重啟SQL Server,服務(wù)器的一個自動進(jìn)程都拷貝model數(shù)據(jù)庫到tempdb數(shù)據(jù)庫,并清除tempdb中原來的內(nèi)容。因此tempdb中的用戶表都是臨時的。臨時表分為兩類:可共享的和不可共享的。不可共享的臨時表在由create table中將符號#置于表名之前創(chuàng)立;可共享的臨時表通過create table中指定表名前綴tempdb..而創(chuàng)立。不可共享的臨時表SQL Server自動為其添加數(shù)字后綴名,且它只存在于當(dāng)前會話中。
4)sybsystemprocs數(shù)據(jù)庫master數(shù)據(jù)庫
它是專門用來保存系統(tǒng)命令(存儲過程)的數(shù)據(jù)庫,如sp_help、sp_configure、sp_helpdevice等。當(dāng)任一數(shù)據(jù)庫用戶運行以sp_開頭的存儲過程時,SQL Server按照以下順序查找:當(dāng)前數(shù)據(jù)庫、sybsystemprocs數(shù)據(jù)庫、master數(shù)據(jù)庫。
2.用戶數(shù)據(jù)庫
用戶數(shù)據(jù)庫是我們使用Sybase服務(wù)器的真正目的。要管理用戶數(shù)據(jù),必須在Sybase中創(chuàng)建自己的數(shù)據(jù)庫,它是指用create database命令創(chuàng)建的數(shù)據(jù)庫。不能存取master數(shù)據(jù)庫的用戶是無權(quán)創(chuàng)建新的數(shù)據(jù)庫的。
數(shù)據(jù)庫中的主要內(nèi)容——數(shù)據(jù)庫對象:
表、視圖、臨時表
索引、主鍵、外鍵
缺省值、規(guī)則
存儲過程、觸發(fā)器等
【編輯推薦】