,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,数据元素的表示,3.1.1 数据类型,支持整型,浮点型与字符串三种数据类型。,数据元素的表示3.1.1 数据类型,1,数据元素的表示,如何将SQL数据类型表示成字段,定长字符串,变长字符串,整型,浮点型,字段如何组装成记录,定长记录的构造,变长数据和记录,数据元素的表示如何将SQL数据类型表示成字段,2,定长字符串,SQL类型CHAR(N),长度为n的定长字符串,n字节数组,属性的值是长度小于N的字符串,则字节数组用特定的填充符号填充,填充符号的8位编码不是SQL字符串的合法字符,例如:CHAR(5),定长字符串SQL类型CHAR(N),长度为n的定长字符串,3,变长字符串,SQL类型VARCHAR(N),分配N+1字节数组,对VARCHAR(N)有两种常见的表示:,长度加内容,空值终止符,变长字符串SQL类型VARCHAR(N),分配N+1字节数组,4,整型 浮点型,一个类型为INTEGER的属性通常表示成两个或四个字节,一个类型为FLOAT的属性通常表示成四个或8个字节,整数和实数表示成字节串,由机器的硬件对字节串进行特定解释,从而在其上可执行通常的算术操作,整型 浮点型一个类型为INTEGER的属性通常表示成两个或,5,字段如何组装成记录,数据库系统使用的每一种记录类型必须有一个模式,模式由数据库存储,包括记录中字段的名称和数据类型,以及在记录内它们的偏移量,需要存储记录的组成部分时将参考模式,字段如何组装成记录数据库系统使用的每一种记录类型必须有一个模,6,定长记录的构造,字段均为定长,将字段连接成记录,每个字段的偏移量,即从记录开始到这个字段自身开始处的字节数,定长记录的构造字段均为定长,将字段连接成记录,7,定长记录的构造,记录在磁盘中,机器对主存中地址为4的倍数(8的倍数,64位处理器)的字节处开始的数据进行更有效的读写,假设对数据的唯一要求是字段从地址为4的倍数的主存字节处开始,那么要求:,a)每条记录在块内从4的倍数的字节处开始,b)记录中所有的字段都从与记录起始偏移量为4的倍数的字节处开始,定长记录的构造记录在磁盘中,8,记录格式,记录首部,1)记录模式,2)记录长度,3)时间戳,记录格式记录首部,9,记录模式,数据库系统维护模式信息,1)记录属性,2)属性类型,3)属性在元组中出现的顺序,4)属性或关系自身上的约束,主键声明,或值域,记录模式数据库系统维护模式信息,10,记录长度,方便记录查询,例如:不希望细查记录内容,只想快速地找到下一条记录的开始,长度字段可让我们避免存取记录模式,而,记录长度方便记录查询,11,时间戳,指明记录最后一次被修改或被读的时间以及其他可能的信息,时间戳指明记录最后一次被修改或被读的时间以及其他可能的信息,12,变长数据和记录,具有变长字段的记录,具备重复字段记录,可变格式的记录,不能装入一个块中的记录,变长数据和记录具有变长字段的记录,13,具有变长字段的记录,一个或多个字段是变长,处理方式,定长字段放在变长字段前面,在记录首部记录如下信息:,1)记录长度,2)指向所有变长字段起始处的指针,具有变长字段的记录一个或多个字段是变长,14,具有重复字段的记录,处理方式一,在记录首部放一个指针ptr,让它指向字段F出现的第一个位置,重复的第i个字段其地址为:,address(i)=ptr+i*L,具有重复字段的记录处理方式一,15,具有重复字段的记录,处理方式二,保持记录定长,而将变长部分(无论它是变长字段,还是重复次数不确定的字段)放在另外一个块上,具有重复字段的记录处理方式二,16,可变格式记录,事先不知道记录的字段是什么,或每一个字段出现多少次。,变格式记录最简单的表示是标记字段,标记字段包含:,1)字段描述信息:名称,类型,长度等,2)字段值,可变格式记录事先不知道记录的字段是什么,或每一个字段出现多少,17,不能装入一个块中的记录,大值数据类型,如视频,音频,不在我们讨论范围内,不能装入一个块中的记录大值数据类型,如视频,音频,18,数据元素的表示GOOGLECODE课件,19,数据元素的表示GOOGLECODE课件,20,