问答题 【说明】
设有关于银行借贷管理系统的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)
【答案解析】[分析]
将E-R模型转换为关系模型时,需要遵循的转换规则如下:
1.每个实体集转换为一个关系。
2.一个一对一的联系可转换为一个关系模式,将两端关系的码及联系的属性均作为该关系的属性,任意一端的码作为该关系的码;也可将任意一端的码及联系的属性合并到另一端实体集所转换的关系模式中。
3.一个一对多联系可转换为一个关系模式,将两端关系的码及联系的属性均作为该关系的属性,“多”端的码作为该关系的码:也可将“一”端的码及联系的属性合并到“多”端实体集所转换的关系模式中。
4.一个多对多联系应转换为一个关系模式,两端的码及联系的属性为关系的属性,两端的码共同组合为该关系的码。
3个或3个以上多对多的联系应转换为一个关系,各关系的码及联系的属性为关系的属性,各端的码共同组合为该关系的码。
本题中的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。
【正确答案】Borrow. Lno =Loan.Lno
(2) COUNT(distinct idno)>=2
【答案解析】[分析]
本题是要查询在该银行中一笔贷款贷给多个(至少2个)客户的所有贷款号和发放贷款的支行名称。Borrow表中记录着各贷款号和该贷款的客户,Loan表中记录着各贷款号和发放该贷款的支行,要完成题目查询必须将Borrow和Loan联系起来,即需要两者的贷款号相等。所以填空(1)应该为Borrow. Lno=Loan. Lno。
“一笔贷款贷给多个客户”则需要按贷款号进行分组,只有客户个数至少两个的组才是满足查询要求的分组。对于分组的条件应该添加在HAVING子句中,个数的统计需利用 COUNT(idno)函数,因此填申(2)为COUNT(idno)>=2。
【正确答案】这样的系统算不上分布式数据库系统。分布式数据库系统并不是简单地把集中式数据库系统安装在不同场地,用网络连接起来实现的(这是分散的数据库系统),它是具有自己的性质和特征。
分布式数据库系统具有以下特点:
1.数据的物理分布性。
2.数据的逻辑整体性。
3.数据的分布独立性。
4.场地的自治和协调。
5.数据的冗余及冗余透明性。
虽然上述银行的数据库系统具有性质1、3以及4和5的一部分,但关键是没有数据的逻辑整体性和不同场地之间的协调性等,这恰恰是分布式数据库系统的关键所在。因此,上述银行数据库系统算不上分布式数据库系统。
【答案解析】[分析]本题主要考查分布式数据库系统的必备条件。