问题 问答题

[说明]


某宾馆需要建立一个住房管理系统,部分的需求分析结果如下。
(1) 一个房间有多个床位,同一房间内的床位具有相同的收费标准。不同房间的床位收费标准可能不同。
(2) 每个房间有房间号(如201、202等)、收费标准和床位数目等信息。
(3) 每位客人有身份证号码、姓名、性别、出生日期和地址等信息。
(4) 对每位客人的每次住宿,应该记录其入住日期、退房日期和预付款额信息。
(5) 管理系统可以查询出客人所住的房间号。
根据以上的需求分析结果,设计出了一种关系模型,如图8-6所示。


1. 根据上述[说明]和实体联系图,得到该住房管理系统的关系模式如下所示,请补充住宿关系。
房间(房间号,收费标准,床位数目)
客人(身份证号,姓名,性别,出生日期,地址)
住宿______,入住日期,退房日期,预付款额)

答案

参考答案:表:住宿
属性:入住日期
类型:聚簇索引
原因:表中记录的物理顺序与索引项的顺序一致,根据索引访问数据时,一次读取操作可以获取多条记录数据,因而可减少查询时间

解析:
数据库的目的在于管理大量的数据,而索引则可以加快检索数据表中数据的速度。索引分为聚簇索引(Cluster)和非聚簇索引两种类型。在聚簇索引中,索引树的叶级页包含实际的数据,记录的索引顺序与物理顺序相同。在非聚簇索引中,叶级页指向表中的记录,记录的物理顺序与逻辑顺序没有必然的联系。
通常,每个表只能有一个聚簇索引,因为一个表中的记录只能以一种物理顺序存放。通常,要对一个表按照标识字段建立聚簇索引。但是也可以对其他类型的字段建立聚簇索引,如字符型、数值型和日期时间型字段。从建立了聚簇索引的表中取出数据要比建立了非聚簇索引的表快。当需要取出一定范围内的数据时,使用聚簇索引也比采用非聚簇索引好。对聚簇索引的主要限制是每个表只能建立一个聚簇索引。但是,一个表可以有不止一个非聚簇索引。当然,也可以对一个表同时建立聚簇索引和非聚簇索引。
依题意,在[问题3]查询语句中涉及的属性有“身份证号”和“入住日期”,但它们均为主键属性,因此不需要再为其他属性创建索引。若要加快SQL语句的执行效率,对“入住日期”属性建立聚簇索引,使得表中索引项顺序和物理记录顺序一致。根据索引访问数据时,一次读取操作可以获取多条记录数据,因而可减少查询时间,从而提高查询性能。

选择题
单项选择题