记录及记录集存储结构探讨.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
记录及记录集存储结构探讨

记录及记录集存储结构探讨   [摘要]本文探讨了数据库管理系统中记录及记录集的存储结构技术。   [关键词]记录 记录的存储 记录集合的存储      一、引言      数据库中的数据是用来描述现实世界中具体事物的。在关系模型中,通常把那些描述事物所必需的属性组合起来,构成一个元组,使得每一个元组正好表示现实世界中的一个事物。每一个元组对应着存储结构中的一个数据记录,每个逻辑页面内可以存放若干个数据记录。怎样把一个元组描述成一个数据记录呢?      二、记录和记录类型      数据通常都以记录(record)的形式存储的。每条记录有相关的数据值或数据项汇集组成,其中每个值由一个或多个字节构成,并与记录中的一个特定字段(field)相对应。记录通常描述实体及其属性。举例来说,一个Employee记录表示一个雇员实体,记录中的各个字段值指定了该雇员的一??属性,例如Name、Birthday、Salary等。字段名及其相应数据类型的汇集构成了一个记录类型(record type)或记录格式(record format)定义。与各字段相关的数据类型(data type)指定了此字段可取值的类型。   字段的数据类型通常是编程时使用的标准数据类型。其中包括数值型(整型、长整型或浮点型)、字符串(定长或变长字符串)、布尔型(只能取0和1或TRUE或FALSE这样的值),有时还有专门编码的日期和时间数据类型。对于给定的计算机系统,各数据类型所需的字节数是固定的。一个整型可能需要4个字节,一个长整型需要8个字节,一个实数型需要4个字节,一个布尔型需要1个字节,一个日期型需要10个字节(假设日期的模式是YYYY-MM-DD),k个字符组成的定长字符串需要k个字节,变长字符串需要的字节数等于各字段值中的字符数。例如,可以用C程序设计语言表示法将Employee的记录类型定义为以下结构。   Struct employee{   Char name[30];   Char ssn[9];   Int salary;   Int job_code;   Char department[20];   };      三、文件、定长记录和变长记录      文件是记录的序列。在许多情况下,一个文件中的所有记录均属于同一种记录类型。如果文件中所有的记录的长度均相等(以字节计),则称这个文件是由定长记录(fixed-length record)组成的。如果文件中的不同记录的长度也不同,则称这个文件是由变长记录(variable-length record)组成的。文件之所以会有变长记录是因为:   1.文件记录均属于同一记录类型,但有一个或多个字段是变长的(变长字段)。例如,EMPLOYEE中的name字段就可能是变长字段。   2.文件记录均属于同一记录类型,但有一个或多个字段对应的单个记录有多个值,这样的字段成为重复字段(repeating field),该字段的一组值通常称为重复组(repeating group)。   3.文件记录均属于同一记录类型,但有一个或多个字段是可选的(optional)。也就是说这个文件中有些记录在该字段上有值,但并非该文件的所有记录在该字段上都有值(可选字段)。   4.文件包含不同记录类型的记录,因此是变长的(混合文件)。如果不同类型的相关记录在磁盘中聚簇存储,就会出现这种情况。例如,某个学生的grade-report记录可能紧跟在student记录后面。   由此可以看出,不同记录由于其属性值的不同,存储空间的大小也不相同,那么如何存储元组就需要过细的考虑。      四、记录的存储      1.定长记录的存储   存储记录的一种最简单的方法是固定长度的定长记录法,即元组的属性字段的数目是固定的,每个属性字段的长度也是固定的,对属性值长度不规整的取其最长的长度。如上述的employee关系可定义其记录的存储结构的长度为:      即每个记录分配67B。所有记录都有相同的属性字段,且其字段长度是固定的,因此系统可以确定每个字段相对于该记录的开始位置的起始字节位置。这有利于存取该文件的程序定位字段值。需要注意的是,这样就有可能将一个逻辑上会有变长记录的文件表示为定长记录文件。例如,在记录中有可选字段的情况下,我们可以将每个字段都包括在每个文件记录中,但是如果某个字段没有值,就这个字段中存储一个特殊的NULL值。定长记录法虽然简单,但浪费存储空间,另一个缺点是不够灵活,不能应对新属性的扩充和不需要的属性的删除。   2.变长记录的存储   对于有变长字段,每个记录对于其中的每个字段都有一个值,不过我们不知道某些字段值的确切长度。为了确定一

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档