数据库管理系统(Database Management Systems)

数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称 DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性

一、DMBS抽象层次(DBMS abstraction levels)

  • 物理层(physical schema): 详细描述复杂的底层数据结构

  • 逻辑层(logical schema): 描述数据库中存储什么数据及这些数据间存在的关系

  • 视图层(external schema): 只描述数据库的某个部分,系统可以为同一数据库提供多个视图,使用户与系统交互更简单

物理数据独立性: 应用程序不依赖于物理模式,即使物理模式改变也无须重写应用程序,逻辑层用户不必知道逻辑层结构实现可能涉及的复杂物理层结构

二、 Database Languages

  • DDL(Data Definition Language): 数据定义, 供用户定义数据库的三级模式结构、两级映像以及完整性约束和保密限制等约束。DDL主要用于建立、修改数据库的库结构。DDL所描述的库结构仅仅给出了数据库的框架,数据库的框架信息被存放在数据字典(Data Dictionary)中.

  • DML(Data Manipulation Language): 数据操作, 供用户实现对数据的追加、删除、更新等操作

  • (D)QL(Data Query Language): 数据查询

# 不是图灵完备的
1. They are not Turing-complete

# 针对集合操作, 无需显式迭代
2. Database languages are designed to operate on collections, without explicit iteration

# 与通用编程语言相比,QLs在设计上是有限的
3. QLs are limited, by design, compared with general-purpose programming languages.

三、 基本结构

应用程序通过数据存储发送查询和事务,DBMS将这些查询和事务转换为基于OLTP元组的操作。

1. Database system

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

a. 存储管理器(Data Manager)

数据库系统中负责在数据库中存储的低层数据与应用程序以及向系统提交的查询之间提供接口的部件,负责数据库中数据的存储、检索和更新。

存储管理器实现了几种数据结构,作为系统物理实现的一部分:

  • 数据文件(data file): 存储数据库自身
  • 数据字典(data dictionary): 存储关于数据库结构的元数据,尤其是数据库模式
  • 索引(index): 提供对数据项的快速访问(e.g. 指针、散列)

b.查询处理器

负责编译和执行DDL和DML语句

A relational-algebraic expression can be represented as an algebraic operator tree. By applying rewrite rules, the (usually naive) algebraic operator tree can be rewritten into a heuristically-efficient canonical form, often called the logical QEP for the query.

查询编译(query compiler): 将查询语言中的DML语句翻译为执行方案

# 解析声明性查询
parse the declarative query
# 转化为一个代数表达式
translate to obtain an algebraic expression

该处的代数表达式见RA, 直接翻译数据库语句. 例如: π U . p l a n e i d , F . f o r m ( σ U . n o = F . i d ( F i g h t × U s e d ) ) \pi_{U.planeid, F.form}(\sigma_{U.no = F.id}(Fight \times Used)) πU.planeid,F.form(σU.no=F.id(Fight×Used)). 关系代数表达式可以表示为代数操作树(Algebraic Operator Tree)

查询优化(query optimization)

# 重写为规范的、启发式高效的逻辑查询执行计划
rewrite into a canonical, heuristically-efficient logical query execution plan(QEP)
# 选择算法和访问方法,获得准最优的、有成本的具体查询执行计划
select the algorithms and access methods to obtain a quasi-optimal, costed concrete QEP

通过应用重写规则,可以将(通常是简单的)代数操作符树重写为直观有效的规范形式,然后生成计划。

例如: σ θ ( R × S ) ↔ ( R ⋈ θ S ) \sigma_{\theta}(R \times S) \leftrightarrow (R \bowtie_{\theta}S) σθ(R×S)(RθS)

查询引擎(query engine)

# 执行过程性查询执行计划
execute the procedural query execution plan

2. Data Store

# Metadata 包括模式级信息和底层计算基础设施的描述。
Metadata includes schema-level information and a description of the underlying computing infrastructure.
# Statistics 主要是关于过去数据库实例的趋势/摘要特征的信息
Statistics are mostly information about the trend/summary characteristics of past database instances.
# 建立索引是为了高效地访问数据
Indices are built for efficient access to the data.
# 数据是数据库实例包含的内容
Data is what the database instance contains.

四、高级的DBMSs

针对传统的数据库管理系统的缺点, 提出其他系统设计.

1. OLAP(Beyond OLTP)

OLAP是数据仓库系统的主要应用,支持复杂的分析操作

参考文档:OLAP、OLTP的介绍和比较

数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果

  • OLTP:系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作;
  • OLAP:系统则强调数据分析,强调SQL执行市场,强调磁盘I/O,强调分区等

OLAP,也叫联机分析处理(Online Analytical Processing)系统,有的时候也叫DSS决策支持系统,就是我们说的数据仓库。在这样的系统中,语句的执行量不是考核标准,因为一条语句的执行时间可能会非常长,读取的数据也非常多。所以,在这样的系统中,考核的标准往往是磁盘子系统的吞吐量(带宽),如能达到多少MB/s的流量

在OLAP系统中,常使用分区技术、并行技术

2. 数据流管理系统(Data Stream Management Systems)

实时响应数据流

数据流管理系统所处理的数据流是一种实时连续的数据信息序列,而且在实际处理过程中,这种数据序列具有信息到达顺序不可控、单位时间数据到达量不均匀、数据量庞大等特点。

# 对外部事件启用实时动态响应
Enable dynamic response in real-time to external events
# 复杂事件处理
Complex event processing (CEP)
# 周期性或响应性执行的查询
Placing queries that execute periodically or reactively
# 以无界流的形式推送系统中的数据
Over data that is pushed onto the system in the form of unbounded streams

3. Beyond Structured Data (NOSQL)

# 添加对文档形式的非结构化和半结构化数据的支持
Add support to un- and semi- structured data in document form.
# 对图/树片段使用基于关键字的搜索和访问方法
Using keyword-based search and access methods for graph/tree fragments.

更多推荐

【数据库】数据库管理系统(Database Management Systems)