RDBMS的物理组织.ppt
《RDBMS的物理组织.ppt》由会员分享,可在线阅读,更多相关《RDBMS的物理组织.ppt(277页珍藏版)》请在三一办公上搜索。
1、1,第二章 RDBMS的物理组织,2,第二章 RDBMS的物理组织,2.1 存储介质2.2 存储方式2.3 数据表示方法2.4 数据组织方式2.5 索引组织方式2.6 ORACLE和TeraData的数据库结构和体系结构,3,2.1 存储介质,几类存储器高速缓冲存储器(cache)主存储器(main memory)快擦写存储器(flash memory)磁盘存储器(magnetic-disk storage)光存储器(optical storage)磁带存储器(tape storage),4,5,第二章 RDBMS的物理组织,2.1 存储介质2.2 存储方式2.3 数据表示方法2.4 数据组织
2、方式2.5 索引组织方式2.6 ORACLE和TeraData的数据库结构和体系结构,6,2.2 存储方式,以文件方式存储一个对象对应一个文件存储管理交由OS整个DB对应一个或若干个文件由RDBMS进行存储管理,7,存储方式,大型RDBMS的存储方式DB通常被划分成更小的单位,例如段(Segment或Area),以增加灵活性整个DB对应一个或若干个文件,由DBMS进行存储管理不同RDBMS划分方法不同示例:ORACLE,8,示例:ORACLE的存储方式,表空间(逻辑设备)对应磁盘上一个或多个物理数据文件可以有多个表空间,逻辑地和物理地组织数据库中的数据存储。系统表空间、联机表空间、脱机表空间、
3、永久表空间、临时表空间数据文件,9,段由多个区间组成。数据段、索引段、LONG段、回滚段、临时段等 区间由一组连续的数据块组成数据块ORACLE数据库的磁盘存取单元数据块的大小必须等于服务器操作系统块的大小或倍数,10,大型RDBMS的存储方式,划分数据库的好处:便于将数据库按联机存储和脱机存储来划分便于动态地、模块地分配不同类型的存储区便于数据的物理恢复便于有效地封锁便于处理数据安全,11,第二章 RDBMS的物理组织,2.1 存储介质2.2 存储方式2.3 数据表示方法2.4 数据组织方式2.5 索引组织方式2.6 ORACLE的数据库结构和体系结构,12,To represent:,In
4、teger(short):2 bytese.g.,35 is,00000000,00100011,Real,floating pointn bits for mantissa,m for exponent.,13,Characters various coding schemes suggested,most popular is ascii,To represent:,Example:A:1000001a:11000015:0110101LF:0001010,14,Booleane.g.,TRUE FALSE,1111 1111,0000 0000,To represent:,Applica
5、tion specifice.g.,RED 1 GREEN 3 BLUE 2 YELLOW 4,15,Datese.g.:-Integer,#days since Jan 1,1900-8 characters,YYYYMMDD-7 characters,YYYYDDDTimee.g.-Integer,seconds since midnight-characters,HHMMSSFF,To represent:,16,String of charactersNull terminatede.g.,Length givene.g.,-Fixed length,3,To represent:,1
6、7,Bag of bits,Length,Bits,To represent:,18,Key Point,Fixed length items Variable length items-usually length given at beginning,19,Type of an item:Tells us how to interpret(plus size if fixed),Also,20,第二章 RDBMS的物理组织,2.1 存储介质2.2 存储方式2.3 数据表示方法2.4 数据组织方式2.5 索引组织方式2.6 ORACLE和TeraData的数据库结构和体系结构,21,2.4
7、数据组织方式,2.4.1 数据组织方法概述2.4.2 记录2.4.3 块2.4.4 增删改记录,22,2.4.1 数据组织方法概述,字段-记录-块-文件,23,2.4 数据组织方式,2.4.1 数据组织方法概述2.4.2 记录2.4.3 块2.4.4 增删改记录,24,2.4.2 记录,主要内容定长记录变长记录,25,1.定长记录,1)定长记录的构造 例:CREATE TABLE MovieStar(Name char(30)primary key,Address varchar(255),Gender char(1),Birthdate date);,26,27,某些机器对内存中数据地址的要
8、求 有些机器可以对内存中地址为4的倍数的字节开始的数据进行更有效的读写(64位处理器时则为8的倍数)在某些机器上,整数等数据类型要求必须从4的倍数的地址处开始在某些机器上,双精度实数要求从8的倍数处开始 运行于这些机器上的DBMS,转换字段在块内的偏移量时必须小心。,28,为简化地址转换,并提高可移植性,可规定每一条记录在块内从4的倍数的字节处开始记录中所有的字段都从与记录偏移量为4的倍数的字节处开始,29,2)记录首部 记录首部信息通常包括以下内容:记录模式记录长度时间戳,30,记录模式通常是指向DBMS中存储该类记录模式的位置(数据字典)的一个指针模式信息 关系的属性属性类型属性在元组中出
9、现的顺序属性或关系自身上的约束(主码、完整性约束等),31,记录长度时间戳指明记录最后一次被修改或被读的时间以及其他可能的信息记录模式,32,2.变长记录,1)具有变长字段的记录(3种表示策略)变长字段前加长度,33,先放定长字段,后放变长字段,34,变长字段单独存放在一个块中,35,2)具有重复字段的记录(3种表示策略)将重复字段放在一起,在记录首部用指针指向每个重复字段的第一次出现。例:对于记录:姓名,地址,出演过的影片指针,36,变长字段及重复字段单独存放在一个块中,37,折衷方案在记录的定长部分预留足够空间,存储下列信息:重复字段合理的出现次数指向可以找到这个重复字段其他出现的地方的指
10、针其他出现的次数,38,3可变格式记录,可变格式记录的用途 不同信息源集成。通过只列出非空字段来节省空间。具有非常灵活的模式的记录。如一条记录的许多字段会重复或根本不出现 实现策略:自描述,39,40,2.4 数据组织方式,2.4.1 数据组织方法概述2.4.2 记录2.4.3 块2.4.4 增删改记录,41,2.4.3 块,主要内容块和记录地址的表示普通记录地址索引结构记录在块中的存储方式BOLB,42,2.4.3 块,主要内容块和记录地址的表示普通记录地址索引结构记录在块中的存储方式BOLB,43,一、块和记录地址的表示,普通记录的地址 索引结构(含指针),44,1.普通记录的地址,两种方
11、式物理地址与逻辑地址分别编址 逻辑地址与物理地址组合,45,(1)物理地址与逻辑地址分别编址,逻辑地址到物理地址的映射:映射表映射表为全程表移动记录和删除记录时不方便,必须修改映射表,46,47,(2)逻辑地址与物理地址组合,是结构化的地址模式 两种组合方式块的物理地址+被访问记录的码值 在每一个块内存储一个偏移量表,48,块的物理地址+被访问记录的码值,使用物理地址部分找到包含所查记录的块,然后检查块内记录以找到具有指定码值的记录查找效率不算好,49,在每一个块内存储一个偏移量表,记录的地址块的物理地址加上该记录在此块的偏移量表项中的偏移量可以在块内移动记录只需改变记录在偏移量表中的表项,指
12、向这条记录的指针仍能找到它。如果偏移量表项足够大,能存储这条记录的“转向地址”,则可以允许记录移到另一块如果记录被删除,可以在偏移量表项中置删除标记,50,51,52,2.索引结构(含指针),问题块在主存与二级存储器之间移动时,如何管理指针 数据库地址:8B左右内存地址:4B方法映射表方法指针混写方法,53,映射表方法,54,映射表方法,优点:记录不被固定在内存缺点:将数据库地址重复转换成内存地址,55,指针混写方法,基本思想 块从第二级存储器移到内存中时,将数据库地址空间转换为虚拟地址空间。因此一个指针包含:一个二进制位,指明指针目前是数据库地址还是混写的内存地址数据库或内存指针示例,56,
13、57,混写指针的策略:根据混写指针的时机 自动混写 按需混写 显式控制,58,1)自动混写,什么是自动混写 块读入内存,即为它的所有指针和地址定位。如果地址A已存在于转换表中,则用相应的内存地址代替刚移进内存中的块中的A,并将“混写”位置1如果A不在转换表中,仍保持为数据库指针检索至指针A时,如果其为数据库指针,则查找转换表,看数据库地址A当前是否有相应的内存地址,有则代替。没有,则将相应块读入内存缓冲区,并用相应内存地址代替A(混写),同时将其放入转换表。,59,自动混写的特点 当块被装载进内存时,即试图快速、有效地混写所有指针。一次混写所有可混写的指针,可能会节省时间其中一些指针可能永远无
14、用,因而浪费时间,60,2)按需混写,什么是按需混写 一个块刚读入内存时,所有指针都保持原样,不混写。但将该块记录的数据库地址与相应的内存地址放入转换表。检索至某个指针A时,将其混写。按需混写的特点 一个块中的指针需要分次混写,可能会浪费时间不需要的指针不必混写,因而能够节约时间,61,3)显式控制,什么是显式控制 某些应用中,应用程序员可能会知道是否会沿某个块中的指针进行检索。因而可由程序员显式控制。,62,2.4.3 块,主要内容块和记录地址的表示普通记录地址索引结构记录在块中的存储方式BOLB,63,二、记录在块中的存储方式,64,(1)unspanned(2)spanned(3)mix
15、ed record types clustering(4)split records,Options for storing records in blocks:,65,records must be within one blockblock 1 block 2.,(1)unspanned,R1,R2,R3,R4,R5,66,Spannedblock 1 block 2.,(2)Spanned,R1,R2,R3(a),R3(b),R6,R5,R4,R7(a),need indicationneed indicationof partial recordof continuation“poin
16、ter”to rest(+from where?),67,Unspanned is much simpler,but may waste spaceSpanned essential if record size block size,Spanned vs.unspanned:,68,Example,106 recordseach of size 2,050 bytes(fixed)block size=4096 bytes,Total wasted=2 x 109 Utiliz=50%Total space=4 x 109,69,Mixed-records of different type
17、s(e.g.EMPLOYEE,DEPT)allowed in same block e.g.,a block,(3)Mixed record types,DEPT,d1,EMP,e1,EMP,e2,70,Why do we want to mix?Answer:CLUSTERING,Records that are frequently accessed together should bein the same block,71,Compromise:,No mixing,but keep relatedrecords in same cylinder.,72,Example,Q1:sele
18、ct A#,C_NAME,C_CITY,from DEPOSIT,CUSTOMERwhere DEPOSIT.C_NAME=CUSTOMER.C.NAME a block,CUSTOMER,NAME=SMITH,DEPOSIT,NAME=SMITH,DEPOSIT,NAME=SMITH,73,If Q1 frequent,clustering goodBut if Q2 frequentQ2:SELECT*FROM CUSTOMERCLUSTERING IS COUNTER PRODUCTIVE,74,Fixed part in one blockTypically forhybrid for
19、matVariable part in another block,(4)Split records,75,2.4.3 块,主要内容块和记录地址的表示普通记录地址索引结构记录在块中的存储方式BOLB,76,三、BLOB,BLOB的存储BLOB的检索,77,BLOB的存储,存储在一系列块中。即跨块存储。将BLOB存储在磁盘的一个或多个柱面上的连续块中将BLOB存储在块的链表中将BLOB进行分割,存储在几个磁盘中,78,BLOB的检索,只检索记录的非BLOB字段一次一个地请求BLOB块,而与记录的其余部分无关。(eg.观看电影)请求BLOB内的部分,而不必接收整个BLOB。这需要合适的索引结构。(
20、eg.观看或收听视频或音频的某个指定片段),79,2.4 数据组织方式,2.4.1 数据组织方法概述2.4.2 记录2.4.3 块2.4.4 增删改记录,80,2.4.4 增删改记录,1插入记录2删除记录3更新记录,81,1插入记录,记录无序找到有空闲空间的块没有,则找一个新块,82,记录顺序存储需要移动记录能在当前块中为插入记录找到空间在块中移动记录调整偏移量表中的表项插入新记录,并填偏移量表在“邻近块”中找空间将当前块的最高记录移到邻近块中,并移动两个块的中记录当有外部指针指向某个跨块移动的记录时,需要在原位置留下一个“转发地址”创建一个溢出块,83,2删除记录,回收空间的方法移动记录,使
21、块中间总有一个未用空间在块首部维护一个可用空间列表去除溢出块悬挂指针问题,84,Dangling pointers,Concern with deletions,R1,?,85,Physical Ids(对于偏移量表方式),A blockThis spaceThis space cannever re-used be re-used,Leave“MARK”in map or old location,86,Logical Ids(对于映射表方式),Leave“MARK”in map or old location,87,3更新记录,更新定长记录对存储系统无影响,88,更新变长记录 新记录比旧记
22、录长 移动记录创建溢出块 新记录比旧记录短 合并空闲空间去除溢出块,89,第二章 RDBMS的物理组织,2.1 存储介质2.2 存储方式2.3 数据表示方法2.4 数据组织方式2.5 索引组织方式2.6 ORACLE和TeraData的数据库结构和体系结构,90,2.5 索引组织方式,索引的好外索引块数量通常比数据块数量少得多可以有有效的方法查找索引(普通索引:二分查找;树形索引:从根到叶;HASH索引:直接计算)索引文件可能足够小,可以永久地存放在内存缓冲区中,从而减少I/O操作,91,几类索引方法排序文件上的简单索引非排序文件上的辅助索引B树及其变种HASH 多属性索引,92,2.5 索引
23、组织方式,2.5.1 顺序文件上的索引2.5.2 辅助索引2.5.3 B树及其变种2.5.4 HASH文件2.5.5 多属性索引,93,2.5.1 顺序文件上的索引,主要内容稠密索引稀疏索引多级索引取重复值属性上的索引索引维护,94,1.稠密索引,什么是稠密索引索引块中存放每条记录的码以及指向记录本身的指针,95,Sequential File,示例,96,Sequential File,Dense Index,示例,97,稠密索引的查找方法二分查找,98,2.稀疏索引,什么是稀疏索引索引块中存放每个数据块中第一条记录的码值及指向该记录的指针。稀疏:每个存储块只有一个索引项。,99,Seque
24、ntial File,示例,100,Sequential File,Sparse Index,示例,101,稀疏索引的查找方法(查找码为K的记录)首先用二分查找法查找码值小于或等于K的最大码值然后根据它的指针找到相应的数据块在该数据块中搜索,查找码值为K的记录,102,3.多级索引,多级索引的引入索引较小时,可以将其存放到内存或磁盘的预留存储区中,从而使索引查找速度较快。当索引较大时,可以在索引上再建一级索引,并将新的索引本身存放到某个固定的地方,这就是多级索引。通过在索引上再建索引,能够使第一级索引更为有效。二级索引或更高级的索引必须是稀疏索引。,103,Sequential File,示例
25、,104,Sequential File,Sparse Index,示例,105,Sequential File,Sparse 2nd level,示例,106,多级索引的查找方法(查找码为K的记录,以两级索引为例)首先用二分查找法查找二级索引,找到码值小于或等于K的最大码值根据该最大码值对应的指针找到一级索引的相应存储块B若存储块B不在内存,将其读入内存利用一级索引查找码值为K的记录如果一级索引是稠密索引:同稠密索引查找方法如果一级索引是稀疏索引:同稀疏索引查找方法,107,4.取重复值属性上的索引,四种策略 稠密索引:两种策略稀疏索引:两种策略,108,方法一,稠密索引。每一个具有码值K的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RDBMS 物理 组织

链接地址:https://www.31ppt.com/p-6517305.html