数据库精讲(2) | 数据库管理系统
数据库管理系统(英语:database management system,缩写:DBMS) 是一种针对对象数据库
,为管理数据库而设计的大型电脑软件管理系统
。具有代表性的数据管理系统有:Oracle
、Microsoft SQL Server
、Access
、MySQL
及PostgreSQL
等。通常数据库管理师会使用数据库管理系统来创建数据库系统
。
现代DBMS使用不同的数据库模型追踪实体、属性和关系
。在个人电脑、大型计算机和主机上应用最广泛的数据库管理系统是关系型DBMS(
relational DBMS)。在关系型数据模型中,用二维表格表示数据库中的数据。这些表格称为关系
。
一.描述
数据库管理系统是一套计算机程序
,以控制数据库的分类及数据的访问
。一套数据库包括:
1.模型语言
,用以因应该数据库管理系统的数据模型,来定义各数据库的schema
。
最常用的三大类分别为层次结构式
、网络式
及关系式的模型
。一个数据库管理系统可提供一种、两种,甚至全部三种方式,也可能提供其他形式。最适合的模型要视乎个别应用程序、交易进行比率及查询经常使用的程度
等。现时最常使用的则是SQL所支持,相似于关系式模型但又有些微违背的方式。很多数据库管理系统也支持ODBC,以支持程序编写员以标准方法访问该数据库管理系统。
2.最优化的数据结构
(字段、纪录及文件),以支持在永久存储设备(permanent data storage device,即比主存(volatile main memory)慢得多)上存储极大量的数据。
3.查询语言及撰写报表的程序
,让用户可以交互方式查问数据库
,进行数据分析
及依用户的权限来更新数据
。
它必须控制数据的保安,以防止不获授权的用户观看甚至更新数据库的数据。用户可以提供有效的密码来访问整个数据库或其中一部分。譬如员工数据库包括所有员工数据的数据,但某组用户可能只被批准查看薪金相关的数据,其他的又可能只可以访问工作履历及病历数据。
如果该数据库管理系统向用户提供可输入更新数据库甚至进行查询的交互途径,则此能力可以用来管理个人的数据库。可是,它不一定提供审核或其他在多用户环境中所需要的各种控制机制。这些机制可能要整套应用程序都为数据输入或更新而修改才能提供。
4.交易机制(最好可以保证ACID特性)
,在多用户同时访问之下仍维持数据完整性(data integrity),与及提供故障排除(fault tolerance)。
数据库管理系统依靠不容许超过一名用户在同一时间更新同一项纪录来维持数据库的完整性
。数据库管理系统可以用唯一索引限制来避免重复纪录
。譬如不能有两位顾客有同一个顾客编号(主键)在数据库中存在。
二.结构
-
外部层
(External Level)或称观点层(View Level):包括数个外部纲要(ExternalSchema)或用户观点
(UserViews),每个外部纲要描述了特定族群有兴趣的部分数据库并对该族群隐藏剩下的部分,如同概念层,每个外部纲要一般使用表达性数据模型
(RepresentationalData Model)实现。 -
概念层
(Conceptual Level):包含了概念纲要(ConceptualSchema),概念纲要描述了整个用户社群的数据库结构
,其隐藏了实际存储数据的结构并专注于描述实体
(Entity)、数据类型
(DataType)、关系
(Relationships)、用户操作
(UserOperations)以及限制
(Constraints)。通常数据库系统被实现时,表达性数据模型也被用于描述概念纲要。 -
内部层
(Internal Level):内有内部纲要(InternalSchema),内部纲要描述的是实际存储数据的结构
,其使用实体数据模型
(Physical DataModel)并详细描述数据库的数据存储
(Data Storage)及访问路径
(Access Path)
三.优点
一个好的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)
四.常见数据库管理系统
1.开放源代码数据库系统
-
Apache
Derby
-Apache软件基金会的纯Java数据库管理系统
-
Berkeley
DB
加州大学Berkeley分校研究成果 -
eXist
简单的XML
开放源代码数据库 -
Firebird
-
HSQL
-
Ingres
-
LevelDB-Google所研发的键/值对数据库编程库
-
MySQL网络上十分流行的数据库服务器
,若结合Linux系统、PHP脚本技术和ApacheWeb服务器使用,则被称为LAMP
。 -
PostgreSQL
-
SQLite C库,支持完全的SQL标准数据库,基于命令行SQLite下
-
Xindice简单的XML数据库,由Apache软件基金会开发
2.商业数据库系统
- 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组件之一,当前版本Access2016(另外还有6.0、97、2000、XP/2002、2003、2007、2010、2013),从微软公司兼并的一家公司的产品发展而来。
- Microsoft Visual FoxPro,当前版本9.0
- MS SQL-Server,当前版本2014 SP1
- 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开发
- Tdbengine
- Teradata功能非常强大,适用于非常海量数据,通常用来从事数据仓库。
- Visual dBase,最终版本5.0,已退出市场。
五.参见
后面我会持续更新
,喜欢的小伙伴可以关注
或者点赞
和评论
哟,一键三连…
但行好事
,莫问前程
,下篇见~