数据库

資料庫（英語：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（英语：Google Fusion Tables） FileMaker Oracle資料庫 Sybase dBASE Clipper FoxPro foshub 幾乎所有的資料庫管理系統都配備了一個開放式資料庫連接（ODBC）驅動程式，令各個資料庫之間得以互相整合。 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) 資料庫的架構可以大致區分為三個概括層次：內層、概念層和外層。 內層：最接近實際儲存體，亦即有關資料的實際儲存方式。 外層：最接近使用者，即有關個別使用者觀看資料的方式。 概念層：介於兩者之間的間接層。 資料索引的觀念由來已久，像是一本書前面幾頁都有目錄，目錄也算是索引的一種，只是它的分類較廣，例如車牌、身份証字號、條碼等，都是一個索引的號碼，當我們看到號碼時，可以從號碼中看出其中的端倪，若是要找的人、車或物品，也只要提供相關的號碼，即可迅速查到正確的人事物。 另外，索引跟欄位有著相應的關係，索引即是由欄位而來，其中欄位有所謂的關鍵欄位（Key Field），該欄位具有唯一性，即其值不可重複，且不可為"空值（null）"。例如：在合併資料時，索引便是扮演欲附加欄位資料之指向性用途的角色。故此索引為不可重複性且不可為空。 事务（transaction）包含一组数据库操作的逻辑工作单元，在事务中包含的数据库操作是不可分割的整体，这些操作要么一起做，要么一起回滚（Roll Back）到执行前的状态。 事务的ACID特性： 原子性（atomicity） 一致性（consistency） 隔离性（isolation） 持续性（durability） 事务的并发性是指多个事务的并行操作轮流交叉运行，事务的并发可能会存取和存储不正确的数据，破坏交易的隔离性和数据库的一致性。 满足下面两个条件的基本层次联系的集合为网状模型。 允许一个以上的结点无双亲； 一个结点可以有多于一个的双亲。 陳春旭、余明興、李建全 譯：《資料庫系統概論》第四版，儒林圖書有限公司，1986年7月，第3頁 任群, 著. 《计算机软件技术及教学模式研究》. 天津科学技术出版社. 2017年: 第19页. ISBN 9787557628413.  mariadb. [2013-01-07]. （原始内容存档于2013-01-03）.  Wikipedia moving from MySQL to MariaDB. [2013-01-07]. （原始内容存档于2014-11-24）.  存档副本. [2014-04-26]. （原始内容存档于2014-04-26）.  存档副本. [2013-08-13]. （原始内容存档于2013-08-24）.  存档副本. [2013-01-07]. （原始内容存档于2013-01-25）.  存档副本. [2014-04-26]. （原始内容存档于2011-02-21）.  陳春旭、余明興、李建全譯，《資料庫系統概論》第四版，儒林，1986年7月，第29頁 计算机科学主题 信息技术主题 软件主题 資料庫理論 資訊科技稽核 LDAP（轻量级数据访问协议） SQL（结构化查询语言） 資料庫管理系統