数据库应用题.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库应用题

设有一个教学管理数据库,其属性为:学号(S#),课程号(C#),成绩(G),任课教师(TN),教师所在的系(D)。并且存在下列语义:学号和课程号分别与其代表的学生和课程一一对应;一个学生所修的每门课程都有一个成绩;每门课程只有一个任课教师,但是每位教师可以有多门课程;教师中没有重名,每个教师只属于一个系。根据上述语义,确定函数依赖集如果用上面的所有属性组成一个关系模式Student(S#, C#, G, TN, D),则该模式属于第几范式?举例说明进行插入、删除操作时的异常现象。对Student(S#, C#, G, TN, D)进行模式分解,使其满足3NF答:根据语义,一个学生所修的每门课程都有一个成绩, (C#, S#)G每门课程只有一个任课教师,但是每位教师可以有多门课程,得出C# TN教师中没有重名,每个教师只属于一个系得出: TND所以F = { (C#, S#)G, C# TN, TND}(2) 关系模式为1NF。该关系模式的候选键为(S#, C#),非主属性有G, TN。因为在F中,存在C#--TN, 又由于(S#, C#)是键,所以(S#, C#)TN,因此非主属性TN对候选关键字存在部分函数依赖,所以不是2nf,只能是1nf。如果新增一门课程而没有学生选课,则因为缺少关键字S#而无法插入,造成插入异常。若某个教师辞职,在删除教师名单的时候,会删除掉课程信息也删除,造成删除异常。R1=(S#, C#, G)R2=(C#, TN)R3=(TN, D)消除传递依赖。设某汽车运输公司数据库中有3个实体集。一个是“车队”实体集,属性有车队号、车队名等;二是“车辆”实体集,属性有车牌号、生产厂商、出厂日期等;三是“司机”实体集,属性有司机编号、姓名、电话等。设车队与司机之间存在“聘用”联系,每个车队可以聘用若干司机,但是每个司机之鞥应聘于1个车队,车队聘用司机有个聘期;车队与车辆之间存在“拥有”联系,每个车队可以拥有若干车辆,但是每个车辆只能属于一个车队;司机与车辆之间存在“使用”联系,司机使用车辆有使用日期和公里数两个属性,每个司机可以使用多个车辆,每个汽车可以被多个司机使用。试画出ER图,并在图上标明属性、联系的类型、实体标识符、联系的维数将ER图转换为关系模式(即建立数据库表),并说明主键和外键答:(1)我这里用UML来表示,对应的E-R图只是表现形式不同而已。我们在从E-R图转换为关系模式时,有下面的规则所有的实体单独存放为一个关系,即表。这里我们有车队、司机、车辆三个实体,所以这三个实体肯定对应三张表。每个表的字段,包含了所有的属性,因此,根据这步,我们可以得出三个表:车队(车队号,车队名)司机(司机编号,姓名,电话)车辆(车牌号、生产厂商,出厂日期)2)然后分析实体间的联系。实体间的联系有的要单独存为1个表,有的不需要。a) 如果实体和实体间是多对1,1对多的联系,不要单独设计1个表。而是通过在参与联系的多方的实体中,增加1个参与联系的1方的实体的主键作为1列来表示联系。例如, 车队和车辆是1对多的联系,这里,多方是车辆这个实体,1方是车队的实体。 车队的实体的主键是车牌号。所以,我们应该在多方(车辆)这个表中,增加1方(车队)的主键作为1列来表示联系,所以此时,车辆的关系就变成了车辆(车牌号、生产厂商,出厂日期, 车队号)我们就是通过在车辆表中,增加车队号这1列,来表示了那个车辆是属于哪个车队的联系的。显然,这里车队号是外键。再接下来,分析车队和司机之间的联系。这个联系是1对多的联系,所以也不要单独存放一张表。同样,把1方(车队)的主键车队号放到多方(司机)表中作为1列就可以了。此时,司机关系就变成了:司机(司机编号,姓名,电话, 车队号)但是这个聘用联系是有属性的,有个聘用日期,在这种1多情况下,把联系的属性也放到多方(司机)的表中。所以,司机表就扩展为了:司机(司机编号,姓名,电话, 车队号, 聘用日期)b)两个实体间的联系是多对多时,联系要单独存放为1个表。这个表的主键,是参与联系的两个实体的主键的组合,而联系的属性,作为其它列。在这里,车辆和司机之间的联系“使用”是多对多的,所以要单独存放为1个表。使用(车牌号,司机编码, 使用日期,公里数)这里车牌号是车辆实体的主键,司机编码是司机实体的主键,而后面两个是联系的属性。所以,本题的答案是:车队(车队号,车队名)车辆(车牌号、生产厂商,出厂日期, 车队号)外键:车队号司机(司机编号,姓名,电话, 车队号, 聘用日期)外键:车队号使用(车牌号,司机编码, 使用日期,公里数) 外键:车牌号、司机编码主键用下划线表示了。

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档