1、中级数据库系统工程师下午试题-10 及答案解析(总分:67.00,做题时间:90 分钟)一、试题一(总题数:1,分数:7.00)说明现准备为某银行开发一个信用卡管理系统 CCMS,该系统的基本功能如下。(1) 信用卡申请。非信用卡客户填写信用卡申请表,说明所要申请的信用卡类型及申清者的基本信息,提交给 CCMS。如果信用卡申请被银行接受,CCMS 将记录该客户的基本信息,并发送确认函给该客户,告知客户信用卡的有效期及信贷限额;否则该客户将会收到一封拒绝函,非信用卡客户收到确认函后成为信用卡客户。(2) 信用卡激活。信用卡客户向 CCMS 提交激活请求,用信用卡号和密码激活该信用卡。激活操作结束
2、后,CCMS 将激活通知发送给客户,告知客户其信用卡是否被成功激活。(3) 信用卡客户信息管理。信用卡客户的个人信息可以在 CCMS 中进行在线管理。每位信用卡客户可以在线查询和修改个人信息。(4) 交易信息查询。信用卡客户使用信用卡进行的每一笔交易都会记录在 CCMS 中。信用卡客户可以通过CCMS 查询并核实其交易信息(包括信用卡交易记录及交易额)。图 8-4 和图 8-5 分别给出了该系统的顶层数据流图和 0 层数据流图的初稿。(分数:7.00)_二、试题二(总题数:1,分数:15.00)说明某宾馆需要建立一个住房管理系统,部分的需求分析结果如下。(1) 一个房间有多个床位,同一房间内的
3、床位具有相同的收费标准。不同房间的床位收费标准可能不同。(2) 每个房间有房间号(如 201、202 等)、收费标准和床位数目等信息。(3) 每位客人有身份证号码、姓名、性别、出生日期和地址等信息。(4) 对每位客人的每次住宿,应该记录其入住日期、退房日期和预付款额信息。(5) 管理系统可以查询出客人所住的房间号。根据以上的需求分析结果,设计出了一种关系模型,如图 8-6 所示。(分数:15.00)_三、试题三(总题数:1,分数:15.00)说明某公司拟开发一个多用户电子邮件客户端系统,部分功能的初步需求分析结果如下。(1) 邮件客户端系统支持多个用户,用户信息主要包括用户名和用户密码,且系统
4、中的用户名不可重复。(2) 邮件账号信息包括邮件地址及其相应的密码,一个用户可以拥有多个邮件地址(如 )。(3) 一个用户可以拥有一个地址簿,地址簿信息包括联系人编号、姓名、电话、单位地址、邮件地址 1、邮件地址 2 和邮件地址 3 等信息。地址簿中一个联系人只能属于一个用户,且联系人编号唯一标识一个联系人。(4) 一个邮件账号可以含有多封邮件,一封邮件可以含有多个附件。邮件主要包括邮件号、发件人地址、收件人地址、邮件状态、邮件主题、邮件内容、发送时间和接收时间。其中,邮件号在整个系统内唯一标识一封邮件,邮件状态有已接收、待发送、已发送和已删除 4 种,分别表示邮件是属于收件箱、发件箱、已发送
5、箱和废件箱。一封邮件可以发送给多个用户。附件信息主要包括附件号、附件文件名和附件大小。一个附件只属于一封邮件,附件号仅在一封邮件内唯一。1. 根据以上说明设计的 E-R 图如图 8-7 所示,请指出地址簿与用户、电子邮件账号与邮件,以及邮件与附件之间的联系类型。(分数:15.00)_四、试题四(总题数:1,分数:15.00)说明某公司的生产管理部门拟开发生产计划管理系统,该系统负责管理生产计划信息,记录生产安排和采购的情况。现有的表格信息如表 8-8表 8-10 所示。根据上述需求设计的生产计划数据库的关系模式如图 8-8 所示。关系模式的主要属性、含义及约束如表 8-11 所示。(分数:15
6、.00)_五、试题五(总题数:1,分数:15.00)说明某省会城市 XX 长途汽车售票系统负责所有本地长途汽车站各班次的汽车票销售,并在该省会城市和全省主要地级市设有多个该长途汽车票销售网点,各售票网点使用相同的售票程序。假设售票程序中用到的伪指令如表 8-2 所示。(分数:15.00)_中级数据库系统工程师下午试题-10 答案解析(总分:67.00,做题时间:90 分钟)一、试题一(总题数:1,分数:7.00)说明现准备为某银行开发一个信用卡管理系统 CCMS,该系统的基本功能如下。(1) 信用卡申请。非信用卡客户填写信用卡申请表,说明所要申请的信用卡类型及申清者的基本信息,提交给 CCMS
7、。如果信用卡申请被银行接受,CCMS 将记录该客户的基本信息,并发送确认函给该客户,告知客户信用卡的有效期及信贷限额;否则该客户将会收到一封拒绝函,非信用卡客户收到确认函后成为信用卡客户。(2) 信用卡激活。信用卡客户向 CCMS 提交激活请求,用信用卡号和密码激活该信用卡。激活操作结束后,CCMS 将激活通知发送给客户,告知客户其信用卡是否被成功激活。(3) 信用卡客户信息管理。信用卡客户的个人信息可以在 CCMS 中进行在线管理。每位信用卡客户可以在线查询和修改个人信息。(4) 交易信息查询。信用卡客户使用信用卡进行的每一笔交易都会记录在 CCMS 中。信用卡客户可以通过CCMS 查询并核
8、实其交易信息(包括信用卡交易记录及交易额)。图 8-4 和图 8-5 分别给出了该系统的顶层数据流图和 0 层数据流图的初稿。(分数:7.00)_正确答案:(E1:非信用卡客户 E2:信用卡客户E3:银行)解析:解析由题干中的关键信息“(1)信用卡申请。非信用卡客户填写信用卡申请表CCMS 将记录该客户的基本信息,并发送确认函给该客户否则该客户将会收到一封拒绝函”,以及图 8-4 中的数据流“确认函”和“拒绝函”等信息可知,外部实体 E1 的名称是“非信用卡客户”。由题干中的关键信息“(2)信用卡客户向 CCMS 提交激活请求CCMS 将激活通知发送给客户”和图8-4 中的数据流“激活通知”,
9、以及题干信息“(3)每位信用卡客户可以在线查询和修改个人信息”、图 8-4 中的数据流“查询/修改个人信息”和“个人信息”,题干信息“(4)信用卡客户可以通过CCMS 查询并核实其交易信息”和图 8-4 中数据流“交易记录查询请求”可知,外部实体 E2 的名称是“信用卡客户”。由题干说明中的“(1)信用卡申请。如果信用卡申请被银行接受”、图 8-4 中的数据流“信用卡申请信息”、“信用卡申请验证结果”和常识等关键信息可知,外部实体 E3 的名称是“银行”。_正确答案:(起点 终点 名称E1 P0 信用卡申请表E2 P0 激活请求P0 或信用卡管理系统 CCMS E2 信用卡交易信息)解析:解析
10、将问题 1的分析结果填写到图 8-4 中,由题干中的关键信息“(1)非信用卡客户填写信用卡申请表提交 CCMS”、图 8-4 中的数据流“确认函”和“拒绝函”及其流向等综合信息可知,外部实体E1“非信用卡客户”有一条输出数据流“信用卡申请表”,流向加工 PO“信用卡管理系统 CCMS”。换而言之,图 8-4 中还缺少一条名称为“信用卡申请表”的数据流,其起点为 E1,终点为 PO。同理,由题干中的关键信息“(2)信用卡激活。信用卡客户向 CCMS 提交激活请求”和图 8-4 中的数据流“激活通知”及其流向等综合信息可知,外部实体 E2“信用卡客户”有一条输出数据流“激活请求”,流向加工 PO“
11、信用卡管理系统 CCMS”。换而言之,图 8-4 中还缺少一条名称为“激活请求”的数据流,其起点为 E2,终点为 PO。由题干中的关键信息“(4)交易信息查询信用卡客户可以通过 CCMS 查询并核实其交易信息”、图 8-4中的数据流“交易记录查询请求”及其流向和生活常识等综合信息可知,加工 PO“信用卡管理系统CCMS”有一条输出数据流“信用卡交易信息”,流向外部实体 E2“信用卡客户”。换而言之,图 8-4 中还缺少一条名称为“信用卡交易信息”的数据流,其起点是 PO,终点为 E2。_正确答案:(错误的数据流名称:激活请求和信用卡申请表改正后的数据流如下数据流名称 改正后的数据流起点 改正后
12、的数据流终点激活请求 E2 P3信用卡申请表 E1 P4)解析:解析将问题 1和问题 2的分析结果填写到图 8-4 中。题干说明中的“信用卡申请”、“信用卡激活”、“信用卡客户信息管理”和“交易信息查询”是典型的加工名称。根据数据流图父图与子图数据平衡原则,对照图 8-5 和信息填充后的图 8-4 可以直观地发现,图 8-5 中存在的一条错误数据流是“信用卡申请表”。数据流“信用卡申请表”在图 8-4 中是从外部实体 E1 流向 CCMS 系统,而在图 8-5 中是从加工 P4 流向外部实体 E1,应以予更正。根据题干说明中的“(1)信用卡申请”描述信息,结合图 8-5 中与加工 P4 相关的
13、“信用卡申请表”、“信用卡申请信息”和“信用卡申请验证结果”等关键数据流信息可得,加工 P4 的名称是“信用卡申请”。图 8-5 中的数据流“信用卡申请表”的起点应修改为 E1,终点应修改为 P4。同理,在图 8-4 中的数据流“激活请求”是从外部实体 E2 流向 CCMS 系统,而在图 8-5 中是从加工 P4 流向加工 P3,应以予更正。根据题干说明中的“(2)信用卡激活”描述信息,结合图 8-5 中加工 P3 的输出数据流“激活通知”等信息可得,加工 P3 的名称是“信用卡激活”。图 8-5 中的数据流“激活请求”的起点应修改为 E2,终点应修改为 P3。_正确答案:(P1:交易信息查询
14、 P2:(信用卡)客户信息管理P3:信用卡激活 P4:信用卡申请)解析:解析根据题干说明中的“(3)信用卡客户信息管理”描述信息,结合图 8-5 中与加工 P2 相关的“查询/修改个人信息”、“个人信息”等关键数据流信息可得,加工 P2 的名称是“信用卡客户信息管理”。根据题干说明中的“(4)交易信息查询”描述信息,结合图 8-5 中与加工 P1 相关的“交易记录查询请求”、“交易信息”等关键数据流信息可得,加工 P1 的名称是“交易信息查询”。根据问题 3的分析结果可知,加工 P3 的名称是“信用卡激活”,加工 P4 的名称是“信用卡申请”。二、试题二(总题数:1,分数:15.00)说明某宾
15、馆需要建立一个住房管理系统,部分的需求分析结果如下。(1) 一个房间有多个床位,同一房间内的床位具有相同的收费标准。不同房间的床位收费标准可能不同。(2) 每个房间有房间号(如 201、202 等)、收费标准和床位数目等信息。(3) 每位客人有身份证号码、姓名、性别、出生日期和地址等信息。(4) 对每位客人的每次住宿,应该记录其入住日期、退房日期和预付款额信息。(5) 管理系统可以查询出客人所住的房间号。根据以上的需求分析结果,设计出了一种关系模型,如图 8-6 所示。(分数:15.00)_正确答案:(房间号,身份证号)解析:解析主键也称为主码,是关系中的一个或一组属性,其值能唯一标识一个元组
16、。结合常识可知,“房间”关系模式的主键是“房间号”,“客人”关系模式的主键是“身份证号”。根据 E-R 模型到关系模式的转换规则,若实体间联系是多对多(m:n),则将联系类型也转换成关系模式,其属性为两端实体类型的主键(作为外键)加上联系类型自身的属性,而该关系模式的主键为两端实体主键的组合。在如图 8-6 所示的实体联系图中,“房间”实体与“客人”实体之间存在的联系类型是多对多(m:n)。因此,“住宿”关系模式的属性需要包含“房间”关系模式的主键“房间号”、“客人”关系模式的主键“身份证号”和自身的属性“入住日期”、“退房日期”,以及“预付款额”等。_正确答案:(主键:房间号,身份证号,入住
17、日期外键:房间号,身份证号)解析:解析由于一位客人有可能多次在同一房间里住宿,只使用“房间号”和“身份证号”的组合作为“住宿”关系模式的主键并不能唯一标识出一条记录,因此“入住日期”也是“住宿”关系模式的主键之一。而“住宿”关系模式的外键是“房间号”和“身份证号”。_正确答案:(2)身份证号(3) HAVING(4) ORDER BY 2 DSC 或 ORDER BY 2 DESC)解析:解析依题意,在 SQL 语言中,GROUP BY 之后必须出现 SELECT 语句查询项中不包含聚集函数的部分,因此(2)空缺处应填写“住宿.身份证号”。GROUP BY 之后紧跟的条件应该使用 HAVING
18、 子句表示,因此(3)空缺处应填写“HAVING”。根据题干中的关键信息“按照入住次数进行降序排列”可得,(4)空缺处应填写“ORDERBY 2 DSC(或ORDER BY 2 DESC)”。_正确答案:(表:住宿属性:入住日期类型:聚簇索引原因:表中记录的物理顺序与索引项的顺序一致,根据索引访问数据时,一次读取操作可以获取多条记录数据,因而可减少查询时间)解析:解析数据库的目的在于管理大量的数据,而索引则可以加快检索数据表中数据的速度。索引分为聚簇索引(Cluster)和非聚簇索引两种类型。在聚簇索引中,索引树的叶级页包含实际的数据,记录的索引顺序与物理顺序相同。在非聚簇索引中,叶级页指向表
19、中的记录,记录的物理顺序与逻辑顺序没有必然的联系。通常,每个表只能有一个聚簇索引,因为一个表中的记录只能以一种物理顺序存放。通常,要对一个表按照标识字段建立聚簇索引。但是也可以对其他类型的字段建立聚簇索引,如字符型、数值型和日期时间型字段。从建立了聚簇索引的表中取出数据要比建立了非聚簇索引的表快。当需要取出一定范围内的数据时,使用聚簇索引也比采用非聚簇索引好。对聚簇索引的主要限制是每个表只能建立一个聚簇索引。但是,一个表可以有不止一个非聚簇索引。当然,也可以对一个表同时建立聚簇索引和非聚簇索引。依题意,在问题 3查询语句中涉及的属性有“身份证号”和“入住日期”,但它们均为主键属性,因此不需要再
20、为其他属性创建索引。若要加快 SQL 语句的执行效率,对“入住日期”属性建立聚簇索引,使得表中索引项顺序和物理记录顺序一致。根据索引访问数据时,一次读取操作可以获取多条记录数据,因而可减少查询时间,从而提高查询性能。三、试题三(总题数:1,分数:15.00)说明某公司拟开发一个多用户电子邮件客户端系统,部分功能的初步需求分析结果如下。(1) 邮件客户端系统支持多个用户,用户信息主要包括用户名和用户密码,且系统中的用户名不可重复。(2) 邮件账号信息包括邮件地址及其相应的密码,一个用户可以拥有多个邮件地址(如 )。(3) 一个用户可以拥有一个地址簿,地址簿信息包括联系人编号、姓名、电话、单位地址
21、、邮件地址 1、邮件地址 2 和邮件地址 3 等信息。地址簿中一个联系人只能属于一个用户,且联系人编号唯一标识一个联系人。(4) 一个邮件账号可以含有多封邮件,一封邮件可以含有多个附件。邮件主要包括邮件号、发件人地址、收件人地址、邮件状态、邮件主题、邮件内容、发送时间和接收时间。其中,邮件号在整个系统内唯一标识一封邮件,邮件状态有已接收、待发送、已发送和已删除 4 种,分别表示邮件是属于收件箱、发件箱、已发送箱和废件箱。一封邮件可以发送给多个用户。附件信息主要包括附件号、附件文件名和附件大小。一个附件只属于一封邮件,附件号仅在一封邮件内唯一。1. 根据以上说明设计的 E-R 图如图 8-7 所
22、示,请指出地址簿与用户、电子邮件账号与邮件,以及邮件与附件之间的联系类型。(分数:15.00)_正确答案:(1)1(2) 1(3) m 或 n 或 *(4) 1(5) n 或 m 或*)解析:解析由题干中的关键信息“(3)一个用户可拥有一个地址簿,地址簿信息包括联系人编号地址簿中一个联系人只能属于一个用户,且联系人编号唯一标识一个联系人”和常识可知,“地址簿”实体与“用户”实体之间存在联系“拥有 1”,其联系的类型是一对一 (1:1),即(1)空缺处应填入 1。由题干中的关键信息“(4)一个邮件账号可以含有多封邮件邮件主要包括邮件号邮件号在整个系统内唯一标识一封邮件”和常识可知,“邮件账号”实
23、体与“邮件”实体之间存在联系“包含”,其联系的类型是一对多(1:n)。因此(2)空缺处应填入 1,(3)空缺处应填入 n。由题干中的关键信息“(4)一封邮件可以含有多个附件一个附件只属于一封邮件”可知,“邮件”实体与“附件”实体之间存在联系“属于”,其联系的类型是一对多(1:n)。因此(4)空缺处应填入 1,(5)空缺处应填入 n。整理以上分析结果,可得该多用户电子邮件客户端系统完整的实体联系图,如图 8-9 所示。*_正确答案:(a) 用户名 (b) 邮件号,发件人地址(c) 邮件号)解析:解析由题干中的关键信息“(1)邮件客户端系统支持多个用户且系统中的用户名不可重复”可知,“用户名”由该
24、系统统一分配和标识,不会重复,可以唯一地标识每一个用户信息,可作为“用户”关系模式的主键。根据 E-R 模型到关系模式的转换规则,需要将某一方实体的主键加入已另一方实体的关系模式中,以表达它们之间的联系关系。在图 8-9 中,“地址簿”实体处于联系“拥有 1”的“1”端,结合题干中的关键信息“(3)地址簿信息包括联系人编号、姓名、电话、单位地址、邮件地址 1、邮件地址 2 和邮件地址 3 等信息”可知,“地址簿”关系模式的属性包含有“联系人编号,姓名,电话,单位地址,邮件地址1,邮件地址 2,邮件地址 3,用户名”。由于“地址簿中一个联系人只能属于一个用户,且联系人编号唯一标识一个联系人”,因
25、此“联系人编号”可作为“地址簿”关系模式的主键。“用户名”是“地址簿”关系模式的外键。在图 8-9 中,“邮件账号”实体处于联系“拥有 2”的“m”端,因此根据 E-R 模型到关系模式的转换规则,将“邮件账号”实体类型转换成关系模式时,需要加入“用户”实体的主键“用户名”(作为外键)及联系“拥有 2”自身的属性。结合题干中的关键信息“(2)邮件账号信息包括邮件地址及其相应的密码”可知,“邮件账号”关系模式的属性包含有“邮件地址,邮件密码,用户名”。结合常识,“邮件地址”由该系统统一分配,不会重复,可以唯一地标识每一个邮件账号信息,可作为“邮件账号”关系模式的主键。“用户名”是“邮件账号”关系模
26、式的外键。同理,在图 8-9 中,“邮件”实体处于联系“包含”的“n”端,因此根据 E-R 模型到关系模式的转换规则,在“邮件”关系模式中需要加入“邮件账号”实体的主键“邮件地址”(作为外键)及联系“包含”自身的属性。结合题干中的关键信息“(4)邮件主要包括邮件号、发件人地址、收件人地址、邮件状态、邮件主题、邮件内容、发送时间和接收时间”可知,“邮件”关系模式的属性包含有“邮件号,发件人地址,收件人地址,邮件状态,邮件主题,邮件内容,发送时间,接收时间”。其中,“发件人地址”和“收件人地址”是对“邮件账号”关系模式的主键“邮件地址”的具体化(或泛化)。由于“邮件号在整个系统内唯一标识一封邮件”
27、,因此“邮件号”可作为“邮件”关系模式的主键。“发件人地址”或“收件人地址”是“邮件”关系模式的外键。因为当用户向其他人发送邮件的时候,“发件人地址”是参考“邮件账号”关系模式的“邮件地址”的主键;当用户接收邮件的时候,“收件人地址”是参考“邮件账号”关系模式的“邮件地址”的主键。在图 8-9 中,“附件”实体处于联系“属于”的“n”端,因此根据 E-R 模型到关系模式的转换规则,在“附件”关系模式中需要加入“邮件”实体的主键“邮件号”(作为外键)及联系“属于”自身的属性。结合题干中的关键信息“(4)附件信息主要包括附件号、附件文件名和附件大小”可知,“附件”关系模式的属性包含有“附件号,附件
28、文件名,附件大小,邮件号”。由于“一封邮件可以含有多个附件附件号仅在一封邮件内唯一”,因此需要用“附件号”和“邮件号”组合才可唯一标识该系统中某一个具体的附件,即“附件”关系模式的主键是“附件号”和“邮件号”的组合。“邮件号”是“附件”关系模式的外键。_正确答案:(1)关系模式 主键 外键地址簿 联系人编号 用户名邮件 邮件号 发件人地址或收件人地址附件 邮件号,附件号 邮件号(2) 附件属于弱实体,因为附件的存在必须以邮件的存在为前提,即附件总是依附于某个邮件)解析:解析地址簿、邮件和附件关系模式的主键和外键请参见问题 2的分析结果。根据常识,结合问题 1和问题 2的分析过程,由于在该系统中
29、邮件附件的存在必须以邮件的存在为前提,即附件总是依附于某邮件,两者之间具有很强的依赖联系,且“附件”关系模式的主键“附件号,邮件号”中的“邮件号”是从“邮件”实体中获得,图 8-9 中“附件”实体与“邮件”实体之间的联系类型是一对多(1:n),因此“附件”属于弱实体,“邮件”属于强实体。四、试题四(总题数:1,分数:15.00)说明某公司的生产管理部门拟开发生产计划管理系统,该系统负责管理生产计划信息,记录生产安排和采购的情况。现有的表格信息如表 8-8表 8-10 所示。根据上述需求设计的生产计划数据库的关系模式如图 8-8 所示。关系模式的主要属性、含义及约束如表 8-11 所示。(分数:
30、15.00)_正确答案:(1)存在派生属性“总价格”。总价格可以根据数量和单价计算出来(2) “采购”关系不满足第二范式,会造成插入异常、删除异常和修改复杂(或修改异常)(3) 分解后的关系模式如下采购 1(采购单号,总价格,日期)采购 2(供应商,地址,电话)采购 3(供应商,材料编号,单价)采购 4(采购单号,供应商,材料编号,数量)解析:解析这是一道要求读者掌握派生属性基本概念、第二范式和第三范式的综合分析题,本题的解答思路如下。(1) 派生属性是指可以由其他属性经过计算获得的属性,这类属性在设计关系模式中通常不进行存储,会因为冗余而容易产生不一致性。依题意,若“采购”关系中不考虑折扣情
31、况,则该关系存在派生属性“总价格”。因为“总价格”可以根据“数量”和“单价”计算得出。(2) 范式的判定可通过范式定义来实现。应从 1NF 入手,然后 2NF、3NF 等一步步判定。1NF 的判定是分析属性类型,如含有组合属性则不属于 1NF。再根据函数依赖集,确定关系的候选码和非主属性,考查函数依赖集,不存在非主属性对码的部分依赖为 2NF,不存在非主属性对码的传递依赖为 3NF,函数依赖的左部包含码为 BCNF,只有平凡的多值依赖为 4NF。根据图 8-8、表 8-11、各属性间的函数依赖关系和题干相关描述信息,可得到如下各关系模式的主键。生产计划(生产计划编号,生产计划名称,起始时间,截
32、止时间,预算总金额,产品编号,产品名称,生产数量,生产小组编号,生产小组名称,安排人力)产品用料(产品编,材料编号,材料名称,材料数量,单位)采购(采购单号,供应商,地址,电话,材料编号,数量,单价,总价格,日期)根据“采购”关系的函数依赖可知,“采购”的码为(采购单号,供应商,材料编号),而又存在部分函数依赖如下所示。采购单号(供应商,地址,电话,总价格,日期)供应商(地址,电话)(供应商,材料编号)单价由于第二范式(2NF)要求:每个非主属性完全函数依赖于码,因此“采购”关系模式不满足第二范式(2NF),不满足 BCNF 的关系模式往往会造成插入异常、删除异常和修改复杂(或修改异常)等问题
33、,这也是规范化的根本原因所在。(3) 因为存在部分函数依赖,所以需要对“采购”进行分解,分解后的关系模式及其主键如下。采购 1(采购单号,总价格,日期)采购 2(供应商,地址,电话)采购 3(供应商,材料编号,单价)采购 4(采购单号,供应商,材料编号,数量)其中,“采购 1”关系的函数依赖为:(采购单号)(总价格,日期)“采购 2”关系的函数依赖为:(供应商)(地址,电话)“采购 3”关系的函数依赖为:(供应商,材料编号)单价“采购 4”关系的函数依赖为:(采购单号,供应商,材料编号)数量这 4 个关系中的每一个非主属性既不部分依赖于码,也不传递依赖于码,因此满足第三范式的要求。_正确答案:
34、(1)“生产计划”关系模式,不满足第四范式理由:(生产计划编号,产品编号)(生产小组编号,安排人力)(2) 分解后的关系模式如下生产计划 1(生产计划编号,生产计划名称,起始时间,截止时间,预算总金额)生产计划 2(生产计划编号,产品编号,生产数量)生产计划 3(生产计划编号,产品编号,生产小组编号,安排人力)生产计划 4(产品编号,产品名称)生产计划 5(生产小组编号,生产小组名称)解析:解析这是一道要求对关系模式规范化理论的掌握的综合分析题,本题的解答思路如下。(1) 根据“生产计划”关系模式的函数依赖,其码为:生产计划编号,产品编号,生产小组编号。而又存在部分函数依赖为:(生产计划编号,
35、生产小组编号,产品编号)安排人力(生产计划编号,产品编号)(生产小组编号,安排人力)因此“生产计划”关系模式不满足第二范式(2NF)。同时,可以根据第四范式的要求:不允许有非平凡且非函数依赖的多值依赖。而在“生产计划”关系模式存在的多值依赖为:(生产计划编号,产品编号)(生产小组编号,安排人力)因此“生产计划”关系模式不满足第四范式(4NF)。(2) 关系模式的规范化过程是通过对关系模式的分解来实现的,把低一级的关系模式分解为若干个高一级的关系模式。分解的方法为:分析关系模式中的函数依赖,通过投影分解,消除不合理的函数依赖,即对于不满足范式要求的函数依赖,提取其所有属性构成新的关系模式,从原关
36、系模式中去掉被决定属性,依次考查所有函数依赖即可。对于“生产计划”关系模式,因为存在部分函数依赖和多值依赖,所以需要对其进行分解,分解后的关系模式及其主键如下。生产计划 1(生产计划编号,生产计划名称,起始时间,截止时间,预算总金额)生产计划 2(生产计划编号,产品编号,生产数量)生产计划 3(生产计划编号,产品编号,生产小组编号,安排人力)生产计划 4(产品编号,产品名称)生产计划 5(生产小组编号,生产小组名称)其中,“生产计划 1”关系的函数依赖为:生产计划编号(生产计划名称,起始时间,截止时间,预算总金额)“生产计划 2”关系的函数依赖为:(生产计划编号,产品编号)(生产数量)“生产计
37、划 3”关系的函数依赖为:(生产计划编号,产品编号,生产小组编号)安排人力“生产计划 4”关系的函数依赖为:产品编号产品名称“生产计划 5”关系的函数依赖为:生产小组编号生产小组名称这 5 个关系既不存在部分函数依赖和传递依赖,也不存在多值依赖,因此满足第四范式的要求。_正确答案:(无法统计,需在采购关系模式中,记录采购所对应的生产计划编号)解析:解析这是一道要求读者掌握数据库的逻辑结构设计的综合应用题,本题的解答思路如下。在如图 8-8 所示的生产计划数据库中,由于“采购”关系模式中缺少记录采购所对应的“生产计划编号”,因此无法统计出某一个生产计划所采购的某个供应商的总金额。五、试题五(总题
38、数:1,分数:15.00)说明某省会城市 XX 长途汽车售票系统负责所有本地长途汽车站各班次的汽车票销售,并在该省会城市和全省主要地级市设有多个该长途汽车票销售网点,各售票网点使用相同的售票程序。假设售票程序中用到的伪指令如表 8-2 所示。(分数:15.00)_正确答案:(调度 A 结果:13调度 B 结果:10调度 C 结果:12调度 A 和 C 结果错误,因为破坏了事务的隔离性。一个事务的执行结果被另一个所覆盖)解析:解析这是一道要求读者掌握并发情况下不同的调度可能产生不同结果的综合分析题。由题意可知,两个售票网点同时销售长途汽车班次 A 的汽车票,初始状态下长途汽车班次 A 的汽车票数
39、量x=15。对于调度 A,售票网点 1 通过伪指令“R 1(A,x)”,获取长途汽车班次 A 当前的剩余汽车票数 15,并赋给本地变量 x。而售票网点 2 也通过伪指令“R 2(A,x)”,获取长途汽车班次 A 当前的剩余汽车票数 15,并赋给本地变量 x。接着,售票网点 1 售出 3 张长途汽车班次 A 的汽车票,并通过伪指令“W 1(A,x-3)”,将当前数据库中长途汽车班次 A 的剩余汽车票数置为 12(即 15-3=12)。但是售票网点 2 售出两张长途汽车班次 A 的汽车票,并通过伪指令“W 1(A,x-2)”,将当前数据库中长途汽车班次 A 的剩余汽车票数重新置为13(即 15-2=13)。同理,对于调度 B,售票网点 1 通过伪指令“R 1(A,x)”,获取长途汽车班次 A 当前的剩余汽车票数 15,并赋给本地变量 x。接着,售票网点 1 售出 3 张长途汽车班次 A 的汽车票,并通过伪指令“W 1(A,x-3)”,将当前数据库中长途汽车班次 A 的剩余汽车票数置为 12(即 15-3=12)。然后售票网点 2 通过伪指令“R2(A,x)”,获取长途汽车班次 A 当前的剩余汽车票数 12,并赋给本地变量 x。最后售票网点 2 售出两张长途汽车班次 A 的汽车票,并通过伪