SQL Server 2000中的數據存儲形式(二)
2024-08-31 00:48:05
供稿:網友
 
sql server 是一個關系數據庫管理系統,它最初是由microsoft 、sybase 和ashton-tate三家公司共同開發的,于1988 年推出了第一個os/2 版本。在windows nt 推出后microsoft與sybase 在sql server 的開發上就分道揚鑣了,microsoft 將sql server 移植到windows nt系統上專注于開發推廣sql server 的windows nt 版本,sybase 則較專注于sql server在unix 操作系統上的應用。
 
sql server 2000 是microsoft 公司2000年推出的sql server 數據庫管理版本。該版本繼承了sql server 7.0 版本的優點同時又比它增加了許多更先進的功能,具有使用方便,可伸縮性好,與相關軟件集成程度高等優點。可跨越從運行microsoft windows 98 的膝上型電腦到運行microsoft windows 2000 的大型多處理器的服務器等多種平臺使用。
 
下面就sql server 2000的數據存儲在物理上和邏輯上的實現方式加以說明。
 
一、物理存儲形式:
 
物理上,一個數據庫有一個或多個磁盤上的一個或多個文件組成。這種物理實現只對數據庫管理人員是可見的,而對于用戶是透明的。
每個數據庫在物理上又分為數據和日志文件,這些數據和日志文件存放一個或多個磁盤上。這些文件不與其它文件共享。
1)  數據文件:
sql server 2000將一個數據文件中的空間分配給表格和索引,每塊有64kb空間,叫做“擴展盤區”。有兩種類型的擴展盤區:統一擴展盤區和混合擴展盤區。
每個擴展盤區由頁面組成。頁面是sql server 2000中數據存儲的基本單元,每個頁面的大小為8kb。通常情況下,每個數據頁面上以行的形式存儲數據。一行的數據最多達8060字節。數據行上如若有群集索引,則基于群集索引的關鍵字(如郵政編碼等)為順序組織數據,否則沒有特定的順序。
2)  事務處理日志文件:
事務處理日志文件駐留在與數據文件不同的一個或多個物理文件中,包含一系列日志記錄而不是擴展盤區分配的頁面。
 
二、邏輯存儲形式:
 
邏輯上,一個數據庫有若干個用戶可見的組件組成,如:表格、視圖、存儲過程等。
其中對象名稱及功能如下表所示:
數據庫對象
功         能
表格
由數據的列和行組成,格式與工作表相類似。行代表一個唯一的記錄,列代表記錄中的一個字段。類型定義規定了某個列中可以存放的數據類型。
視圖
可以限制某個表格可見的行和列,或者將多個表格數據結合起來,作為一個表格顯示。一個視圖還可以集中列。
索引
是一種和表格或視圖有關的結構,可以加快從表格或視圖中獲得數據行。表格索引可以是群集的,也可以是非群集的。群集指數據在物理上是基于索引關鍵字的順序存放的。
關鍵字
是眾多列中一列或組,它唯一識別一行(主關鍵字),定義兩個表格之間的關系(外關鍵字),或者用于構建一個索引
用戶定義的數據類型
是一種自定義的數據類型,它基于某個預先定義的數據類型。它可以用來建立對程序員更有意義的表結構,有助于確保存放數據的相似類的列都具有相同的數據類型。
存儲過程
是一種transact-sql語句,它們被編譯成一個執行計劃。該過程用于性能優化和控制訪問。
約束
定義了有關列中允許的值的規則,是加強數據完整性的標準機制。
 
默認
規定了當您插入一行,而沒有定義列的值時,改列使用的值。
觸發器
時存儲過程的一個特殊類,用于當對一個表格或視圖發出update、insert 或delete語句時,能自動執行。
用戶定義的函數
時一個由一條或多條transact-sql語句構成的子例行程序,用于封裝代碼以便于重用。一個函數可以有最多1024個輸入參數。用戶定義的函數可以取代視圖和存儲過程。
                                            參考sqlserver2000認證書籍