数据库设计与应用题 --数据库技术
1、假定我们要为社交平台建立数据库,存储信息如下
每个用户有:用户编号、姓名、手机号
每个群有:编号、群名称
每个帖子有:帖子编号、发帖时间、正文
每个群有唯一的用户作为群主,一个用户可以担任多个群的群主
每个帖子只属于一个群,每个帖子有唯一的发布者,每个群可以有多个帖子,每个用户可以发布多个多个帖子
其中带下划线为实体的标识属性。(CSDN的Markdown中不支持下划线,暂且用加粗代替)
(1)请根据以上描述,画出相应的ER图
(2)将上面的ER图转换为满足3NF的关系模式
(1)根据题意,作出ER图如下:
(2)题目要求满足3NF范式要求,ER图向关系模式转换采用的方法之一是,转换后的关系模式名称采用实体名或者联系名。本题中有三个一对多,一个多对多联系。对于一对多联系,都与多端实体的关系模式合并,即:将一端关系的码和和联系的属性加入到多端的实体的关系模式,码不变。对于多对多联系,只能单独转换成新的关系模式,转换后的关系模式的属性由联系本身的属性及两个实体的主码构成,转换后的关系模式的主码由两端实体的主码组合而成。转换后的关系模式如下:
用户(用户编号,姓名,手机号)主码:用户编号
群(群编号,名称,群主编号)主码:群编号,外码:群主编号
帖子(帖子编号,发帖时间,正文,发帖用户编号,所属群编号)主码:帖子编号,外码:发帖用户编号、所属群编号
用户所属群(用户编号,群编号)主码:用户编号、群编号,外码:用户编号、群编号
2、假定我们要建立一个航空数据库,存储信息如下:
每个机场有:机场编号、所在城市
每个航班有:航班编号、起飞时间、飞行时间
飞机有:飞机编号、型号、载客人数
飞行员有:飞行员编号、姓名
每个航班有多唯一的起飞和降落机场,每个机场会有多个航班起降
每个机场可以飞行多个航班,一个航班可以由多架飞机执行飞行任务
每位飞行员可以驾驶一架飞机,每个飞机可以有多位驾驶员驾驶
其中加粗的属性是实体的标识属性。
(1)请根据以上描述,画出相应的ER图
(2)将上面的ER图转换为满足3NF的关系模式
(1)根据题意,作出ER图如下:
(2)题目要求满足3NF范式要求,ER图向关系模式转换采用的方法之一是,转换后的关系模式名称采用实体名或者联系名。本题中有三个一对多,一个多对多联系。对于一对多联系,都与多端实体的关系模式合并,即:将一端关系的码和和联系的属性加入到多端的实体的关系模式,码不变。对于多对多联系,只能单独转换成新的关系模式,转换后的关系模式的属性由联系本身的属性及两个实体的主码构成,转换后的关系模式的主码由两端实体的主码组合而成。转换后的关系模式如下:
机场(机场编号,所在城市)主码:机场编号
航班(航班编号,起飞时间,飞行时间,起飞机场编号,降落机场编号)主码:航班编号;外码:起飞机场编号,降落机场编号
飞机(飞机编号,飞机型号,载客人数)主码:飞机编号
飞行(航班编号,飞机编号)主码:航班编号,飞机编号;外码:航班编号,飞机编号
飞行员(飞行员编号,飞行员姓名,飞机编号)主码:飞行员编号;外码:飞机编号
3、在SQL Server 2008数据库中存在销售单据表,其建表语句为:
CREATE TABLE 销售单据表(
销售单据表编号 varchar(8),
商品编号 varchar(8),
单价 money,
数量 INT
总价 money
);
在系统运行一段时间后,此表有近千万条数据,程序员在数据库中执行如下SQL语句:
SELECT 商品编号,sum(总价) FROM 销售单据表 WHERE 单价 >50 GROUP BY 商品编号
(1)为提高此查询的执行效率,需要在此表中建立索引,请给出建立索引的方案。
(2)为提高系统的可靠性和性能,某工程师提出将原有的单机运行的SQL Server 2008改为Active-Standby架构的数据库运行模式:
(1)答:
CREATE UNIQUE CLUSTERED INDEX ix_商品编号 ON 销售单据明细表(商品编号)
解析:
索引技术是一种快速数据访问技术,它将文件中的每个记录在某个或某些领域(或属性)上的取值与该记录的物理地址直接联系起来,提供了一种根据记录域的取值快速访问文件记录的机制。索引的使用要恰到好处,其使用原则一般如下:
- 经常在查询中作为条件被使用的列,应为其建立索引
- 频繁进行 排序或者分组(即进行GROUP BY或者ORDER BY操作),应为其建立索引
- 一个列的域值很大时,应该为其建立索引
- 如果待排序的列有多个,应在这些列中建立复合索引
聚簇索引:数据库表行中数据的物理顺序与键值的逻辑(索引)顺序相同。一个表只能有一个聚簇索引,因为一个表的物理顺序只能有一种,所以,聚簇索引只能有一个。与非聚簇索引相比较,聚簇索引有着更快的检索速度。聚簇索引关键字Clustered Index,关键字UNIQUE表示唯一索引,使查询商品的数据记录唯一,降低了搜索范围,提高了搜索效率。
(2)答:此架构为数据服务器容错架构,双机热备方案中的双机热备模式。在不考虑硬件性能提升因素的前提下,此架构是能够提高系统的性能和可靠性。
原因:双机热备份技术是一种软硬件结合的较高容错应用方案。该方案是由两台服务器系统和一个外接共享磁盘阵列柜及相应的双机热备软件组成。在这个容错方案中,操作系统和应用程序安装在两台服务器的本地系统盘上,整个网络系统的数据是通过磁盘阵列集中管理和数据备份的。数据集中管理是通过双机热备份系统,将所有站点的数据直接从中央存储设备读取和存储,并由专业人员进行管理,极大地保护了数据的安全性和保密性。用户的数据存放在外接共享磁盘阵列中,在一台服务器出现故障时,备机主动替代主机工作,保证网络服务不间断。
解析:
Active-Standby架构的数据库运行模式:双机热备特指基于高可用系统中的两台服务器的热备(或高可用),因两机高可用在国内使用较多,故得名双机热备,双机高可用按工作中的切换方式分为:主一备方式( Active-Standby 方式)和双主机方式( Active 一 Active 方式),主一备方式即指的是一台服务器处于某种业务的激活状态(即 Active 状态),另一台服务器处于该业务的备用状态(即 standby 状态)。而双主机方式即指两种不同业务分别在两台服务器上互为主备状态(即 Active 一 standb 舜口 standby 一 Active 状态)。
双机热备有两种实现方式:一种是两台服务器通过一个共享的存储设备(一般是共享的磁盘阵列或存储区域网 SAN ) ,通过安装双机软件实现双机热备,称为共享方式。另一种方式是没有共享的存储设备,数据同时存放于各自服务器中,称为纯软件方式或软件同步数据方式。基于存储共享的实现方式是双机热备的最标准的方案,在主从模式工作中,两台服务器以一个虚拟的工 P 地址对外提供服务,服务请求发送给主服务器( active server )承担。同时,两台服务器通过心跳线( heartbeat line )侦钡 l 另一台服务器的工作状况。一旦主服务器出现故障,备服务器( standby server )根据心跳侦测的情况做出判断,在较短时间内完成切换,接管主机上的所有资源,成为新的主服务器。由于使用共享的存储设备,因此两台服务器使用的实际上是一样的数据,由双机或集群软件对其进行管理。