数据库系统概念(第1章 引言)


image
数据库管理系统(DataBase-Management System, DBMS)
数据库(database)
DBMS的主要目标是提供一种可以方便、高效地存取数据库信息的途径。
如何有效管理数据?

1.1 数据库系统应用

数据库系统用于管理如下的数据集合:

  • 具有很高价值的数据集合;
  • 相对庞大的数据集合;
  • 常常同时被多个用户和应用系统访问的数据集合。

最早期的数据库应用系统只拥有简单的、精确格式化的、结构化的数据。
当今的数据库应用系统可能包括具有复杂联系和更加易变的结构的数据。

有两种使用数据库的方式:

  • 支持联机事务处理(online transaction processing)。
  • 支持数据分析(data analytics)。

1.2 数据库系统的目标

文件处理系统(file-processing system)

主要弊端:

  • 数据的冗余和不一致性(data redundancy and inconsistency)。
  • 数据访问困难(difficulty in accessing data)。
  • 数据孤立(data isolation)。
  • 完整性问题(integrity problem)。
  • 原子性问题(atomicity problem)。
  • 并发访问异常(concurrent-access anomaly)。
  • 安全性问题(security problem)。

1.3 数据视图

1.3.1 数据模型(data model)

数据模型可被划分为四类:

  • 关系模型(relational model)。
  • 实体-联系模型(entity-relationship model)。
  • 半结构化数据模型(semi-structured data model)。
  • 基于对象的数据模型(object-based data model)。

1.3.2 关系数据模型

将在第2章详细介绍。

1.3.3 数据抽象(data abstraction)

由低到高分以下三层:

  • 物理层(physical level)
  • 逻辑层(logical level)
  • 视图层(view level)

1.3.4 实例和模式

特定时刻存储在数据库中的信息的集合称作数据库的一个实例(instance)。
数据库的总体设计称作数据库模式(schema)。(物理模式/逻辑模式/子模式)

1.4 数据库语言

数据库系统提供数据库定义语言(Data-Definition Language, DDL)来定义数据库模式,并提供数据操纵语言(Data-Manipulation Language, DML)来表达数据库的查询和更新。

1.4.1 数据定义语言

通过一系列特定的DDL语句来说明数据库系统所采用的存储结构和访问方式,这种特定的DDL称作数据存储和定义(data storage and definition)语言。这些语句定义了数据库模式的实现细节。
需要满足的某些一致性约束:

  • 域约束(domain constraint)
  • 引用完整性(referential integrity)
  • 授权(authorization)
    DDl的输出放在数据字典(data dictionary)中,数据字典包含元数据(matadata),元数据是关于数据的数据。

1.4.2 SQL数据定义语言

将在第3~5章详细介绍。

1.4.3 数据操纵语言

数据操纵语言使得用户可以访问或操纵那些按照某种适当的数据模型组织起来的数据。有以下访问类型:

  • 对存储在数据库中的信息进行检索;
  • 向数据库中插入新的信息;
  • 从数据库中删除信息;
  • 修改数据库中存储的信息。
    基本上有两种类型的数据操纵语言:
  • 过程化的DML(procedural DML)
  • 声明式的DML(declarative DML)(也称为非过程化的DML

1.4.4 SQL数据操纵语言

将在第3~5章详细介绍。

1.4.5 从应用程序访问数据库

需要用一种宿主(host)语言来进行(C/C++、Java、Python等)。在其中使用嵌入式的SQL查询来访问数据库中的数据。
应用程序(application program)就是用来以这种方式与数据库进行交互的程序。

1.5 数据库设计

用户需求说明书文档
概念设计(conceptual-design)
使用实体-联系模型/采用一套算法(统称为规范化(normalization))
功能需求说明(specification of functional requirement)
逻辑设计阶段(logical-design phrase)
物理设计阶段(physical-design phrase)

1.6 数据库引擎

数据库系统的功能部件大致可分为存储管理器、查询处理器部件、事务管理部件。

1.6.1 存储管理器(storage manager)

存储管理器部件包括:

  • 权限及完整性管理器(authorization and integrity manager)
  • 事务管理器(transaction manager)
  • 文件管理器(file manager)
  • 缓冲区管理器(buffer manager)
    作为系统物理实现的一部分,存储管理器实现了以下几种数据结构:
  • 数据文件(data file)
  • 数据字典(data dictionary)
  • 索引(index)

1.6.2 查询处理器(query processor)

查询处理器组件包括:

  • DDL解释器(DDL interpreter)
  • DML编译器(DML compiler)——DML编译器还可以进行查询优化(query optimization)
  • 查询执行引擎(query evaluation engine)

1.6.3 事务管理(transaction manager)

事务(transaction manager)是数据库应用中完成单一逻辑功能的操作集合。
原子性和持久性的保证是恢复管理器(recovery manager)的职责——故障恢复(failure recovery)。
并发控制管理器(concurrency-control manager)控制并发事务间的相互影响,保证数据库的一致性。
事务管理器(transaction manager)包括并发控制管理器和恢复管理器。

1.7 数据库和应用体系结构

image

较早一代的数据库应用系统采用两层体系结构(two-tier architecture),应用程序驻留在客户机上,通过查询语言语句来调用服务器上的数据库系统功能。而当今的数据库应用系统采用三层体系结构(three-tier architecture),应用程序的业务逻辑(business logic),也就是说在何种条件下做出何种反应,被嵌入应用服务器中,而不是分布在多个客户机上。提供了更好的安全性和更高的性能。
image

1.8 数据库用户和管理员

1.8.1 数据库用户和用户界面

  • 初学者用户(naive user)
  • 应用程序员(application programmer)
  • 老练用户(sophisticated user)

1.8.2 数据库管理员(DataBase Administrator, DBA)

DBA的作用包括以下方面:

  • 模式定义(schema definition)
  • 存储结构及存取方法定义(storage structure and access-method definition)
  • 模式及物理组织的修改(schema and physical-organization modification)
  • 数据访问授权(granting of authorization for data access)
  • 日常维护(routine maintenance)

1.9 数据库系统的历史

数据存储和处理技术发展的年表:

  • 20世纪50年代和60年代初:磁带
  • 20世纪60年代末和70年代初:硬盘
  • 20世纪70年代末和80年代:关系模型,关系型数据库
  • 20世纪90年代:SQL语言
  • 21世纪第一个十年:XML,开源数据库,分布式
  • 21世纪第二个十年:云服务

1.10 总结

posted @ 2022-09-12 15:34  kirin-dev  阅读(99)  评论(0编辑  收藏  举报