《大学计算机—计算思维导论》(战德臣 哈尔滨工业大学)
《10.2 什么是数据库与数据库系统?》
数据库
简单来讲,数据库就是相互有关联关系的数据的集合。
- 一个表聚集了具有相同结构类型的若干个对象
- 一行数据反映了某一对象的相关内容
- 一列数据具有相同的数据类型
- 表与表间也存在着相互关联
数据库系统
数据库系统包含数据库、数据库管理系统、应用程序和数据库管理员。
- 数据库(DB): Database
- 数据库管理系统(DBMS): Database Management System
- 数据库应用(DBAP): DataBase Application
- 数据库管理员(DBA): DataBase Administrator
- 计算机基本系统
数据库系统是一个大的环境,其核心组件是数据库。数据库实质上是一个由相互关联的数据所构成的集合,我们通常将这个数据集合称为 Database,简称DB。
为了有效地管理和控制数据库,必须配备一种特定的系统软件。这种专门用于管理数据库的系统软件被称为数据库管理系统,即Database Management System,简称DBMS。
应用程序是为普通用户与数据库进行交互而特别设计开发的软件工具。用户通过这些应用程序,间接地与数据库管理系统(DBMS)进行交流,从而实现对数据库的访问和使用。换句话说,普通用户借助应用程序这一中介,通过数据库管理系统来操作和利用数据库中的数据资源。
数据库管理员,即 DBA,可能是一个人,也可能是一个组织,他使用DBMS来管理和维护数据库。
数据库管理系统的基本功能
数据库定义
定义数据库中数据表的名称、标题(内含的属性名称及对该属性的值的要求)等。
- DBMS提供一套数据定义语言(DDL:Data Definition Language) 给用户
- 用户使用DDL描述其所要建立表的格式
- DBMS依照用户的定义,创建数据库及其中的Table
数据库操纵
向数据库的Table中增加/删除/更新数据及对数据进行查询、检索、统计等
- DBMS提供一套数据操纵语言(DML:Data Manipulation Language) 给用户
- 用户使用DML描述其所要进行的增、删、改、查等操作
- DBMS依照用户的操作描述,实际执行这些操作
数据库控制
控制数据库中数据的使用:哪些用户可以使用,哪些不可以
- DBMS提供一套数据控制语言(DCL:Data Control Language)给用户
- 用户使用DCL描述其对数据库所要实施的控制
- DBMS依照用户的描述,实际进行控制
数据库维护
转储/恢复/重组/性能监测/分析…
- DBMS提供一系列程序(实用程序/例行程序) 给用户
- 在这些程序中提供了对数据库维护的各种功能
- 用户使用这些程序进行各种数据库维护操作
数据库维护的实用程序,一般都是由数据库管理员(DBA)来使用和掌握的
DBMS后台程序
DBMS为完成DB管理,在后台运行着一系列程序…
- 数据库物理存储
- 数据库查询执行及查询优化
- 并发控制
- 故障恢复
- 安全性控制
- 完整性控制
- 数据字典管理
- 应用程序接口(API)
- … …
从系统的底层运作角度看,数据库管理系统(DBMS)背后运行着一系列复杂的程序。
这些后台程序负责至关重要的任务,比如如何有效地将数据库物理地存储在磁盘上,并确保数据能够快速且准确地从磁盘读取到内存中进行处理。
同时,当用户提交一个查询请求时,DBMS必须通过查询优化机制来高效检索和组织数据,以迅速提供用户期望的结果集。这是查询性能优化的关键所在。
此外,在多用户环境或者分布式环境下,不同的用户可能从不同地点对同一数据库进行操作。例如,在多人同时购买同一班次火车票的情况下,DBMS需要通过并发控制技术来避免出现重复购票的问题,确保数据的完整性和一致性。
最后,为了防止意外情况导致的数据丢失或不一致,如银行系统中用户账户信息因故障而受损,DBMS必须具备强大的故障恢复能力。这意味着在发生故障后,系统能及时检测、记录事务日志,并有能力将数据库恢复至故障前的正确状态,从而保障数据的安全性和可靠性。
小结
本节介绍了什么是数据库,什么是数据库系统。
对于数据库系统来讲,包括了数据库,数据库管理系统,数据库应用程序,数据库管理员和计算机的基本系统。这里面的核心是数据库管理系统。
数据库管理系统有数据定义功能,数据操作功能、数据控制功能。这些功能都是通过一套数据库语言(数据定义语言,数据操纵语言,数据控制语言)提供给用户。用户掌握了这套语言,就可以通过DBMS访问、管理和控制数据库。另外一方面就是数据库管理系统的背后是一系列程序,执行存储、查找、备份、解析语言等。