目錄 計算機存儲器中合理組織的,可供計算機使用的相關數據的集合。這些數據很少重複,數據的存儲獨立於使用它的程序,可為多個用戶所共享。 存放在電子計算機存儲器中,按照一定格式編成的相互關聯的各種數據的集合,供用戶迅速有效地進行數據處理。 ★數據庫 發展階段大致劃分為如下幾個階段:
人工管理階段;
文件係統階段;
數據庫 係統階段;
高級數據庫 階段。
當人們從不同的角度來描述這一概念時就有不同的定義(當然是描述性的)。例如,稱數據庫 是一個“記錄保存係統”(該定義強調了數據庫 是若幹記錄的集合)。又如稱數據庫 是“人們為解决特定的任務,以一定的組織方式存儲在一起的相關的數據的集合”(該定義側重於數據的組織)。更有甚者稱數據庫 是“一個數據倉庫”。當然,這種說法雖然形象,但並不嚴謹。
嚴格地說,數據庫 是“按照數據結構來組織、存儲和管理數據的倉庫”。在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣“倉庫”,並根據管理的需要進行相應的處理。例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個數據庫 。有了這個"數據倉庫"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個範圍內的職工人數等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生産管理中也需要建立衆多的這種"數據庫 ",使其可以利用計算機實現財務、倉庫、生産的自動化管理。
j.martin給數據庫 下了一個比較完整的定義:數據庫 是存儲在一起的相關數據的集合,這些數據是結構化的,無有害的或不必要的冗餘,並為多種應用服務;數據的存儲獨立於使用它的程序;對數據庫 插入新數據,修改和檢索原有數據均能按一種公用的和可控製的方式進行。當某個係統中存在結構上完全分開的若幹個數據庫 時,則該係統包含一個“數據庫 集合”。
· 數據庫 的優點
使用數據庫 可以帶來許多好處:如減少了數據的冗餘度,從而大大地節省了數據的存儲空間;實現數據資源的充分共享等等。此外,數據庫 技術還為用戶提供了非常簡便的使用手段使用戶易於編寫有關數據庫 應用程序。特別是近年來推出的微型計算機關係數據庫 管理係統dbasell,操作直觀,使用靈活,編程方便,環境適應廣泛(一般的十六位機,如ibm/pc/xt,國産長城0520等均可運行種軟件),數據處理能力極強。數據庫 在我國正得到愈來愈廣泛的應用,必將成為經濟管理的有力工具。
數據庫 是通過數據庫 管理係統(dbms-data base management system)軟件來實現數據的存儲、管理與使用的dbasell就是一種數據庫 管理係統軟件。
· 數據庫 結構與數據庫 種類
數據庫 通常分為層次式數據庫 、網絡式數據庫 和關係式數據庫 三種。而不同的數據庫 是按不同的數據結構來聯繫和組織的。
1.數據結構模型
(1)數據結構
所謂數據結構是指數據的組織形式或數據之間的聯繫。如果用d表示數據,用r表示數據對象之間存在的關係集合,則將ds=(d,r)稱為數據結構。例如,設有一個電話號碼簿,它記錄了n個人的名字和相應的電話號碼。為了方便地查找某人的電話號碼,將人名和號碼按字典順序排列,並在名字的後面跟隨着對應的電話號碼。這樣,若要查找某人的電話號碼(假定他的名字的第一個字母是y),那麽衹須查找以y開頭的那些名字就可以了。該例中,數據的集合d就是人名和電話號碼,它們之間的聯繫r就是按字典順序的排列,其相應的數據結構就是ds=(d,r),即一個數組。(2)數據結構種類
數據結構又分為數據的邏輯結構和數據的物理結構。數據的邏輯結構是從邏輯的角度(即數據間的聯繫和組織方式)來觀察數據,分析數據,與數據的存儲位置無關。數據的物理結構是指數據在計算機中存放的結構,即數據的邏輯結構在計算機中的實現形式,所以物理結構也被稱為存儲結構。本節衹研究數據的邏輯結構,並將反映和實現數據聯繫的方法稱為數據模型。
目前,比較流行的數據模型有三種,即按圖論理論建立的層次結構模型和網狀結構模型以及按關係理論建立的關係結構模型。
2.層次、網狀和關係數據庫 係統
(1)層次結構模型
層次結構模型實質上是一種有根結點的定嚮有序樹(在數學中"樹"被定義為一個無回的連通圖)。例如圖20.6.4是一個高等學校的組織結構圖。這個組織結構圖像一棵樹,校部就是樹根(稱為根結點),各係、專業、教師、學生等為枝點(稱為結點),樹根與枝點之間的聯繫稱為邊,樹根與邊之比為1:n,即樹根衹有一個,樹枝有n個。這種數據結構模型的一般結構見圖20.6.5所示。
圖20.6.4 高等學校的組織結構圖 圖20.6.5 層次結構模型
圖20.6.5中,ri(i=1,2,…6)代表記錄(即數據的集合),其中r1就是根結點(如果ri看成是一個傢族,則r1就是祖先,它是r2、r3、r4的雙親,而r2、r3、r4互為兄弟),r5、r6也是兄弟,且其雙親為r3。r2、r4、r5、r6又被稱為葉結點(即無子女的結點)。這樣,ri(i=1,2,…6)就組成了以r1為樹根的一棵樹,這就是一個層次數據結構模型。
按照層次模型建立的數據庫 係統稱為層次模型數據庫 係統。ims(information manage-mentsystem)是其典型代表。
(2)網狀結構模型
在圖20.6.6中,給出了某醫院醫生、病房和病人之間的聯繫。即每個醫生負責治療三個病人,每個病房可住一到四個病人。如果將醫生看成是一個數據集合,病人和病房分別是另外兩個數據集合,那麽醫生、病人和病房的比例關係就是m:n:p(即m個醫生,n個病人,p間病房)。這種數據結構就是網狀數據結構,它的一般結構模型如圖20.6.7所示。在圖中,記錄ri(i=1,2,8)滿足以下條件:
①可以有一個以上的結點無雙親(如r1、r2、r3)。
②至少有一個結點有多於一個以上的雙親。在"醫生、病人、病房"例中,"醫生集合有若幹個結點(m個醫生結點)無"雙親",而"病房"集合有p個結點(即病房),並有一個以上的"雙親"(即病人)。
圖20.6.6 醫生、病房和病人之間的關係
圖20.6.7 網狀結構模型
按照網狀數據結構建立的數據庫 係統稱為網狀數據庫 係統,其典型代表是dbtg(data base task group)。用數學方法可將網狀數據結構轉化為層次數據結構。
(3)關係結構模型
關係式數據結構把一些復雜的數據結構歸結為簡單的二元關係(即二維表格形式)。例如某單位的職工關係就是一個二元關係(見表20.6.8)。這個四行六列的表格的每一列稱為一個字段(即屬性),字段名相當於標題欄中的標題(屬性名稱);表的每一行是包含了六個屬性(工號、姓名、年齡、性別、職務、工資)的一個六元組,即一個人的記錄。這個表格清晰地反映出該單位職工的基本情況。
20.6.8 職工基本情況
通常一個m行、n列的二維表格的結構如表20.6.9所示。
表中每一行表示一個記錄值,每一列表示一個屬性(即字段或數據項)。該表一共有m個記錄。每個記錄包含n個屬性。
作為一個關係的二維表,必須滿足以下條件:
(1)表中每一列必須是基本數據項(即不可再分解)。(2)表中每一列必須具有相同的數據類型(例如字符型或數值型)。(3)表中每一列的名字必須是唯一的。(4)表中不應有內容完全相同的行。(5)行的順序與列的順序不影響表格中所表示的信息的含義。
由關係數據結構組成的數據庫 係統被稱為關係數據庫 係統。
在關係數據庫 中,對數據的操作幾乎全部建立在一個或多個關係表格上,通過對這些關係表格的分類、合併、連接或選取等運算來實現數據的管理。dbaseii就是這類數據庫 管理係統的典型代表。對於一個實際的應用問題(如人事管理問題),有時需要多個關係才能實現。用dbaseii建立起來的一個關係稱為一個數據庫 (或稱數據庫 文件),而把對應多個關係建立起來的多個數據庫 稱為數據庫 係統。dbaseii的另一個重要功能是通過建立命令文件來實現對數據庫 的使用和管理,對於一個數據庫 係統相應的命令序列文件,稱為該數據庫 的應用係統。因此,可以概括地說,一個關係稱為一個數據庫 ,若幹個數據庫 可以構成一個數據庫 係統。數據庫 係統可以派生出各種不同類型的輔助文件和建立它的應用係統。
· 數據庫 的要求與特性
為了使各種類型的數據庫 係統能夠充分發揮它們的優越性,必須對數據庫 管理係統的使用提出一些明確的要求。
1.建立數據庫 文件的要求
(1)盡量減少數據的重複,使數據具有最小的冗餘度。計算機早期應用中的文件管理係統,由於數據文件是用戶各自建立的,幾個用戶即使有許多相同的數據也得放在各自的文件中,因而造成存儲的數據大量重複,浪費存儲空間。數據庫 技術正是為了剋服這一缺點而出現的,所以在組織數據的存儲時應避免出現冗餘。
(2)提高數據的利用率,使衆多用戶都能共享數據資源。
(3)註意保持數據的完整性。這對某些需要歷史數據來進行預測、决策的部門(如統計局、銀行等)特別重要。
(4)註意同一數據描述方法的一致性,使數據操作不致發生混亂。如一個人的學歷在人事檔案中是大學畢業,而在科技檔案中卻是大學程度,這樣就容易造成混亂。
(5)對於某些需要保密的數據,必須增設保密措施。
(6)數據的查找率高,根據需要數據應能被及時維護。
2.數據庫 文件的特徵
無論使用哪一種數據庫 管理係統,由它們所建立的數據庫 文件都可以看成是具有相同性質的記錄的集合,因而這些數據庫 文件都有相同的特性:
(1)文件的記錄格式相同,長度相等。
(2)不同的行是不同的記錄,因而具有不同的內容。
(3)不同的列表示不同的字段名,同一列中的數據的性質(屬性)相同。
(4)每一行各列的內容是不能分割的,但行的順序和列的順序不影響文件內容的表達。
3.文件的分類
對文件引用最多的是主文件和事物文件。其他的文件分類還包括表文件、備份文件、檔案的輸出文件等。下面將講述這些文件。
(1)主文件。主文件是某特定應用領域的永久性的數據資源。主文件包含那些被定期存取以提供信息和經常更新以反映最新狀態的記錄。典型的主文件有庫存文件、職工主文件和收帳主文件等。
(2)事務文件。事務文件包含着作為一個信息係統的數據活動(事務)的那些記錄。這些事務被分批以構成事務文件。例如,從每周工資卡上錄製下來的數分批存放在一個事務文件上,然後對照工資清單文件進行處理以便打印出工資支票和工資記錄簿。
(3)表文件。表文件是一些表格。之所以單獨建立表文件而不把表設計在程序中是為了便於修改。例如,一個公用事業公司的稅率表或國內稅務局的稅率就可以存儲在表中文件。
(4)備用文件。備用文件是現有生産性文件的一個復製品。一旦生産性文件受到破壞,利用備用文件就可以重新建立生産性文件。
(5)檔案文件。檔案文件不是提供當前處理使用的,而是保存起來作為歷史參照的。例如,國內稅務局(irs)可能要求檢查某個人最近15年的歷史。實際上,檔案文件恰恰是在給定時間內工作的一個"快照"。
(6)輸出文件。輸出文件包含將要打印在打印機上的、顯在屏幕上的或者繪製在繪圖儀上的那些信息的數值映象。輸出文件可以是"假脫機的"(存儲在輔存設備上),當輸出設備可用時纔進行實際的輸出。 定義1
當人們從不同的角度來描述這一概念時就有不同的定義(當然是描述性的)。例如,稱數據庫 是一個“記錄保存係統”(該定義強調了數據庫 是若幹記錄的集合)。又如稱數據庫 是“人們為解决特定的任務,以一定的組織方式存儲在一起的相關的數據的集合”(該定義側重於數據的組織)。更有甚者稱數據庫 是“一個數據倉庫”。當然,這種說法雖然形象,但並不嚴謹。
嚴格地說,數據庫 是“按照數據結構來組織、存儲和管理數據的倉庫”。在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣的“倉庫”,並根據管理的需要進行相應的處理。例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個數據庫 。有了這個"數據倉庫"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個範圍內的職工人數等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生産管理中也需要建立衆多的這種"數據庫 ",使其可以利用計算機實現財務、倉庫、生産的自動化管理。
J.Martin給數據庫 下了一個比較完整的定義:數據庫 是存儲在一起的相關數據的集合,這些數據是結構化的,無有害的或不必要的冗餘,並為多種應用服務;數據的存儲獨立於使用它的程序;對數據庫 插入新數據,修改和檢索原有數據均能按一種公用的和可控製的方式進行。當某個係統中存在結構上完全分開的若幹個數據庫 時,則該係統包含一個“數據庫 集合”。
定義2
數據庫 是依照某種數據模型組織起來並存放二級存儲器中的數據集合。這種數據集合具有如下特點:盡可能不重複,以最優方式為某個特定組織的多種應用服務,其數據結構獨立於使用它的應用程序,對數據的增、刪、改和檢索由統一軟件進行管理和控製。從發展的歷史看,數據庫 是數據管理的高級階段,它是由文件管理係統發展起來的。
定義3 (伯爾尼公約議定書專傢委員會的觀點)
所有的信息(數據率檔?的編纂物,不論其是以印刷形式,計算機存儲單元形式,還是其它形式存在,都應視為“數據庫 ”。
數字化內容選擇的原因有很多,概括起來主要有:
(1)存儲空間的原因。數字化的産品是通過網絡被廣大用戶存取利用,而大傢都知道數字化産品是存放在磁盤陣列上的,磁盤陣列由服務器來管理,磁盤空間是有限的,服務器的能力也是有限的,不可能無限量地存入數字資源,這就需要我們對文獻資源數字化內容進行選擇。
(2)解决數字化生産高成本和圖書館經費有限性之間矛盾的需要。幾乎沒有圖書館有充足的資源來對整個館藏進行數字化,內容選擇不可避免。
(3)數字資源管理的需要。技術的快速發展使數字化項目所生成的數字資源的生命周期越來越短,投入巨資進行數字遷移是延長數字資源生命的1個重要途徑,昂貴的維護成本就必須考慮數字化的內容選擇。
數據庫 發展史數據庫 技術從誕生到現在,在不到半個世紀的時間裏,形成了堅實的理論基礎、成熟的商業産品和廣泛的應用領域,吸引越來越多的研究者加入。數據庫 的誕生和發展給計算機信息管理帶來了一場巨大的革命。三十多年來,國內外已經開發建設了成千上萬個數據庫 ,它已成為企業、部門乃至個人日常工作、生産和生活的基礎設施。同時,隨着應用的擴展與深入,數據庫 的數量和規模越來越大,數據庫 的研究領域也已經大大地拓廣和深化了。30年間數據庫 領域獲得了三次計算機圖靈奬(C.W. Bachman,E.F.Codd, J.Gray),更加充分地說明了數據庫 是一個充滿活力和創新精神的領域。就讓我們沿着歷史的軌跡,追溯一下數據庫 的發展歷程。 1. 數據管理的誕生
數據庫 的歷史可以追溯到五十年前,那時的數據管理非常簡單。通過大量的分類、比較和表格繪製的機器運行數百萬穿孔卡片來進行數據的處理,其運行結果在紙上打印出來或者製成新的穿孔卡片。而數據管理就是對所有這些穿孔卡片進行物理的儲存和處理。然而,1 9 5 1 年雷明頓蘭德公司(Remington Rand Inc.)的一種叫做Univac I 的計算機推出了一種一秒鐘可以輸入數百條記錄的磁帶驅動器,從而引發了數據管理的革命。1956 年IBM生産出第一個磁盤驅動器—— the Model 305 RAMAC。此驅動器有50 個盤片,每個盤片直徑是2 英尺,可以儲存5MB的數據。使用磁盤最大的好處是可以隨機地存取數據,而穿孔卡片和磁帶衹能順序存取數據。
1951: Univac係統使用磁帶和穿孔卡片作為數據存儲。
數據庫 係統的萌芽出現於60 年代。當時計算機開始廣泛地應用於數據管理,對數據的共享提出了越來越高的要求。傳統的文件係統已經不能滿足人們的需要。能夠統一管理和共享數據的數據庫 管理係統(DBMS)應運而生。數據模型是數據庫 係統的核心和基礎,各種DBMS 軟件都是基於某種數據模型的。所以通常也按照數據模型的特點將傳統數據庫 係統分成網狀數據庫 、層次數據庫 和關係數據庫 三類。
最早出現的是網狀 DBMS,是美國通用電氣公司Bachman等人在1961年開發成功的IDS(Integrated DataStore)。1961年通用電氣公司(General ElectricCo.)的Charles Bachman 成功地開發出世界上第一個網狀DBMS也是第一個數據庫 管理係統—— 集成數據存儲(Integrated DataStore IDS),奠定了網狀數據庫 的基礎,並在當時得到了廣泛的發行和應用。IDS 具有數據模式和日志的特徵。但它衹能在GE主機上運行,並且數據庫 衹有一個文件,數據庫 所有的表必須通過手工編碼來生成。之後,通用電氣公司一個客戶——BF Goodrich Chemical 公司最終不得不重寫了整個係統。並將重寫後的係統命名為集成數據管理係統(IDMS)。
網狀數據庫 模型對於層次和非層次結構的事物都能比較自然的模擬,在關係數據庫 出現之前網狀DBMS要比層次DBMS用得普遍。在數據庫 發展史上,網狀數據庫 占有重要地位。
層次型DBMS是緊隨網絡型數據庫 而出現的。最著名最典型的層次數據庫 係統是IBM 公司在1968 年開發的IMS
(Information Management System),一種適合其主機的層次數據庫 。這是IBM公司研製的最早的大型數據庫 係統程序産品。從60 年代末産生起,如今已經發展到IMSV6,提供群集、N路數據共享、消息隊列共享等先進特性的支持。這個具有3 0 年歷史的數據庫 産品在如今的WWW應用連接、商務智能應用中扮演着新的角色。
1973 年Cullinane 公司(也就是後來的Cullinet軟件公司),開始出售Goodrich 公司的IDMS 改進版本,並且逐漸成為當時世界上最大的軟件公司。
2. 關係數據庫 的由來
網狀數據庫 和層次數據庫 已經很好地解决了數據的集中和共享問題,但是在數據獨立性和抽象級別上仍有很大欠缺。用戶在對這兩種數據庫 進行存取時,仍然需要明確數據的存儲結構,指出存取路徑。而後來出現的關係數據庫 較好地解决了這些問題。
1970年,IBM的研究員E.F.Codd博士在刊物《Communication of the ACM》上發表了一篇名為“A Relational Model of Data for Large Shared Data Banks”的論文,提出了關係模型的概念,奠定了關係模型的理論基礎。儘管之前在1968年Childs已經提出了面嚮集合的模型,然而這篇論文被普遍認為是數據庫 係統歷史上具有劃時代意義的里程碑。Codd的心願是為數據庫 建立一個優美的數據模型。後來Codd又陸續發表多篇文章,論述了範式理論和衡量關係係統的12條標準,用數學理論奠定了關係數據庫 的基礎。關係模型有嚴格的數學基礎,抽象級別比較高,而且簡單清晰,便於理解和使用。但是當時也有人認為關係模型是理想化的數據模型,用來實現 DBMS是不現實的,尤其擔心關係數據庫 的性能難以接受,更有人視其為當時正在進行中的網狀數據庫 規範化工作的嚴重威脅。為了促進對問題的理解,1974 年ACM牽頭組織了一次研討會,會上開展了一場分別以Codd和Bachman為首的支持和反對關係數據庫 兩派之間的辯論。這次著名的辯論推動了關係數據庫 的發展,使其最終成為現代數據庫 産品的主流。
1969: Edgar F。“Ted” Codd發明了關係數據庫
1970年關係模型建立之後,IBM公司在San Jose實驗室增加了更多的研究人員研究這個項目,這個項目就是著名的System R。其目標是論證一個全功能關係DBMS的可行性。該項目結束於1979年,完成了第一個實現SQL的 DBMS。然而IBM對IMS的承諾阻止了System R的投産,一直到1980年System R纔作為一個産品正式推嚮市場。IBM産品化步伐緩慢的三個原因:IBM重視信譽,重視質量,盡量減少故障;IBM是個大公司,官僚體係龐大;IBM內部已經有層次數據庫 産品,相關人員不積極,甚至反對。
然而同時,1973年加州大學伯剋利分校的Michael Stonebraker和Eugene Wong利用System R已發佈的信息開始開發自己的關係數據庫 係統Ingres。他們開發的Ingres項目最後由Oracle公司、Ingres公司以及硅𠔌的其他廠商所商品化。後來,System R和Ingres係統雙雙獲得ACM的1988年“軟件係統奬”。
1976年霍尼韋爾公司(Honeywell)開發了第一個商用關係數據庫 係統——Multics Relational Data Store。關係型數據庫 係統以關係代數為堅實的理論基礎,經過幾十年的發展和實際應用,技術越來越成熟和完善。其代表産品有Oracle、IBM公司的 DB2、微軟公司的MS SQL Server以及Informix、ADABASD等等。
3. 結構化查詢語言 (SQL)
1974 年,IBM的Ray Boyce和Don Chamberlin將Codd關係數據庫 的12條準則的數學定義以簡單的關鍵字語法表現出來,里程碑式地提出了SQL(Structured Query Language)語言。SQL語言的功能包括查詢、操縱、定義和控製,是一個綜合的、通用的關係數據庫 語言,同時又是一種高度非過程化的語言,衹要求用戶指出做什麽而不需要指出怎麽做。SQL集成實現了數據庫 生命周期中的全部操作。SQL提供了與關係數據庫 進行交互的方法,它可以與標準的編程語言一起工作。自産生之日起,SQL語言便成了檢驗關係數據庫 的試金石,而SQL語言標準的每一次變更都指導着關係數據庫 産品的發展方向。然而,直到二十世紀七十年代中期,關係理論纔通過SQL在商業數據庫 Oracle和DB2中使用。
1986年,ANSI把SQL作為關係數據庫 語言的美國標準,同年公佈了標準SQL文本。目前SQL標準有3個版本。基本SQL定義是ANSIX3135-89,“Database Language - SQL with Integrity Enhancement”[ANS89],一般叫做SQL-89。SQL-89定義了模式定義、數據操作和事務處理。SQL- 89和隨後的ANSIX3168-1989,“Database Language-Embedded SQL”構成了第一代SQL標準。ANSIX3135-1992[ANS92]描述了一種增強功能的SQL,現在叫做SQL-92標準。SQL-92包括模式操作,動態創建和SQL語句動態執行、網絡環境支持等增強特性。在完成SQL-92標準後,ANSI和ISO即開始合作開發SQL3標準。SQL3的主要特點在於抽象數據類型的支持,為新一代對象關係數據庫 提供了標準。
4、數據庫 巨人的誕生——甲骨文公司(Oracle)
1976 年IBM E.F.Codd發表了一篇里程碑的論文“R係統:數據庫 關係理論”,介紹了關係數據庫 理論和查詢語言SQL。Oracle的創始人Ellison非常仔細地閱讀了這篇文章,被其內容震驚,這是第一次有人用全面一致的方案管理數據信息。作者E.F.Codd十年前就發表了關係數據庫 理論,並在IBM 研究機構開發原型,這個項目就是R係統,存取數據表的語言就是SQL。Ellison看完後,敏銳意識到在這個研究基礎上可以開發商用軟件係統。而當時大多數人認為關係數據庫 不會有商業價值。Ellison認為這是他們的機會:他們决定開發通用商用數據庫 係統Oracle,這個名字來源於他們曾給中央情報局做過的項目名。幾個月後,他們就開發了Oracle 1.0 。但這衹不過是個玩具,除了完成簡單關係查詢不能做任何事情,他們花相當長的時間纔使Oracle變得可用,維持公司運轉主要靠承接一些數據庫 管理項目和做顧問咨詢工作。而IBM卻沒有計劃開發,為什麽藍色巨人放棄了這個價值上百億的産品,原因有很多:IBM的研究人員大多是學術出身,他們最感興趣的是理論,而非推嚮市場的産品,從學術上看,研究成果應公開,發表論文和演講能使他們成名,為什麽不呢?還有一個很主要的原因就是IBM 當時有一個銷售得還不錯的層次數據庫 産品IMS。直到1985年I B M 纔發佈了關係數據庫 D B 2 ,Ellision那時已經成了千萬富翁。Ellison曾將IBM 選擇Microsoft 的MS-DOS作為IBM-PC機的操作係統比為:“世界企業經營歷史上最嚴重的錯誤,價值超過了上千億美元。”IBM 發表R係統論文,而且沒有很快推出關係數據庫 産品的錯誤可能僅僅次之。Oracle 的市值在1996年就達到了280億美元。
5. 面嚮對象數據庫
隨着信息技術和市場的發展,人們發現關係型數據庫 係統雖然技術很成熟,但其局限性也是顯而易見的:它能很好地處理所謂的“表格型數據”,卻對技術界出現的越來越多的復雜類型的數據無能為力。九十年代以後,技術界一直在研究和尋求新型數據庫 係統。但在什麽是新型數據庫 係統的發展方向的問題上,産業界一度是相當睏惑的。受當時技術風潮的影響,在相當一段時間內,人們把大量的精力花在研究“面嚮對象的數據庫 係統(object oriented database)”或簡稱“OO數據庫 係統”。值得一提的是,美國Stonebraker教授提出的面嚮對象的關係型數據庫 理論曾一度受到産業界的青睞。而Stonebraker本人也在當時被Informix花大價錢聘為技術總負責人。
然而,數年的發展表明,面嚮對象的關係型數據庫 係統産品的市場發展的情況並不理想。理論上的完美性並沒有帶來市場的熱烈反應。其不成功的主要原因在於,這種數據庫 産品的主要設計思想是企圖用新型數據庫 係統來取代現有的數據庫 係統。這對許多已經運用數據庫 係統多年並積纍了大量工作數據的客戶,尤其是大客戶來說,是無法承受新舊數據間的轉換而帶來的巨大工作量及巨額開支的。另外,面嚮對象的關係型數據庫 係統使查詢語言變得極其復雜,從而使得無論是數據庫 的開發商傢還是應用客戶都視其復雜的應用技術為畏途。
6. 數據管理的變革
二十世紀六十年代後期出現了一種新型數據庫 軟件:决定支持係統(DSS),其目的是讓管理者在决策過程中更有效地利用數據信息。於是在1970年, 第一個聯機分析處理工具——Express誕生了。其他决策支持係統緊隨其後,許多是由公司的IT部門開發出來的。
1985年,第一個商務智能係統(business intelligence)由Metaphor計算機係統有限公司為Procter & Gamble公司開發出來,主要是用來連接銷售信息和零售的掃描儀數據。同年, Pilot 軟件公司開始出售第一個商用客戶/服務器執行信息係統——Command Center。同樣在這年,加州大學伯剋利分校Ingres項目演變成Postgres,其目標是開發出一個面嚮對象的數據庫 。此後一年, Graphael公司開發了第一個商用的對象數據庫 係統—Gbase。
1988年,IBM公司的研究者Barry Devlin和Paul Murphy發明了一個新的術語—信息倉庫,之後,IT的廠商開始構建實驗性的數據倉庫。1991年,W.H. "Bill" Inmon出版了一本“如何構建數據倉庫”的書,使得數據倉庫真正開始應用。
1991: W.H.“Bill” Inmon發表了”構建數據倉庫”
二十世紀九十年代,隨着基於PC的客戶/服務器計算模式和企業軟件包的廣泛采用,數據管理的變革基本完成。數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需要的各種數據管理的方式。Internet的異軍突起以及XML語言的出現,給數據庫 係統的發展開闢了一片新的天地。 數據庫 發展階段大致劃分為如下幾個階段:
人工管理階段;
文件係統階段;
數據庫 係統階段;
高級數據庫 階段。
1,人工管理階段:
50年代中期之前,計算機的軟硬件均不完善。硬件存儲設備衹有磁帶、卡片和紙帶,軟件方面還沒有操作係統,當時的計算機主要用於科學計算。這個階段由於還沒有軟件係統對數據進行管理,程序員在程序中不僅要規定數據的邏輯結構,還要設計其物理結構,包括存儲結構、存取方法、輸入輸出方式等。當數據的物理組織或存儲設備改變時,用戶程序就必須重新編製。由於數據的組織面嚮應用,不同的計算程序之間不能共享數據,使得不同的應用之間存在大量的重複數據,很難維護應用程序之間數據的一致性。
這一階段的主要特徵可歸納為如下幾點:
* 計算機中沒有支持數據管理的軟件。
* 數據組織面嚮應用,數據不能共享,數據重複。
* 在程序中要規定數據的邏輯結構和物理結構,數據與程序不獨立。
* 數據處理方式——批處理。
2,文件係統階段:
這一階段的主要標志是計算機中有了專門管理數據庫 的軟件——操作係統(文件管理)。
上世紀50年代中期到60年代中期,由於計算機大容量存儲設備(如硬盤)的出現,推動了軟件技術的發展,而操作係統的出現標志着數據管理步入一個新的階段。在文件係統階段,數據以文件為單位存儲在外存,且由操作係統統一管理。操作係統為用戶使用文件提供了友好界面。文件的邏輯結構與物理結構脫鈎,程序和數據分離,使數據與程序有了一定的獨立性。用戶的程序與數據可分別存放在外存儲器上,各個應用程序可以共享一組數據,實現了以文件為單位的數據共享。
但由於數據的組織仍然是面嚮程序,所以存在大量的數據冗餘。而且數據的邏輯結構不能方便地修改和擴充,數據邏輯結構的每一點微小改變都會影響到應用程序。由於文件之間互相獨立,因而它們不能反映現實世界中事物之間的聯繫,操作係統不負責維護文件之間的聯繫信息。如果文件之間有內容上的聯繫,那也衹能由應用程序去處理。
3,數據庫 係統階段:
60年代後,隨着計算機在數據管理領域的普遍應用,人們對數據管理技術提出了更高的要求:希望面嚮企業或部門,以數據為中心組織數據,減少數據的冗餘,提供更高的數據共享能力,同時要求程序和數據具有較高的獨立性,當數據的邏輯結構改變時,不涉及數據的物理結構,也不影響應用程序,以降低應用程序研製與維護的費用。數據庫 技術正是在這樣一個應用需求的基礎上發展起來的。
數據庫 技術有如下特點:
* 面嚮企業或部門,以數據為中心組織數據,形成綜合性的數據庫 ,為各應用共享。
* 采用一定的數據模型。數據模型不僅要描述數據本身的特點,而且要描述數據之間的聯繫。
* 數據冗餘小,易修改、易擴充。不同的應用程序根據處理要求,從數據庫 中獲取需要的數據,這樣就減少了數據的重複存儲,也便於增加新的數據結構,便於維護數據的一致性。
* 程序和數據有較高的獨立性。
* 具有良好的擁護接口,用戶可方便地開發和使用數據庫 。
* 對數據進行統一管理和控製,提供了數據的安全性、完整性、以及並發控製。
從文件係統發展到數據庫 係統,這在信息領域中具有里程碑的意義。在文件係統階段,人們在信息處理中關註的中心問題是係統功能的設計,因此程序設計占主導地位;而在數據庫 方式下,數據開始占據了中心位置,數據的結構設計成為信息係統首先關心的問題,而應用程序則以既定的書結構為基礎進行設計。 數據庫 的基本結構分三個層次,反映了觀察數據庫 的三種不同角度。
(1)物理數據層。
它是數據庫 的最內層,是物理存貯設備上實際存儲的數據的集合。這些數據是原始數據,是用戶加工的對象,由內部模式描述的指令操作處理的位串、字符和字組成。
(2)概念數據層。
它是數據庫 的中間一層,是數據庫 的整體邏輯表示。指出了每個數據的邏輯定義及數據間的邏輯聯繫,是存貯記錄的集合。它所涉及的是數據庫 所有對象的邏輯關係,而不是它們的物理情況,是數據庫 管理員概念下的數據庫 。
(3)邏輯數據層。
它是用戶所看到和使用的數據庫 ,表示了一個或一些特定用戶使用的數據集合,即邏輯記錄的集合。
數據庫 不同層次之間的聯繫是通過映射進行轉換的。 (1)實現數據共享。
數據共享包含所有用戶可同時存取數據庫 中的數據,也包括用戶可以用各種方式通過接口使用數據庫 ,並提供數據共享。
(2)減少數據的冗餘度。
同文件係統相比,由於數據庫 實現了數據共享,從而避免了用戶各自建立應用文件。減少了大量重複數據,減少了數據冗餘,維護了數據的一致性。
(3)數據的獨立性。
數據的獨立性包括數據庫 中數據庫 的邏輯結構和應用程序相互獨立,也包括數據物理結構的變化不影響數據的邏輯結構。
(4)數據實現集中控製。
文件管理方式中,數據處於一種分散的狀態,不同的用戶或同一用戶在不同處理中其文件之間毫無關係。利用數據庫 可對數據進行集中控製和管理,並通過數據模型表示各種數據的組織以及數據間的聯繫。
(5)數據一致性和可維護性,以確保數據的安全性和可靠性。
主要包括:①安全性控製:以防止數據丟失、錯誤更新和越權使用;②完整性控製:保證數據的正確性、有效性和相容性;③並發控製:使在同一時間周期內,允許對數據實現多路存取,又能防止用戶之間的不正常交互作用;④故障的發現和恢復:由數據庫 管理係統提供一套方法,可及時發現故障和修復故障,從而防止數據被破壞
(6)故障恢復。
由數據庫 管理係統提供一套方法,可及時發現故障和修復故障,從而防止數據被破壞。數據庫 係統能盡快恢復數據庫 係統運行時出現的故障,可能是物理上或是邏輯上的錯誤。比如對係統的誤操作造成的數據錯誤等。 數據庫 通常分為層次式數據庫 、網絡式數據庫 和關係式數據庫 三種。而不同的數據庫 是按不同的數據結構來聯繫和組織的。
1.數據結構模型
(1)數據結構
所謂數據結構是指數據的組織形式或數據之間的聯繫。如果用D表示數據,用R表示數據對象之間存在的關係集合,則將DS=(D,R)稱為數據結構。例如,設有一個電話號碼簿,它記錄了n個人的名字和相應的電話號碼。為了方便地查找某人的電話號碼,將人名和號碼按字典順序排列,並在名字的後面跟隨着對應的電話號碼。這樣,若要查找某人的電話號碼(假定他的名字的第一個字母是Y),那麽衹須查找以Y開頭的那些名字就可以了。該例中,數據的集合D就是人名和電話號碼,它們之間的聯繫R就是按字典順序的排列,其相應的數據結構就是DS=(D,R),即一個數組。
(2)數據結構種類
數據結構又分為數據的邏輯結構和數據的物理結構。數據的邏輯結構是從邏輯的角度(即數據間的聯繫和組織方式)來觀察數據,分析數據,與數據的存儲位置無關。數據的物理結構是指數據在計算機中存放的結構,即數據的邏輯結構在計算機中的實現形式,所以物理結構也被稱為存儲結構。這裏衹研究數據的邏輯結構,並將反映和實現數據聯繫的方法稱為數據模型。
目前,比較流行的數據模型有三種,即按圖論理論建立的層次結構模型和網狀結構模型以及按關係理論建立的關係結構模型。
2.層次、網狀和關係數據庫 係統
(1)層次結構模型
層次結構模型實質上是一種有根結點的定嚮有序樹(在數學中"樹"被定義為一個無回的連通圖)。下圖是一個高等學校的組織結構圖。這個組織結構圖像一棵樹,校部就是樹根(稱為根結點),各係、專業、教師、學生等為枝點(稱為結點),樹根與枝點之間的聯繫稱為邊,樹根與邊之比為1:N,即樹根衹有一個,樹枝有N個。
按照層次模型建立的數據庫 係統稱為層次模型數據庫 係統。IMS(Information Manage-mentSystem)是其典型代表。
(2)網狀結構模型
按照網狀數據結構建立的數據庫 係統稱為網狀數據庫 係統,其典型代表是DBTG(Data Base Task Group)。用數學方法可將網狀數據結構轉化為層次數據結構。
(3)關係結構模型
關係式數據結構把一些復雜的數據結構歸結為簡單的二元關係(即二維表格形式)。例如某單位的職工關係就是一個二元關係。
由關係數據結構組成的數據庫 係統被稱為關係數據庫 係統。
在關係數據庫 中,對數據的操作幾乎全部建立在一個或多個關係表格上,通過對這些關係表格的分類、合併、連接或選取等運算來實現數據的管理。dBASEII就是這類數據庫 管理係統的典型代表。對於一個實際的應用問題(如人事管理問題),有時需要多個關係才能實現。用dBASEII建立起來的一個關係稱為一個數據庫 (或稱數據庫 文件),而把對應多個關係建立起來的多個數據庫 稱為數據庫 係統。dBASEII的另一個重要功能是通過建立命令文件來實現對數據庫 的使用和管理,對於一個數據庫 係統相應的命令序列文件,稱為該數據庫 的應用係統。因此,可以概括地說,一個關係稱為一個數據庫 ,若幹個數據庫 可以構成一個數據庫 係統。數據庫 係統可以派生出各種不同類型的輔助文件和建立它的應用係統。 1. IBM 的DB2
作為關係數據庫 領域的開拓者和領航人,IBM在1977年完成了System R係統的原型,1980年開始提供集成的數據庫 服務器—— System/38,隨後是SQL/DSforVSE和VM,其初始版本與SystemR研究原型密切相關。DB2 forMVSV1 在1983年推出。該版本的目標是提供這一新方案所承諾的簡單性,數據不相關性和用戶生産率。1988年DB2 for MVS 提供了強大的在綫事務處理(OLTP)支持,1989 年和1993 年分別以遠程工作單元和分佈式工作單元實現了分佈式數據庫 支持。最近推出的DB2 Universal Database 6.1則是通用數據庫 的典範,是第一個具備網上功能的多媒體關係數據庫 管理係統,支持包括Linux在內的一係列平臺。
2. Oracle
Oracle 前身叫SDL,由Larry Ellison 和另兩個編程人員在1977創辦,他們開發了自己的拳頭産品,在市場上大量銷售,1979 年,Oracle公司引入了第一個商用SQL 關係數據庫 管理係統。Oracle公司是最早開發關係數據庫 的廠商之一,其産品支持最廣泛的操作係統平臺。目前Oracle關係數據庫 産品的市場占有率名列前茅。
3. Informix
Informix在1980年成立,目的是為Unix等開放操作係統提供專業的關係型數據庫 産品。公司的名稱Informix便是取自Information 和Unix的結合。Informix第一個真正支持SQL語言的關係數據庫 産品是Informix SE(StandardEngine)。InformixSE是在當時的微機Unix環境下主要的數據庫 産品。它也是第一個被移植到Linux上的商業數據庫 産品。
4. Sybase
Sybase公司成立於1984年,公司名稱“Sybase”取自“system”和“database” 相結合的含義。Sybase公司的創始人之一Bob Epstein 是Ingres 大學版(與System/R同時期的關係數據庫 模型産品)的主要設計人員。公司的第一個關係數據庫 産品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 數據庫 體係結構的思想,並率先在Sybase SQLServer 中實現。
5. SQL Server
1987 年,微軟和IBM合作開發完成OS/2,IBM 在其銷售的OS/2 ExtendedEdition 係統中綁定了OS/2Database Manager,而微軟産品綫中尚缺少數據庫 産品。為此,微軟將目光投嚮Sybase,同Sybase 簽訂了合作協議,使用Sybase的技術開發基於OS/2平臺的關係型數據庫 。1989年,微軟發佈了SQL Server 1.0 版。
6. PostgreSQL
PostgreSQL 是一種特性非常齊全的自由軟件的對象——關係性數據庫 管理係統(ORDBMS),它的很多特性是當今許多商業數據庫 的前身。PostgreSQL最早開始於BSD的Ingres項目。PostgreSQL 的特性覆蓋了SQL-2/SQL-92和SQL-3。首先,它包括了可以說是目前世界上最豐富的數據類型的支持;其次,目前PostgreSQL 是唯一支持事務、子查詢、多版本並行控製係統、數據完整性檢查等特性的唯一的一種自由軟件的數據庫 管理係統.
7.mySQL
mySQL是一個小型關係型數據庫 管理係統,開發者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站數據庫 。MySQL的官方網站的網址是: www.mysql.com
8.Access數據庫 美國Microsoft公司於1994年推出的微機數據庫 管理係統。它具有界面友好、易學易用、開發簡單、接口靈活等特點,是典型的新一代桌面數據庫 管理係統。其主要特點如下:
(1)完善地管理各種數據庫 對象,具有強大的數據組織、用戶管理、安全檢查等功能。
(2)強大的數據處理功能,在一個工作組級別的網絡環境中,使用Access開發的多用戶數據庫 管理係統具有傳統的XBASE(DBASE、FoxBASE的統稱)數據庫 係統所無法實現的客戶服務器(Cient/Server)結構和相應的數據庫 安全機製,Access具備了許多先進的大型數據庫 管理係統所具備的特徵,如事務處理/出錯回滾能力等。
(3)可以方便地生成各種數據對象,利用存儲的數據建立窗體和報表,可視性好。
(4)作為Office套件的一部分,可以與Office集成,實現無縫連接。
(5)能夠利用Web檢索和發佈數據,實現與Internet的連接。 Access主要適用於中小型應用係統,或作為客戶機/服務器係統中的客戶端數據庫 。
9.FoxPro數據庫
最初由美國Fox公司1988年推出,1992年Fox公司被Microsoft公司收購後,相繼推出了FoxPro2.5、2.6和VisualFoxPro等版本,其功能和性能有了較大的提高。 FoxPro2.5、2.6分為DOS和Windows兩種版本,分別運行於DOS和Windows環境下。FoxPro比FoxBASE在功能和性能上又有了很大的改進,主要是引入了窗口、按紐、列表框和文本框等控件,進一步提高了係統的開發能力。 1:使用惡意軟件掃描器
有的數據庫 服務器因為怕性能下降或者係統崩潰而不采取,或者采取有限的惡意軟件防範措施。很如果沒有安裝反病毒軟件,就盡快安裝一個殺毒軟件。如果需要實時保護的資源太多了,那麽就要將數據庫 和其它高活動性的目錄排除在實時掃描的外面吧。否則,最低限度,也要安裝反病毒軟件,然後每隔幾天,找個非高峰的時間來掃描本地磁盤。
如果已經運行了反病毒軟件,那麽確保它是最新的(那些基於客戶端的自動更新和網絡管理簽名並不是百分百的可靠),並且執行一次全面的係統掃描。
2: 查看內存
可以使用Windows任務管理器來搜索那些看起來就屬於惡意軟件,或者使用了太多內存或者占用了大量CPU時間的應用程序。建議使用Sysinternals公司的Process Explorer(下面高亮顯示的NetBus Trojan),因為它提供了運行進程的較多信息,並且以更可靠的方式來殺掉那些不應該的進程。
在網絡中的所有係統中,確實需要徹底地瞭解數據庫 ——其中包括記錄哪些進程應該運行,哪些不應該。所以,如果在第一次安裝之後擁有了良好的基綫——甚至是現在,假設所有事物都運行得很好——當發生特洛伊類型的問題的時候,就可以用它作為比較的基礎。
3: 查看開放的端口
可以使用Windows內置的netstat工具來查看哪些端口開放的,並且連接到服務器上。在命令行中,輸入netstat –an more,可以一頁挨着一頁地查看開放的和監聽的TCP和UDP端口。還有一種更好的方法就是使用Foundstone的 Vision工具或者Sysinternals公司的TCPView工具來完成。
4: 查看網絡流量
也許判斷SQL Server中是否發生了惡意行為的最簡單辦法就是看看它是否進行了網絡通信。如果有一個非常順手的網絡分析器,那麽就可以在1、2分鐘之內發現情況。可以使用SQL Server自身攜帶的分析器,或者從別處連接到以太網交換器的交換或者鏡像端口上。
EtherPeek可以輕鬆抓取網絡流量,並且高亮顯示特洛伊的動作——在本次網絡流量抓取過程中可以真正地創建網絡分析觸發器和過濾器,如果知道要尋找什麽的話。這裏的列表列出了常見的特洛伊和相關端口的細膩嚮。這種發現惡意流量的方法並不是十分安全,因為端口號是可以經常更換的,但是它的服務器是個不錯的目標。
可以在“監控”模式下運行Ether Peek,讓它對網絡上發生的事情有個從上到下的整體視角,——而不需要抓取包。可以查看正在使用哪個協議,尋找巨大的流量,奇怪的通信,以及其它網絡進出SQL Server係統的傾嚮。
5:對付惡意軟件的方法
特洛伊木馬是計算機上的一個令人厭惡的創造——它創建遠程訪問隧道,截獲按鍵,刪除數據等更多事情——特別是在最重要的服務器上。很明顯,最好的辦法就是不用SQL Server進行Internet訪問,Web瀏覽,電子郵件等行為。——但是,這不現實。(或者其他人)可能會需要它最終不僅僅作為一個數據庫 服務器。一旦這樣的事情出現了,就需要確保是被保護的。不要把責任推卸給其他人,或者其他任何東西,特洛伊不是運行在他們的係統上。不論以何種方式,永遠不要假設反病毒軟件可以保證萬無一失。
分析並解决惡意軟件的方法:如果想要攻擊,或者安裝一個可以在網絡上給幫助的欺詐軟件,那麽沒有什麽地方比直接在SQL Server上更好了。服務器上可能還沒有特洛伊,但是如果感覺到有問題,那麽兇手就可以很容易發現。 1951:Univac係統使用磁帶和穿孔卡片作為數據存儲。
1956:IBM公司在其Model 305 RAMAC中第一次引入了磁盤驅動器
1961:通用電氣(GE)公司的Charles Bachman開發了第一個數據庫 管理係統——IDS
1969:E.F. Codd發明了關係數據庫 。
1973: 由John J.Cullinane領導Cullinane公司開發了 IDMS——一個針對IBM主機的基於網絡模型的數據庫 。
1976: Honeywell公司推出了Multics Relational Data Store——第一個商用關係數據庫 産品。
1979: Oracle公司引入了第一個商用SQL關係數據庫 管理係統。
1983: IBM 推出了DB2數據庫 産品。
1985: 為Procter & Gamble係統設計的第一個商務智能係統産生。
1991: W.H.“Bill” Inmon發表了”構建數據倉庫”。 埃德加·考特(EdgarF.Codd)
計算機界公認的關係數據庫 之父。1970年他提出了關係模型的理論,1970年以後,E.F.Codd繼續完善和發展關係理論;之後創辦了一個研究所The RelationalInstitute和一個公司Codd & Associations;1990 年出版了專著The Relational Modelfor Database Management:Version 2
。E.F.Codd 以其對關係數據庫 的卓越貢獻獲得了1983 年ACM圖靈奬。
C.J.戴特(C.J.Date)
C.J.Date 是最早認識到Codd 在關係模型方面所做的開創性貢獻的學者之一,他是關係數據庫 技術領域中非常著名的獨立撰稿人、學者和顧問,他使得關係模型的概念普及化。他參與了IBM公司的SQL/DS和DB2兩大産品的技術規劃和設計。30多年來,Date 一直活躍在數據庫 領域中,其著作有《數據庫 係統導論》,《對象關係數據庫 基礎:第三次宣言》(1998)等。
吉姆·格雷(Jim Gray)
Jim Gray使關係模型的技術實用化,他為RDBMS成熟並順利進入市場起到了關鍵性的作用。他在事務處理方面取得了突出的貢獻,使他成為該技術領域公認的權威,他也成為圖靈奬誕生32 年來第三位在數據庫 技術的發展中作出重大貢獻而獲此殊榮的學者。曾參與主持過IMS、System R、SQL/DS、DB2等項目的開發。他的研究成果反映在他發表的一係列論文和研究報告之中,最後結晶為一部厚厚的專著:Transaction Processing: Concepts andTechniques。
Michael Stonebraker
Michael Stonebraker是Ingres的創始人。他是加州大學伯剋利分校的教授,著名的數據庫 學者,他在1992 年提出對象關係數據庫 模型。S t o n e b r a k e r 教授領導了稱為Postgres 的後Ingres 項目。這個項目的成果是非常巨大的,在現代數據庫 的許多方面都做出的大量的貢獻。Stonebraker 教授還做出了一件造福全人類的事情,那就是把Postgres 放在了BSD 版權的保護下。
Jeffrey D. Ullman
Jeffrey D. Ullman 是國際知名的數據庫 專傢。現為斯坦福大學的Stanford W. Ascherman計算機科學教授。1996 年獲得Sigmod 貢獻奬和1998年Karl V. Karstrom 傑出教育傢奬獲得者。出版了多本數據庫 專著。 ACM SIGMOD
國際計算機學會數據管理專業委員會(ACM SIGMOD)是國際數據庫 領域最高級別的國際會議。其主要致力於數據庫 以及信息技術的研究,開發和應用。SIGMOD 每年召開一次,SIGMODRecord 是其發行的數據庫 期刊。
VLDB
國際超大型數據庫 會議(Int ernationalConference on Very Large Data Bases,VLDB)是一個專門從事超大規模數據庫 管理理論、方法和應用研究的專業性學術機構,它涉及的內容也很豐富,包括研究及應用的諸多方面,基本上能夠較全面地反映當前數據庫 研究的前沿方向、工業界的最新技術以及各國的研發水平。1975年,以美籍華裔科學家肖開美教授(DaveHsiao)為首的一批數據庫 學者發起組織了第一屆VLDB會議。此後每年召開一次,已成為是數據庫 領域中最主要、規模最大的國際學術會議。
ICDE
數據工程國際學術會議(ICDE)是由IEEE計算機數據工程技術學會(TCDE)主辦的數據庫 領域的最高級別的國際性會議之一。會議産生出版季刊數據工程通報(英文Data Engineering Bulletin)。TCDE致力於研究數據在信息係統的設計、實現與管理中的作用,面嚮的主要問題包括數據庫 設計、數據處理、數據庫 存儲與操縱語言、數據採集的策略與機製、數據庫 的安全性與完整性控製、數據庫 的工程應用以及分佈式係統。
CCF DBS
中國計算機學會數據庫 專業委員會(CHINA COMPUTER FEDERATION DATABASE SOCIETY,簡稱CCFDBS)是中國計算機學會領導下的數據庫 學術組織,於1999 年8 月24日在蘭州大學召開的第十六屆全國數據庫 學術會議上正式成立。由數據庫 專業委員會主辦的全國數據庫 學術會議(NDBC)始於1977 年,至今已舉辦20 屆。NDBC這一傳統的數據庫 盛會已成為國內數據庫 領域較為權威的會議。
數據庫 軟件
比較常見的有三種數據庫 :
ACCESS , SQL Server 和 Oracle 其中ACCESS 是美國Microsoft公司於1994年推出的微機數據庫 管理係統.它具有界面友好、易學易用、開發簡單、接口靈活等特點,是典型的新一代桌面數據庫 管理係統. 其主要特點如下: 完善地管理各種數據庫 對象,具有強大的數據組織、用戶管理。
ACCESS 的功能相對不是那麽強大,主要是開發單機版軟件中經常用到,SQL Server 是目前應用比較廣泛和普遍的一款數據庫 ,是數據庫 發展的一個里程碑。 Oracle的功能是比較強大的,一般用於超大型管理係統軟件的建立,現在的應用範圍也已經比較廣泛。 隨着信息管理內容的不斷擴展,出現了豐富多樣的數據模型(層次模型,網狀模型,關係模型,面嚮對象模型,半結構化模型等),新技術也層出不窮(數據流,Web數據管理,數據挖掘等)。目前每隔幾年,國際上一些資深的數據庫 專傢就會聚集一堂,探討數據庫 研究現狀,存在的問題和未來需要關註的新技術焦點。過去已有的幾個類似報告包括:1989 年Future Directions inDBMS Research-The Laguna BeachParticipants ,1990 年DatabaseSystems : Achievements and Opportunities ,1995 年的Database 1991:W.H. Inmon 發表了《構建數據倉庫》
數據庫 專業就業方向
數據庫 應用開發 (application development)
除了基本的SQL方面的知識,還要對開發流程,軟件工程,各種框架和開發工具等等
數據庫 應用開發這個方向上的機會最多,職位最多,薪水一般
數據建模專傢 (data modeler)
除了基本的SQL方面的知識,非常熟悉數據庫 原理,數據建模
負責將用戶對數據的需求轉化為數據庫 物理設計和物理設計
這個方向上在大公司(金融,保險,研究,軟件開發商等)有專門職位,
在中小公司則可能由程序員承擔。
商業智能專傢 (business intelligence - BI)
主要從商業應用,最終用戶的角度去從數據中獲得有用的信息,
涉及OLAP (online analytical processing)
需要使用SSRS, cognos, crystal report等報表工具,或者其他一些數據挖掘,統計方面的軟件工具
這個方面我不熟悉,不敢亂說(以免被拍磚,呵呵)
數據構架師 (Data Architect)
主要從全局上製定和控製關於數據庫 在邏輯這一層的大方向,
也包括數據可用性,擴展性等長期性戰略,
協調數據庫 的應用開發,建模,DBA之間的工作。
這個方向上在大公司(金融,保險,研究,軟件開發商等)有專門職位,
在中小公司或者沒有這個職位,或者由開發人員,DBA負責。
數據庫 管理員 (database administrator - DBA)
數據庫 的安裝,配置,調優,備份/恢復,監控,自動化等,
協助應用開發(有些職位還要求優化SQL,寫存儲過程和函數等)
這個方向上的職位相對少一些,但一般有點規模的公司還是會有這樣的職位
數據倉庫專傢 (data warehouse - DW)
應付超大規模的數據,歷史數據的存儲,管理和使用,
和商業智能關係密切,很多時候BI和DW是放在一個大類裏面的,
但是我覺得DW更側重於硬件和物理層上的管理和優化。
存儲工程師 (storage engineer)
專門負責提供數據存儲方案,使用各種存儲技術滿足數據訪問和存儲需求,
和DBA的工作關係比較密切。
對高可用性有嚴格要求(比如通信,金融,數據中心等)的公司通常有這種職位,
這種職位也非常少。
性能優化工程師 (performance engineer)
專長數據庫 的性能調試和優化,為用戶提供解决性能瓶頸方面的問題。
我知道至少IBM, 微軟和Oracle都有專門的數據庫 性能實驗室(database performance lab),
也有專門的性能優化工程師,負責為其數據庫 産品和關鍵應用提供這方面的技術支持。
對數據庫 性能有嚴格要求的公司(比如金融行業)可能會有這種職位。
因為針對性很強,甚至要求對多種數據庫 非常熟悉,所以職位極少。
高級數據庫 管理員 (senior DBA)
在DBA的基礎上,還涉及上面3種職位的部分工作,具體包括下面這些:
對應用係統的數據(佈局,訪問模式,增長模式,存儲要求等)比較熟悉。
對性能優化非常熟悉,可以發現並優化從SQL到硬件I/O,網絡等各個層面上的瓶頸
對於存儲技術相對熟悉,可能代替存儲工程師的一些工作,
對數據庫 的高可用性技術非常熟悉(比如MSSQL的集群,ORACLE RAC/FailSafe, IBM的DPF, HADR等)
對大規模數據庫 有效進行物理擴展(比如表分區)或者邏輯擴展(比如數據庫 分區,聯合數據庫 等)
熟悉各種數據復製技術,比如單嚮,雙嚮,點對點復製技術,以滿足應用要求。
災難數據恢復過程的建立,測試和執行
這種職位一般衹在對數據庫 要求非常高並且規模非常大(比如金融,電信,數據中心等)的公司需要,
而且這種公司一般有一個專門獨立負責數據庫 的部門或組。 shujuku
數據庫
data base
為滿足某一部門中多個用戶多種應用的需要,按照一定的數據模型在計算機係統中組織、存儲和使用的互相聯繫的數據集合。
帶有數據庫 的計算機係統,除具備一般的硬件、軟件外,必須有用以存儲大量數據的直接存取存儲設備、管理並控製數據庫 的軟件──數據庫 管理係統(DBMS)、管理數據庫 的人員──數據庫 管理員 (DBA)。這樣的數據、硬件、軟件和管理人員的總體構成數據庫 係統。數據庫 僅是數據庫 係統的一個組成部分。
數據庫 係統的功能和特徵 數據庫 係統由文捲係統發展而來。與文捲係統相比,這種係統具有數據、體係和控製三個方面的主要特徵。
數據特徵 在文捲係統中雖然程序與數據之間可用存取方法進行轉換,但文捲還是與應用程序對應的,即數據仍面嚮應用(圖1 面嚮應用的文捲係統)。每一應用各自建立自己的一組文捲。不同的應用若涉及相同的數據,則這些數據分別納入各自的文捲之中。文捲的各種記錄之間沒有建立聯繫,因而數據冗餘度大。增加新的應用,必須同時增加新的文捲。因此,文捲係統中的文捲是無結構的、不易擴充的信息集合。數據庫 則不僅描述數據本身,而且描述數據之間的聯繫。它的數據結構反映了某一部門的整體信息結構,數據冗餘度小、易於擴充新的應用,因而是面嚮數據總體結構的信息集合,可為多個用戶共享。
體係特徵 一切數據都有邏輯和物理兩個側面。在數據庫 係統中,數據邏輯結構的描述稱為邏輯模式。邏輯模式又分為描述全局邏輯結構的全局模式(簡稱模式)和描述某些應用所涉及的局部邏輯結構的子模式。數據物理結構的描述稱為存儲模式。這兩種模式總稱為數據庫 模式。數據庫 係統的體係結構如圖2 數據庫 係統的體係結構。
數據庫 係統中,用戶根據子模式編製程序。子模式與模式、模式與存儲模式之間有軟件進行映射。因此,程序與數據之間具有兩級獨立性:物理獨立性和邏輯獨立性。數據的存儲模式改變,而模式可以不改變,因而不必改寫應用程序,這稱為物理獨立性。模式改變時,子模式可能不改變,也就不必改寫應用程序,這稱為邏輯獨立性。由於數據庫 係統具備比較高的程序與數據的獨立性,可以使程序員在編製應用程序時集中精力考慮算法邏輯,不必過問物理細節,而且可以大大減少應用程序維護的工作量。
控製特徵 數據庫 數據數量龐大,結構復雜,又為多個用戶所共享。因此,必須由數據庫 管理係統在定義、建立、運行以及維護時進行統一管理和控製,以保證數據庫 數據的安全性、完整性和並發操作的一致性。此外,還必須有數據庫 管理員專門負責對數據庫 的管理、控製監督和改進。
由於數據庫 係統具有上述特徵,它的出現使信息係統的研製從圍繞加工數據的程序為中心,轉變到圍繞共享的數據庫 來進行。這便於數據的集中管理,有利於應用程序的研製和維護。數據減少了冗餘度和提高了相容性,從而提高了作出决策的相容性。因此,大型復雜的信息係統大多以數據庫 為核心,數據庫 係統在計算機應用中起着越來越重要的作用。
研究課題 數據庫 研究的課題,主要涉及三個領域。
數據庫 管理係統軟件的研製 DBMS是數據庫 係統的基礎。研製DBMS的基本目標,是擴大功能,提高性能和可用性,從而提高用戶的生産率。70年代以來,研製的重點是探索關係數據庫 管理係統的設計,內容包括關係數據語言、查詢優化、並發控製和係統性能等。另一類課題是對DBMS標準化的研究,即研究一個統一的DBMS體係結構的規範。
數據庫 設計 這是在計算機係統具有的數據庫 管理係統的基礎上,按照應用要求以及計算機係統所提供的數據模型 : Database (DB), data pool n.: database, data bank, data base, a `data bank 計算機 技術 互聯網 程序 圖書 百科辭典 數據庫 理軟件 電腦 數據庫 係統百科大全 物理百科 知識發現 網絡 係統 文件格式 DVD 6sigma管理 IT Server 更多結果...
雲數據庫 源數據庫 數據庫類 數據庫理 凝數據庫 數據庫她 元數據庫 多數據庫 數據庫機 數據庫原理 數據庫軟件 表决數據庫 高級數據庫 指南數據庫 移動數據庫 財經數據庫 數據庫保護 安全數據庫 數據庫商函 環境數據庫 索引數據庫 數據庫攻擊 通信數據庫 農業數據庫 金融數據庫 分子數據庫 單機數據庫 材料數據庫 金倉數據庫 數據庫索引 藥物數據庫 國産數據庫 文獻數據庫 數據庫重組 數據庫重構 時態數據庫 層次數據庫 並行數據庫 工程數據庫 數據庫維護 科學數據庫 主動數據庫 數據庫別名 經濟數據庫 數據庫大師 數據庫映像 文件數據庫 數據庫死鎖 後臺數據庫 拉曼數據庫 特色數據庫 地理數據庫 數據庫建模 萬方數據庫 中宏數據庫 支持數據庫 數據庫語言 分發數據庫 數據庫管理 模糊數據庫 統計數據庫 達夢數據庫 圖形數據庫 序列數據庫 係統數據庫 數據庫角色 術語數據庫 數據庫壓縮 多維數據庫 專題數據庫 綜合數據庫 數據庫腳本 數據庫工程 數據庫桌面 地圖數據庫 圖像數據庫 數據庫事務 數據庫行銷 數據庫營銷 關係數據庫 網格數據庫 演繹數據庫 網狀數據庫 網絡數據庫 異構數據庫 數據庫設計 數據庫係統 地名數據庫 數據庫技術 基礎數據庫 智能數據庫 數據庫恢復 品牌數據庫 客戶數據庫 遊戲數據庫 網站數據庫 事實數據庫 數據庫文件 內存數據庫 數據庫備份 外部數據庫 全文數據庫 數據庫安全 實時數據庫 數據庫模型 空間數據庫 數據庫應用 寵物數據庫 私人數據庫 數據庫分析 土壤數據庫 機構數據庫 鏡頭數據庫 化工數據庫 數據庫基礎 數據庫教程 開源數據庫 個人數據庫 數據庫修復 數據庫專傢 數據庫編程- 數據庫類型 數據庫服務 數據庫優化 數據庫審計 數據庫工具 文本數據庫 數據庫知識 企業數據庫 大型數據庫 藥品數據庫 數據庫介紹 數據庫約束 數據庫開發 專利數據庫 數據庫理論 外文數據庫 文檔數據庫 數據庫引擎 主題數據庫 數據庫檢索 聯合數據庫 書目數據庫 目錄數據庫 數據庫對象 資格數據庫 數據庫集群 數據庫函數 原生數據庫 動態數據庫 數據庫方面 通用數據庫 數據庫同步 數據庫連接 解鎖數據庫 鎖住數據庫 默認數據庫 數據庫密碼 數據庫插件 物理數據庫 邏輯數據庫 分層數據庫 混合數據庫 專傢數據庫 地塊數據庫 電纜數據庫 連接數據庫 數據庫結構 項目數據庫 公用數據庫 環形數據庫 專用數據庫 格網數據庫 數據庫鍵碼 時空數據庫 主存數據庫 正文數據庫 在綫數據庫 軍事數據庫 地形數據庫 影像數據庫 數據庫名稱 中文數據庫 重力數據庫 基準數據庫 數據庫接口 聯機數據庫 信用數據庫 檢索數據庫 摘要數據庫 機檢數據庫 歷史數據庫 聯邦數據庫 數據庫字段 數據庫命令 數據庫刪除 收縮數據庫 外延數據庫 數據庫集成 數據庫保密 更多結果...