数据元素的表示.ppt
《数据元素的表示.ppt》由会员分享,可在线阅读,更多相关《数据元素的表示.ppt(108页珍藏版)》请在三一办公上搜索。
1、1,第三章 数据元素的表示,2,Previous,磁盘结构对性能的影响DBMS中的数据必须在内存中操作磁盘和主存之间数据传输的单位是块,如果只需要块上的某一项,也需要传输整个块。读/写一个磁盘块称为一次I/O读/写块的时间依数据所在的位置而变化存取时间=寻道时间S旋转延迟R传输时间T,3,数据项的表示(Data Items)记录的表示(Records)记录在块中的组织(Block)记录的修改块在文件中的组织缓冲区管理,主要内容,4,数据元素的表示层次,数据项,记录,块,文件,属性值的物理组织,元组的物理组织,记录的物理存放,文件由磁盘块构成,5,一、数据项的表示,数据项字节序列表示关系数据库中
2、元组的属性值,6,1、数据项表示的内容,表示什么?姓名年龄出生日期照片用什么表示?Bytes,7,2、数据项表示方法:SQL数据类型,Integer(short)2 bytes例如,35 表示为Real,Float4 bytes(32 bits)N bits表示小数,M bits表示指数,00000000,00100011,8,2、数据项表示方法:SQL数据类型,Char(n)或 Character(n)定长字符串小于n时使用特殊填充符例如,若属性类型为Char(5),则属性值cat 表示为 Varchar(n)变长字符串NULL终止符,例 Varchar(5)长度+内容 定长表示,n+1 b
3、ytesVarchar(4):,9,2、数据项表示方法:SQL数据类型,BooleanTRUEFALSE枚举类型RED,GREEN,YELLOW整数表示RED 1,GREEN 2,YELLOW 3若用两个字节的短整型来表示,则可以表示 216 个不同值,1111 1111,0000 0000,10,2、数据项表示方法:SQL数据类型,Date10字符(SQL92):YYYY-MM-DD字符串表示8字符:YYYYMMDD7字符:YYYYDDD,NOT YYMMDD!Integer,自1900-01-01以来的天数Time8字符(SQL92):HH:NN:SS 整数秒Varchar(n):HH:N
4、N:SS.FF带小数秒Integer,自00:00:00以来的秒数,11,2、数据项表示方法:SQL数据类型,Bit带长度的二进制位串,Length,Bits,01011111,00110000,12,3、两种不同的数据项表示,定长数据项变长数据项带长度(常用!)Null Terminated,13,数据项表示总结,14,Where are we?,数据项,记录,块,文件,We are here!,15,二、记录的组织,记录数据项 字段,Fields 的集合,E.g.:Employee record:name field,salary field,date-of-hire field,.,16
5、,1、记录的类型,固定格式 vs.可变格式Fixed Format vs.Variable Format定长 vs.变长Fixed Length vs.Variable Length,17,2、固定格式定长记录,所有记录具有相同的逻辑结构(模式)记录的模式(Schema)#fieldsName of each fieldType of each fieldOrder in recordOffset of each field in the record,18,E.g.固定格式定长记录,Employee record(1)E#,2 byte integer(2)Ename,10 char.Sch
6、ema(3)Dept,2 byte code,55,s m i t h,02,83,j o n e s,01,Records,19,2、固定格式定长记录,构造不考虑寻址特点,20,2、固定格式定长记录,考虑寻址特点假设记录和字段的开始地址必须是4的倍数,21,3、记录首部,在记录首部(Head)的描述记录的信息记录类型(模式信息)记录长度时间戳其它信息,22,4、可变格式记录,每个记录的格式不同记录的格式存储于记录中,23,E.g.可变格式变长记录表示,字段数字段E标识码Integer 类型字段 Ename标识码String 类型长度,Employee(E#,Ename),24,4、可变格式记
7、录,好处灵活的记录格式,适合“松散”记录尽管一个记录可能有大量字段,但某个记录通常只有有限的几个字段例如,病人的检验结果适合处理重复字段适合记录格式演变缺点浪费存储空间,25,6、变长记录表示,首部指针法定长字段在前,变长字段在后 name、address变长,26,6、变长记录表示,混合格式:定长记录变长记录,27,Where are we?,数据项,记录,块,文件,We are here!,28,三、记录在块中的组织,假设块的大小固定记录组织成单个文件,Block,A File,A Record,29,三、记录在块中的组织,定长记录的两种块内组织记录地址rid通常使用表示,N,1 0 1
8、0 1 M,槽 1,槽 M,槽 2,M 3 2 1,记录数,槽数,空闲空间,块头,30,三、记录在块中的组织,变长记录在块内的组织,31,三、记录在块中的组织,其他问题记录在块中的分隔(separating records)记录跨块 vs.记录不跨块(spanned vs.unspanned)不同类型的记录聚簇(mixed record types clustering)按序组织(sequencing)记录的分裂(split records)记录地址(record address)记录的修改,32,1、记录在块内的分隔,定长记录:不需分隔使用特殊标记通过块内偏移量,33,2、跨块 vs.不跨块
9、,Unspanned:记录必须在一个块中存储block 1 block 2.Spanned:记录可跨块存储block 1 block 2.,R1,R2,R1,R3,R4,R5,R2,R3(a),R3(b),R6,R5,R4,R7(a),34,2、跨块 vs.不跨块,跨块,Whats the rest?,From where?,35,2、跨块 vs.不可跨块,比较unspanned:实现简单,但空间浪费spanned:有效利用空间,实现更复杂But If record size block size,MUST be spanned,36,3、不同类型的记录聚簇,一个块中存储不同类型的记录(对于R
10、DB:多关系上的聚簇)好处聚簇(clustering)经常一起访问的记录存储在同一块或连续块中,A Dept Record,A Employee Record,A Employee Record,A Block,37,3、不同类型的记录聚簇,学号s1,其他列,学号S1S1s1,其他列,课程号C1C2c3,学号s2,其他列,学号S2S2s2,其他列,课程号C2C5c6,学生表与课程表通过簇键“学号”聚簇,Block,38,3、不同类型的记录聚簇,Q1:select student.s#,ame from student s,sc where s.s#=sc.s#Q2:select*from st
11、udent,如果Q1经常被查询,则聚簇非常有效若Q2经常被查询,则聚簇反而降低了效率,STUDENT(s#,sname,age)SC(s#,cname,score),39,4、在块中按序存储记录,另一种聚簇(对于RDB:单关系上的聚簇)将记录按某个字段顺序排列在块中好处加快按排序字段查询记录时的效率利于归并联接(will be discussed later),40,4、在块中按序存储记录,按Dept顺序组织的Student记录,无序组织的Student记录,假设一个磁盘块2条定长记录,41,4、在块中按序存储记录,物理连续指针连接,Next(R1),R1,R1,R2,Next(R1),42,
12、5、记录的分裂,适合于变长记录的混合格式表示定长部分存储于某个块中变长部分存储于另一个块中与spanned存储类似,43,6、记录地址,物理地址逻辑地址(间接地址),44,6、记录地址,记录的纯物理地址主机标识 磁盘或其他设备标识柱面号磁头号(盘面号)块号 块内的偏移量,块地址,45,6、记录地址,记录的纯逻辑地址,物理地址,逻辑地址,映射表,记录地址,纯物理地址,缺点访问代价增加:映射表占存储空间;需要地址转换好处灵活性:删除或移动记录时只要改变映射表项,46,6、记录地址,记录的纯物理地址,记录的纯逻辑地址,tradeoff,47,6、记录地址,借助文件系统的逻辑块地址文件号逻辑块地址块内
13、偏移,文件系统映射,File IDBlock(logical),Block(physical)+offset,记录地址,48,四、记录的修改,插入删除,49,1、插入,记录无序插入到任意块的空闲空间中或申请一个新块(当所有块都已满时)记录变长时,可使用偏移量表,50,1、插入,记录有序找到记录应该放置的块如果有空间,放入并调节记录顺序即可,否则有两种方法:在“邻近块”中找空间 创建溢出块,51,2、删除,立即回收空间例如,加到可用空间列表中删除记录时处理溢出块若删除的记录位于溢出块链上,则删除记录后可对整个链进行重新组织以去除溢出块,52,2、删除,使用删除标记若使用偏移表,则可以修改偏移表项
14、指针,将其置空若使用逻辑物理地址映射表,则可以将物理地址置空可以在记录首部预留一开始位:0未删除,1已删除,1,记录1,0,记录2,53,Where are we?,数据项,记录,块,文件,We are here!,54,五、块在文件中的组织,堆文件(Heap File)最基本、最简单的文件结构记录不以任何顺序排序记录可能存放在物理不邻接的块上插入容易,但查找和删除代价高,55,1、链表式堆文件组织,首块,数据块,数据块,数据块,数据块,数据块,数据块,含空闲空间的块链表,满块链表,56,2、目录式堆文件组织,数据块1,数据块2,数据块N,首块,57,回顾:数据元素的表示层次,数据项,记录,块
15、,文件,属性值的物理组织,元组的物理组织,记录的物理存放,文件由磁盘块构成,58,六、SQL Server的数据存储结构,SQL Server的数据库文件是多个对象的集合,包括多个表、索引等参阅SQL Server联机丛书SQL Server数据库引擎-高级数据库引擎详细信息,59,1、页,在SQL Server中,数据存储的基本单位是页。在 SQL Server 2005 中,页的大小是 8 KB。每页的开头 96 字节,用于存储有关页的系统信息,包括页码、页类型、页的可用空间以及拥有该页的对象的分配单元 ID,96字节,单个数据行最大8060字节,页地址:数据行地址:,60,2、区,区是管
16、理空间的基本单位。一个区是八个物理上连续的页(即 64 KB)。为了使空间分配更有效,SQL Server 2005 对只含少量数据的表不分配完整的区。SQL Server 2005 有两种类型的扩展盘区:统一区:由单个对象所有,区中的所有8页只能由拥有该盘区的对象使用。混合区:最多可由 8 个对象共享。通常从混合区中向新表或新索引分配页。当表或索引增长到 8 页时,就变成统一扩展盘区。,61,2、区,混合区和统一区,62,3、SQL Server文件组织,SQL Server 2005 数据库有三种类型的文件:主要数据文件 主要数据文件是数据库的起点,指向数据库中文件的其它部分。每个数据库都
17、有一个主要数据文件。主要数据文件的推荐文件扩展名是.mdf。次要数据文件 次要数据文件包含除主要数据文件外的所有数据文件。有些数据库可能没有次要数据文件,而有些数据库则有多个次要数据文件。次要数据文件的推荐文件扩展名是.ndf。日志文件 日志文件包含恢复数据库所需的所有日志信息。每个数据库必须至少有一个日志文件,但可以不止一个。日志文件的推荐文件扩展名是.ldf。,63,3、SQL Server文件组织,64,3、SQL Server文件组织,数据文件页数据文件的页按顺序编号,文件首页的页码是 0。每个文件都有一个文件 ID 号。在数据库中唯一标识一页需要同时使用文件 ID 和页码。,65,3
18、、SQL Server文件组织,数据文件的起始结构,66,3、SQL Server文件组织,数据文件的起始结构PFS页:页可用空间(PFS)页记录每页的分配状态,是否已分配单个页以及每页的可用空间量。PFS 对每页都有一个字节,记录该页是否已分配。如果已分配,则记录该页是为空、已满 1%到 50%、已满 51%到 80%、已满 81%到 95%还是已满 96%到 100%。,67,3、SQL Server文件组织,数据文件的起始结构GAM页:全局分配映射表(GAM)页记录已分配的区。每个 GAM 包含 64,000 个区,相当于近 4 GB 的数据。GAM 用一个位来表示所涵盖区间内的每个区的
19、状态。如果位为 1,则区可用;如果位为 0,则区已分配。,68,3、SQL Server文件组织,数据文件的起始结构SGAM 页:共享全局分配映射表(SGAM)页记录当前用作混合区且至少有一个未使用的页的区。每个 SGAM 包含 64,000 个区,相当于近 4 GB 的数据。SGAM 用一个位来表示所涵盖区间内的每个区的状态。如果位为 1,则区正用作混合区且有可用页。如果位为 0,则区未用作混合区,或者虽然用作混合区但其所有页均在使用中。,69,3、SQL Server文件组织,数据文件的起始结构,若要分配统一区,将在 GAM 中搜索是 1 的位,然后将它设成 0。若要查找有可用页的混合区,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 元素 表示
链接地址:https://www.31ppt.com/p-6364918.html