首先,網格數據庫
首先出現的是網狀DBMS。在網狀模型中,記錄是數據的存儲單位。該記錄包含幾個數據項。網格數據庫的數據項可以是多值和復合數據。每條記錄都有壹個唯壹標識它的內部標識符,稱為database key(DBK),當記錄存儲在數據庫中時,由DBMS自動給出。DBK可以看作是壹個記錄的邏輯地址,壹個記錄的體替身,或者用來查找壹個記錄。Mesh數據庫是壹個導航數據庫,用戶在操作數據庫時不僅要說明做什麽,還要說明怎麽做。例如,在搜索語句中,不僅要說明要搜索的對象,還要指定訪問路徑。
世界上第壹個網狀數據庫管理系統和第壹個DBMS是美國通用電氣公司Bachman等人在1964年研制成功的IDS(IntegratedDataStore)。IDS奠定了mesh數據庫的基礎,在當時得到了廣泛的分布和應用。1971年,美國Coda Syl(數據系統Slangues會議)的DBTG(DataBaseTaskGroup)提出了著名的DBTG報告,定義了網格數據模型和語言,並在1978和198655中做出。因此,網格數據模型也被稱為CODASYL模型或DBTG模型。在1984中,美國國家標準協會(ANSI)提出了網絡定義語言(NDL)的推薦標準。20世紀70年代,出現了大量網狀數據庫的DBMS產品。比較著名的有Cullinet軟件公司的IDMS,Honeywell公司的IDSII,Univac公司(後並入Unisys公司)的DMS1100,HP公司的IMAGE等。網狀數據庫模型可以自然地模擬分層和非分層的事物。在關系數據庫出現之前,網狀DBMS比層次DBMS應用更廣泛。在數據庫發展史上,網狀數據庫占有重要的地位。
第二,分層數據庫
分層數據庫管理系統之後是網絡數據庫。現實世界的很多東西都是有層次組織的。分層數據模型首先被提出來模擬這種分層組織的事物。分層數據庫也通過記錄訪問數據。層次數據模型中最基本的數據關系是基本層次關系,表示兩種記錄類型之間的壹對多關系,也稱為父子關系(PCR)。數據庫中只有壹種記錄類型沒有父節點,稱為根節點。其他記錄類型有且只有壹個父記錄。在層次模型中,從節點到其父節點的映射是唯壹的,因此層次模型的整體結構只能通過為每種記錄類型(除了根節點)指出其父節點來表示。層次模型是壹棵樹。
最著名和最典型的層次數據庫系統是IBM的IMS(信息管理系統),它是IBM開發的最早的大型數據庫系統程序產品。它產生於60年代末,現在已經發展到IMSV6,提供了對集群、N路數據共享、消息隊列共享等高級特性的支持。這個有30年歷史的數據庫產品在今天的WWW應用連接和商業智能應用中扮演著新的角色。
第三,關系數據庫
關系模型的建立
網狀數據庫和層次數據庫很好地解決了數據集中和共享的問題,但仍然很缺乏數據獨立性和抽象性。用戶在訪問這兩個數據庫時,仍然需要明確數據的存儲結構,指出訪問路徑。後來出現的關系數據庫很好地解決了這些問題。關系數據庫理論出現於20世紀60年代末70年代初。1970年,IBM研究員E.F.Codd博士發表了《大型數據共享銀行的關系模型》壹文,提出了關系模型的概念。後來Codd陸續發表了很多文章,奠定了關系數據庫的基礎。關系模型具有嚴格的數學基礎,高度的抽象性,簡單明了,易於理解和使用。但當時有人認為關系模型是壹種理想化的數據模型,用它來實現DBMS是不現實的,尤其擔心關系數據庫的性能難以接受,甚至有人將其視為對正在進行的mesh數據庫標準化的嚴重威脅。為了促進對問題的理解,1974 ACM牽頭組織了壹次研討會,會上進行了壹場支持和反對關系數據庫兩派的辯論,分別由Codd和Bachman牽頭。這場著名的爭論促進了關系數據庫的發展,並最終使其成為現代數據庫產品的主流。
關系數據模型提供了關系操作的特征和功能要求,但沒有給出DBMS語言的具體語法要求。關系數據庫的操作是高度非過程化的,用戶不需要指出特殊的訪問路徑,路徑的選擇由DBMS的優化機制完成。70年代初,Codd討論了度量關系系統的範式理論和12標準,用數學理論奠定了關系數據庫的基礎。Codd博士也因為對關系數據庫的傑出貢獻獲得了1983的ACM圖靈獎。
關系數據模型是在集合論中關系概念的基礎上發展起來的。在關系模型中,實體和實體之間的關系都由單壹的結構類型——關系來表示。實際關系數據庫中的關系也稱為表。關系數據庫由幾個表組成。
SQL語言的產生和發展
1974年,IBM的Ray Boyce和Don Chamberlin用簡單的關鍵字文法表達了Codd關系數據庫12準則的數學定義,並提出SQL(結構化查詢語言)作為裏程碑。SQL語言的功能包括查詢、操作、定義和控制。它是壹種全面通用的關系數據庫語言,也是壹種高度非過程化的語言,只需要用戶指出做什麽,而不需要指出怎麽做。SQL集成實現了數據庫生命周期中的所有操作。SQL語言自誕生以來,就成為了檢驗關系數據庫的試金石,SQL語言標準的每壹次變化都引導著關系數據庫產品的發展方向。
在SQL語言取得進步的同時,IBM研究中心在1973年啟動了SystemR項目。它的目標是證明壹個全功能關系數據庫管理系統的可行性。項目結束於1979,完成了第壹個實現SQL的DBMS。1986年,ANSI采用SQL作為關系數據庫語言的美國標準,並於同年發布了標準SQL文本。目前,SQL標準有三個版本。基本的SQL定義是ANXIX 3135-89,《數據庫語言-完整性增強的SQL》[ANS 89],俗稱SQL-89。SQL-89定義了模式定義、數據操作和事務處理。SQL-89和隨後的ANXIX 3168-1989,“數據庫語言-嵌入式SQL”構成了第壹代SQL標準。ansix 3135-1992[ANS 92]描述了壹個增強的SQL,現在稱為SQL-92標準。SQL-92包括增強的特性,如模式操作、SQL語句的動態創建和動態執行以及網絡環境支持。在完成SQL-92標準之後,ANSI和ISO開始合作開發SQL3標準。SQL3的主要特點是支持抽象數據類型,為新壹代的對象關系數據庫提供了標準。
第二部分介紹了主流的關系數據庫軟件。
Codd的關系數據庫理論將關系系統分為四個層次:表格系統、(最小)關系系統、關系完全系統和總關系系統。目前,沒有壹個數據庫系統是完整的關系系統。真正所謂的關系系統,至少應該是壹個關系完備的系統。現代主流的關系數據庫產品都是關系完備的。
壹、IBM的DB2/DB2通用數據庫
作為關系數據庫領域的先行者和開拓者,IBM於1980年開始提供集成數據庫server - System/38,隨後是SQL/DSforVSE和VM,其最初版本與SystemR的研究原型密切相關。DB2forMVSV1是在1983中引入的。這個版本的目標是提供這個新方案所承諾的簡單性、數據無關性和用戶生產率。DB2的未來版本將致力於提高其性能、可靠性和容量,以滿足各種關鍵業務的需求。1988 DB2forMVS提供強大的聯機事務處理(OLTP)支持,1989和1993分別用遠程工作單元和分布式工作單元實現分布式數據庫支持。最近推出的DB2UniversalDatabase6.1是UniversalDatabase的模型,是第壹個具有在線功能的多媒體關系數據庫管理系統,支持包括Linux在內的壹系列平臺。它的主要新功能包括:
1)提供了JavaStoredProcedureBuilder來支持服務器端存儲過程的快速開發。
2)支持與目錄服務器通信的標準LDAP。
3)增強的轉換和遷移工具。
4)擴展的DB2通用數據庫控制中心可以使用相同的圖形工具在更多的平臺上完成管理工作。
5)提高電子商務的性能,提供多種電子商務集成方案。
6)強大的XML支持能力。
二、Informix/Informix IDS 2000的歷史
Informix成立於1980,為Unix和其他開放操作系統提供專業的關系數據庫產品。公司名稱Informix取自Information和Unix的組合。
Informix第壹個真正支持SQL語言的關系數據庫產品是InformixSE(StandardEngine)。InformixSE的特點是簡單、可移植、適應性強。它的裝機量非常大,尤其是在當時的微機Unix環境下,成為主要的數據庫產品。它也是第壹個移植到Linux的商業數據庫產品。
20世紀90年代初,聯機事務處理成為關系數據庫越來越重要的應用,與此同時,客戶機/服務器結構逐漸興起。為了滿足基於客戶機/服務器環境的在線事務處理的需求,Informix在其數據庫產品中引入了客戶機/服務器的概念,將應用程序對數據庫的請求與數據庫對請求的處理分離開來,並引入了Informix-OnLine。Online的壹個特點是數據管理的巨大變化,即數據表不再是單個文件,而是壹個數據庫空間和邏輯設備。邏輯設備不僅可以構建在文件系統上,還可以是分區和硬盤的原始設備。從而提高數據的安全性。
1993中,為了克服多進程系統性能的限制,Informix使用多線程機制重寫數據庫核心。次年年初,Informix推出了名為“動態可伸縮結構”(DSA)的InformixDynamicServer。除了應用線程機制,Informix還在數據庫核心中引入了虛擬處理器的概念,每個虛擬處理器都是壹個Informix數據庫服務器進程。在DynamicServer中,多個線程可以在虛擬處理器緩沖池中並行執行,每個虛擬處理器都由實際的多處理器調度執行。更重要的是,為了執行高效和多功能的調優,Informix根據不同的處理任務對虛擬處理器進行分類。每個類都經過優化以完成特定的功能。
到了90年代後期,隨著互聯網的興起,電子文檔、圖片、視頻、空間信息、Internet/Web等應用大量湧入IT行業,而關系數據庫管理的數據類型還停留在六七十年代的水平,處理能力變得不足。1992年,著名數據庫學者、Ingres創始人MichaelStonebraker提出了對象關系數據庫模型,從而找到了解決問題的有效途徑。
1995年,Stonebraker及其R&D組織加入Informix,在數據庫發展方向上有了新的突破:1996年,Informix推出了Universal Data選項。這是壹個對象關系模型數據庫服務器;它不同於其他供應商的中間件解決方案,從關系數據庫服務器的各個方面擴展了數據庫。關系數據庫各種機制的抽象和概括。UniversalDataOption采用了DynamicServer的所有底層技術,如DSA結構、並行處理等,允許用戶在數據庫中建立復雜的數據類型和用戶自定義的數據類型,同時可以為這些數據類型定義各種操作和運算,實現對象的封裝。數據庫過程化語言和C語言在定義操作和操作時都可以使用,註冊後成為服務器的壹部分。
在1999中,Informix進壹步優化了通用數據選項,為用戶自定義數據類型和操作流程提供了完整的工具環境。同時,傳統事務處理的性能超過了以前的動態服務器。新的數據庫核心命名為IDS.2000,其目標是定位下世紀基於Internet的復雜數據庫應用。
事實上,互聯網的普及始於Web。Web應用程序以其簡單性和插圖而聞名。然而充斥整個系統的HTML文件不知不覺把我們帶回了文件系統時代。使用數據庫管理互聯網信息的第壹個挑戰是復雜信息的管理。互聯網的出現在實際應用中擴展了“數據”的概念。因此,從1995開始,Informix開始設計新壹代數據庫系統。作為專業的數據庫廠商,Informix首先針對互聯網應用中數據類型的多樣性,利用對象技術擴展了關系數據庫系統。不同的是,Informix並不在數據庫核心中編寫新的數據類型,而是將數據庫系統中的所有環節完全抽象出來,使用戶能夠定義和描述自己需要管理的數據類型,將可管理的數據類型擴展到無限,適應未來應用開發的需要。這是Informix今年新推出的數據庫服務器——informixdynamicserver . 2000(簡稱IDS.2000)。
在IDS.2000中,Informix的另壹大貢獻在於抽象了數據庫的訪問方法(索引機制和查詢優化)並開放其接口。這樣,用戶可以為復雜對象定義壹種全新的索引機制,並將其集成到整個數據庫服務器中。在IDS.2000中,所有用戶定義的數據類型、操作和索引機制都將被系統及其內置的類型、操作和索引機制同等對待。IDS.2000將所有數據庫操作納入標準數據庫SQL的範圍,在形式上與傳統的關系數據庫完全兼容,但滿足了擴展“數據”概念的需要,成為真正的通用數據庫。Informix在IDS.2000中增加了壹系列核心擴展模塊,構成了面向互聯網的多功能數據庫服務器Informix Internet Foundation。2000.
INFORMIX的主要產品分為三個部分:
數據庫服務器(數據庫核心)
應用開發工具
網絡數據庫互聯產品
有兩種數據庫服務器,它們都提供數據操作和管理:
SE:完全基於UNIX操作系統,主要針對用戶較少的非多媒體應用。
在線:面向大量用戶的在線事務處理和多媒體應用環境。
應用開發工具是開發應用所必需的環境和工具,主要有兩大系列:
4GL:INFORMIX基於字符界面的傳統開發工具。這個系列主要有五個產品,分別是I-SQL、4GL RDS、4GL C編譯器、4GL ID和ESQL/C;
NewEra:INFORMIX最新的基於各種圖形界面的事件驅動和面向對象的開發工具。
INFORMIX的網絡數據庫互聯產品:為用戶提供基於各種工業標準的應用程序接口,通過這些接口,用戶可以與符合這些工業標準的其他數據庫進行連接。
三、Sybase/Sybase ase的歷史
Sybase公司成立於1984,公司名稱“Sybase”取自“系統”和“數據庫”的組合。Sybase公司的創始人之壹Bob Epstein是Ingres大學版(與System/R同時期的關系數據庫模型產品)的主要設計者。該公司的第壹個關系數據庫產品是SybaseSQLServer1.0,於1987年5月推出。
Sybase最早提出了客戶機/服務器數據庫架構的思想,並率先在自己的SybaseSQLServer中實現。在此之前,計算機信息壹般存儲在單個主機中,最終用戶壹般通過字符終端來管理和訪問主機。大部分處理由主機完成,終端主要完成輸入和簡單的顯示功能。這種主機/終端模式的軟硬件成本相當高,壹般中小企業不可能實施。20世紀70年代末80年代初,IT界發生了兩件影響深遠的事件:PC和局域網的迅速普及。PC機的功能比終端強得多,局域網的速度比主機終端之間的連接快得多,它們的成本也比主機系統低得多。與此同時,工作站和小型機迅速發展,在許多方面可以替代主機的功能,為實現客戶機/服務器體系結構提供了硬件基礎。
在客戶機/服務器架構中,服務器提供數據存儲和管理功能,客戶機運行相應的應用程序,可以通過網絡獲得服務器的服務,使用服務器上的數據庫資源。客戶端和服務器通過網絡連接形成壹個協作系統。客戶機/服務器架構將原本運行在主機系統上的大型數據庫系統進行適當劃分,合理分布在客戶機和服務器之間。在Sybase SQL Server中,數據庫和應用程序分為以下邏輯功能:用戶界面、表示邏輯、事務邏輯和數據訪問。Sybase的設計思想是事務邏輯和數據訪問在服務器端處理,用戶界面和表現邏輯在客戶端處理。
客戶機/服務器架構合理配置和設計了硬件和軟件,極大地促進了當時在線企業信息系統的實現。與主機/終端模式相比,客戶機/服務器架構能更好地實現數據服務和應用的共享,系統易於擴展,更加靈活,簡化了企業信息系統的開發。當信息系統規模擴大或需求發生變化時,可以在原有基礎上進行擴展和調整,無需重新設計,從而保護企業現有的硬件和軟件投資。
“客戶機/服務器架構”很快成為企業信息化建設的主要模式,對數據庫乃至IT行業的發展產生了深遠的影響。
在1989年,Sybase發布了OpenClient/OpenServer,它為不同的數據源和數百種工具和應用程序提供了壹致的、開放的接口,為實現異構環境下系統的互操作提供了非常有效的手段。
1992 11 10月,Sybase發布了SQLServer10.0及壹系列新產品(在此之前,SQLServer相繼發布了2.0、4.2、4.8、4.9等版本。),它將SQLServer從客戶機/服務器系統推向了企業級計算環境。Sybase將該產品系列稱為System10。它旨在支持企業級數據庫(運行Sybase和其他供應商的數據庫系統)。
SybaseSQLServer10.0是System10的核心。與4.9版本相比,增加了許多新的特性和功能:修改後的Transact-SQL完全符合ANSI-89SQL標準和ANSI-92入門級SQL標準,此外,還增強了光標控制,允許應用程序逐行提取數據,並允許整個數據雙向滾動。此外,還引入了閾值管理器。1995年,Sybase推出了Sybase SQL Server 11.0。除了繼續為在線事務提供強有力的支持,Sybase還在11.0中增加了許多新功能,以支持在線分析處理和決策支持系統。
為了滿足當前和未來不斷變化的應用需求,Sybase於1997年4月發布了自適應組件架構(ACA)。ACA是三層結構,包括客戶端、中間層和服務器。每壹層都提供了組件的運行環境,ACA結構可以根據應用需求方便地配置系統的每壹層,以滿足未來的發展需求。為適應ACA架構,Sybase將SQLServer更名為Adaptive Server Enterprise,版本號為11.5。在ACA結構中,提出了組件的兩個概念:邏輯組件和數據組件。邏輯組件是實現應用邏輯的組件,可以用Java、C/C++、Power Builder等語言開發,可以遵循流行的組件標準,如Corba、ActiveX、JavaBean等。數據組件可以實現不同類型數據的存儲和訪問。數據組件由Adaptive Server Enterprise 11.5(簡稱ASE11.5)提供。這些數據組件不僅可以存儲傳統的關系數據,還可以支持各種復雜的數據類型。用戶可以根據自己需要存儲的數據類型,如地理空間、時間序列、多媒體/圖像、文本數據等,安裝相應的數據存儲組件。它代表了Sybase在解決復雜數據類型、多維數據類型和對象數據類型方面的技術策略。
ASE11.5顯著增強了對數據倉庫和OLAP的支持,並引入了邏輯進程管理器,允許用戶選擇對象的運行優先級。
Sybase在1998中引入了ASE11.9.2。該版本最大的特點是引入了兩種新的鎖機制來保證系統的並發性和性能:數據頁鎖和數據行鎖,提供了更細粒度的控制。此外,查詢優化也得到了改進。
-1999年,隨著互聯網的廣泛使用,Sybase提出了幫助企業構建企業門戶應用的“OpenDoor”計劃,其中重要的壹部分就是最新的ase 12.0 for enterprise portal。為了滿足企業門戶的要求,ASE12.0顯著增強了生產力、可用性和集成性。
ASE12為Java和XML提供了良好的支持。分布式事務的完整性由X/Open的XA接口標準(完全支持分布式事務的行業標準)和微軟的DTC標準來保證。內置的高效TransactionManager可以支持分布式事務的高吞吐量。
ASE12采用集群技術,減少意外停機時間。它不僅支持兩臺服務器之間的故障轉移,還支持客戶端的自動故障轉移。
-ASE 12提供對ACE和Kerberos安全模式的支持,用戶可以通過ACE和Kerberos提供更加安全和加密的網絡通信;ASE12還提供了在線索引重建功能,在索引重建過程中仍然可以訪問表中的數據。
在查詢優化方面,ASE12引入了壹種叫做“Merge Join”的新算法,可以顯著提高多表連接查詢的速度;動態SQL語句可以通過executeimmediate語句執行;用戶可以定義壹個永久的和完整的查詢方案,以便他們可以執行更有效的性能優化。此外,ASE12與其他Sybase產品(如Sybase Enterprise Application Server和Sybase Enterprise Event Broker)壹起,為完整的標準互聯網接口提供支持。