问答题 【说明】
设有关于银行借贷管理系统的E-R图(如图4所示)。图中矩形表示实体,圆表示属性,双圆表示关键字属性,菱形表示实体间的联系。为了答题的方便,图中的实体和属性同时给出了中英文说明,回答问题时只需写出英文名即可。
问答题 【问题1】
根据E-R图中给出的词汇,按照“有关模式名(属性1,属性2,…)”的格式,将此E-R图转换为关系模式,并指出每个关系模式中的主码和外码,其中模式名根据需要取实体名或联系名。要求其中的关系模式至少属于第三范式。
【正确答案】Customer(idno,name,address,phone)
Account(Ano,balance,Bname)
Bname reference Branch (Bname)
Deposit (idno,Ano)
idno reference Customer(idno)
Ano reference Account (Ano)
Branch (Bname,city)
Loan (Lno,Bname,amount)
Bname reference Branch (Bname)
Borrow (idno,Lno)
idno reference Customer(idno)
Lno reference Loan(Lno)
【答案解析】
问答题 【问题2】
如下的SQL语言用于查询“在该银行中一笔贷款贷给多个(至少2个)客户的所有贷款号和发放贷款的支行名称”的不完整语句,请在空缺处填入正确的内容。
SELECT Borrow.Lno,Bname
FROM Borrow,Loan
WHERE (1)
HAVING (2)
【正确答案】Borrow.Lno=Loan.Lno (2)COUNT (distinct idno)>=2
【答案解析】
问答题 【问题3】
假设这个银行有若干个节点,每个节点运行一个数据库系统。假设这些节点之间惟一的交互式用电子方式相互传送款项,这样的系统是分布式数据库系统吗?为什么?
【正确答案】这样的系统算不上分布式数据库系统。分布式数据库系统并不是简单地把集中式数据库系统安装在不同场地,用网络连接起来实现的(这是分散的数据库系统),它是具有自己的性质和特征。
分布式数据库系统具有以下特点:
1)数据的物理分布性;2)数据的逻辑整体性;3)数据的分布独立性;4)场地的自治和协调;5)数据的冗余及冗余透明性。
虽然上述银行的数据库系统具有性质1、3以及4和5的一部分,但关键是没有数据的逻辑整体性和不同场地之间的协调性等,这恰恰是分布式数据库系统的关键所在。因此,上述银行数据库系统算不上分布式数据库系统。
【答案解析】[解析] 本题中的E-R图中有4个实体集、2个多对多联系和2个一对多联系,根据上述E-R图转换关系模型的规则可以转换成6个关系。
4个实体集转换的4个关系(Customer、Account、Branch 和 Loan),对于一对多联系B-L和B-A则是将“一”端(关系Branch)的码 Bname加入到“多”端所转换的关系(Account 和 Loan)。此4个关系分别为:
Customer( idno ,name,address,phone)
Account( Ano ,balance,Bname)
Branch( Bname ,city,assets)
Loan( Lno,Bname,amount)
4个关系中,Account和Loan的属性Bname均参照Branch的码 Bname,为外码。
2个多对多联系转换为2个关系,两端的码及联系的属性为关系的属性,两端的码共同组合为该关系的码。此2个关系分别为:
Deposit(idno,Ano)
Borrow(idno,Lno)
其中的idno、Ano和Lno分别参照Customer的idno、Account的Ano和Loan的Lno。
问题2中是要查询在该银行中一笔贷款贷给多个(至少2个)客户的所有贷款号和发放贷款的支行名称。Borrow表中记录着各贷款号和该贷款的客户,Loan表中记录着各贷款号和发放该贷款的支行,要完成题目查询必须将Borrow和Loan联系起来,即需要两者的贷款号相等。所以填空(1)应该为Borrow.Lno=Loan.Lno。
“一笔贷款贷给多个客户”则需要按贷款号进行分组,只有客户个数至少两个的组才是满足查询要求的分组。对于分组的条件应该添加在HAVING子句中,个数的统计需利用COUNT(idno)函数,因此填空 (2)为COUNT(idno)>=2。
问题3主要考查分布式数据库系统的必备条件。