資料庫管理系統
可运行数据库,与最终用户、其他应用程序和数据库本身交互以捕获和分析数据的计算机软件
資料庫管理系統(英語:database management system,縮寫:DBMS) 是一種針對對象資料庫,為管理資料庫而設計的大型電腦軟件管理系統。具有代表性的數據管理系統有:Oracle、Microsoft SQL Server、Access、MySQL及PostgreSQL等。通常資料庫管理師會使用資料庫管理系統來建立資料庫系統。
現代DBMS使用不同的資料庫模型追蹤實體、屬性和關係。在個人電腦、大型電腦和主機上應用最廣泛的資料庫管理系統是關係型DBMS(relational DBMS)。在關係型數據庫中,用二維表格表示資料庫中的數據。這些表格稱為關係[1]。
描述
資料庫管理系統是一套電腦程式,以控制資料庫的分類及數據的存取。一套資料庫包括:
- 模型語言,用以因應該資料庫管理系統的數據模型,來定義各資料庫的schema。
- 最佳化的數據結構(欄位、紀錄及檔案),以支援在永久儲存裝置(permanent data storage device,即比主記憶體(volatile main memory)慢得多)上儲存極大量的數據。
- 查詢語言及撰寫報表的程式,讓用戶可以互動方式查問資料庫,進行數據分析及依用戶的權限來更新數據。
- 它必須控制數據的保安,以防止不獲授權的用戶觀看甚至更新資料庫的數據。用戶可以提供有效的密碼來存取整個資料庫或其中一部分。譬如員工資料庫包括所有員工資料的數據,但某組用戶可能只被批准檢視薪金相關的數據,其他的又可能只可以存取工作履歷及病歷數據。
- 如果該資料庫管理系統向用戶提供可輸入更新資料庫甚至進行查詢的互動途徑,則此能力可以用來管理個人的資料庫。可是,它不一定提供審核或其他在多用戶環境中所需要的各種控制機制。這些機制可能要整套應用程式都為數據輸入或更新而修改才能提供。
- 交易機制(最好可以保證ACID特性),在多用戶同時存取之下仍維持數據完整性(data integrity),與及提供故障排除(fault tolerance)。
- 資料庫管理系統依靠不容許超過一名用戶在同一時間更新同一項紀錄來維持資料庫的完整性。資料庫管理系統可以用唯一索引限制來避免重覆紀錄。譬如不能有兩位顧客有同一個顧客編號(主鍵)在資料庫中存在。
結構
- 外部層(External Level)或稱觀點層(View Level):包括數個外部綱要(External Schema)或用戶觀點(User Views),每個外部綱要描述了特定族群有興趣的部分資料庫並對該族群隱藏剩下的部分,如同概念層,每個外部綱要一般使用表達性資料模型(Representational Data Model)實作。
- 概念層(Conceptual Level):包含了概念綱要(Conceptual Schema),概念綱要描述了整個用戶社群的資料庫結構,其隱藏了實際儲存資料的結構並專注於描述實體(Entity)、資料型態(Data Type)、關係(Relationships)、用戶操作(User Operations)以及限制(Constraints)。通常資料庫系統被實作時,表達性資料模型也被用於描述概念綱要。
- 內部層(Internal Level):內有內部綱要(Internal Schema),內部綱要描述的是實際儲存資料的結構,其使用實體資料模型(Physical Data Model)並詳細描述資料庫的資料儲存(Data Storage)及存取路徑(Access Path)。[2]
優點
一個好的DBMS應該具有的特點應包括:
- 減少多餘的資料儲存(Controlling Redundancy)
- 限制未授權的存取(Restricting Unauthorized Access)
- 提供程式物件的持續儲存(Providing Persistent Storage for Program Objects)
- 為達有效查詢的目的提供儲存結構及搜尋技術(Providing Storage Structure and Search Techniques for Efficient Query Processing)
- 提供備份及復原(Providing Backup and Recovery)
- 提供多用戶介面(Providing Multiple User Interfaces)
- 表達資料間的複雜關係(Representing Complex Relationships among Data)
- 強化完整限制(Enforcing Integrity Constraint)
- 使用"規則"及"觸發"以允許推斷及動作(Permitting Inferencing and Actions Using Rules and Triggers)[3]
常見資料庫管理系統
開放原始碼數據庫系統
- Apache Derby-Apache軟件基金會的純Java資料庫管理系統
- Berkeley DB,加州大學Berkeley分校研究成果
- eXist,簡單的XML開放原始碼資料庫
- 火鳥
- HSQL
- Ingres
- LevelDB-Google所研發的鍵/值對數據庫編程庫
- mSQL
- MySQL,網絡上十分流行的資料庫伺服器,若結合Linux系統、PHP指令碼技術和ApacheWeb伺服器使用,則被稱為LAMP。
- PostgreSQL
- SQLite,支援完全的SQL標準資料庫,基於命令列
- Xindice,簡單的XML資料庫,由Apache軟件基金會開發
商業數據庫系統
- 4th Dimension或者叫4D,是一套從Mac OS發展出來的數據庫系統。現在亦有閞發視窗版。
- Adabas Software AG(德國)開發的資料庫參看這裏
- askSam,結合了資料庫和文字編輯,具有很多革新特性
- Caché,適用於企業內部系統應用
- Conzept16
- c-tree Plus FairCom公司的ISAM和關聯式資料庫。參看http://www.faircom.com (頁面存檔備份,存於互聯網檔案館). C語言編寫。
- DB1 IBM產品
- DB2 IBM產品,目前版本10.5(截至2013年11月1日)。
- dBase在DOS時代十分重要的資料庫,Windows版本是Visual dBase
- FileMaker由Claris演化而來,一個介面非常友好的關係型資料庫,能夠同時在Mac OS和Windows上使用,最新版本12.0
- FoxBase被微軟收購,繼續開發出微軟FoxPro,2.6版之前有DOS和Windows版。
- Google Fusion Tables
- Gupta SQLBase,目前版本9.0
- HyperFileSQL
- IDMS
- IMS
- Informix,目前版本10.0(Cheetah)
- InterBase
- MaxDB參看SAP DB
- Microsoft Access,微軟公司Office組件之一,目前版本Access 2016(另外還有6.0、97、2000、XP/2002、2003、2007、2010、2013),從微軟公司兼併的一家公司的產品發展而來。
- Microsoft Visual FoxPro,目前版本9.0
- MS SQL-Server,目前版本2022
- Sybase,早期版本被微軟購買開發出SQL-Server。
- Oracle,目前版本18c,最受歡迎的商業資料庫
- Paradox Borland開發後轉手Corel(WordPerfect Office)繼續開發
- PrimeBase
- RRDtool,Round Robin Database
- SAP DB由SAP開發,後由MySQL繼續開發和維護現屬於MaxDB。
- Tamino XML資料庫k,基於Adabas的版本由Software AG開發,參看[1]
- Tdbengine
- Teradata功能非常強大,適用於非常海量數據,通常用來從事數據倉庫。
- Visual dBase,最終版本5.0,已退出市場。
參考文獻
- ^ Kenneth C.Laudon and Jane P.Laudon,《Management Information Systems》, Pearson, 07 March 2011, Chapter6 Information systems Organizations and Strategy p.143
- ^ Elmasri, R., & Navathe, S. B. (2017). Fundamentals of database systems. Hoboken, NJ: Pearson.
- ^ Ramez Elmasri,Shamkant B. Navathe《Fundamentals of Database Systems》, Pearson, Chapter1 Databases and Database Users p.47