属于第1范式。因为主码是(课程名,教师名),而存在函数依赖:教师名--->教师地址。这样存在非主属性对主码的部分依赖,不满足第2NF。分解为2个表课程表:(课程名,教师名)教师表:(教师名,教师地址)函数依赖,如果数据项A函数依赖数据项B,那么,对于与A中的某一个值在B中与其对应的值都相等。范式的定义可以看下课本或者网上搜索下。基本说来,就是存在部分依赖的话,就不满足2NF。存在传递依赖就不满足3NF。也就是存在非主属性对非主属性的依赖。存在部分主属性对非主属性的依赖,就不满足BCNF。满足BCNF的话,要求所有的依赖,左边都是主码,完全不存在冗余。
直接写select语句好像不行,看看前台的开发环境的控件是不是有这个功能。
如果非要在数据中实现,可以试试在数据库中创建一张临时表存储现在的查询结果。然后用游标将这张表中重复的内容update掉,最后select 这张临时表。
提交信息时
先把课程信息插入课程表(course)
insert into course (title,discretion) values ('课程名','相关信息');
查出 课程的ID
select ID from course where title='课程名'
再在courseasooteacher表里也要插入老师和课程相对应的ID值
你根据选择的老师得到老师ID,再进行多次插入不就可以了?
insert into courseasooteacher(courseID、teacherID)values('上面查出的ID',‘选择的老师ID');
以上就是关于SQL数据库设计理论问题,属性间的联系是一对多,为什么可以推出函数依赖是Y->X而不是X->Y全部的内容,包括:SQL数据库设计理论问题,属性间的联系是一对多,为什么可以推出函数依赖是Y->X而不是X->Y、SQL怎么将一对多关系中,重复部分去掉、怎样向sql一对多关系的数据表中插入数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)