没有合适的资源?快使用搜索试试~ 我知道了~
计算机四级数据库复习笔记(二).pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 102 浏览量
2021-10-11
17:20:48
上传
评论
收藏 425KB PDF 举报
温馨提示
试读
40页
计算机技术
资源推荐
资源详情
资源评论
第六章 存储技术与数据库物理设计
6.1 文件组织
6.1.1 数据库的物理结构
1、 数据库中的应用数据是以文件形式存储在外存上的,文件在逻辑上被组织成记录
的序列,即每个 DB 文件可看作是逻辑记录的集合 ;
2、 一个文件在磁盘上占有一定的物理存储空间,文件中的每个逻辑记录被映射存储
到某个特定的磁盘块上,一个文件在物理上可以看作是由存放文件记录的一系列磁盘块组
成,称为物理文件 ;
3、 文件的逻辑记录与磁盘间的映射关系是由操作系统或 DBMS 来管理的,当需要对
一个文件的逻辑记录进行操作时, 先要根据这种映射关系找到该逻辑记录所在的磁盘块, 然
后再进行操作。
4、 从数据库物理结构角度需要解决如下问题:
(1) 文件的组织 ;
(2) 文件的结构 ;
(3) 文件的存取 ;
(4) 索引技术 ;
6.1.2 文件组织
1、 数据库与文件的对应关系
(1) 在外存中,数据库以文件形式组织,文件由逻辑记录组成,记录由多个域组成 ;
(2) 一个关系数据库包括一张或多张关系表,关系表与文件的对应关系有如下方式:
(A) 每张关系表单独用一个文件来存储,由 DBMS 通过 OS 的文件管理功能来管理 ;
(B) 现代中大型 DBMS 是由 OS 直接分配一块大的磁盘空间, DBMS 将该磁盘空间作
为数据库磁盘文件直接管理, DB 的所有关系表都存储在该文件中 ;
(1) 关系表在逻辑上由一系列元组组成,元组由多个属性组成,每个元组可以用磁盘文
件中的一个逻辑记录来存储,记录包括多个域,对应元组的多个属性 ;
2、文件记录格式:
(1) 数据库文件通常采用两种逻辑记录格式:定长记录格式和变长记录格式 ;
6.2 文件结构与存取
6.2.1 堆文件
1、 堆文件也称无序文件,记录随机在存储在文件物理空间是,新插入的记录存储在
文件的末尾 ;
2、 堆文件常常用作存储那些将来使用,但目前不清楚如何使用的记录,为了实现文
件记录的有效存取,堆文件经常与附加的存取路径一起使用 ;
3、 查找操行平均需要搜索 (B+1)/2 个磁盘块,效率比较低 ;
4、 插入操作十分简单,先读文件头,找到最末磁盘地址,将最末磁盘块读入内存,
将需插入的新记录写入磁盘块的末端,最后将修改过的磁盘块写回磁盘 ;
5、 删除比较复杂,可以先找到被删除记录所在的磁盘块,读入内存后在内存缓冲区
删除记录,最后再写回磁盘 ;也可以在每个记录的磁盘空间增加一个删除标志位,当需要删
除记录时,将标示位置 1;
6.2.2 顺序文件
1、 顺序文件按照文件记录在查询码上的取值的大小顺序排列各个记录 ;
2、 顺序文件的每个记录中有一个指针字段,根据查询码大小用指针将各个记录按序
连接起来 ;
3、 文件建立时,应尽量使记录的物理顺序与查找码的顺序一致,以减少访问磁盘块
的次数 ;
4、 根据查询条件对顺序文件进行查询时,如查询条件定义在查找码上,则使用二分
法查找技术快速找到记录, 如条件不在查找码上, 则必须从头到尾依次扫描磁盘块, 与堆文
件一致,所以顺序文件的访问效率也不高 ;
5、 顺序文件插入工作包括定位和插入:
(1) 定位:在指针链中找到插入的位置,即插入记录在哪个记录的前面 ;
(2) 插入:如有自由空间,则在该位置插入新记录,如没有自由空间,则只能插入溢出
块中,重新调整记录指针链关系,保证记录顺序 ;
6.2.3 聚集文件
1、 聚集文件是一种具有多种记录类型文件,存储了来自多个关系表的数据,每个关
系表对应文件中的一种记录类型 ;
2、 当数据库中数据量效大时,对数据库查询需要多次访问磁盘文件,严重影响性能
指标,为了降低多表操作时的磁盘访问次数,提高多表查询速度,可采用聚集文件 ;
3、 聚集文件将不同关系表中有关联关系的记录存储在同一磁盘块内,从而减少多表
查询时磁盘块的访问次数,提高处理速度 ;
6.2.4 索引文件
是一种利用索引技术技术快速文件访问的文件组织和存取方法 ;
6.2.5 散列文件
是一种利用散列函数支持快速文件访问的文件组织和存取方法。
6.3 索引技术
6.3.1 基本概念
1、 索引技术: 是一种快速文件访问技术, 它将一个文件的每个记录在某个或某些域 (属
性)上的取值与该记录的物理地址直接联系起来,提供了一种根据记录域的取值快速访问文
件记录的机制 ;它的关键是建立取值域到记录的物理地址刘的映射关系,这种映射关系叫索
引;
2、 索引技术分类:
(1) 有序索引技术:利用索引文件实现记录域 (查找码 )取值到记录物理地址间的映射关
系,索引文件由索引记录组成, 每个记录中记载一个索引项, 索引项记录了某个特定的查找
码值和具有该值的数据文件记录的物理地址 ;
(2) 散列技术:利用一个散列函数实现记录域取值到记录物理地址间的直接映射关系 ;
(3) 有序索引: 有序索引作为基于索引文件的索引技术, 需要考虑两个问题: (1)如何组
织索引文件中的索引记录 ;(2) 如何从索引文件出发,访问数据文件中的数据记录 ;
(A) 当需要采用有序索引机制快速访问数据文件时, 首先要为该数据文件建立一个索引
文件,它是索引记录和索引项的集合 ;
(B) 索引文件建立的方法: 首先选定某些记录域作为查找码, 然后建立数据记录在查找
码上的取值与物理地址间的映射关系, 组成索引项。 所有索引项作为索引记录存储在索引文
件中,索引文件根据某个特定的查找码值的顺序组织为顺序文件 ;
(C) 一个数据文件可以有多个查找码和索引文件 ;
6.3.2 有序索引的分类及特点
1、 聚集索引与非聚集索引
(1) 对数据文件和它的一个特定的索引文件, 如果数据文件中数据记录的排列顺序与索
引文件中索引项的排列顺序相一致,则该索引文件称为聚集索引,否则称为非聚集索引 ;
(2) 在一个数据文件上除了建立一个聚集索引外,还可建立多个非聚集索引 ;
2、 稠密索引和稀疏索引
如果数据文件中的每个查找码都在索引文件中都对应一个索引记录, 称为稠密索引, 如
果只一部分对应,则称为稀疏索引 ;
3、 主索引和辅索引
在数据文件包含主码的属性集上建立索引称为主索引, 在非主码属性上建立的索引称为
辅索引 ;
4、单层索引和多层索引
(1) 单层索引 (线性索引 ):索引项根据键值在索引文件中顺序排列,组织成一维线性结
构,每个索引项直接指向数据文件中的数据记录 ;
(2) 当数据文件很大时,即使采用稀疏索引,建成的索引文件也很大,导致效率低下,
为解决该问题,可对索引文件中的索引项本身再建立一级稀疏索引,组成 2 层索引结构 ;进
一步地,可建立多层树型索引结构来快速定位 ;
6.4 散列技术
6.4.1 散列文件
1、 散列是一种快速查找技术,它利用定义在文件记录上的查找码,通过计算一个散
列函数,以散列函数值作为记录的物理地址,实现对文件记录直接快速访问。
2、 首先指定文件记录的一个域作为查找码 (散列域 ),然后定义一个查找码上的函数 (散
列函数 ),函数的输入为查找码值,输出为物理地址 ;
3、 一般使用桶作为基本的存储单位,一个桶可存放多个文件记录,物理地址可以是
记录所在的桶号,散列函数的输出可以是桶号 ;
6.4.2 散列函数
1、 散列方法依赖于好的散列函数,它应该尽可能均匀地将查找码分布到各个桶中,
具体要满足如下两个条件:
(1) 地址的分布是均匀的 ;
(2) 地址的分布是随机的 ;
6.4.3 桶溢出
1、 产生桶溢出的两个原因:
(1) 文件初始设计时,为文件记录预留的存储空间不足 ;
(2) 散列函数的均匀分布性不好 ;
2、 设计散列函数时,应根据文件大小决定物理空间,一般应有 20% 余量,再设计合
适的桶数目和桶大小,尽可能留有一些空闲桶,降低桶溢出的可能性 ;
3、 桶溢出的现象是难免的,需要 DBS 采用相应的桶溢出处理机制 ;
4、 散列方法的缺点:为了避免桶溢出。必须选一合适的散列函数,但这比较复杂,
而且不象索引文件那样可以据数据记录变化动态调整。
6.5 数据字典
1、 数据字典 (系统目录 )中存储了数据库对象的各类描述信息和 DBMS 所需的控制信
息,全称数据库元数据 ;
2、 数据库对象的各类描述信息:包括外模式、模式、内模式以及它们之间的映射的
描述 ;
3、 DBMS 所需的控制信息:包括查询优化、安全性检查、用户权限验证等 ;
4、 数据字典主要包括:
(1) 关系模式信息 ;
(2) 与视图描述有关的信息 ;
(3) 关系的存储结构和存取方法信息 ;
(4) 完整性约束信息 ;
(5) 安全性有关信息 ;
(6) 数据库运行统计信息。
6.6 数据库物理设计
6.6.1 设计步骤和内容
1、 数据库物理结构设计:在具体的硬件环境、 OS 、DBMS 约束下,根据数据库逻辑
设计结果, 设计合适的数据库物理结构。 目标是存储空间占用少、 访问效率高和维护代价低 ;
2、 一旦选定了硬件平台、 OS 和 DBMS ,数据库的数据存储和存取方式等可用的物理
模式也就随之确定了 ;
3、 数据库物理设计主要包括以下步骤:
(1) 数据库逻辑模式调整:将数据库逻辑模式及其视图转换为 DBMS 支持的基本表和
视图,并利用 DBMS 提供的完整性机制设计业务规则 ;
(2) 文件组织与存取设计:配置基本表的文件组织形式,据实际情况为基本表设计合适
的存取方法和路径 ;
(3) 数据分布设计:
(4) 安全模式设计:
(5) 确定系统配置:
(6) 物理模式评估:
6.6.2 数据库逻辑模式调整
1、 物理数据库设计首先需要根据数据库逻辑结构信息,设计目标 DBMS 平台支持的
基本表的模式信息, 这些模式信息代表了所要开发的具体目标数据库的结构, 这个过程称为
数据库逻辑模式调整,主要包括如下设计内容:
(1) 实现目标数据库基本表和视图:采用目标 DBMS 所支持的建表方法,设计基本表
及其面向模型的完整性约束 ;
(2) 设计基本表业务规则 ;
6.6.3 DB 文件组织与存取设计
1、分析事务的数据访问特性
(1) 使用事务 -基本表交叉引用矩阵,分析系统内数据库事务对各个基本表的访问情况,
确定事务访问了哪些基本表, 对这些基本表执行了何种操作, 并进一步分析各操作涉及到的
基本表属性 ;
(2) 估计各事务的执行频率 ;
(3) 对每张基本表,汇总所有作用于该表上的各事务的操作频率信息 ;
2、 了解并选择数据库文件结构
(1) 如果数据库中的一个基本表中的数据量很少,并且操作非常频繁,该基本表可采用
堆文件组织方式 ;
(2) 顺序文件支持基于查找码的顺序访问,也支持快速二分查找 ;
(3) 如果用户查询是基于散列域值的等值匹配,特别是如果访问顺序是随机的,散列文
件比较合适。但散列文件组织不适合以下情况:
(A) 基于散列值域的非精确查询 ;
(B) 基于非散列域进行查询时 ;
(4) B- 树和 B+树文件是实际数据库系统中使用非常广泛的索引文件结构, 适合于定义在
大数据量基本表上、基于查找码的等值查询等 ;
(5) 如果某此重要而频繁的用户查询经常需要进行多表连接操作, 可考虑将这些基本表
组织为聚集文件 ;
3、 设计存取路径:
(1) 为数据库文件设计合理的物理存储位置 ;
(2) 为基本表设计索引机制:索引可以提高文件存取速度,改善访问性能,但索引由
DBMS 管理,它的建立、维护需要一定的系统开销,数据的操作会引起索引的重新调整,
还占用一定的存储空间,可根据如下原则决定是否为一个基本表建立索引:
(A) 对于经常需要查询、连接、统计操作,且数据量大的基本表可考虑建立索引,而对
于经常执行插入、删除、更新操作或小数据量的基本表应尽量不建立索引 ;
(B) 一个基本表上除了可以建立一个聚集索引外, 还可以建立多个非聚集索引, 但索引
越多,对表内数据更新所需的开销越大,对于一个更新频繁的表应少建或不建索引 ;
(C) 索引可以由用户根据需要随时创建或删除,以提高数据查询性能 ;
6.6.4 数据分布设计
1、不同类型数据的物理分布
剩余39页未读,继续阅读
资源评论
nidezlk
- 粉丝: 1
- 资源: 11万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功