数据库管理系统(DataBase Management System,DBMS)是由相互关联的数据集合和一组访问这些数据的程序组成。、
数据库的设计目的就是为了解决传统文件系统在储存信息时遇到的问题:
- 数据的冗余和不一致(data redundancy and inconsistency):同一份数据可能有多个拷贝,在重复存储的过程中容易出现数据更改、丢失等造成数据不一致的情况;
- 数据访问困难(difficulty in accessing data):对于可能出现的数据需求,不能做到高效的反馈;需要每次依靠人工或者编写相应的程序进行访问。
- 数据孤立(data isolation):数据分散在不同文件中,同时可能具备不同的格式。
- 完整性(integrity problem):数据必须满足一定的一致性约束(consistency constraint),当多个数据之间存在复杂的约束条件时,传统的文件系统不再适用。
- 原子性(atomicity problem):在必须保证操作原子性的系统中(如银行系统),一项操作要么全部发生,要么根本不发生;避免出现数据一致性问题。
- 并发访问异常(concurrent-access anomaly):为提高访问效率,许多系统允许并发访问;数据库系统需要在保证提高性能的同时,避免并发访问操作数据所带来的异常情况。
- 安全性问题(security problem):针对不同的用户设置数据的可见性和权限,保证用户只能访问到自己业务需求的部分。
数据库视图:
实例与模式:
- 物理层(复杂的底层数据结构)
- 逻辑层(对物理层的简单抽象):数据库管理员
- 抽象层(屏蔽了数据类型细节):数据库用户
数据模型:
- 实例:特定时刻储存的信息合集
- 模式:数据库的总体设计模式
数据库语言:
- 关系模型(relational model):使用表的集合来表示数据和数据间的关系,是基于记录的模型的一种,每条数据都是某种特定格式的记录,由一条条记录构成了数据库,是使用最广泛的数据库模型;
- 实体-联系模型(entity-relationship model,E-R):该模型是基于对现实世界的一种认知方式,认为世界是由实体(基本对象)和联系(对象间的关系)构成,在企业实际应用中使用广泛;
- 基于对象的数据模型(object-based data model):对E-R模型进行了封装、方法、对象标识等扩展,结合了以上两种模型的特点,应用于面向对象的开发中;
- 半结构化数据模型(semistructured data model):允许相同类型的数据项中含有不同的属性集,如XML(eXtensible Markup Language)、HTML等。
- DDL(data definition language):数据存储和定义,包含各种一致性约束(域约束、参照完整性、断言等)、授权信息。
- DML(data manipulation language):增、删、改、查。
- 元数据:关于数据的数据,是DDL的输出,只能由系统本身访问和修改。