问题 问答题


【说明】
设有下列关于图书借阅系统的E—R图。图中矩形表示实体,圆表示属性,双圆表示关键字属性,菱形表示实体间的联系。假定已通过下列SQL语言建立了基本表:
CREATE TABLE Readers
(Rao CHAR(6) PRIMARY KEY,
Rname CHAR(20) NOT NULL,
Raddress CHAR(200),
Rphone CHAR(15));
CREATE TABLE Books
(Brio CHAR(6) PRIMARY KEY,
Rname CHAR(50) NOT NULL);
CREATE TABLE Administrators
(Ano CHAR(6) PRIMARY KEY,
Aname CHAR(20) NOT NULL);
CREATE TABLE Borrows
(Rno CHAR(6) NOT NULL,
Bno CHAR(15) NOT NULL,
Ano CHAR(6) NOT NULL,
Bdate DATE,
Rdate DATE,
PRIMARY KEY(Rno,Bno,Ano),
FOREGIN KEY(Rno) REFERENCE Readers(Rno),
FOREGIN KEY(Bno) REFERENCE Book(Bno)
FOREGIN KEY(Ano) REFERENCE Administrators(Ano));
CREATE TABLE Readers
(Rao CHAR(6) PRIMARY KEY,
Rname CHAR(20) NOT NULL,
Raddress CHAR(200),
Rphone CHAR(15));
CREATE TABLE Books
(Brio CHAR(6) PRIMARY KEY,
Rname CHAR(50) NOT NULL);
CREATE TABLE Administrators
(Ano CHAR(6) PRIMARY KEY,
Aname CHAR(20) NOT NULL);
CREATE TABLE Borrows
(Rno CHAR(6) NOT NULL,
Bno CHAR(15) NOT NULL,
Ano CHAR(6) NOT NULL,
Bdate DATE,
Rdate DATE,
PRIMARY KEY(Rno,Bno,Ano),
FOREGIN KEY(Rno) REFERENCE Readers(Rno),
FOREGIN KEY(Bno) REFERENCE Book(Bno)
FOREGIN KEY(Ano) REFERENCE Administrators(Ano));
为了答题的方便,图中的实体和属性同时给出了中英文两种名字,回答问题时只需写出英文名即可。
【系统E-R图】

【问题2】
对于说明中建立的基本表,是否允许同一读者从同一管理员处多次(两次和两次以上)借阅同一本书为什么

答案

参考答案:

解析:不能。表Borrow中,借书证号Rno、管理员工作证号Ano和图书书号Bno共同组成主码,因此不允许有两个在主码上完全相同的元组(行)存在,也就是不允许同一读者从同一管理员处多次借阅同一本书。

[分析]: 主码是惟一识别表中记录的属性。在一个表中,不允许有两个在主码上完全相同的元组(行)存在。表Borrow中,借书证号Rno、管理员工作证号Ano和图书书号Bno共同组成主码,所以不允许由任意两行在这三个属性上的值都完全相同,也就是不允许同一读者从同一管理员处多次借阅同一本书。

选择题
多项选择题