1、参考习题解答上海大学 董健全5.2 设关系模式 R有 n个属性,在模式 R上可能成立的函数依赖有多少个?其中平凡的 FD有多少个?非平凡的 FD 有多少个?解:这个问题是排列组合问题。FD 形为 XY,从 n 个属性值中选择属性组成 X 共有C +C + +C =2n种方法;同理,组成 Y 也有 2n种方法。因此组成 XY 形式应该有 2n2n=4n种方法。即可能成立的 FD 有 4n个。平凡的 FD 要求 YX,组合 XY 形式的选择有:C C +C (C +C )+C (C C +C )+ +C (C C + C ) =C 20+C 21+C 22+ +C 2n=(1+2) n=3n 即平
2、凡的 FD 有 3n。因而非平凡的 FD 有 4n3 n个。5.3 对函数依赖 XY 的定义加以扩充,X 和 Y可以为空属性集,用 表示,那么X,Y, 的含义是什么?答:据推理规则的自反律可知,X 和 是平凡的 FD,总是成立的。而 Y 表示在当前关系中,任意两个元组的 Y 值相等,也就是当前关系的 Y 值都相等。5.4 已知关系模式 R(ABC) ,F 是 R 上成立的 FD 集,F= AB,BC ,试写出 F的闭包 F+。解:据已知条件和推理规则,可知 F+有 43 个 FD:A AB AC ABC B CAA ABA ACA ABCA BB CCAB ABB ACB ABCB BC AC
3、 ABC ACC ABCC BBCAAB ABAB ACAB ABCAB BCAAC ABAC ACAC ABCAC BCBABC ABBC ACBC ABCBC BCCAABC ABABC ACABC ABCABC BCBC5.5 设关系模式 R(ABCD) ,如果规定,关系中 B 值与 D 值之间是一对多联系,A 值与 C 值之间是一对一联系。试写出相应的函数依赖。解:从 B 值与 D 值之间有一对多联系,可写出函数依赖 DB,从 A 值与 C 值之间是一对一联系。可写出函数依赖 AC 和 CA。5.6试举出反例说明下列规则不成立: AB BA ABC,AC BC ABC AC 答:设有三
4、个关系:r1 A B r2 A B C r3 A B C1 1 2 1 2 1 2 32 1 2 2 2 1 3 43 2 3(1)在关系 r1中,AB 成立,但 BA 不成立。(2)在关系 r2中,ABC 和 AC 成立,但 BC 不成立(3)在关系 r3中,ABC 成立,但 AC 不成立。5.7 设关系模式 R(ABCD) ,F 是 R 上成立的 FD 集,F= AB,CB ,则相对于F,试写出关系模式 R 的关键码。并说明理由。解:R 的关键码为 ACD。因为从已知的 F,只能推出 ACDABCD。5.8 设关系模式 R(ABCD) ,F 是 R上成立的 FD集,F=AB,BC , 试写
5、出属性集 BD的闭包(BD) +。 试写出所有左部是 B的函数依赖(即形为“B?” ) 。解:从已知的 F,可推出 BDBCD ,所以(BD) +=BCD。由于 B+=BC,因此左部是 B 的 FD 有四个:B,BB, BC,BBC。5.9设关系模式 R(ABC)分解成 = AB,BC ,如果 R 上的 FD 集 F= AB ,那么这个分解是损失分解。试举出 R 的一个关系 r,不满足 m (r)=r。解:这个反例 r 可以举测试时的初始表格:A B CAB a1 a2 b13BC b21 a2 a3 AB(r) BC(r)有四个元组:A B Ca1 a2 b13a1 a2 a3b21 a2
6、b13b21 a2 a3即 m (r)r。5.10试解释数据库“丢失信息”与“未丢失信息”两个概念。 “丢失信息”与“丢失数据”有什么区别?答:数据库中丢失信息是指 rm (r) ,未丢失信息是指 r=m (r) 。丢失信息是指不能辨别元组的真伪,而丢失数据是指丢失元组。5.11设关系模式 R(ABC) ,F 是 R 上成立的 FD 集,F= AC,BC ,试分别求 F在模式 AB 和 AC 上的投影。答: AB(F) =(即不存在非平凡的 FD) AC(F) = AC 5.12设关系模式 R(ABC) ,F 是 R 上成立的 FD 集,F= BA,CA ,= AB,BC 是 R 上的一个分解
7、,那么分解 是否保持 FD 集 F?并说明理由。答:已知 F= BA,CA ,而 AB(F)= BA , BC(F)=,显然,分解 丢失了 FD CA。5.13设关系模式 R(ABC) ,F 是 R 上成立的 FD 集,F= BC,CA ,那么分解= AB,AC 相对于 F,是否无损分解和保持 FD?并说明理由。答:已知 F= BC,CA ,而 AB(F)=, AC(F)= CA 显然,这个分解丢失了 FD BC 用测试过程可以知道, 相对于 F 是损失分解。5.14设关系模式 R(ABCD) ,F 是 R 上成立的 FD 集,F= AB,BC,AD,DC ,= AB, AC,BD 是 R 的
8、一个分解。 相对于 F, 是无损分解吗?为什么? 试求 F 在 的每个模式上的投影。 保持 F 吗?为什么?答:用测试过程可以知道, 相对于 F 是损失分解。 AB(F)= AB , AC(F)= AC , BD(F)=。显然,分解 不保持 FD 集 F,丢失了 BC、AD 和 DC 等三个 FD。5.15设关系模式 R(ABCD) ,R 上的 FD 集 F= AC,DC,BDA ,试说明 = AB,ACD ,BCD 相对于 F 是损失分解的理由。答:据已知的 F 集,不可能把初始表格修改为有一个全 a 行的表格,因此 相对于 F 是损失分解。5.16设关系模式 R(ABCD) ,F 是 R
9、上成立的 FD 集,F= ABCD,AD 。 试说明 R 不是 2NF 模式的理由。 试把 R 分解成 2NF 模式集。答:从已知 FD 集 F,可知 R 的候选键是 AB。另外,ABD 是一个局部依赖,因此 R 不是 2NF 模式。 此时 R 应分解成 = AD,ABC , 是 2NF 模式集。5.17设关系模式 R(ABC) ,F 是 R 上成立的 FD 集,F= CB ,BA 。 试说明 R 不是 3NF 模式的理由。 试把 R 分解成 3NF 模式集。答:从已知 FD 集 F,可知 R 的候选键是 C。从 CB 和 BA,可知 CA 是一个传递依赖,因此 R 不是 3NF 模式。 此时
10、 R 应分解成 = CB,BA , 是 3NF 模式集。518 设有一个记录各个球队队员每场比赛进球数的关系模式R(队员编号,比赛场次,进球数,球队名,队长名)如果规定每个队员只能属于一个球队,每个球队只有一个队长。 试写出关系模式 R 的基本 FD 和关键码。 说明 R 不是 2NF 模式的理由,并把 R 分解成 2NF 模式集。 进而把 R 分解成 3NF 模式集,并说明理由。解:(1)根据每个队员只能属于一个球队,可写出 FD:队员编号球队名根据每个球队只有一个队长,可写出 FD:球队名队长名“每个队员每场比赛只有一个进球数” ,这条规则也是成立的。因此还可写出FD:(队员编号,比赛场次
11、)进球数R 的关键码为(队员编号,比赛场次 )。(2)R 中存在这样的 FD:(队员编号,比赛场次)(球队名,队长名)队员编号 (球队名,队长名)可见前一个 FD 是局部依赖,所以 R 不是 2NF 模式。R 应分解成 R1(队员编号,球队名,队长名)R2(队员编号,比赛场次,进球数 )此处,R1 和 R2 都是 2NF 模式。(3)R2 已是 3NF 模式。在 R1(队员编号,球队名, 队长名)中,存在两个 FD: 队员编号 球队名球队名 队长名关键码为队员编号,存在传递依赖,因此 R1 不是 3NF 模式。R1 应分解成 R11(队员编号,球队名)R12(球队名 ,队长名)这两个模式都是
12、3NF 模式。因此,R 分解成 3NF 模式集时,= R11,R12,R2 。5.19设有关系模式 R(职工编号,日期,日营业额,部门名,部门经理) ,该模式统计商店里每个职工的日营业额,以及职工所在的部门和经理信息。如果规定:每个职工每天只有一个营业额;每个职工只在一个部门工作;每个部门只有一个经理。试回答下列问题:(1)根据上述规定,写出模式 R 的基本 FD 和关键码;(2)说明 R 不是 2NF 的理由,并把 R 分解成 2NF 模式集;(3)进而分解成 3NF 模式集。解:(1)基本的 FD 有三个:(职工编号,日期) 日营业额职工编号 部门名部门名 部门经理R 的关键码为(职工编号
13、,日期)。(2)R 中有两个这样的 FD:(职工编号,日期)(部门名,部门经理)职工编号 (部门名,部门经理)可见前一个 FD 是局部依赖,所以 R 不是 2NF 模式。R 应分解成 R1(职工编号,部门名,部门经理)R2(职工编号,日期,日营业额)此处,R1 和 R2 都是 2NF 模式。(3)R2 已是 3NF 模式。在 R1 中,存在两个 FD:职工编号 部门名部门名 部门经理因此,“职工编号 部门经理”是一个传递依赖,R1 不是 3NF 模式。R1 应分解成 R11(职工编号,部门名)R12(部门名,部门经理)这样,= R11 ,R12 ,R2 是一个 3NF 模式集。5.20设关系模
14、式 R(ABC)上有一个 MVD AB 。如果已知 R 的当前关系存在三个元组(ab 1c1) 、 (ab 2c2)和(ab 3c3) ,那么这个关系中至少还应该存在哪些元组?解:这个关系中至少还应存在下面 6 个元组:(ab 1c2) , (ab 2c1) , (ab 1c3) , (ab 3c1) ,(ab 2c3) , (ab 3c2) 。7.2 数据库系统的生存期分成哪几个阶段?数据库结构的设计在生存期中的地位如何?答:对 DBS 生存期的划分,一般分为七个阶段,即规划、需求分析、概念设计、逻辑设计、物理设计、实现和运行维护。DB 结构设计的任务就是把概念设计阶段设计好的基本 ER 图
15、转换成与选用的具体机器上的 DBMS 所支持的数据模型相符合的逻辑结构。7.4基于数据库系统生存期的数据库设计分成哪几个阶段?答:基于 DBS 生存期的 DBD 分成以下五个阶段:规划;需求描述和分析;概念设计;逻辑设计;物理设计。7.5 数据库设计的规划阶段应做哪些事情?答:DBD 中规划阶段的主要任务是进行建立 DB 的必要性及可行性分析,确定 DBS 在组织中和信息系统中的地位,以及各个 DB 之间的联系。7.6 数据库设计的需求分析阶段是如何实现的?目标是什么?答:需求分析阶段的工作由下面四步组成:分析用户活动,产生用户活动图;确定系统范围,产生系统范围图;分析用户活动所涉及的数据,产
16、生数据流图;分析系统数据,产生数据字典。需求分析阶段的目标是对系统的整个应用情况作全面的、详细的调查,确定企业组织的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求;并把这些要求写成用户和数据库设计者都能接受的文档。7.10概念设计的具体步骤是什么?答:概念设计的主要步走可分为三步:(1) 进行数据抽象,设计局部概念模式;(2) 将局部概念模式综合成全局概念模式;(3) 评审。7.13逻辑设计的目的是什么?答:逻辑设计的目的是把概念设计阶段设计好的基本 ER 图转换成与选用的具体机器上的DBMS 所支持的数据模型相符合的逻辑结构(包括数据库模式和外模式) 。这些模式在
17、功能、性能、完整性和一致性约束及数据库的可扩充性等方面均应满足用户的各种要求。7.14试述逻辑设计阶段的主要步骤及内容。答:逻辑设计阶段主要有五步:形成初始模式,设计子模式,设计应用程序梗概,评价模式和修改模式。7.15 规范化理论对数据库设计有什么指导意义?答:规范化理论是数据库设计的指南和工具.具体地讲可在以下三个方面起重要作用:(1)在数据库分析阶段用数据依赖的概念来分析和表示各数据项之间的联系;(2)在概念设计阶段,用规范化理论消除初步 ER图中冗余的联系;(3)在 ER图向关系模型转换过程中,用模式分解的概念和算法指导设计.7.16 什么是数据库结构的物理设计?试述其具体步骤。答:对
18、于给定的基本数据模型选取一个最适合应用环境的物理结构的过程,称为 DB 的物理设计。 物理设计有五步:确定 DB 的存储记录结构;确定数据存储按排;存取方法的设计;完整性和安全性的设计;应用程序设计。7.17 数据库实现阶段主要做哪几件事情?答:数据库实现阶段主要有以下三项工作:建立实际 DB 结构;装入试验数据调试应用程序;装入实际数据进入试运行状态。7.18 数据库系统投入运行后,有哪些维护工作?答:DBS 投入运行以后,就进入运行维护阶段。其主要工作有四项:维护 DB 的安全性与完整性及系统的转储和恢复;DB 性能的监督、分析与改进;增加 DB 新功能;改正运行中发现的系统错误。82 试
19、叙述事务的四个性质,并解释每一个性质由 DBMS的哪个子系统实现?每一个性质对 DBS有什么益处?答: 事务的原子性,是指一个事务对 DB 的所有操作,是一个不可分割的工作单元。原子性是由 DBMS 的事务管理子系统实现的。事务的原子性保证了 DBS 的完整性。 事务的一致性,是指数据不会因事务的执行而遭受破坏。事务的一致性是由DBMS 的完整性子系统实现的。事务的一致性保证数据库的完整性。 事务的隔离性,是指事务的并发执行与这些事务单独执行时结果一样。事务的隔离性是由 DBMS 的并发控制子系统实现的。隔离性使并发执行的事务不必关心其他事务,如同在单用户环境下执行一样。 事务的持久性,是指事
20、务对 DB 的更新应永久地反映在 DB 中。持久性是由 DBMS的恢复管理子系统实现的。持久性能保证 DB 具有可恢复性。83 事务的 COMMIT语句和 ROLLBACK语句各做什么事情?答:COMMIT 语句表示事务执行成功地结束(提交) ,此时告诉系统,DB 要进入一个新的正确状态,该事务对 DB 的所有更新都已交付实施(写入磁盘) 。ROLLBACK 语句表示事务执行不成功地结束(应该“回退” ) ,此时告诉系统,已发生错误,DB 可能处在不正确的状态,该事务对 DB 的所有更新必须被撤消,DB 应恢复该事务到初始状态。85“检查点机制”的主要思想是什么?COMMIT 语句与检查点时刻
21、的操作如何协调?答:“检查点机制”的主要思想是在检查点时刻才真正做到把对 DB 的修改写到磁盘。在DB 恢复时,只有那些在最后一个检查点到故障点之间还在执行的事务才需要恢复。事务在 COMMIT 时,事务对 DB 的更新已提交,但对 DB 的更新可能还留在内存的缓冲区,在检查点时刻才真正写到磁盘。因此事务的真正结束是在 COMMIT 后还要加上遇到检查点时刻。86 什么是 UNDO操作和 REDO操作?为什么要这样设置?答:UNDO 和 REDO 是系统内部命令。在 DB 恢复时,对于已经 COMMIT 但更新仍停留在缓冲区的事务要执行 REDO(重做)操作,即根据日志内容把该事务对 DB 修
22、改重做一遍。对于还未结束的事务要执行 UNDO(撤消)操作,即据日志内容把该事务对 DB 已作的修改撤消掉。设置 UNDO 和 REDO 操作,是为了使数据库具有可恢复性。87 什么是“运行记录优先原则”?其作用是什么?答:写一个修改到 DB 中和写一个表示这个修改的登记记录到日志文件中是两个不同的操作,后者比前者重要,后者应先做。这就是运行记录优先原则。其作用是保证 DBS 具有可恢复性。88 数据库恢复的基本原则是什么?具体实现方法是什么?答:恢复的基本原则是“冗余” ,即数据重复存储。为了做好恢复工作,在平时应做好两件事:定时对 DB 进行备份;建立日志文件,记录事务对 DB 的更新操作
23、。89 数据库的并发操作会带来哪些问题?如何解决?答:如果不加控制,数据库的并发操作会带来三个问题:丢失更新问题、依赖于未提交更新的问题和不一致分析问题。解决并发操作带来的问题,可以使用封锁技术和时标技术。810 为什么 DML可以单独提供解除 S封锁的命令,而不单独提供解除 X封锁的命令?答:为防止由事务的 ROLLBACK引起丢失更新操作,X 封锁必须保留到事务终点,因此 DML不提供专门的解除 X锁的操作,即解除 X锁的操作合并到事务的终点去做。而在未到事务终点时,执行解除 S锁的操作,可以增加事务并发操作的程度,但对 DB不会产生什么错误的影响,因此 DML可以提供专门的解除 S锁的的
24、操作,让用户使用。812 死锁的发生是坏事还是好事?试说明理由。如何解除死锁状态?答:在 DBS运行时,死锁状态是我们不希望发生的,因此死锁的发生本身是一件坏事。但是坏事可以转换为好事。如果我们不让死锁发生,让事务任意并发做下去,那么有可能破坏中的数据,或使用户读了错误的数据。从这个意义上讲,死锁的发生是一件好事,能防止错误的发生。在发生死锁后,系统的死锁处理机制和恢复程序就能起作用,抽取某个事务作为牺牲品,把它撤消,做 ROLLBACK操作,使系统有可能摆脱死锁状态,继续运行下去。813 试叙述“串行调度”与“可串行化调度”的区别。答:如果多个事务依次执行,则称事务串行调度。如果利用分时的方
25、法,同时处理多个事务,则称为事务的并发调度。如果一个并发调度的结果与某一串行调度执行结果等价,则称这个并发调度是可串行化调度。815 什么是数据库的完整性?DBMS 的完整性子系统的主要功能是什么?答:DB 中完整性是指数据的正确性、有效性和相容性,防止错误的数据进入 DB。DBMS 完整性子系统的主要功能有两点:监督事务的执行,并测试是否违反完整性规则;若有违反现象,则采取恰当的操作。816 完整性规则由哪几个部分组成?SQL 中的完整性约束有哪些?答:完整性规则由三部分组成:触发条件,约束条件和 ELSE 子句。SQL 中把完整性约束分成三大类:域约束。基本表约束和断言。817 参照完整性
26、规则在 SQL中可以用哪几种方法实现?删除参照关系的元组时,对依赖关系有哪些影响?修改参照关系的主键值时,对依赖关系有哪些影响?答:参照完整性规则,在 SQL 中可以用外键子句、检查子句、断言等三种方式实现。删除参照关系的元组时,对依赖关系的影响可以采取下列三种做法之一:RESTRICT 方式、CASCADE 方式和 SET NULL 方式。修改参照关系的主键值时,对依赖关系的影响也可以采取与上述类似的三种做法之一。818 试对 SQL中检查约束(CHECK 子句)和断言两种完整性约束进行比较,各说明什么对象?何时激活?能保证数据库的一致性吗?答:检查子句主要用于对属性值、元组值加以限制和约束
27、。断言实际上是一种涉及面广的检查子句,用 CREATE 语句来定义。这两种约束都是在进行插入或修改时激活,进行检查。检查子句只在定义它的基本表中有效,而对其他基本表无约束力,因此在与检查子句有关的其他基本表进行修改时,就不能保证这个基本表中检查子句的语义了。而断言能保证完整性约束彻底实现。819 设教学数据库的关系如下:S(SNO,SNAME,AGE,SEX)SC(SNO,CNO,GRADE)C(CNO,CNAME,TEACHER)试用多种方法定义下列完整性约束: 在关系 S中插入的学生年龄值应在 1625 岁之间。 在关系 SC中插入元组时,其 SNO值和 CNO值必须分别在 S和 C中出现
28、。 在关系 C中删除一个元组时,首先要把关系 SC中具有同样 CNO值的元组全部删去。 在关系 S中把某个 SNO值修改为新值时,必须同时把关系 SC中那些同样的 SNO值也修改为新值。解:这里每个约束用一种方式定义。(1)用检查子句定义:CHECK(AGE BETWEEN 16 AND 25) ;(2)在关系 SC的定义中,用外键子句定义:FOREIGN KEY(SNO) REFERENCES S(SNO) ;FOREIGN KEY(CNO) REFERENCES C(CNO) ;(3)在关系 SC的定义中,用外键子句定义:FOREIGN KEY(CNO) REFERENCES C(CNO)
29、ON DELETE CASCADE;(4)在关系 SC的定义中,用外键子句定义:FOREIGN KEY(SNO) REFERENCES S(SNO)ON UPDATE CASCADE;820 在教学数据库中的关系 S、SC、C 中,试用 SQL的断言机制定义下列两个完整性约束: 每位教师开设的课程不能超过 10门。(2)不允许男同学选修 WU老师的课程。(3)每门课程最多 50名男同学选修(4)学生必须在选修 Maths课后,才能选修其他课程。(5)每个男学生最多选修 20门课程。解: 每位教师开设的课程不能超过 10门。CREATE ASSERTION ASSE5 CHECK(10=ALL(
30、SELECT COUNT(CNO)FROM CGROUP BY TNAME)(2)不允许男同学选修 WU老师的课程。CREATE ASSERTION ASSE2 CHECK(NOT EXISTS ( SELECT *FROM SC WHERE CNO IN (SELECT CNO FROM CWHERE TNAME=WUAND SNO IN (SELECT SNO FROM CWHERE SEX=男 ) ) ) ;(3)每门课程最多 50名男同学选修CREATE ASSERTION ASSE3 CHECK(50=ALL(SELECT COUNT(SC.SNO)FROM S, SCWHERE S
31、.SNO=SC.SNO AND SEX= 男GROUP BY CNO);(4) 学生必须在选修 Maths课后,才能选修其他课程。这个约束可用下列形式表达:“不存在一个学生的选课,这个学生没学过 Maths 课” 。这样就能很容易地写出断言:CREATE ASSERTION ASSE4 CHECK(NOT EXISTS( SELECT SNOFROM SC XWHERE NOT EXISTS(SELECT *FROM SC Y, CWHERE Y.CNO=C.CNOAND Y.SNO=X.SNOAND CNAME=Maths);(5)每个男学生最多选修 20门课程。CREATE ASSERTI
32、ON ASSE5 CHECK(20=ALL(SELECT COUNT(CNO)FROM S, SCWHERE S.SNO=SC.SNO AND SEX=男GROUP BY S.SNO);821 什么是数据库的安全性?有哪些级别的安全措施?答:DB 的安全性是指保护 DB,防止不合法的使用,以免数据的泄密、更新或破坏。为了保护 DB,防止恶意的滥用,可以在从低到高五个级别上设置各种安全措施:环境级、职员级、OS 级、网络级、DBS 级。 (解释略)824 SQL 的视图机制有哪些优点?答:SQL 的视图机制使系统具有三个优点:数据安全性,逻辑独立性和操作简便性。825 SQL2 中的用户权限有哪
33、几类?并做必要的解释。答:SQL2 中的用户权限有六类:SELECT、INSERT、DELETE、UPDATE、REFERENCES 和 USAGE.10.3什么是对象联系图?图中,椭圆、小圆圈、单箭头() 、双箭头() 、双线箭头() 、双向箭头()这些结构各表示什么含义?答:描述类型定义间嵌套和递归联系的图称为对象联系图。图中,每个对象可以有若干属性,属性的类型可以是基本数据类型、元组类型或集合类型,而元组或集合是以指针形式(引用类型)实现。对象联系图中椭圆表示对象类型(相当于实体类型) ;小圆圈表示属性是基本数据类型,单箭头()表示属性值是单值;双箭头()表示属性值是多值;双线箭头(=)
34、表示对象类型之间的子类与超类联系(从子类指向超类) ;双向箭头()表示两个属性之间值的联系为逆联系。10.4面向对象的类型系统有哪三部分组成?每一部分又有哪些数据类型?答:面向对象的类型系统基本数据类型、复合类型和引用类型三部分组成。基本数据类型有整型、浮点型、字符、字符串型、布尔型和枚举型等五种。复合类型有行类型、数组类型、列表类型、包类型和集合类型等五种。引用类型只要一种。10.5在 ORDB中有哪些基本数据类型?有哪些复合数据类型?答:基本数据类型有整型、浮点型、字符串型和日期型等。复合类型有结构类型、数组类型、多集类型和集合类型等四种。10.6 ORDB中,子表和超表应满足哪两个一致性
35、要求?答:(1)超表中每个元组最多可以与每个子表中的一个元组对应。(2)子表中每个元组在超表中恰有一个元组对应。10.7 图 13.11是有关教师(Faculty) 、系(Department)和系主任(Director)信息的对象联系图。(1)试用 ORDB的定义语言,定义这个数据库。(2)试用 ORDB的查询语言,分别写出下列查询的 SELECT语句: 检索精通俄语(Russian)的教师工号和姓名。 检索复旦大学出访过瑞士(Switzerland)并且精通日语(Japanese)的系主任。解:(1)CREATE TYPE MyString char varying;CREATE TABL
36、E department(university MyString,dname MyString,staff setof(ref(faculty),dire ref(director);CREATE TABLE faculty(fno integer,fname MyStringlanguages setof(MyString),countries setof(MyString),works_for ref(department);CREATE TABLE director(dno integer)(大学名)university(系名)dnameworks_forstaffdire dno(系主任编号)countries(出访过的国家)languages(精通的外语)fanem(姓名)fno(工号)DirectorDepartmentFaculty图 13.11 对象联系图