数据库管理系统(英语: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,已退出市场。
参考文献
外部链接
参见
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.