数据库 ch 13

Ch 13

1. 在存储关系数据库时,有下面两种策略,列出这两种策略的两个优点和两个缺点。

a. 每个关系存储在一个文件中

b. 多个关系存储在一个文件中

a的优点:结构简单,对单个关系内记录的插入,删除,查找效率高,对构成少量聚簇关系的关系对存储效率高。

a的缺点:计算关系的连接运算耗费块的读写次数多,对构成大量聚簇关系的关系对存储效率低。

b的优点:计算关系的连接运算耗费块的读写次数少,对构成大量聚簇关系的关系对存储效率高。

b的缺点:结构复杂,对单个关系内记录的插入,删除,查找效率低,对构成少量聚簇关系的关系对存储效率低。

2. 在可变长度记录表示中,使用null bit map来指示属性是否具有空值。

a. 对于变长字段,如果值为空,偏移(offset )和长度(length)字段将存储什么?

b. 在一些应用中,元组具有大量属性,其中大多数属性为空。您能否修改记录表示,以便null属性的唯一开销是bit map中的一个bit?

a. 偏移值为0,长度值为0。 

b. 将记录分为三部分,第一部分为空位图,第二部分为顺序存储的非空属性的偏移和长度,第三部分为非空属性的值。若要查找属性非空,则在空位图中确定该属性属于第几个非空属性,在第二部分查找对应的偏移和长度,到第三部分读值;若要查找属性为空,则在空位图中发现该属性为空,返回空值。

3. 解释为什么为 records  block中的分配方式会显著影响数据库系统的性能。

记录在块中的饱和度越高,每次读取块得到的记录就越多,所需I/O次数就会减少,系统性能上升。跨块存储的记录越少,每次读取一条记录时,需要读取的块数减少,I/O次数减少,系统性能上升。记录在块中的组织,如顺序文件存储查找效率高,插入删除效率低,堆文件存储插入删除效率高,查找效率低。

4. 在顺序文件组织中,即使目前只有一个溢出记录,也要使用溢出块,解释一下为什么?

溢出块的产生源于插入操作,对某个关系执行插入操作,为保证数据一致性,插入的数据不能丢弃,若不使用溢出块,则该数据要插入顺序存储的块中的某个位置,则要令其它记录后移来给该记录腾位置,平均要移动n/2个记录(n为记录数),开销巨大,故要使用溢出块。

5. 考虑关系 "section" 和 "takes"。给出这两个关系的一个示例实例,其中包含3个section,每个section有五名学生。为这两个关系设计一个使用多表聚集的文件结构。

Section(开课信息)为:

course_id

Sec_id

Semester

year

building

Room_number

Time_slot_id

Takes(选课表)为:

ID

Course_id

Sec_id

Semester

Year

grade

多表聚簇文件结构:

course_id

Sec_id

Semester

year

building

Room_number

Time_slot_id

ID

Grade

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值