第12章 数据库管理系统——复习笔记

简介: 第12章 数据库管理系统——复习笔记

第12章 数据库管理系统


复习笔记


一、数据库管理系统(DBMS)的基本功能


DBMS具有如下基本功能:


01数据库定义和创建


创建数据库主要是用数据定义语言DDL定义和创建数据库模式、外模式、内模式等数据库对象。在关系数据库中就是建立数据库(或 Schema)、表、视图、索引等。还有创建用户、安全保密定义(如用户口令、级别、角色、存取权限)、数据库的完整性定义。


02数据组织、存储和管理


DBMS 要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等;要确定以何种文件结构和存取方式在存储器上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率和方便存取,提供多种存取方法(如索引查找、Hash查找、顺序查找等)提高存取效率。


03数据存取


提供用户对数据的操作功能,实现对数据库数据的检索、插入、修改和删除。


04数据库事务管理和运行管理


这是指DBMS运行控制和管理功能。


05数据库的建立和维护


包括数据库的初始建立、数据的转换、数据库的转储和恢复、数据库的重组织和重构造以及性能监测分析等功能。


06其他功能


包括DBMS与网络中其他软件系统的通信功能;一个DBMS与另一个DBMS或文件系统的数据转换功能;异构数据库之间的互访和互操作功能等。


二、数据库管理系统的系统结构


01层次结构


12-1给出一个关系数据库管理系统的层次结构示例。这个层次结构是按照处理对象的不同,依最高级到最低级的次序来划分的,具有普遍性。

c5c3e36d3c8bd9cfc3d164481292aac1_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

12-1 关系数据库管理系统的层次结构

1)应用层

应用层位于关系数据库管理系统的核心之外。应用层处理的对象是各种各样的数据库应用,该层是关系数据库管理系统与用户/应用程序的界面层。

2)语言处理层

语言处理层处理的对象是数据库语言。该层的功能是对数据库语言的各类语句进行语法分析、视图转换、安全性检查、完整性检查、查询优化等;通过对下层基本模块的调用,生成可执行代码。

3)数据存取层

数据存取层处理的对象是单个元组。其功能是把上层的集合操作转换为单记录操作,执行扫描排序、元组的查找、插入、修改、删除、封锁等基本操作,完成数据记录的存取、存取路径维护、事务管理、并发控制和恢复等工作。

4)数据存储层

数据存储层处理的对象是数据页和系统缓冲区。其功能是执行文件的逻辑打开、关闭、读页、写页、缓冲区读和写、页面淘汰等操作,完成缓冲区管理、内外存交换、外存的数据管理等功能。

5)操作系统

操作系统是RDBMS的基础。操作系统处理的对象是数据文件的物理块。其功能是执行物理文件的读写操作,保证RDBMS对数据逻辑上的读写真实地映射到物理文件上。操作系统提供的存取原语和基本的存取方法通常作为和RDBMS存储层的接口。


02关系数据库管理系统的运行过程


RDBMS是一个复杂而有序的整体,应该用动态的观点看待RDBMS各个功能模块。如图12-2所示是RDBMS 读取数据库中数据的过程。整个RDBMS各层模块互相配合、互相依赖共同完成对数据库的操纵。

f5958f965fc1e6854aa3da296940649f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

12-2 关系数据库管理系统的运行过程


三、语言处理层


01任务和工作步骤


1)任务

语言处理层的任务就是把用户在各种方式下提交给关系数据库管理系统的数据库语句转换成对关系数据库管理系统内层可执行的基本存取模块的调用序列。

2)数据库语言

数据库语言通常包括数据定义语言、数据操纵语言和数据控制语言三部分。数据定义语句的处理相对独立和简单,数据操纵语句和数据控制语句则较为复杂。

3)数据操纵语句处理

对数据操纵语句,语言处理层要做的工作比较多,图12-3给出了关系数据库管理系统中数据操纵语句处理过程的示意。

10ef56c8ed65d4e61f531c30a878911d_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

12-3 束缚过程


02解释方法


1)内容

解释执行方法的具体做法是直到执行前,数据库操纵语句都以原始字符串的形式保存:当执行到该语句时,才利用解释程序去完成全部过程,同时予以执行。这种方法通过尽量推迟束缚过程来赢得数据独立性。

2)优点

解释方法具有灵活、应变性强的优点,甚至能适应在解释过程中发生的数据结构、存储结构等的变化,因此能保持较高的数据独立性。

3)缺点

由于每次执行一个DML语句时都要执行所有步骤,尤其当这样的语句位于一个循环体内时,就要多次重复解释一个DML语句,开销会很大,因此效率比较低。


03编译方法


1)内容

预编译方法的基本思想是:在用户提交DML语句之后,在运行之前对它进行翻译处理,保存产生好的可执行代码。当需要运行时,取出保存的可执行代码加以执行。

2)优点

自动重编译技术使得预编译方法既拥有了编译时进行束缚所带来的高效率,又具备了执行时束缚带来的数据独立性。

3)缺点

使用预编译方法会遇到这样的问题:在束缚过程中进行优化所依据的条件可能在运行前已不存在,或者数据库结构已被修改,因而导致已作出的应用规划在执行时不再有效。


四、数据存取层


数据存取层介于语言处理层和数据存储层之间。它向上提供单元组接口,即导航式的一次一个元组的存取操作;向下则以系统缓冲区的存储器接口作为实现基础。


01任务


存取层的任务主要包括:

1)提供一次一个元组的查找、插入、删除、修改等基本操作。

2)提供元组查找所循的存取路径以及对存取路径的维护操作,如对索引记录的查找、插入、删除、修改。若索引是采用B+树,则应提供B+树的建立、查找、插入、删除、修改等功能。

3)对记录和存取路径的封锁、解锁操作。

4)日志文件的登记和读取操作。

5)其他辅助操作,如扫描、合并/排序,其操作对象有关系、有序表、索引等。

为了完成上述功能,通常把数据存取层又划分为若干功能子系统加以实现。


02数据存取层的系统结构


1)记录存取、事务管理子系统;

2)控制信息管理模块;

3)排序/合并子系统;

4)存取路径维护子系统;

5)封锁子系统,执行并发控制;

6)日志登记子系统,用以执行恢复任务。


03数据存取层的功能子系统


1)记录存取、事务管理子系统

记录存取子系统提供按某个属性值直接取一个元组和顺序取一个元组的存取原语。这种存取运算是按已选定的某个逻辑存取路径进行的,如某个数据文件或某个索引。

事务管理子系统提供定义和控制事务的操作。

2)日志登记子系统

日志登记子系统和事务管理子系统紧密配合,完成 RDBMS对事务和数据库的恢复任务,它把事务开始、回滚、提交;对元组的插入、删除、修改;对索引记录的插入、删除、修改等。每一个操作作为一个日志记录存入日志文件中。当事务或系统软、硬件发生故障时利用日志文件执行恢复。

3)控制信息管理模块

利用专门的数据区(内存中)登记不同记录类型以及不同存取路径的说明信息(取自数据字典)和控制信息。这些信息是存取元组和管理事务的依据。它和事务管理、记录存取子系统一起保证事务的正常运行。该模块提供对数据字典中说明信息的读取、增加、删除和修改操作。

4)排序/合并子系统

排序/合并子系统实现输出有序结果,删去重复值,动态建立索引结构,减少数据块的存取次数等功能。

5)存取路径维护子系统

对数据执行插入、删除、修改操作的同时要对相应的存取路径进行维护。

6)封锁子系统

封锁子系统完成并发控制功能。


五、缓冲区管理


01设立缓冲区的原因


1)隔离外存设备与存储层以上各系统,保证DBMS具有设备独立性。

2)减少内外存交换的次数,提高存取效率。


02缓冲区构成


缓冲区由控制信息和若干定长页面组成。

1)缓冲区管理模块向上层提供的操作是缓冲区的读、写。

2)缓冲区内部的管理操作有:查找页、申请页、淘汰页。

3)缓冲区管理调用操作系统的操作有:读、写。


03主要算法


缓冲区管理中主要算法是淘汰算法和查找算法。查找算法用来确定所请求的页是否在内存,可采用顺序扫描、折半查找、Hash查找算法等。


六、数据库的物理组织


01数据库组织标准


衡量数据库组织是否适宜的标准包括两方面:

1)存储效率高,节省存储空间;

2)存取速度快,代价小。


02数据库系统与文件系统的区别和联系


1)数据库系统是文件系统的发展;

2)文件系统中每个文件存储同质实体的数据,各文件是孤立的,没有体现实体之间的联系;

3)数据库系统中数据的物理组织必须体现实体之间的联系,支持数据库的逻辑结构。


03数据字典的组织


有关数据的描述存储在数据库的数据字典中。数据字典的特点是数据量比较小、使用频繁,因为任何数据库操作都要参照数据字典的内容。数据字典按不同的内容在逻辑上组织为若干张表,在物理上就对应若干文件而不是一个文件。由于每个文件中存放数据量不大,可简单地用顺序文件来组织。


04数据和数据联系的组织


(1)文件结构类型

操作系统提供的常用文件结构有:顺序文件、索引文件、索引顺序文件、Hash文件(杂凑文件)和B树类文件等。

(2)关系数据库组织方式

在关系数据库中,实体及实体之间的联系都用一种数据结构——“表”来表示。在数据库的物理组织中,每一个表通常对应一种文件结构。因此数据和数据之间的联系两者组织方式相同。


05存取路径的组织


(1)在网状和层次数据库中,存取路径是用数据之间的联系来表示的,因此已与数据结合并固定下来。

(2)关系数据库中,存取路径和数据是分离的,对用户是隐蔽的。存取路径可以动态建立、删除。关系数据库中存取路径的建立是十分灵活的。



相关实践学习
MySQL数据库快速部署实践
本场景主要介绍如何在一台配置了CentOS 7.7版本的ECS实例(云服务器)上安装mysql,执行mysql的常用操作,学习基本的SQL语句。
相关文章
|
8月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
749 79
|
11月前
|
前端开发 数据库
会议室管理系统源码(含数据库脚本)
会议室管理系统源码(含数据库脚本)
194 0
|
6月前
|
安全 关系型数据库 数据管理
阿里云数据库:构建高性能与安全的数据管理系统
阿里云数据库提供RDS、PolarDB、Tair等核心产品,具备高可用、弹性扩展、安全合规及智能运维等技术优势,广泛应用于电商、游戏、金融等行业,助力企业高效管理数据,提升业务连续性与竞争力。
|
8月前
|
SQL 监控 安全
数据库安全审计系统
Next-DBM数据库审计系统助力企业解决数据安全难题,提供统一身份管理、全方位监控、智能风险识别、完整审计追溯及精细化权限管控,有效防范数据泄露与内部威胁,保障企业核心资产安全,满足合规要求,提升运维效率。
|
11月前
|
Java 数据库
jsp CRM客户管理系统(含数据库脚本以及文档)
jsp CRM客户管理系统(含数据库脚本以及文档)
222 10
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
475 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
12月前
|
前端开发 Java 关系型数据库
基于ssm的社区物业管理系统,附源码+数据库+论文+任务书
社区物业管理系统采用B/S架构,基于Java语言开发,使用MySQL数据库。系统涵盖个人中心、用户管理、楼盘管理、收费管理、停车登记、报修与投诉管理等功能模块,方便管理员及用户操作。前端采用Vue、HTML、JavaScript等技术,后端使用SSM框架。系统支持远程安装调试,确保顺利运行。提供演示视频和详细文档截图,帮助用户快速上手。
482 17
|
12月前
|
前端开发 Java 关系型数据库
基于ssm的超市会员(积分)管理系统,附源码+数据库+论文,包安装调试
本项目为简单内容浏览和信息处理系统,具备管理员和员工权限。管理员可管理会员、员工、商品及积分记录,员工则负责积分、商品信息和兑换管理。技术框架采用Java编程语言,B/S架构,前端使用Vue+JSP+JavaScript+Css+LayUI,后端为SSM框架,数据库为MySQL。运行环境为Windows,JDK8+Tomcat8.5,非前后端分离的Maven项目。提供演示视频和详细文档,购买后支持免费远程安装调试。
556 19
|
人工智能 JavaScript 安全
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
643 13
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
|
12月前
|
前端开发 JavaScript Java
[Java计算机毕设]基于ssm的OA办公管理系统的设计与实现,附源码+数据库+论文+开题,包安装调试
OA办公管理系统是一款基于Java和SSM框架开发的B/S架构应用,适用于Windows系统。项目包含管理员、项目管理人员和普通用户三种角色,分别负责系统管理、请假审批、图书借阅等日常办公事务。系统使用Vue、HTML、JavaScript、CSS和LayUI构建前端,后端采用SSM框架,数据库为MySQL,共24张表。提供完整演示视频和详细文档截图,支持远程安装调试,确保顺利运行。
471 17

热门文章

最新文章