建立一个关于系、学生、班级、学会等诸信息的关系数据库。
学生:学号、姓名、出生年月、系名、班号、宿舍区。
班级:班号、专业名、系名、人数、入校年份。
系:系名、系号、系办公地点、人数。
学会:学会名、成立年份、办公地点、人数。
语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在?
学生:学号、姓名、出生年月、系名、班号、宿舍区。
班级:班号、专业名、系名、人数、入校年份。
系:系名、系号、系办公地点、人数。
学会:学会名、成立年份、办公地点、人数。
语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在?
(1)
关系模式如下:?xml:namespace>
学生:S(Sno
,Sname
,Sbirth
,Dept
,Class
,Rno)
班级:C(Class
,Pname
,Dept
,Cnum
,Cyear)
系:D(Dept
,Dno
,Office
,Dnum)
学会:M(Mname
,Myear
,Maddr
,Mnum)
(2)每个关系模式的最小函数依赖集如下:
A、学生
S (Sno,
Sname,
Sbirth,
Dept,
Class,
Rno)的最小函数依赖集如下
:Snoà
Sname,
Snoà
Sbirth,
Snoà
Class,
Classà
Dept,
DEPTà
Rno传递依赖如下:
由于Sno
àDept
,而Dept
àSno
,Dept
àRno
(宿舍区)所以
Sno与
Rno之间存在着传递函数依赖。
由于Class
àDept
,Dept
àClass
,Dept
àRno
所以Class
与Rno
之间存在着传递函数依赖。由于
Snoà
Class,
Classà
Sno,
Classà
Dept所以
Sno与
Dept之间存在着传递函数依赖。
B、班级
C(Class,
Pname,
Dept,
Cnum,
Cyear)的最小函数依赖集如下
:Class
àPname
,Class
àCnum
,Class
àCyear
,Pname
àDept.
由于Class
àPname
,Pname
àClass
,Pname
àDept
所以C1ass
与Dept
之间存在着传递函数依赖。C
、系D(Dept
,Dno
,Office
,Dnum)
的最小函数依赖集如下:Dept
àDno
,Dno
àDept
,Dno
àOffice
,Dno
àDnum
根据上述函数依赖可知,Dept
与Office
,Dept
与Dnum
之间不存在传递依赖。D
、学会M(Mname
,Myear
,Maddr
,Mnum)
的最小函数依赖集如下:Mname
àMyear
,Mname
àMaddr
,Mname
àMnum
该模式不存在传递依赖。(3)
各关系模式的候选码、外部码,全码如下:A
、学生S
候选码:Sno
;外部码:Dept
、Class
;无全码B
、班级C
候选码:Class
;外部码:Dept
;无全码C
、系D
候选码:Dept
或Dno
;无外部码;无全码D
、学会M
候选码:Mname
;无外部码;无全码
关系模式如下:?xml:namespace>
学生:S(Sno
,Sname
,Sbirth
,Dept
,Class
,Rno)
班级:C(Class
,Pname
,Dept
,Cnum
,Cyear)
系:D(Dept
,Dno
,Office
,Dnum)
学会:M(Mname
,Myear
,Maddr
,Mnum)
(2)每个关系模式的最小函数依赖集如下:
A、学生
S (Sno,
Sname,
Sbirth,
Dept,
Class,
Rno)的最小函数依赖集如下
:Snoà
Sname,
Snoà
Sbirth,
Snoà
Class,
Classà
Dept,
DEPTà
Rno传递依赖如下:
由于Sno
àDept
,而Dept
àSno
,Dept
àRno
(宿舍区)所以
Sno与
Rno之间存在着传递函数依赖。
由于Class
àDept
,Dept
àClass
,Dept
àRno
所以Class
与Rno
之间存在着传递函数依赖。由于
Snoà
Class,
Classà
Sno,
Classà
Dept所以
Sno与
Dept之间存在着传递函数依赖。
B、班级
C(Class,
Pname,
Dept,
Cnum,
Cyear)的最小函数依赖集如下
:Class
àPname
,Class
àCnum
,Class
àCyear
,Pname
àDept.
由于Class
àPname
,Pname
àClass
,Pname
àDept
所以C1ass
与Dept
之间存在着传递函数依赖。C
、系D(Dept
,Dno
,Office
,Dnum)
的最小函数依赖集如下:Dept
àDno
,Dno
àDept
,Dno
àOffice
,Dno
àDnum
根据上述函数依赖可知,Dept
与Office
,Dept
与Dnum
之间不存在传递依赖。D
、学会M(Mname
,Myear
,Maddr
,Mnum)
的最小函数依赖集如下:Mname
àMyear
,Mname
àMaddr
,Mname
àMnum
该模式不存在传递依赖。(3)
各关系模式的候选码、外部码,全码如下:A
、学生S
候选码:Sno
;外部码:Dept
、Class
;无全码B
、班级C
候选码:Class
;外部码:Dept
;无全码C
、系D
候选码:Dept
或Dno
;无外部码;无全码D
、学会M
候选码:Mname
;无外部码;无全码
举一反三
- 建立一个关于系、学生、班级、学会等诸信息的关系数据库。 描述学生的属性有:学号、姓名、生日、系名、班号、宿舍区。 描述班级的属性有:班号、专业名、系名、人数、入校年份。 描述系的属性有:系号、系名、系办公室地点、人数。 描述学会的属性有:学会名、成立年份、地点、人数。 有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每学会有若干学生。学生参加某学会有一个入会年份。 请写出每个关系模式的极小函数依赖集。
- 建立关于系、学生、班级、社团等信息的一个关系数据库,一个系有若干个专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一宿舍区,每个学生可以参加若千个社团,每个社团有若干学生。描述系的属性有:系名、系号、办公室地点、人数。
- 【多选题】描述班级的属性有:班号、专业名、系名、人数、入校年份,其中班号是主码。包含的语义有:一个系有若干专业, 每个专业属于一个系,每个专业每年只招一个班。下面哪些函数依赖是合理的: A. 班号→ 专业名 B. 专业名 → 班号 C. (专业名,入校年份) → 人数 D. (专业名,入校年份) → 班号 E. 专业名 → 系名
- 建立关于系、学生、班级、社团等信息的一个关系数据库,一个系有若干个专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一宿舍区,每个学生可以参加若千个社团,每个社团有若干学生。描述社团的属性有:社团名、成立年份、地点、人数、学生参加某社团的年份。
- 在关系模式学生(学号,姓名,性别,年龄,系号,系名)中,“系名”对主码“学号”的函数依赖是( ) A: 完全函数依赖 B: 部分函数依赖 C: 平凡函数依赖 D: 传递函数依赖
内容
- 0
设有一个关于系、专业、班级、学生等信息的数据库有4个实体。一是“系”实体集,属性有系名、系号、系办公室地点等;二是“专业”实体集,属性有专业代号,专业名称等;三是“班级”实体集,属性有班号、人数等;四是“学生”实体集,属性有学号、姓名等;一个系有若干专业,每个专业有若干班,每个班有若干学生。请根据以上语义画出E-R图,并在图上注明属性、联系类型
- 1
学生关系(学号,姓名,性别,年龄,系号,系名)中,“系名”对主关键字“学号”的函数依赖是( )。 A: 完全函数依赖 B: 部分函数依赖 C: 传递函数依赖 D: 平凡函数依赖
- 2
学生关系(学号,姓名,性别,年龄,系号,系名)中,“系名”对主关键字“学号”的函数依赖是
- 3
设有关系模式:学生选课(学生号,学生姓名,出生日期,系部号,系部名称,系部负责人,课程号,课程名,学分,成绩)。有如下语义:每个学生有唯一的学号,不同的同学可以重名,每个学生有一个出生日期。每个学生属于一个系部,每个系部有一个系部号,一个负责人。每个人可以选修多门课,每门课可以多人选修。学生每选修一门课有一个成绩。 (1) 写出该关系模式的基本函数依赖集。 (2) 分析该关系模式的候选码。 (3) 分析该关系模式的范式等级。 (4) 若该关系模式达不到3NF,将该关系模式分解为3NF的关系模式。
- 4
有一个学生关系模式STUDENT(学号,姓名,出生日期,系名,班号,宿舍号),其候选键为