網絡百科新概念
提示
 正文中的藍色文字是詞條,點擊藍色文字可進入該詞條頁面;
 正文中的紅色文字是尚待創建的詞條,點擊紅色文字可進入創建詞條頁面;
 歡迎參與詞條創建或編輯修改!人人為我,我為人人。共同建設中文百科在線,共創知識文明!
zwbkorg
關註微信,獲取更多資訊
阅读 6791 次 历史版本 1个 创建者:成事在人 (2010/3/14 6:53:16)  最新编辑:成事在人 (2010/3/14 7:09:12)
數據庫
拼音:shù jù kù
英文:database,
同义词条:资料库
  數據庫(英語:Database),港台地區稱爲“資料庫”,是爲滿足某一部門中多個用戶多種應用的需要,按照一定的數據模型在計算機系統中組織、存儲和使用的互相聯繫的數據集合。數據庫有很多種類型,從最簡單的存儲有各種數據的表格到能夠進行海量數據存儲的大型數據庫系統都在各個方面得到了廣泛的應用。
  
  帶有數據庫的計算機系統,除具備一般的硬件軟件外,還必須有用以存儲大量數據的直接存取存儲設備以及管理控制數據庫的軟件——數據管理系統(DBMS)和管理數據庫的人員。這樣的數據、硬件、軟件和管理人員總體構成數據庫系統,數據庫僅是數據庫系統中的一個組成部分。

概述


  從不同的角度來描述這一概念時就有不同的定義。例如,稱數據庫是一個“記錄保存系統”(該定義強調了數據庫是若幹記錄的集合)。又如稱數據庫是“人們爲解決特定的任務,以一定的組織方式存儲在一起的相關的數據的集合”(該定義側重於數據的組織)。更有甚者稱數據庫是“一個數據倉庫”。當然,這種說法雖然形象,但並不嚴謹。

  數據庫是“按照數據結構來組織、存儲和管理數據的倉庫”。在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣“倉庫”,並根據管理的需要進行相應的處理。例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性别、籍貫、工資、簡曆等)存放在表中,這張表就可以看成是一個數據庫。有了這個"數據倉庫"就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個範圍内的職工人數等等。這些工作如果都能在計算機上自動進行,那的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生產管理中也需要建立眾多的這種“數據庫”,使其可以利用計算機實現財務、倉庫、生產的自動化管理。

  J.Martin給數據庫下了一個比較完整的定義:數據庫是存儲在一起的相關數據的集合,這些數據是結構化的,無有害的或不必要的冗餘,並爲多種應用服務;數據的存儲獨立於使用它的程序;對數據庫插入新數據,修改和檢索原有數據均能按一種公用的和可控制的方式進行。當某個系統中存在結構上完全分開的若幹個數據庫時,則該系統包含一個“數據庫集合”。

數據庫基本結構

        
  數據庫的基本結構分三個層次,反映了觀察數據庫的三種不同角度。

物理數據層


  它是數據庫的最内層,是物理存貯設備上實際存儲的數據的集合。這些數據是原始數據,是用戶加工的對象,由内部模式描述的指令操作處理的位串、字符和字組成。

概念數據層


  它是數據庫的中間一層,是數據庫的整體邏輯表示。指出了每個數據的邏輯定義及數據間的邏輯聯繫,是存貯記錄的集合。它所涉及的是數據庫所有對象的邏輯關係,而不是它們的物理情況,是數據庫管理員概念下的數據庫。

邏輯數據層


  它是用戶所看到和使用的數據庫,表示了一個或一些特定用戶使用的數據集合,即邏輯記錄的集合。數據庫不同層次之間的聯繫是通過映射進行轉換的。

數據庫的結構種類

        
  數據庫數據庫通常分爲層次式數據庫、網絡式數據庫和關係式數據庫三種。而不同的數據庫是按不同的數據結構來聯繫和組織的。

數據結構模型


  1.數據結構 所謂數據結構是指數據的組織形式或數據之間的聯繫。如果用D表示數據,用R表示數據對象之間存在的關係集合,則將DS=(D,R)稱爲數據結構。例如,設有一個電話號碼簿,它記錄了n個人的名字和相應的電話號碼。爲了方便地查找某人的電話號碼,將人名和號碼按字典顺序排列,並在名字的後面跟隨着對應的電話號碼。這樣,若要查找某人的電話號碼(假定他的名字的第一個字母是Y),那麼隻須查找以Y開頭的那些名字就可以了。該例中,數據的集合D就是人名和電話號碼,它們之間的聯繫R就是按字典顺序的排列,其相應的數據結構就是DS=(D,R),即一個數組。

  2.數據結構種類 數據結構又分爲數據的邏輯結構和數據的物理結構。數據的邏輯結構是從邏輯的角度(即數據間的聯繫和組織方式)來觀察數據,分析數據,與數據的存儲位置無關。數據的物理結構是指數據在計算機中存放的結構,即數據的邏輯結構在計算機中的實現形式,所以物理結構也被稱爲存儲結構。這里隻研究數據的邏輯結構,並將反映和實現數據聯繫的方法稱爲數據模型。比較流行的數據模型有三種,即按圖論理論建立的層次結構模型和網狀結構模型以及按關係理論建立的關係結構模型。

層次、網狀和關係數據庫系統


  1.層次結構模型 層次結構模型實質上是一種有根結點的定向有序樹(在數學中"樹"被定義爲一個無回的連通圖)。例如圖20.6.4是一個高等學校的組織結構圖。這個組織結構圖像一棵樹,校部就是樹根(稱爲根結點),各系、專業、教師、學生等爲枝點(稱爲結點),樹根與枝點之間的聯繫稱爲邊,樹根與邊之比爲1:N,即樹根隻有一個,樹枝有N個。按照層次模型建立的數據庫系統稱爲層次模型數據庫系統。IMS(InformationManage-mentSystem)是其典型代表。

  2.網狀結構模型 按照網狀數據結構建立的數據庫系統稱爲網狀數據庫系統,其典型代表是DBTG(Data Base Task Group)。用數學方法可將網狀數據結構轉化爲層次數據結構。

  3.關係結構模型 關係式數據結構把一些複雜的數據結構歸結爲簡單的二元關係(即二維表格形式)。例如某單位的職工關係就是一個二元關係。由關係數據結構組成的數據庫系統被稱爲關係數據庫系統。

  在關係數據庫中,對數據的操作幾乎全部建立在一個或多個關係表格上,通過對這些關係表格的分類、合並、連接或選取等運算來實現數據的管理。dBASEII就是這類數據庫管理系統的典型代表。對於一個實際的應用問題(如人事管理問題),有時需要多個關係才能實現。用dBASEII建立起來的一個關係稱爲一個數據庫(或稱數據庫文件),而把對應多個關係建立起來的多個數據庫稱爲數據庫系統。dBASEII的另一個重要功能是通過建立命令文件來實現對數據庫的使用和管理,對於一個數據庫系統相應的命令序列文件,稱爲該數據庫的應用系統。因此,可以概括地說,一個關係稱爲一個數據庫,若幹個數據庫可以構成一個數據庫系統。數據庫系統可以派生出各種不同類型的輔助文件和建立它的應用系統。

數據庫索引


  數據索引的觀念由來已久,像是一本書前面幾頁都有目錄,目錄也算是索引的一種,隻是它的分類較廣,例如車牌、身份證字號、條碼等,都是一個索引的號碼,當我們看到號碼時,可以從號碼中看出其中的端倪,若是要找的人、車或物品,也隻要提供相關的號碼,即可迅速查到正確的人事物。

  另外,索引跟字段有着相應的關係,索引即是由字段而來,其中字段有所謂的關鍵字段(Key Field),該字段具有唯一性,即其值不可重複,且不可爲"空值(null)"。例如:在合並數據時,索引便是扮演欲附加字段數據之指向性用途的角色。故此索引爲不可重複性且不可爲空。

數據庫查詢語言 

       
  1974年,IBM的RayBoyce和DonChamberlin將Codd關係數據庫的12條准則的數學定義以簡單的關鍵字語法表現出來,里程碑式地提出了SQL(StructuredQueryLanguage)語言。SQL語言的功能包括查詢、操縱、定義和控制,是一個綜合的、通用的關係數據庫語言,同時又是一種高度非過程化的語言,隻要求用戶指出做什麼而不需要指出怎麼做。SQL集成實現了數據庫生命周期中的全部操作。SQL提供了與關係數據庫進行交互的方法,它可以與標准的編程語言一起工作。自產生之日起,SQL語言便成了檢驗關係數據庫的試金石,而SQL語言標准的每一次變更都指導着關係數據庫產品的發展方向。然而,直到二十世紀七十年代中期,關係理論才通過SQL在商業數據庫Oracle和DB2中使用。

  1986年,ANSI把SQL作爲關係數據庫語言的美國標准,同年公布了標准SQL文本。SQL標准有3個版本。基本SQL定義是ANSIX3135-89,“DatabaseLanguage-SQLwithIntegrityEnhancement”[ANS89],一般叫做SQL-89。SQL-89定義了模式定義、數據操作和事務處理。

  SQL-89和隨後的ANSIX3168-1989,“DatabaseLanguage-EmbeddedSQL”構成了第一代SQL標准。ANSIX3135-1992[ANS92]描述了一種增強功能的SQL,現在叫做SQL-92標准。SQL-92包括模式操作,動態創建和SQL語句動態執行、網絡環境支持等增強特性。在完成SQL-92標准後,ANSI和ISO即開始合作開發SQL3標准。SQL3的主要特點在於抽象數據類型的支持,爲新一代對象關係數據庫提供了標准。

  1969:EdgarF.Codd發明了關係數據庫。1976年IBME.F.Codd發表了一篇里程碑的論文“R系統:數據庫關係理論”,介紹了關係數據庫理論和查詢語言SQL。Oracle的創始人Ellison非常仔細地閱讀了這篇文章,被其内容震驚,這是第一次有人用全面一致的方案管理數據信息。作者E.F.Codd十年前就發表了關係數據庫理論,並在IBM研究機構開發原型,這個項目就是R系統,存取數據表的語言就是SQL。Ellison看完後,敏銳意識到在這個研究基礎上可以開發商用軟件系統。而當時大多數人認爲關係數據庫不會有商業價值。Ellison認爲這是他們的機會:他們決定開發通用商用數據庫系統Oracle,這個名字來源於他們曾給中央情報局做過的項目名。開發Oracle1.0。但這隻不過是個玩具,除了完成簡單關係查詢不能做任何事情,他們花相當長的時間才使Oracle變得可用,維持公司運轉主要靠承接一些數據庫管理項目和做顧問咨詢工作。而IBM卻沒有計劃開發,爲什麼藍色巨人放棄了這個價值上百億的產品,原因有很多:IBM的研究人員大多是學術出身,他們最感興趣的是理論,而非推向市場的產品,從學術上看,研究成果應公開,發表論文和演講能使他們成名。還有一個很主要的原因就是IBM當時有一個銷售得還不錯的層次數據庫產品IMS。直到1985年IBM才發布了關係數據庫DB2,Ellision那時已經成了千萬富翁。Ellison曾將IBM選擇Microsoft的MS-DOS作爲IBM-PC機的操作系統比爲:“世界企業經營歷史上最嚴重的錯誤,價值超過了上千億美元。”IBM發表R系統論文,而且沒有很快推出關係數據庫產品的錯誤可能僅僅次之。Oracle的市值在1996年就達到了280億美元。

  SQL標准有3個版本。基本SQL定義是ANSIX3135-89,“DatabaseLanguage——SQLwithIntegrityEnhancement”[ANS89],一般叫做SQL-89。SQL-89定義了模式定義、數據操作和事務處理。SQL-89和隨後的ANSIX3168-1989,“DatabaseLanguage——EmbeddedSQL”構成了第一代SQL標准。ANSIX3135-1992[ANS92]描述了一種增強功能的SQL,現在叫做SQL-92標准。SQL-92包括模式操作,動態創建和SQL語句動態執行、網絡環境支持等增強特性。在完成SQL-92標准後,ANSI和ISO即開始合作開發SQL3標准。SQL3的主要特點在於抽象數據類型的支持,爲新一代對象關係數據庫提供了標准。

數據庫模式

        
  用戶級對應外模式,概念級對應模式,物理級對應内模式,使不同級别的用戶對數據庫形成不同的視圖。所謂視圖,就是指觀察、認識和理解數據的範圍、角度和方法,是數據庫在用戶“眼中"的反映,很顯然,不同層次(級别)用戶所“看到’’的數據庫是不相同的。

模式


  模式又稱概念模式或邏輯模式,對應於概念級。它是由數據庫設計者綜合所有用戶的數據,按照統一的觀點構造的全局邏輯結構,是對數據庫中全部數據的邏輯結構和特征的總體描述,是所有用戶的公共數據視圖(全局視圖)。它是由數據庫管理系統提供的數據模式描述語言(Data Description Language,DDL)來描述、定義的,體現、反映了數據庫系統的整體觀。

外模式


  外模式又稱子模式,對應於用戶級。它是某個或某幾個用戶所看到的數據庫的數據視圖,是與某一應用有關的數據的邏輯表示。外模式是從模式導出的一個子集,包含模式中允許特定用戶使用的那部分數據。用戶可以通過外模式描述語言來描述、定義對應於用戶的數據記錄(外模式),也可以利用數據操縱語言(Data Manipulation Lang uage,DML)對這些數據記錄進行。外模式反映了數據庫的用戶觀。

内模式


  内模式又稱存儲模式,對應於物理級,它是數據庫中全體數據的内部表示或底層描述,是數據庫最低一級的邏輯描述,它描述了數據在存儲介質上的存儲方式翱物理結構,對應着實際存儲在外存儲介質上的數據庫。内模式由内模式描述語言來描述、定義,它是數據庫的存儲觀。

  在一個數據庫系統中,隻有唯一的數據庫, 因而作爲定義 、描述數據庫存儲結構的内模式和定義、描述數據庫邏輯結構的模式,也是惟一的,但建立在數據庫系統之上的應用則是非常廣泛、多樣的,所以對應的外模式不是惟一的,也不可能是惟一的。

三級模式間的映射


  數據庫的三級模式是數據庫在三個級别 (層次)上的抽象,使用戶能夠邏輯地、抽象地處理數據而不必關心數據在計算機中的物理表示和存儲。實際上 ,對於一個數據庫系統而言一有物理級數據庫是客觀存在的,它是進行數據庫操作的基礎,概念級數據庫中不過是物理數據庫的一種邏輯的、抽象的描述(即模式),用戶級數據庫則是用戶與數據庫的接口,它是概念級數據庫的一個子集(外模式)。

  用戶應用程序根據外模式進行數據操作,通過外模式一模式映射,定義和建立某個外模式與模式間的對應關係,將外模式與模式聯繫起來,當模式發生改變時,隻要改變其映射,就可以使外模式保持不變,對應的應用程序也可保持不變;另一方面,通過模式一内模式映射,定義建立數據的邏輯結構(模式)與存儲結構(内模式)間的對應關係,當數據的存儲結構發生變化時,隻需改變模式一内模式映射,就能保持模式不變,因此應用程序也可以保持不變。

數據庫發展簡史

        
  數據庫技術從誕生到現在,在不到半個世紀的時間里,形成了堅實的理論基礎、成熟的商業產品和廣泛的應用領域,吸引越來越多的研究者加入。數據庫的誕生和發展給計算機信息管理帶來了一場巨大的革命。三十多年來,中國外已經開發建設了成千上萬個數據庫,它已成爲企業、部門乃至個人日常工作、生產和生活的基礎設施。同時,隨着應用的擴展與深入,數據庫的數量和規模越來越大,數據庫的研究領域也已經大大地拓廣和深化了。30年間數據庫領域穫得了三次計算機圖靈(C.W.Bachman,E.F.Codd,J.Gray),更加充分地說明了數據庫是一個充滿活力和創新精神的領域。沿着歷史的軌蹟,追溯數據庫的發展曆程。

  數據庫的歷史可以追溯前五十年的數據管理非常簡單。通過大量的分類、比較和表格繪制的機器運行數百萬穿孔卡片來進行數據的處理,其運行結果在紙上打印出來或者制成新的穿孔卡片。而數據管理就是對所有這些穿孔卡片進行物理的儲存和處理。然而,1951年雷明頓蘭德公司(RemingtonRandInc.)的一種叫做UnivacI的計算機推出了一種一秒鍾可以輸入數百條記錄的磁帶驅動器,從而引發了數據管理的革命。1956年IBM生產出第一個磁盤驅動器——theModel305RAMAC。此驅動器有50個盤片,每個盤片直徑是2英尺,可以儲存5MB的數據。使用磁盤最大的好處是可以隨機地存取數據,而穿孔卡片和磁帶隻能顺序存取數據。

  1951:Univac系統使用磁帶和穿孔卡片作爲數據存儲。數據庫系統的萌芽出現於60年代。當時計算機開始廣泛地應用於數據管理,對數據的共享提出了越來越高的要求。傳統的文件系統已經不能滿足人們的需要。能夠統一管理和共享數據的數據庫管理系統(DBMS)應運而生。數據模型是數據庫系統的核心和基礎,各種DBMS軟件都是基於某種數據模型的。所以通常也按照數據模型的特點將傳統數據庫系統分成網狀數據庫、層次數據庫和關係數據庫三類。

  最早出現的是網狀DBMS,是美國通用電氣公司Bachman等人在1961年開發成功的IDS(IntegratedDataStore)。1961年通用電氣公司(GeneralElectricCo.)的CharlesBachman成功地開發出世界上第一個網狀DBMS也是第一個數據庫管理系統——集成數據存儲(IntegratedDataStoreIDS),奠定了網狀數據庫的基礎,並在當時得到了廣泛的發行和應用。IDS具有數據模式和日志的特征。但它隻能在GE主機上運行,並且數據庫隻有一個文件,數據庫所有的表必須通過手工編碼來生成。之後,通用電氣公司一個客戶——BFGoodrichChemical公司最終不得不重寫了整個系統。並將重寫後的系統命名爲集成數據管理系統(IDMS)。

  網狀數據庫模型對於層次和非層次結構的事物都能比較自然的模擬,在關係數據庫出現之前網狀DBMS要比層次DBMS用得普遍。在數據庫發展史上,網狀數據庫占有重要地位。

  層次型DBMS是緊隨網絡型數據庫而出現的。最著名最典型的層次數據庫系統是IBM公司在1968年開發的IMS(InformationManagementSystem),一種適合其主機的層次數據庫。這是IBM公司研制的最早的大型數據庫系統程序產品。從60年代末產生起,如今已經發展到IMSV6,提供群集、N路數據共享、消息隊列共享等先進特性的支持。這個具有30年歷史的數據庫產品在如今的WWW應用連接、商務智能應用中扮演着新的角色。

  1973年Cullinane公司(也就是後來的Cullinet軟件公司),開始出售Goodrich公司的IDMS改進版本,並且逐漸成爲當時世界上最大的軟件公司。

常見數據庫管理系統


  數據庫系統是基本上是計算機化的數據保存系統,主要以計算機化的方式來維護數據且讓用戶依據不同的需求快速取得信息。相較於數據庫,數據庫是一個比較抽象化的概念,凡是相關數據的集合都可以稱爲數據庫,而數據庫系統則是一個較具體的概念,是計算機化作業的數據庫。

常見的開放源代碼數據庫系統


  Apache Derby - Apache軟件基金會的純 Java 數據庫管理系統
  Berkeley DB 加州大學Berkeley分校研究成果
  eXist 簡單的XML開放源代碼數據庫
  火鳥
  HSQL
  Ingres
  mSQL
  MySQL 網絡上十分流行的數據庫服務器,結合PHP腳本技術和ApacheWeb服務器使用。維基采用的就是MySQL數據庫。
  PostgreSQL
  SQLite C庫,支持完全的SQL標准數據庫,基於命令行SQLite下載
  Xindice 簡單的XML數據庫,由Apache軟件基金會開發

常見的商業數據庫系統


  4th Dimension 或者叫4D,是一套從Mac OS發展出來的數據庫系統。現在亦有開發視窗版
  Adabas Software AG(德國)開發的數據庫
  askSam, 結合了數據庫和文本編輯,具有很多革新特性
  Caché,適用於企業内部系統應用
  Conzept16
  c-tree Plus FairCom公司的ISAM和關係數據庫。
  DB1 IBM產品
  DB2 IBM產品,當前版本9.8(截至2009年10月23日)。
  dBase 在DOS時代十分重要的數據庫,Windows版本是Visual dBase
  FileMaker 由Claris演化而來,一個界面非常友好的關係型數據庫,功能類似於MAC OS下和Windows的類似軟件,最新版本7.0
  FoxBase 被微軟收購,繼續開發出微軟FoxPro,2.6版之前有DOS和Windows版
  Gupta SQLBase,當前版本9.0
  IDMS
  IMS
  Informix,當前版本10.0(Cheetah)
  InterBase
  MaxDB
  Microsoft Access,微軟公司Office組件之一,當前版本Access 2007(另外還有6.0、97、2000、XP/2002、2003),從微軟公司兼並的一家公司的產品發展而來
  Microsoft Visual FoxPro, 當前版本9.0
  MS SQL-Server,當前版本2008
  Sybase,早期版本被微軟購買開發出SQL-Server
  Oracle,當前版本11g
  Paradox Borland開發後轉手Corel (WordPerfect Office)繼續開發
  PrimeBase
  RRDtool,Round Robin Database
  SAP DB 由SAP開發,後由MySQL繼續開發和維護現屬於MaxDB。
  Tamino XML數據庫k,基於Adabas的版本由Software AG開發
  Tdbengine
  Teradata功能非常強大,適用於非常海量數據,通常用來從事數據倉庫
  Visual dBase, 最終版本5.0,已退出市場


    3
    0
    申明:1.中文百科在线的词条资料来自网友(一些人是某学科领域的专家)贡献,供您查阅参考。一些和您切身相关的具体问题(特别是健康、经济、法律相关问题),出于审慎起见,建议咨询专业人士以获得更有针对性的答案。2.中文百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将及时给予删除。3.如需转载本页面内容,请注明来源于www.zwbk.org

    词条保护申请

  • * 如果用户不希望该词条被修改,可以申请词条保护
    * 管理员审核通过后,该词条会被设为不能修改

    注意:只有该词条的创建者才能申请词条保护

联系我们意见反馈帮助中心免责声明
Copyright © 2010 zwbk.org 中文百科在线 All rights reserved.京ICP证090285号