问答题 在某数据库中,相关表的建表语句如下:create tableT1( a1 int primary key, a2 int, a3 int foreign key references T2(a3));create tableT2( a3 int primary key, a4 int, a5 int foreign key references T2(a3));create tableT3( a1 int, a3 int, a6 int,primary key (a1, a3),a1 foreign key references T1(a1),a3 foreign key references T2(a3));请画出相应的E-R图,使得可以从该E-R图推导出上述表定义,其中实体和联系的名称可以自定,实体的主码属性请使用下划线标明。
【正确答案】正确答案:
【答案解析】解析:ER图向关系模式转换涉及到两方面:实体的转换和实体间联系的转换。 ①实体的转换:在从E_R图转换为关系模式时,一个实体就转换成一个关系模式,实体的属性就是关系模式的属性,实体的键就是关系的主键。 ②实体间联系的转换:实体间存在三种联系,即1:1(一对一),1:m(一对多),m:n(多对多)。 1:1(一对一)联系 方法一:联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的键构成;主键由两个实体中的任意一个键构成。 方法二:联系与一端的实体的关系模式合并,即将联系的属性加入到实体的关系模式内,主键不变。 1:m(一对多)联系 方法一:联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的键构成;主键由n端实体的键组成。 方法二:与n端的实体的关系模式合并,即将联系的属性加入到实体的关系模式内,主键不变。 m:n(多对多)联系 多对多联系转换成新的独立的模式时,模式的属性由联系本身的属性及两个实体的键构成,主键由两端实体的键组合而成。 该题是是从关系模式来推断E_R图,因此解题的思路是对E_R向关系模式转换做反向转换。 根据规则C可以推断T3是个多对多关系,a1和a3是实体的主码,a6是联系的属性。 根据规则B可以推断出T1,T2是1:m关系。因为a3和a5是外码。且a3和a5的值相同。a2、a4是联系T1、T2的属性,a2也可以是实体1的属性。