学生(学号,课号,课程名称,成绩)什么冗余,存在什么异常,应该采用什么设计
1个回答
关注
展开全部
在学生(学号,课号,课程名称,成绩)这个设计中,存在以下冗余和异常:冗余:课程名称是可以通过课号来确定的,因此课程名称这一属性是冗余的,可以通过在课程表中查找课号和课程名称的对应关系来获取课程名称。异常:一个学生在同一门课程上应该只有一条记录,但是在该设计中,同一学生在同一门课程上可能会有多条记录,因此存在异常。为了避免上述冗余和异常,可以采用以下设计:学生表(Student):学号、姓名、性别、年级等基本信息。课程表(Course):课号、课程名称、学分等基本信息。成绩表(Score):学号、课号、成绩等信息。这种设计将课程名称从学生表中移除,通过成绩表和课程表的关联来获取课程名称。同时,每个学生在同一门课程上只会有一条成绩记录,避免了上述异常。
咨询记录 · 回答于2023-04-11
学生(学号,课号,课程名称,成绩)什么冗余,存在什么异常,应该采用什么设计
在学生(学号,课号,课程名称,成绩)这个设计中,存在以下冗余和异常:冗余:课程名称是可以通过课号来确定的,因此课程名称这一属性是冗余的,可以通过在课程表中查找课号和课程名称的对应关系来获取课程名称。异常:一个学生在同一门课程上应该只有一条记录,但是在该设计中,同一学生在同一门课程上可能会有多条记录,因此存在异常。为了避免上述冗余和异常,可以采用以下设计:学生表(Student):学号、姓名、性别、年级等基本信息。课程表(Course):课号、课程名称、学分等基本信息。成绩表(Score):学号、课号、成绩等信息。这种设计将课程名称从学生表中移除,通过成绩表和课程表的关联来获取课程名称。同时,每个学生在同一门课程上只会有一条成绩记录,避免了上述异常。
宝子可以看一下哦
异常是插入异常还是删除异常还是更新异常呢
异常(Exception)通常是指程序在运行过程中遇到的不正常情况,需要进行特殊处理。在数据库操作中,通常会遇到插入异常、删除异常和更新异常。插入异常(Insert Exception)是指在插入数据时出现异常,例如插入重复数据、插入非法数据等情况。这时需要进行处理,可以选择不插入该数据,或者插入并给出提示信息,让用户知道出现了异常情况。删除异常(Delete Exception)是指在删除数据时出现异常,例如删除的数据不存在、删除的数据与其他数据存在关联等情况。这时需要进行处理,可以选择不删除该数据,或者删除并给出提示信息,让用户知道出现了异常情况。更新异常(Update Exception)是指在更新数据时出现异常,例如更新的数据不存在、更新的数据与其他数据存在冲突等情况。这时需要进行处理,可以选择不更新该数据,或者更新并给出提示信息,让用户知道出现了异常情况。因此,异常类型的选择取决于具体的数据库操作情况和处理策略。在处理异常时,需要根据具体情况采取不同的处理措施,保证数据库操作的正确性和稳定性。
宝子在这里说不清楚,看一下私信我给你发的
就是这个关系模式存在这三种异常里的什么情况
在学生(学号,课号,课程名称,成绩)的关系模式中,存在以下异常情况:插入异常:如果某个学生没有选修任何课程,那么该学生在该关系模式中将无法表示。因为该关系模式的主键包含了课号,所以必须存在至少一条记录才能插入该学生的信息。更新异常:如果一门课程的课程名称发生了变化,那么需要同时更新该课程的所有成绩记录,否则会出现冗余的课程名称。删除异常:如果删除一门课程的信息,那么同时也会删除所有与该课程相关的成绩记录,这样可能会丢失与该课程相关的重要信息。为了避免上述异常,可以采用我之前提出的设计方案,即将课程名称从学生表中移除,并将课程信息单独存放在一个课程表中,每个学生的成绩信息存放在成绩表中,避免了上述异常情况的发生。