数据库系统基础

上传人:飞*** 文档编号:5455756 上传时间:2017-11-13 格式:PPT 页数:108 大小:1.72MB
返回 下载 相关 举报
数据库系统基础_第1页
第1页 / 共108页
数据库系统基础_第2页
第2页 / 共108页
数据库系统基础_第3页
第3页 / 共108页
数据库系统基础_第4页
第4页 / 共108页
数据库系统基础_第5页
第5页 / 共108页
点击查看更多>>
资源描述

《数据库系统基础》由会员分享,可在线阅读,更多相关《数据库系统基础(108页珍藏版)》请在金锄头文库上搜索。

1、数据库系统基础 数据库系统概述 数据库的优点 1) 持久存储 。与文件系统类似, D B M S支持对非常大量的数据进行存储,这些数据独立于使用数据的任何处理程序而存在。然而, D B M S在提供灵活性方面比文件系统做得更好,例如,它提供支持对非常大量的数据进行高效存取的数据结构。 2) 编程接口 。 D B M S使得用户能够通过强有力的查询语言访问和修改数据。 D B M S在数据操纵的灵活性方面也比文件系统强。与文件读写相比, D B M S提供的对存储的数据进行操作的方式要复杂得多。 3) 事务管理 。 D B M S支持对数据的并发存取,即多个不同的进程(称作“事务”)同时对数据进

2、行存取。为避免同时访问所造成的不良后果, D B M S支持隔离,即看起来事务是一次一个地在执行,以及原子性,即要求事务或者完全执行;或者完全不执行。 D B M S还支持可恢复性,即能够从多种类型的故障或错误中恢复的能力。 术语 数据 :值得保留的任何信息,一般是电子形式的。 数据库 :为了访问和修改而组织的、在长时期内保留的数据的集合。 查询 :从数据库中抽取特定数据的操作。 关系 :将数据组织到二维表中的组织方式,表中的行(元组)表示基本的实体或某种事实,表中的列(属性)表示实体的特性。 模式 :数据库中数据结构的描述,通常称作“元数据” 自制数据库系统 Megatron 2000数据库

3、系统(虚构) 特点:采用关系方法,支持 S Q L语言 数据存储:采用文件系统来存储它的关系 关系 students(name, id,dept )存储为一个单独的文件 ,位于 / u s r / d b / s t u d e n t s.db 表结构文件为 s c h e m a 实现方式:数据的存储,表结构的存储 执行查询 查询结果 执行查询的实现细节 考 虑 数据库管理系统将 做下列事情: 1) 读表结构文 件 s c h e m a,以确定关系 R中有哪些属性,以及它们的类型。 2) 检查 对于关系 R的语义合法性。 3) 显示每一个属性的名字作为列的 头。 4) 读名字为 R的文件

4、,对于每一行: ( a)检查是否符合条件; ( b)若符合条件,则显示该行为一个元组。 更复杂的查询 这个查询要求对关系 S t u d e n t s和 D e p t s进行“连接”。即系统必须逐个考虑 从两个关系中各取一个元组所组成的每一对元组,并检验是否满足下列条件: a)这两个元组表示相同的系; b)学生的名字是 S m i t h。 该算法可以非形式化地描述如下: 虚构的数据库系统存在的问题: 数据维护困难 ,缺乏对数据库进行修改时所需的灵活性。例如,如果我们在一个 S t u d e n t s元组中将 E E改为 E C O N,整个文件都需要重写,因为后续的每一个字符都需要在

5、文件中后移两个位置。 查找代价 太高。即使查询要求给了我们一个值或一组值,我们也总是需要读入整个关系。在例子中,我们必须查看整个的 S t u d e n t s关系,即使我们所要的只是学生 S m i t h的元组。 查询处理 效率太低,实际上不必遍历两个关系的每一对元组。 没有在 主存储器中缓存 有用的数据,所有的数据都来自硬盘, I/O消耗时间多。 没有 并发控制 。几个用户可以同时修改同一个文件,从而导致不可预期的结果。 没有 可靠性 。发生故障时可能丢失数据,或者会有半途而废的操作。 安全性 差。假定作为基础的操作系统以某种粗粒度的方式进行存取控制。例如,对于不同的用户,或者允许或者

6、禁止他对于存放给定关系的文件进行存取,但是不能够做到对于一个用户,允许他访问一个关系中的某些属性,而不允许他访问其他属性 一个完整的 D B M S的结构 单线框表示系统成分 双线框表示内存数据结构 实线指明控制和数据流 虚线指明仅是数据流。 D B M S两个不同的命令来源: 1) 普通用户和应用程序,他们要求对数据进行访问或修改。 2) 数据库管理员:负责建立数据库的结构或模式的一个人或一组人。 查询处理概述 D B A具有特殊的权限,可执行模式修改命令( D D L命令, data-definition language,数据定义语言)由 D D L处理程序进行分析,然后传给执行引擎。由

7、执行引擎经过索引 /文件 /记录管理器,去改变元数据,即数据库的模式信息。 用户活动可能沿着下面两条路径影响数据库: 1) 查询响应 。 由 查询编译器 对查询进行分析和优化。 得到的 查询计划 ,或为了回答查询而要采取的动作序列被传给执行引擎。 执行引擎 向资源管理器发出一系列对于小的数据单元(通常是记录或关系的元组)的请求。 资源管理器 掌握着(存放关系的)数据文件,文件中的数据格式和记录大小,以及支持对于数据文件中的元素进行快速查找的索引文件。 查找数据的请求被翻译成对页面的请求,请求被传送给 缓冲区管理器 。 缓冲区管理器的的任务是从持久地存储数据的辅助存储器(通常是磁盘)中将数据的适

8、当部分取到主存的缓冲区中。通常,缓冲区和磁盘间的传输单位是页或“磁盘块” 缓冲区管理器和存储管理器进行通信,以从磁盘获取数据。 存储管理器通过操作系统命令或者直接发命令给磁盘控制器。 2) 事务处理 。 事务 是组成一组的若干个查询和其他动作,是必须作为一个原子被孤立地执行的单位。通常, 每一个查询或修改动作自身就是一个事务 。另外,事务的执行必须是持久的,即任何已完成的事务的影响必须保留下来,即使事务刚一完成系统马上就发生了某种故障。我们将事务处理器分成两个主要部分: (a) 并发控制管理器,(或调度器),负责保证事务的原子性和孤立性。 (b) 日志和恢复管理器,负责事务的持久性。 主存缓冲

9、区和缓冲区管理器 数据库中的数据通常驻留在第二级存储器(磁盘)中 数据必须在主存储器(内存)中,才能对数据进行有用的操作。 缓冲区管理器:负责将可利用的主存空间分割成缓冲区。 缓冲区与页面同等大小,磁盘块的内容可以传送到缓冲区中。 D B M S信息类型: 1) 数据:数据库自身的内容。 2) 元数据:描述数据库的结构和对数据库的约束的数据库模式。 3) 统计信息: D B M S收集和存储的关于数据库中各个关系或其他成分的大小、取值等的信息。 4) 索引:支持对数据进行高效存取的数据结构。 事务处理 事务:一个或多个数据库操作组成一组 事务的 A C I D特性 “A”表示“原子性”( A

10、t o m i c i t y),即事务完全执行或完全不执行。 “I”表示“隔离”( I s o l a t i o n),即表面看起来每一个事务都是在没有其他事务同时执行的情况下执行的。 “D”表示“持久性”( D u r a b i l i t y),即一旦事务完成了,则事务对数据库的影响就不会丢失。 “ C”表示“一致性”( C o n s i s t e n c y)。即,所有的数据库都有一致性约束,或关于数据之间联系的预期状况(例如,某属性是码,学生不能同时修 8门以上课程,等等)。 事务管理器 :从应用系统接受事务命令,安排事务运行,反馈事务信息 事务处理器执行下列任务: 1) 日

11、志记录 :为了保证持久性,对于数据库的每一个变化都在磁盘上登记日志。日志管理器能保证,不管在什么时候系统发生故障或“崩溃”,恢复管理器都能察看关于数据库变化的日志,并将数据库恢复到某个 一致的状态 。日志管理器将日志写到缓冲区中,然后它与缓冲区管理器协调,保证在适当的时候将缓冲区写到磁盘中(磁盘中的数据不受系统崩溃的影响)。 2) 并发控制 :事务的执行从表面上看必须是孤立的。调度器(并发控制管理器)保证多个事务的每个动作以一种适当的顺序执行,从而使得最终的结果与这些事务一个执行完了再执行下一个的实际结果相同。调度器通过在数据库的某些部分上维护若干个锁来进行它的工作。 3) 死锁解决 :当事务

12、之间通过调度器所授予的锁进行资源竟争时,可能会进入死锁情况:没有任何一个事务能够进行下去,因为每一个事务都需要另一个事务所持有的某个资源。事务管理器取消(“中止”)一个或多个事务,从而使其他的事务能进行下去 查询处理器 查询处理器表示为两个部分: 1) 查询编译器 ,它将查询翻译成一种内部形式,称作 查询计划 。查询计划是要在数据上执行的一系列操作。通常,查询计划中的操作是“关系代数”的实现。 查询编译器包括三个主要部分: (a) 查询分析器 ,它由文本形式的查询出发,建立一个树结构。( RPN) (b) 查询预处理器 ,它对查询进行语义检查(例如,检查查询中所提到的关系是否都确实存 在),并

13、进行某些树结构转换,将分析树转换为表示最初的查询计划的代数操作符树。 (c) 查询优化器 ,它将最初的查询计划转换为对于实际数据的最有效的操作序列。 查询编译器利用元数据和关于数据的统计数据来确定哪一个操作序列可能是最快的。 2) 执行引擎 ,它负责执行选中的查询计划中的每一步。 和缓冲区交互:为了对数据进行操作,必须从数据库取得数据并放到缓冲区中。 和调度器进行交互:以避免访问被加了锁的数据 和日志管理器进行交互:确保对于数据库的所有修改都正确地记了日志。 数据库模型 关系 是元组的集 合 元 组 是值的列表 。 列 标题称作 属性 ,表示元组中每一个分量的含义 。 关 系名和属性名以及属性

14、类型 称作 该关系的 模式 。(如右下图) 数据库模式 是关系模式的集 合 视 图 :不 实际存储,但在需要时从实际存储的 关系构造出来的关系的描述。 存储器层次 高速缓冲存储器( c a c h e,简称高速缓存)。 高速缓存是一种集成电路(“芯片”),或者是处理器芯片的一部分,它能存放数据或机器指令。 高速缓存中的数据(包括指令)是主存储器中特定位置的数据的副本, 高速缓存通常分为两级:单板高速缓存位于作为微处理器本身的同一芯片上,二级高速缓存位于另一个芯片。 当机器执行指令时,它在高速缓存中寻找指令以及那些指令要使用的数据。 如果在高速缓存中找不到这些指令和数据,它就要到主存中去寻找,并

15、将它们拷贝到高速缓存中去。由于高速缓存中只能保留有限数量的数据,通常必须将高速缓存中某些内容移出去,以便接纳新的数据。 如果被移出高速缓存的内容自从它被复制到高速缓存以来一直没有改变,就不需要再做任何事情。 如果要从高速缓存移出的数据已经被修改,那么新的值必须拷贝到它在主存中原先的位置。 当高速缓存中的数据被修改时,只有单个处理器的简单计算机不需要立即更新主存中相应位置的数据。 在多处理器系统中,允许多个处理器访问相同的内存,并且各处理器拥有它们各自的高速缓存。在这种情况下,需要直写( write through)即立即修改主存中相应的位置。 高速缓存与处理器之间数据的读写可以以处理器指令的速度执行,通常为 1 0纳秒在高速缓存与主存之间移动一条指令或一个数据项需 1 0 0纳秒 主存储器 主 存是随机访问的 ,在 同一的时间内可获得任

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号