關系數據庫體系結構與客戶/服務器模式
關系數據庫概述
關系數據庫被定義為一種特殊的數據庫其中各個文件(稱作關系)以平面文件(FlatFiles)或表的形式保持數據表必須只含有一種記錄類型每個記錄具有固定數目的字段所有字段皆顯示命名表內的字段內容是各不相同的不允許重復組(repeating groups)不含有復制記錄和預定的記錄序列
在構造關系數據庫時必須特別注意關系的內容以及記錄的各屬性(字段)之間的內在聯系
關系數據庫上的基本操作有選擇投影連接和除法選擇建立一個含有與原始關系相同列數的新表但是行只包括那些滿足某些特寫標准的原始關系行投影操作指定將被選擇的列因而形成的表只含有原始表列的一個子集如果在投影操作刪除的列中有兩個行不同那麼將只有一個記錄被轉入新的關系連接操作從兩個或多個表中組合信息兩個表中的公用字段用作組合記錄的基礎字段在公用字段中具有相等值的記錄被連接在結果關系內
關系數據庫實現的任務
實現關系數據庫所涉及的任務分為三組
● 為DBMS定義數據庫結構的任務
● 將數據庫分配給物理存儲介質的任務
● 建立數據庫數據的任務
執行這些任務的方法取決於所采用的DBMS產品
各種不同的DBMS產品提供定義數據庫結構的實用程序這些實用程序使用一種專用的數據定義語言(DDL)某些DBMS產品含有一些規定一旦數據庫已被定義到DBMS即將該數據庫分配到物理介質根據應用程序處理的特點數據可以定位在指定表上或定位在同一磁盤上它有些DBMS產品偏重於數據庫數據的建立
如上所述數據庫定義存儲分配以及數據建立過程都將取決於應用需求和所選擇的特定DBMS產品的特征
關系數據操作
為了開發數據庫應用需要使用一種語言來表達處理邏輯關系數據操作語言共有四類
● 關系代數它是一種語言提供一組遠算符處理關系數據庫中的關系
● 關系演算它是一種語言在該語言中用戶指定一組來自關系數據庫內數據操作的結果
● 面向變換的語言它們構成一類非過程語言這類語言將表示為關系的輸入數據變換成表示為單個關系的結果SQL就是一種面向變換的語言
● 面向圖形的系統它們為用戶提供一個關系結構的圖形如Borland的Paradox 和IBM公司的QBE(Query By Example)
用戶可以采用多種方法與關系數據庫進行聯系
● 某些DBMS產品包括有生成表格的工具並提供表格和報告的處理
● 通過查詢語言提供一個接口它們執行查詢和更新功能最重要的查詢語言是SQL
● 與關系數據庫聯系的第三種方法是通過應用程序
擴展關系系統
眾多的銷售商都在積極擴展關系模型這些擴展包括在關系表中存儲復雜數據類型存儲過程觸發器以及二進制大對象(BLOB)目前正在SQL 標准中考慮的SQL擴展將包括對對象的進一步支持還有可能包括對用戶定義數據類型及嵌套表的支持向關系模型提供對象擴展的產品包括SybaseInformixOracle和Borland
SQL:集成客戶/服務器體系結構的基本鏈路
SQL為前面討論的集成客戶/服務器體系結構提供一條基本鏈路目前美國國家標准局(ANSI)已認可SQL作為操作數據庫的正式工業標准它是許多數據庫管理系統(DBMS)產品都采用的數據存取語言
SQL允許用戶在關系表數據上進行查詢建立新表存取現有的遠程表操作數據建立應用程序存取SQL數據運行SQL語句處理錯誤以及訪問多個服務器SQL數據庫服務器是多用戶關系數據庫管理系統(DBMS)
SQL可以作為一個查詢語言用於交互式使用或嵌入在應用程序中在執行查詢時SQL接受一個或多個關系作為輸入並產生一個關系作為輸出結果是一個表或平面文件例如一批不含有重復組的同一類型記錄在查詢多個表時SQL將這些表連接起來SQL內還含有一些規定用來向表中插入新數據從表中刪除數據或修改表中的數據
各種數據庫服務器功能介紹
服務器數據管理包括若干軟件它們使用戶可以訪問網絡中的任何節點以及確保多用戶環境下的保密性可恢復性和完整性如前面所提到的客戶/服務器計算中的基本存取鏈路是SQL它是一種高級非過程數據庫語言 現在已開發出很多支持SQL 的後端服務器及DBMS下面將描述這些產品
DB
DB是一種由IBM公司開發的RDBMS它使用SQL執行所有的數據庫操作數據定義數據存取數據操作以及授權功能SQL語句由用戶在一個客戶機節點從鍵盤輸入或嵌套在應用程序中
DB的結構包括表視圖表空間索引索引空間數據庫和存儲組 這種RDBMS提供有允許用戶動態建立和修改這些結構的工具DB還包括一些並行處理軟件以控制和限制干預後備和恢復功能以及安全性保證等
並行處理通過鎖來完成當應用程序讀數據庫數據時DB在該數據上獲取一個共享鎖允許其他應用程序讀這個相同的數據如果一個應用程序需要修改數據那麼DB將一個互斥型鎖放在該數據上以阻止其它應用程序訪問這個數據DB還提供一些關於鎖的級別或鎖的大小的任選項
DB周期性地存儲並檢查所有數據庫變化所有駐留在系統緩沖區中的變化被寫到數據庫並將一個變化的記錄載入日志以最近一次寫到日志的變化起所建立的全部映像可用於完成系統故障的恢復DB包括一些用來從備份拷貝重新建立數據庫的實用程序這種實用程序含有一個選擇項允許用戶只拷貝表空間中那些自最後一個備份後新被修改的頁面
DB還含有一些用來保護數據庫的安全性規定
Borland對象成分體系結構(BOCA)
BOCA建立了一個既考慮開發工具又考慮數據庫管理工具的客戶/服務器體系結構它將一級面向對象的工具中間件和數據庫服務器技術集中在一起提供客戶/服務器的解決方案該體系結構的組成部分有
先進的面向對象工具
Borland建立有廣泛基礎和緊密集成的面向對象的工具這些工具充分利用了當前客戶/ 服務器變革的優點使用面向對象的方法學建立了如下產品Borland C++Borland DelphiParadoxQuattroProVisual dBase以及ObjectVision等
IDAPI
IDAPI(集成數據庫應用程序設計接口)是Borland公司的SQL連通性解決方法 IDAPI使得開發人員能夠以更高的效率建立數據庫應用允許用戶在多種硬件和操作系統平台以及網絡環境下訪問以多種數據庫格式存儲的數據
InterBase
InterBase是一種分布式SQL數據庫服務器它支持每個數據庫系統查詢數據並將信息返回到其它任何一個InterBase服務器InterBase 的可變體系結構代表了關系系統技術的第三次浪潮可變引擎使得InterBase可以以最少的鎖支持高效事務處理和決策支持事務處理
Borland公司的面向對象技術使得開發人員可以通過構造模塊化的應用成分來建立復雜客戶/服務器系統這些模塊化應用成分可以很容易地開發測試維護和增強並可方便地裝配到復雜的應用程序包中此外Borland公司的可視化技術極大地提高了軟件生產率
Informix SQL服務器系列
Informix公司推出了多種產品來滿足特定的客戶/服務器需求 它們包括InformixOnLineInformix TP/XAInformix Star Informix OnLine/Optical和Informix OnLine工作站版
InformixOnLine是一個聯機事務處理(OLTP)數據庫服務器具有可用性數據完整性以及多媒體數據管理能力它建立有效的數據存儲方法進行快速數據存取緩沖數據於內存最低限度地使用磁盤存取利用多處理器特征允許不同處理器同時存取以及自動確定是有效的搜索策略等從而獲得極高的性能
InformixTP/XA將OnLine連接到事務處理管理程序支持那些涉及多個數據庫以及多個DBMS(由不同的銷售商提供)的事務處理在眾多RDBMS中Informix 第一個向依從於X/Open XA的事務處理管理程序提供了這種基於標准的接口
InformixSTAR是一種用於OnLine的分布式客戶/服務器數據庫產品它提供最佳的性能並且具有最小的網絡通信量站點透明性以及在不同站點操作數據庫的高度可靠性
InformixOnLine/Optical是一種針對OnLine用戶的附加產品這些用戶想在他們的數據庫系統上使用具有大容量存儲能力的光學設備On_Line/Optical允許用戶在寫一次讀多次(WORM)的光學子系統上存儲BLOB用戶必須擁有OnLine/Optical OnLine和一個光學子系統那當然如果沒有這個OnLine/Optical產品用戶仍可以使用On LIne在磁存儲設備上操作BLOB
InformixOnLine工作站版是OnLine管理員手冊的圖形化版本該工作站版具有與硬件版本相同的技術內容但它是構造在一個窗口化點一揿式(PointandClick)圖形接口采用關鍵字交叉查閱這使得用戶可以在某一窗口中存取所需信息的同時在另一窗口中配置監視或調節OnLine
[] [] []
From:http://tw.wingwit.com/Article/program/Delphi/201311/25138.html