數據庫

right
資料庫（database），簡而言之可視為數字化的檔案櫃——儲存電子檔案的處所，使用者可以對檔案中的資料執行新增、擷取、更新、刪除等操作。
所謂「資料庫」是以一定方式儲存在一起、能予多個用戶共享、具有儘可能小的冗餘度、與應用程序彼此獨立的數據集合。一個數據庫由多個表空間（Tablespace）構成。

**技術初衷**
在操作系統出現之後，隨著計算機應用範圍的擴大、需要處理的數據迅速膨脹。最初，數據與程序一樣，以簡單的文件作為主要存儲形式。以這種方式組織的數據在邏輯上更簡單，但可擴展性差，訪問這種數據的程序需要了解數據的具體組織格式。當系統數據量大或者用戶訪問量大時，應用程序還需要解決數據的完整性、一致性以及安全性等一系列的問題。因此，必須開發出一種系統軟件，它應該能夠像操作系統屏蔽了硬件訪問複雜性那樣，屏蔽數據訪問的複雜性。由此產生了數據管理系統，即數據庫。

**數據庫管理系統**
資料庫管理系統（Database Management System，簡稱DBMS）是為管理資料庫而設計的電腦軟體系統，一般具有儲存、擷取、安全保障、備份等基礎功能。資料庫管理系統可以依據它所支援的資料庫模型來作分類，例如關聯式、XML；或依據所支援的電腦類型來作分類，例如伺服器群集、行動電話；或依據所用查詢語言來作分類，例如SQL、XQuery；或依據性能衝量重點來作分類，例如最大規模、最高執行速度；亦或其他的分類方式。不論使用哪種分類方式，一些DBMS能夠跨類別，例如，同時支援多種查詢語言。

**數據庫的分類**
隨著數據庫技術與其他分支學科技術的結合，出現了多種新型數據庫，例如：與分佈處理技術結合產生的分佈式數據庫、與並行處理技術結合產生的並行數據庫、與人工智能結合產生的演繹數據庫、與多媒體技術結合產生的多媒體數據庫。另外，數據庫技術應用於特定的領域，出現了工程數據庫、 地理數據庫、統計數據庫、空間數據庫等特定領域數據庫。

**關係數據庫**
 MySQL
** MariaDB（MySQL的代替品，維基媒體基金會項目已從MySQL轉向MariaDB）
** Percona Server（MySQL的代替品）- PostgreSQL- Microsoft Access- Microsoft SQL Server- Google Fusion Tables- FileMaker- Oracle資料庫- Sybase- dBASE- Clipper- FoxPro- foshub
幾乎所有的資料庫管理系統都配備了一個開放式資料庫連接（ODBC）驅動程式，令各個資料庫之間得以互相整合。

**非關係型數據庫（NoSQL）**
 BigTable（Google）- Cassandra- MongoDB- CouchDB- Redis

**鍵值數據庫**
 Apache Cassandra（為Facebook所使用）：高度可擴展- Dynamo- LevelDB（Google）

**數據庫技術的發展**
隨著互聯網的普及，數據庫使用環境也隨之發生變化，這種變化主要體現為XML和Java技術的大量使用、要求支持各種互聯網環境下的應用服務器、極容易出現大量用戶同時訪問數據庫、要求支持7x24小時不間斷運行和高安全性等。
為解決由於這些變化所帶來的新問題，數據庫管理系統也逐漸產生變化，包括：
# 網絡化的大型通用數據庫管理系統的出現由於互聯網應用的用戶數量無法預測，這就要求數據庫相比以前擁有能處理更大量的數據以及為更多的用戶提供服務的能力，即更好的可伸縮性及高可用性，因此，能夠支持Internet的數據庫應用已經成為數據庫系統的重要方面，學術界及各主流數據庫公司都將大型通用數據管理系統作為主要發展方向。例如Oracle公司從 8 版起全面支持互聯網應用，微軟公司更是將 SQL Server 作為 其整個 .NET計劃中的一個重要的成分。
# 數據庫安全系統及技術的提升由於數據庫系統在現代計算機系統中的地位越來越趨於核心的地位，數據庫系統的安全問題自然受到越來越多的關注。在目前各國所引用或制定的 一系列安全標準中，最重要的兩個是由美國國防部制定的《可信計算機系統的評估標準》(簡稱TCSEC)和《可信計算機系統的評估標準關於可信數據庫系統的解釋》(簡稱 TDI)。目前，所有數據庫的開發必須遵從相應的安全標準。
# XML及Web數據管理技術的普及隨著越來越多的Web應用，如電子商務、數字圖書館、信息服務等採用XML作為數據表現形式、越來越多網站採用XML作為信息發佈的語言，以XML格式數據為主的半結構化數據逐步成為網上數據交換和數據表示的標準。而XML具有如下的一些特徵：面向顯示、半結構化和無結構、不同形式的數據源，動態變化以及數據海量等。因此，支持這種結構鬆散、形式多樣、動態變化的海量數據的存儲、共享、管理、檢索，成了數據庫技術的大勢所趨。Web數據管理是一個很鬆散的概念，大體上它是指在Web環境下對各種複雜信息的有效組織與集成，進行方便而準確的信息查詢和發佈。當前Web數據管理的研究開發方向主要包括：半結構化數據管理、Web數據查詢、Web信息集成、XML數據管理等。到目前為止，XML 與 Web 數據管理的研究工作中主要集中在如下的一些方面。
#* 半結構化數據
#* Web數據查詢
#* XML相關標準
#* XML數據管理
# 嵌入式移動數據庫技術隨著移動通信技術的迅速發展和投入使用，加上移動智能電話、移動計算機的大量普及，國內外許多研究機構都展開了對移動數據庫的研究，並取得了許多有價值的成果。移動數據庫技術涉及數據庫技術、分佈式計算技術以及移動通信技術等多個學科領域，具有較高的學術起點。

**數據庫模型**
 物件模型- 層次模型（輕量級數據訪問協議）- 網狀模型（大型數據儲存）- 關係模型- 面向對象模型- 半結構化模型- 平面模型（表格模型，一般在形式上是一個二維陣列。如表格模型數據Excel)

**架構 (Schema)**
資料庫的架構可以大致區分為三個概括層次：內層、概念層和外層。- 內層：最接近實際儲存體，亦即有關資料的實際儲存方式。- 外層：最接近使用者，即有關個別使用者觀看資料的方式。- 概念層：介於兩者之間的間接層。

**數據庫索引**
資料索引的觀念由來已久，像是一本書前面幾頁都有目錄，目錄也算是索引的一種，只是它的分類較廣，例如車牌、身份証字號、條碼等，都是一個索引的號碼，當我們看到號碼時，可以從號碼中看出其中的端倪，若是要找的人、車或物品，也只要提供相關的號碼，即可迅速查到正確的人事物。 
另外，索引跟欄位有著相應的關係，索引即是由欄位而來，其中欄位有所謂的關鍵欄位（Key Field），該欄位具有唯一性，即其值不可重複，且不可為"空值（null）"。例如：在合併資料時，索引便是扮演欲附加欄位資料之指向性用途的角色。故此索引為不可重複性且不可為空。

**數據庫事務**
事務（transaction）包含一組數據庫操作的邏輯工作單元，在事務中包含的數據庫操作是不可分割的整體，這些操作要麼一起做，要麼一起回滾（Roll Back）到執行前的狀態。
事務的ACID特性：- 原子性（atomicity）- 一致性（consistency）- 隔離性（isolation）- 持續性（durability）
事務的併發性是指多個事務的並行操作輪流交叉運行，事務的併發可能會存取和存儲不正確的數據，破壞交易的隔離性和數據庫的一致性。

**網狀數據模型的數據結構**

**網狀模型**
滿足下面兩個條件的基本層次聯繫的集合為網狀模型。
# 允許一個以上的結點無雙親；
# 一個結點可以有多於一個的雙親。

**參考文獻**

**參見**
 資料庫理論- 資訊科技稽核- LDAP（輕量級數據訪問協議）- SQL（結構化查詢語言）- 資料庫管理系統