第四章-数据表征(金培权课程)

数据项的表示

数据项表示方法

  1. 字节序列
  2. 表示内容:表示关系数据库中元组的属性值
  3. 表示方法:SQL数据类型
    1)Integer(short)表示整数
    2)Real(Float)表示实数
    3)Char(n)表示定长字符串(小于n可用特殊填充符)
    4)Varchar(n)表示变长字符串(用n+1字节)
    NULL终止符 c a t ×
    带长度 3 c a t ×
    定长表示 c a t _ _
    5)Boolean:8bit
    6)枚举类型:16bit(可以表示 2 1 6 2^16 216个不同的值)
    7)Date:
    10字符(YYYY-MM-DD)
    8字符(YYYYMMDD)
    7字符(YYYYDDD)(注意不是YYMMDD)
    Integer:自从1900-01-01以来的天数
    8)Time
    8字符:HH:NN:SS
    Varchar(n):HH:NN:SS.FF
    Integer:自从00:00:00以来的秒数
    9)Bit
    带长度的二进制位串:[Length:Bits]
    按字节表示,每8个bit放在一起

两种不同的数据项表示

1)定长数据项
2)变长数据项(带长度、NULL终止符)

记录的组织

记录是数据项的集合

固定格式定长记录

所有记录都具有相同的逻辑结构(模式),也就是每个记录的每个数据项都是固定长度表达固定含义
在这里插入图片描述
若考虑寻址特点,则我们可以把gender这一项由1bit扩充为4bit
在这里插入图片描述

记录首部

可以描述记录信息,记录类型、记录长度、时间戳、等等

可变格式记录

  1. 定义:每个记录的格式不同,格式信息存储于记录中
  2. 表示:Key-Value
  3. 好处:灵活、松散
  4. 缺点:存储代价高,KV方式难以支持复杂查询、应用负担重且事务处理实现困难

变长记录表示

  1. 首部指针法:定长字段在前,变长字段在后
    在这里插入图片描述
  2. 混合格式:定长记录+变长记录
    在这里插入图片描述

记录在块中的组织

记录在块内的分隔

  1. 定长记录:不需要分隔
  2. 非定长记录:特殊标记、块内偏移量
    在这里插入图片描述

跨块(spanned)

  1. 跨块:有效利用空间、实现复杂
  2. 不可跨块:实现简单、空间浪费

不同类型的记录聚簇

  1. 一个块中存储不同类型的记录
  2. 聚簇:经常一起访问的记录存储在同一块或者连续块中
    在这里插入图片描述
    看上图中我们知道将S1重复多次与不同课程号连接在一起
  3. 优缺点
    对于表
    STUDENT(s#, sname, age)
    SC(s#, cname, score)
    Q1: select student.s#,sc.name from student s,sc where s.s# = sc.s#
    Q2: select * from student
    1)优点:若Q1经常被查询,则聚簇有效
    2)缺点:若Q2经常被查询,则聚簇会降低效率

在块中按序存储记录

  1. 另一种聚簇:将记录按某个字段顺序排列在块中
  2. 好处:加快按排序字段查询记录的效率,利于归并联接

记录的分裂

  1. 适用于变长记录的混合格式表示
  2. 具体格式:变长记录存于某个块中,变长部分存储于另一个块中

记录地址

  1. 物理地址
    1)快地址:主机标识、磁盘号、柱面号、盘面号(磁头号)、快号
    2)块内偏移量
  2. 逻辑地址
    1)纯逻辑地址:通过一个哈希表将逻辑地址映射到物理地址
    2)借助文件系统的逻辑块地址:文件号+逻辑块地址+块内偏移

记录的修改

  1. 插入
    1)记录无序:插入到任意块的空闲区间,无空闲块则申请新块,记录变长则用偏移量表
    在这里插入图片描述
    2)记录有序:

step1:找到记录对应的块
step2:若有空间则直接放置并调节顺序
step3:若无空间则可以在邻近块中找空间,或者创建溢出块
在这里插入图片描述

  1. 删除
    1)立即回收空间
    2)删除记录时处理溢出块(重新组织溢出块)
    3)使用删除标记

若使用偏移量表,则将该指针置空
若使用逻辑-物理地址映射表,则将物理地址置空
可以在记录首部预留开始位:0-未删除,1-删除

块在文件中的组织

堆文件

  1. 结构:
    1)记录不以任何顺序排序
    2)记录可能存放在物理不邻接的块上

  2. 特点:插入容易,但查找和删除代价高

  3. 链表式堆文件组织
    在这里插入图片描述

  4. 目录式堆文件组织

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值