資料庫(英語:database),簡而言之可視為數碼化的檔案櫃——儲存電子檔案的處所,用戶可以對檔案中的資料執行新增、擷取、更新、刪除等操作[1]。
「database」的各地常用譯名 | |
---|---|
中國大陸 | 數據庫 |
臺灣 | 資料庫 |
港澳 | 數據庫、資料庫 |
所謂「資料庫」是以一定方式儲存在一起、能予多個用戶共用、具有儘可能小的冗餘度、與應用程式彼此獨立的數據集合。一個資料庫由多個表空間(Tablespace)構成。
技術初衷
在作業系統出現之後,隨着電腦應用範圍的擴大、需要處理的數據迅速膨脹。最初,數據與程式一樣,以簡單的檔案作為主要儲存形式。以這種方式組織的數據在邏輯上更簡單,但可延伸性差,訪問這種數據的程式需要了解數據的具體組織格式。當系統數據量大或者用戶瀏覽量大時,應用程式還需要解決數據的完整性、一致性以及安全性等一系列的問題。因此,必須開發出一種系統軟件,它應該能夠像作業系統封鎖了硬件訪問複雜性那樣,封鎖數據訪問的複雜性。由此產生了數據管理系統,即資料庫。[2]
資料庫管理系統
資料庫管理系統(英語:Database Management System,簡稱DBMS)是為管理資料庫而設計的電腦軟件系統,一般具有儲存、擷取、安全保障、備份等基礎功能。資料庫管理系統可以依據它所支援的資料庫模型來作分類,例如關聯式、XML;或依據所支援的電腦類型來作分類,例如伺服器群集、流動電話;或依據所用查詢語言來作分類,例如SQL、XQuery;或依據效能衝量重點來作分類,例如最大規模、最高執行速度;亦或其他的分類方式。不論使用哪種分類方式,一些DBMS能夠跨類別,例如,同時支援多種查詢語言。
資料庫的分類
隨着資料庫技術與其他分支學科技術的結合,出現了多種新型資料庫,例如:與分佈處理技術結合產生的分散式資料庫、與並列處理技術結合產生的並列資料庫、與人工智能結合產生的演繹資料庫、與多媒體技術結合產生的多媒體資料庫。另外,資料庫技術應用於特定的領域,出現了工程資料庫、 地理資料庫、統計資料庫、空間資料庫等特定領域資料庫。[2]
- MySQL
- PostgreSQL
- Microsoft Access
- Microsoft SQL Server
- Google Fusion Tables
- FileMaker
- Oracle資料庫
- Sybase
- dBASE
- Clipper
- FoxPro
- foshub
幾乎所有的資料庫管理系統都配備了一個開放式資料庫連接(ODBC)驅動程式,令各個資料庫之間得以互相整合。
- Apache Cassandra(為Facebook所使用[7]):高度可延伸[8]
- Dynamo
- LevelDB(Google)
資料庫技術的發展
隨着互聯網的普及,資料庫使用環境也隨之發生變化,這種變化主要體現為XML和Java技術的大量使用、要求支援各種互聯網環境下的應用伺服器、極容易出現大量用戶同時訪問資料庫、要求支援7x24小時不間斷執行和高安全性等。[2]
為解決由於這些變化所帶來的新問題,資料庫管理系統也逐漸產生變化,包括:
- 網絡化的大型通用資料庫管理系統的出現
由於互聯網應用的用戶數量無法預測,這就要求資料庫相比以前擁有能處理更大量的數據以及為更多的用戶提供服務的能力,即更好的可伸縮性及高可用性,因此,能夠支援Internet的資料庫應用已經成為資料庫系統的重要方面,學術界及各主流資料庫公司都將大型通用數據管理系統作為主要發展方向。例如Oracle公司從 8 版起全面支援互聯網應用,微軟公司更是將 SQL Server 作為 其整個 .NET計劃中的一個重要的成分。[2]
- 資料庫安全系統及技術的提升
由於資料庫系統在現代電腦系統中的地位越來越趨於核心的地位,資料庫系統的安全問題自然受到越來越多的關注。在目前各國所參照或制定的 一系列安全標準中,最重要的兩個是由美國國防部制定的《可信電腦系統的評估標準》(簡稱TCSEC)和《可信電腦系統的評估標準關於可信資料庫系統的解釋》(簡稱 TDI)。目前,所有資料庫的開發必須遵從相應的安全標準。[2]
- XML及Web數據管理技術的普及
隨着越來越多的Web應用,如電子商務、數字圖書館、資訊服務等採用XML作為數據表現形式、越來越多網站採用XML作為資訊發佈的語言,以XML格式數據為主的半結構化數據逐步成為網上數據交換和數據表示的標準。而XML具有如下的一些特徵:面向顯示、半結構化和無結構、不同形式的數據源,動態變化以及數據海量等。因此,支援這種結構鬆散、形式多樣、動態變化的海量數據的儲存、共用、管理、檢索,成了資料庫技術的大勢所趨。[2]
Web數據管理是一個很鬆散的概念,大體上它是指在Web環境下對各種複雜資訊的有效組織與整合,進行方便而準確的資訊查詢和發佈。當前Web數據管理的研究開發方向主要包括:半結構化數據管理、Web數據查詢、Web資訊整合、XML數據管理等。到目前為止,XML 與 Web 數據管理的研究工作中主要集中在如下的一些方面。[2]
- 半結構化數據
- Web數據查詢
- XML相關標準
- XML數據管理
- 嵌入式流動數據庫技術
隨着流動通訊技術的迅速發展和投入使用,加上移動智能電話、流動電腦的大量普及,國內外許多研究機構都展開了對流動數據庫的研究,並取得了許多有價值的成果。流動數據庫技術涉及資料庫技術、分散式計算技術以及流動通訊技術等多個學科領域,具有較高的學術起點。[2]
資料庫模型
資料庫的架構可以大致區分為三個概括層次:內層、概念層和外層。
- 內層:最接近實際儲存體,亦即有關資料的實際儲存方式。
- 外層:最接近用戶,即有關個別用戶觀看資料的方式。
- 概念層:介於兩者之間的間接層。[9]
資料索引的觀念由來已久,像是一本書前面幾頁都有目錄,目錄也算是索引的一種,只是它的分類較廣,例如車牌、身份証字號、條碼等,都是一個索引的號碼,當我們看到號碼時,可以從號碼中看出其中的端倪,若是要找的人、車或物品,也只要提供相關的號碼,即可迅速查到正確的人事物。
另外,索引跟欄位有着相應的關係,索引即是由欄位而來,其中欄位有所謂的關鍵欄位(Key Field),該欄位具有唯一性,即其值不可重複,且不可為"空值(null)"。例如:在合併資料時,索引便是扮演欲附加欄位資料之指向性用途的角色。故此索引為不可重複性且不可為空。
事務(transaction)包含一組資料庫操作的邏輯工作單元,在事務中包含的資料庫操作是不可分割的整體,這些操作要麼一起做,要麼一起轉返(Roll Back)到執行前的狀態。 事務的ACID特性:
- 原子性(atomicity)
- 一致性(consistency)
- 隔離性(isolation)
- 持續性(durability)
事務的並行性是指多個事務的並列操作輪流交叉執行,事務的並行可能會存取和儲存不正確的數據,破壞交易的隔離性和資料庫的一致性。
滿足下面兩個條件的基本層次聯絡的集合為網狀模型。
- 允許一個以上的結點無雙親;
- 一個結點可以有多於一個的雙親。
參考文獻
參見
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.