4.14建立关于系学生班级社团等信息的一个关系数据库, 一个系有若干个专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一宿舍区,每个学生可以参加若干个社团,每个社团有若干个学生。 。描述学生的属性有:学号,姓名,出生年月,系名,班级号,宿舍区。 。描述班级的属性有:班级号,专业号,系名,人数,人学年份。 描述系的属性有:系名,系号,办公室地点,人数。 。描述社团的属性有:社团名,成立年份,地点,人数,学生参加某社团的年份。 (1)请给出关系模式,指出是否存在传递函数依赖,对于函数依赖左边是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。 (2)指出各关系的候选码、外码,有没有全码存在?
时间: 2024-04-01 10:32:05 浏览: 39
(1) 关系模式如下:
系 (系名, 系号, 办公室地点, 人数)
候选码:系号
外码:无
存在部分函数依赖:系名 → 系号,系号 → 系名
专业 (专业号, 系号, 系名)
候选码:专业号
外码:系号 → 系
存在传递函数依赖:专业号 → 系名,系名 → 系号
班级 (班级号, 专业号, 系名, 人数, 人学年份)
候选码:班级号
外码:专业号 → 专业,系名 → 系
存在传递函数依赖:班级号 → 系名,系名 → 系号
学生 (学号, 姓名, 出生年月, 系名, 班级号, 宿舍区)
候选码:学号
外码:系名 → 系,班级号 → 班级
存在传递函数依赖:学号 → 班级号,班级号 → 专业号,专业号 → 系号,系号 → 系名
社团 (社团名, 成立年份, 地点, 人数)
候选码:社团名
外码:无
参与 (学号, 社团名, 参加年份)
候选码:(学号, 社团名, 参加年份)
外码:学号 → 学生,社团名 → 社团
(2) 各关系的候选码、外码和全码如下:
系:候选码为系号,无外码,全码为{系号, 系名, 办公室地点, 人数}
专业:候选码为专业号,外码为系号 → 系,全码为{专业号, 系号, 系名}
班级:候选码为班级号,外码为专业号 → 专业,系名 → 系,全码为{班级号, 专业号, 系名, 人学年份}
学生:候选码为学号,外码为系名 → 系,班级号 → 班级,全码为{学号}
社团:候选码为社团名,无外码,全码为{社团名, 成立年份, 地点, 人数}
参与:候选码为{学号, 社团名, 参加年份},外码为学号 → 学生,社团名 → 社团,全码为{学号, 社团名, 参加年份}