DBMS
DBMS内部组成结构
DBMS的内核【只接受SQL语句】
- 编译器(语法分析器)
- 授权检查
- 语义分析和查询处理
- 访问管理、并发控制、恢复模块【物理层】
- 实现了关系模型的各种概念
- 直接和操作系统打交道
UFI 提供给用户的即席访问接口
API 由数据库系统提供给数据库的各种使用方法
DBMS运行状态下的进程结构
单进程结构
- 把应用程序的代码和DBMS核心代码连接在一起,运行后就是一个单一的进程
多进程结构【满足多用户多任务】、多线程结构
- 将DBMS核心进程和应用程序的进程分开,当应用进程要访问数据库时,应用程序的进程进程CONNECT时向系统发出请求,系统建立一个对应的DBMS核心进程,并在两个进程间建立通信的管道。
- 问题:
- 当系统访问的应用程序很多时,会导致由过多的DBMS核心进程,会导致电脑的性能变差
- 为了解决此问题,创建线程
- 问题:
- DBMS进程的结构
- 公共空间
- DAEMON
- 监听数据库连接请求的端口号
- 为成功建立连接的应用程序建立DBMS核心线程
- catlog 目录
- 关于数据的数据
- locktable 封锁表
- 用来控制对锁的申请
- buffer
- 缓冲区
- DAEMON
DBMS的物理层实现【访问管理】
- 物理层的主要工作:把对数据库的访问转化成在操作系统层的物理的数据结构的访问
访问类型
查询一个文件的大部分元组
- 判定标准:查询设计的元组数占该关系总元组数的15%以上
- 以15%为标准的原因:硬盘是块设备,数据库存储在硬盘上,以物理块为单位读写,当占了15%,那么要访问该关系的全部的物理块。
查找某条特定元组
查找若干条元组【不超过15%】
范围查询
更新
文件组织
堆文件
- 最常见、最基础的文件组织方式
- 随着数据写入不停向文件尾部写
- 查找方式:顺序扫描
- 适用于:查询一个文件的大部分元组
Hash文件
- 用户在查询时效率更