• 2022-06-16
    已知学生关系模式Student(Sno,Sname,Sdept,MN,Course,Grade),其中:Sno:学号,Sname:学生姓名,Sdept:系名,MN:系主任名,Course:课程名,Grade:成绩.(1)写出关系模式Student的基本函数依赖及其主码.(2)将关系模式分解为2NF,并说明为什么?(3)将关系模式分解为3NF,并说明为什么?
  • (1)该关系模式存在以下函数依赖:Sno→Sname,Sdept→MN,Sno→Sdept,(Sno,CoursE.→Grade显然关系模式的码为Sno,Course。(2)原关系模式是属于1NF的,非主属性Grade完全按函数依赖于码,而其他非主属性对码的函数依赖均为部分函数依赖,所以不属于2NF。可将该关系模式分解为2NF如下:Student1(Sno,Sname,Sdept,MN)Student2(Sno,Course,GradE.(3)(2)中的关系模式Student1中存在Sno→Sdept,Sdept→MN,即非主属性MN传递依赖于码Sno,所以Student1可以进一步分解为3NF如下:Student11(Sno,Sname,Sdept)Student12(Sdept,MN)而Student2中不存在非主属性对码的传递依赖,故已经属于3NF。最终原关系模式分解为3NF得到:Student11(Sno,Sname,Sdept)Student12(Sdept,MN)Student2(Sno,Course,GradE.

    举一反三

    内容

    • 0

      现有学生关系 Student ,属性包括学号( ),姓名( ),所在系( ),系主任姓名( ),课程名( )和成绩( )。这些属性之间存在如下联系:一个学号只对应一个学生,一个学生只对应一个系,一个系只对应一个系主任;一个学生的一门课只对应一个成绩;学生名可以重复;系名不重复;课程名不重复。则以下不正确的函数依赖是 ( )。 A: . Sno →Sdept B: . Sno →Mname C: . Sname →Sdept D: .( Sname , Cname ) →Grade

    • 1

      现有学生关系Student,属性包括学号(),姓名(),所在系(),系主任姓名(),课程名()和成绩()。这些属性之间存在如下联系:一个学号只对应一个学生,一个学生只对应一个系,一个系只对应一个系主任;一个学生的一门课只对应一个成绩;学生名可以重复;系名不重复;课程名不重复。则以下不正确的函数依赖是( <br/>)。 A: Sno→Sdept B: Sno→Mname C: Sname→Sdept D: (Sname,Cname)→Grade

    • 2

      假设有学生表student的关系模式如下: student(sno,sname,ssex,sage,sdept) 各属性含义如下: Sno:学生学号 Sname:学生姓名 Ssex:学生性别 Sage:学生年龄 Sdept:学生所在院系 [br][/br] 假设有选修表sc的关系模式如下: Sc(sno,cno,grade) 各属性含义如下: Sno:学生学号 cno:学生选修课程编号 grade:学生选修课成绩 [br][/br] 用连接查询,查询“C02”号课程不及格的学生信息。

    • 3

      设有关系STUDENT(S#,SNAME,SDEPT,MNAME,CNAME,GRADE),S#,CNAME为候选码,设关系中有如下函数依赖: S#,CNAME→SNAME,SDEPT,MNAME S#→SNAME,SDEPT,MNAME S#,CNAME→GRADE SDEPT→MNAME 试求下列问题: (1)关系STUDENT属于第几范式? (2)如果关系STUDENT不属于BCNF,请将关系STUDENT逐步分解为BCNF。 要求:写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖

    • 4

      假设有学生表student的关系模式如下: student(sno,sname,ssex,sage,sdept) 各属性含义如下: Sno:学生学号 Sname:学生姓名 Ssex:学生性别 Sage:学生年龄 Sdept:学生所在院系 统计各系学生人数。写出sql代码。