您好、欢迎来到现金彩票网!
当前位置:大兴彩票 > 概念依赖 >

数据库中的函数依赖

发布时间:2019-07-22 23:53 来源:未知 编辑:admin

  现在要建立一个数据库来描述学生的一些情况,面临的对象有:学生(用学号SNO描述),系(用系名SDEPT描述),系负责人(用其姓名MN描述),课程(用课程名CNAME描述)和成绩(G)。于...

  现在要建立一个数据库来描述学生的一些情况,面临的对象有:学生(用学号SNO描述),系(用系名SDEPT描述),系负责人(用其姓名MN描述),课程(用课程名CNAME描述)和成绩(G)。于是得到一组属性。U={SNO,SDEPT,MN,CNAME,G}

  如果一个系刚成立尚无学生,或者虽然有了学生但尚未安排课程。那么就无法把这个系及其负责人的信息存入数据库。称为插入异常。

  请问,为什么有了学生但尚未安排课程这件事会导致无法把系及其负责人的信息存入数据库。看到前面的关系描述,并没有说有了学生和课程与系之间的关系描述呀?所以我认为,有了学生但尚未安排课程并不会导致系无法存入,请解释一下,多谢!展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部上述模式实际上对应一个数据库表,该表由SNO,SDEPT,MN,CNAME,G字段所构成,由于有函数依赖关系F,于是该关系(表)的主码是(SNO,CNAME),这意味着SNO,CNAME皆不可为空,但现在学生没有选课,CNAME为空,违反了主码不为空的原则,所以与之相关的记录是不能写入数据库的,同时,由于系中尚没有其他的学生,就是表中没有系及其负责人的信息,故与该学号相关的系、负责人是不能写入数据库的。追问为什么主码是(SNO,CNAME)?谢谢追答那你得回过头去研究函数依赖、主码的定义。

  (SNO,CNAME)可以决定G、SDEPT、MN, 所以它们是主码。

  SNO可以推导出SDEPT, 有SDEPT可以推导出MN,但是你只有SNO,是无法推导出G的,难道不是吗?推导出G需要有CNAME,可是你却告诉只有SNO,没有选课,所以就无法得到,对应功课的成绩!这个时候,我们就要来讨论primary key,我想你肯定知道主键是什么意思了,因为你已经学到了这里,所以对数据库肯定有一定的了解,好了,不说废话,在F中,SNO不能作为主键,因为只有SNO的话,却无法得到G,(原因,前面已经讲过!),只有SDEPT,就跟更没有办法得到G了,不是吗?只有通过(SNO, CNAME)联合才能得到G,而在这之中,有SNO,所以,通过SNO可以推导出,SDEPT,而通过SDEPT,可以推导出MN,不是吗?所以总结得出,primary key 只能是(SNO , CNAME)。一个表中主键没有值,那是肯定不可以的!所有数据就不可能插于进去!

http://ememes.net/gainianyilai/1040.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有