大三上:数据库系统概论第六章课后作业

大三上:数据库系统概论所有实验报告和课后作业

文章目录

  • 2. 建立一个关于系、学生、班级、学会等诸信息的关系数据库。
  • 6. 有关系模式R(A,B,C,D,E),回答下面各个问题:

2. 建立一个关于系、学生、班级、学会等诸信息的关系数据库。

描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。
描述班级的属性有:班号、专业名、系名、人数、入校年份。
描述系的属性有:系名、系号、系办公室地点、人数。
描述学会的属性有:学会名、成立年份、地点、人数。
有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系的候选码、外部码,有没有全码存在?

答:

  • 关系模式:学生S (S#,SN, SB,DN, C#,SA)
    班级C (C#,CS,DN,CNUM,CDATE)
    系D (D#,DN, DA,DNUM)
    学会P (PN,DATE1, PA,PNUM)
    学生-学会SP (S#,PN, DATE2)
  • 其中,S#一学号,SN一姓名,SB一出生年月, SA一宿舍区
    C#一班号,CS一专业名,CNUM一班级人数,CDATE一入校年份
    D#一系号, DN一系名,DA一系办公室地点,DNUM一系人数
    PN一学会名,DATE1一成立年月,PA一地点,PNUM一学会会员人数,DATE2一入会年份
  • 依据上面给出的语义,写出每个关系模式的极小函数依赖集:
    S: S#→SN,S#→SB, S#→C#, C#→DN, DN→SA .
    /*一个系的学生住在同一宿舍区*/
    C: C#→CS,C#→CNUM,C#→CDATE, CS→DN,(CS,CDATE)→C#
    /*因为每个专业每年只招一个班*/
    D: D#→DN,DN→D#,D#→DA,D#→DNUM
    /*按照实际情况,系名和系号是- – -对应的*/
    P: PN→DATE1,PN→PA, PN→PNUM
    SP: (S#,PN)→DATE2
    /*学生参加某学会有一个入会年份*/
  • S中存在的传递函数依赖:
    因为S#→C#,C#→DN,所以存在传递函数依赖S#→DN,
    因为C#→DN,DN→SA,所以存在传递函数依赖C#→SA,
    因为S#→C#,C#→DN,DN→SA,所以存在传递函数依赖S#→SA.
    C中存在的传递函数依赖:
    因为C#→CS,CS→DN,所以存在传递函数依赖C#→DN。
    函数依赖左部是多属性的情况:
    (S#,PN)→DATE2和(CS, CDATE)→C#函数依赖左部具有2个属性,他们都是完全函数依赖,没有部分函数依赖的情况。
关系 候选码 外部码 全码
S S# C#, DN
C C# 和(CS,CDATE) DN
D D#和 DN
P PN
SP (S#, PN) S#, PN

关系模式C和D都有2个候选码。

6. 有关系模式R(A,B,C,D,E),回答下面各个问题:

  1. 若A是R的候选码,具有函数依赖BC→DE,那么在什么条件下R是BCNF?
  2. 如果存在函数依赖A→B,BC→D,DE→A,列出R的所有码。
  3. 如果存在函数依赖A→B,BC→D,DE→A,R属于3NF还是BCNF?

答:

  1. A是R的候选码,且(BC)也是R的候选码,则R是BCNF。
  2. (ACE)、(BCE)、(CDE)均为R的候选码。
  3. 因为A B C D E都是主属性,所以R属于3NF,R不属于BCNF。

你可能感兴趣的:(sql)