数据库管理系统(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, 直接翻译数据库语句. 例如: