《数据库及其应用》是计算机自考专业中一门重要课程,该门课程的考题类型有选择题、填空题、程序设计题和综合应用题几种,其中综合应用题难度最大。该类题型主要测试学生关系数据库应用系统的分析和设计、FoxBASE程序设计、分析复杂问题、设计E-R图、建立关系数据模型和编写应用程序等方面的能力。本文就这方面的题型做一些例题分析,希望对大家建立正确的解题思路有所帮助。
题一 活期存款中,“储户”通过“存取款单”和“存储所”发生联系。假定“储户”包括:账号、姓名、电话、地址、存款额;“储蓄所”包括:储蓄所编号、名称、电话、地址。(假定一个储户可以在不同的储蓄所存取款)试完成下列两项设计:
(1)绘出表示存取款的E-R图
分析:由题目可知有两个实体:“储户”和“存储所”。而“储户”通过“存取款单”和“存储所”发生联系,故“存取款单”可用菱形框表示,它连接两个矩形框,分别为上述两个实体。两个实体的属性题目已给出,但“存取款单”的属性需要考生自己推断出,分析两个实体的属性可知,“储户”的账号、储蓄所编号所体现是“存取款单”的基本属性,此外通过常识也知道还需存取日期、存取标志(存款或取款)、存取金额等属性。由此可画出E-R图。
答案:(见下图)
(2)由E-R图导出关系数据模型
分析:E-R图画出来后,关系数据模型就好确定了。两个实体各对应一个关系。另外,两个实体间有一个m:n的联系:存取款单,因此还要为它建立一个关系。
答案:储户(账号、姓名、电话、地址、存款额),关键字:账号;
储蓄所(储蓄所编号、名称、电话、地址),关键字:储蓄所编号;
存取款单(账号、储蓄所编号、存取日期、存取标志、存取金额),关键字:账号+储蓄所编号+存取日期。
题二:设有下列表格:
试完成下列三项设计:
(1)将该表格对应的关系规范化到第三范式。
分析:可列出关系如下
从中可以看出,“职工号”是主关键字。所有属性都不存在部分函数依赖于主关键字,故以达到第二范式的要求。但“车间主任”是传递函数依赖于主关键字“职工号”的,因此,不符合第三范式的要求。将“车间”和“车间主任”的关系从原关系中分解出来,得到下列两个关系:
分析这两个关系,都不存在传递函数依赖,所以它们都达到第三范式的要求。
(2)为规范化后的关系对应的数据库文件设计结构
分析:设计结构主要是注意字段类型和字段宽度。
答案:关系R1对应的库文件结构设计如下:
文件名:R1.DBF
关系R2对应的库文件结构设计如下:
文件名:R2.DBF
(3)编写一个程序显示职工号为“3201”的职工姓名和其车间主任姓名
分析:职工姓名在R1中,而车间主任姓名在库文件R2中,可用连接,连接的条件是职工号为“3201”,且两个库文件中的车间相同。连接后生成的库文件中仅含有职工号为“3201”的职工的职工号、姓名、车间、工资、车间主任。只要打开生成的新库文件,就可以很方便地输出该职工的姓名和其车间主任的姓名。
答案:SET TALK OFF
SELECT 1
USE R1
SELECT 2
USE R2
JOIN WITH A TO AA FOR A - >职工号=“3201”. AND. A->车间=B->车间
USE AA
? “职工姓名 :”,姓名
?“车间主任姓名:”,车间主任
USE
SELECT 1
USE
RETURN