第四部分数据的存储方法课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第四部分数据的存储方法课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 部分 数据 存储 方法 课件
- 资源描述:
-
1、第四章第四章 数据的存储方法数据的存储方法这一章将系统地回答以下一些问题:l怎样在域中表示SQL的数据类型?l怎样用记录来表示元组?l怎样在内存块中表示记录或元组的集合?l怎样存储对象关系型数据?例如对象标识符(或别的指向记录的指针)和大对象(例如2GB的MPEG格式的视频信息)。l当一些域被更新而引起记录长度改变时,应该做什么?同时怎样的结构才能适合变长记录的需要。4.1 4.1 数据元素的表示数据元素的表示用SQL语言的CREATE TABLE定义了一个关系:CREATE TABLE MovieStar(name CHAR(30)PRIMARY KEY,address VARCHAR(25
2、5),gender CHAR(1),birthdate DATE);从本质上来说,所有的数据类型是一个字节序列。例如,INTEGER一般用两个或四个字节来表示,FLOAT一般用四个或八个字节来表示。整数和实数的具体表示由机器的硬件来确定。数据元素的表示数据元素的表示1.固定长度的字符串定义格式:CHAR(5)存储格式:cat。这里 是用来进行填补的字符。它补全了第四和第五个字符2。可变长度的字符串定义格式:VARCHAR(N)存储格式:1)。正文长度加一。我们为一个字符串分配N+1个字节。2)。使用空白终结符。同样我们为一个字符串分配N+1个字节。在字符串的最后一个字节上填放空白终结符。3。日
3、期和时间类型 一个日期实际上就是有一定格式的固定长度的字符串。所以日期可以用定长的字符串方法来表示。用8个字符表示。如,20:19:02表示下午8点19分2秒4。枚举类型 据需要给每个元素分配一个整型值,用它来表示枚举类型的值如:集合RED,GREEN,BLUE,YELLOW。可以将RED表示成0,GREEN表示成1,BLUE表示成2,YELLOW表示成3。这样它们可用两位来表示:00、01、10和11。而如果我们采用整个字节来表示它们会更方便。例如,YELLOW可被用3来表示,用整个字节为00000011。建立固定长度的记录建立固定长度的记录MovieStar关系的例子。它有四个域:lnam
4、e:具有30个字节的字符串。laddress:用VARCHAR(255)定义。这个域用256个字节来存储。lgender:单字节。它的值一般是F或M。lbirthdate:是日期类型。nameaddressgenderbirthday030286287297MovieStar关系的例子 当元组不是存储在主存,而是存储在外存中时,我们就必须留心它的组织问题。当我们从外存中读取数据块到主存中时,数据块的头地址应被放入4的倍数的主存地址处。最保险的做法是同样要求记录的每个域的头地址是4或8的倍数。应做到以下两点:l每个记录在数据块中的开始地址是4的倍数;l记录中的每个域对于数据块开始地址的偏移量是4
5、的倍数。MovieStar每个域的开始地址都是4的倍数nameaddressgenderbirthday032288292304记录的头信息记录的头信息 当我们设计记录格式时,需要考虑怎样存储那些不属于记录值而又必须被保存的信息。例如下面这些信息:l记录的视图,更具体的说,在记录中保存一个指向DBMS存储记录类型的指针;l记录的长度;l表示记录最后一次被读或写的标记。因此在记录的格式中,需考虑用一些字节来存储记录附加的信息。对例4.6中的结构进行修改,加进12个字节的头信息。开始4个字节用来表示记录类型。它实际上是指向存储关系的视图指针。第二部分用4个字节来表示记录的长度。第三部分用来表示元组
6、加入或最后一次更新的时间,它也是四个字节。这样记录的长度变为316个字节。例4.6中的结构进行修改加进头信息 nameaddressgenderbirthday1244300304316类型长度时间戳将定长记录组成数据块将定长记录组成数据块数据块的头信息,通常含有以下信息:l数据块之间的联系信息。l该数据块在整个数据块集合中所起的作用。l该数据块所表示的元组属于那一个关系。l每个记录在数据块中的偏移量。l数据块号。该数据块最后一次被修改或更新的时间标志。记录长为316个字节。假使我们使用的是长为4096个字节的数据块。对于这些空间,12个被用于数据块的头信息,余下4084个字节来存储数据。这样
7、我们在每个数据块中放了12个316字节的记录,即块因子为12。该数据块则浪费了292个字节的空间。考虑数据块的头信息考虑数据块的头信息块和记录地址的表示块和记录地址的表示 在我们考虑怎样表示那些具有更复杂数据结构的记录之前,我们必须先考虑怎样对记录和块编址,以及怎样去表示那些指向数据块的指针。在数据块装入内存的缓冲区时,数据块的地址可使用数据块的第一个字节的虚拟存储地址。同样记录在数据块内的地址为记录的第一个字节的虚拟内存地址。但是,当数据块在外存中时,该数据块并不作为应用程序虚拟地址空间的一部分。我们采用字节的序列来表示数据块在整个DBMS可管理的数据中的位置,它包括:磁盘的设备标识号,盘上
8、柱面号等等。我们给定记录所在的数据块和它在数据块中的偏移量就可找到该记录。c/s结构的DBMS的地址空间问题 一个数据库系统有一个服务器进程,用于从外存提取数据交给一个或多个客户进程。客户进程处理所送来的数据。服务器进程和客户进程可同在一台计算机上,或者服务器进程和多个客户进程分布于多个计算机中。客户应用进程使用传统的虚拟地址空间。一般用32位来表示一个地址,这样可表示40亿个不同的地址。操作系统和DBMS确定应将哪一部分地址空间装入内存,同时硬件建立虚拟地址空间到主存中物理地址的映射。我们将不再研究这种虚拟到物理地址的转换,而着重考虑调入内存中的数据块如何将用户地址空间转换到物理地址空间。数
9、据块和记录在外存中的真实地址。用物理地址中的一个或几个字节来指出如下信息:l这个存储器是在那一台主机上(如果数据库是存储在多台计算机中)。l数据块所在的磁盘号或别的设备号。l磁盘中的柱面号。l柱面中的磁道号。l在磁道中的数据块号。l数据块中的记录项对于数据块头的偏移量。物理地址 物理地址可能很长。例如,假使一个数据库系统的设计寿命是100年。在将来,这个系统也许要联入100万台机器,而每台机器以每十亿分之一秒产生一个对象。那么这个系统大概要存储277个对象,这就要求最少用10个字节来表示物理地址。由于我们还需预先保留一些字节来表示主机等,所以这个系统的物理地址就需要10个以上的字节来表示。逻辑
10、地址 计算机指令中地址部分所指示的地址称为逻辑地址。它是由二进制的定长比特流组成的。逻辑和物理地址的转换逻辑和物理地址的转换 映射表逻辑地址物理地址 查询物理地址所需的信息都保存在映射表中,然后,据指向某一记录的逻辑指针来查询映射表,以得到相应的物理地址。当然,为了找到记录,我们需要有足够的有关它位置的信息。最简单的例子是定长记录,如果它的关键字的偏移量已知。另外从数据块的头信息中就可知道该块包含有多少记录,据这些信息我们就能从数据块中方便的找到相应的记录。从数据块中找到相应的记录 一个简单而有效的办法是给每个数据块保存一个记录的偏移量表。偏移量表记录 3记录 2记录 1未用部分头信息 在c/
11、s结构的数据库系统中,每个数据块、每个记录、每个对象或别的可引用的数据项都有两种形式的地址:服务器的数据库地址空间中的编址。通常用8个字节来表示一个地址。我们称它为数据库地址。虚拟存储器中的地址(为内存工作缓冲区地址)。通常由4个字节组成。我们称之为内存地址。转换数据库地址到内存地址的表 地址转换表数据库地址内存地址前面所提到的物理地址和逻辑地址都是用来表示数据库地址的。在转换表中的内存地址反映了对象在内存中的位置。数据库中所有可编址的数据项,仅当其处在内存中时,才能在映射表中找到相应的行。为避免重复地进行数据库地址和内存地址的转换采用指针置换的方法 当数据块从外存中移动到内存时,对数据块中的
展开阅读全文