热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数据库ER图——图书管理系统

留了一道题是画E-R图的题,题目如下一个图书馆理系统中有如下信息:图书:书号,书名,数量,位置&

留了一道题是画E-R图的题,题目如下


一个图书馆理系统中有如下信息:
图书:书号,书名,数量,位置;借书人:借书证号,姓名,单位;出版社:出版社名,邮编,地址,电话,E-mail。其中约定:任何人都可以借多种书,任何一种书可以被多个人借,借书和还书时,要登记相应的借书日期和还书日期,每个人都可以在不同时间重复借同一本书;一个出版社可以出版多种书籍,同一本书仅为一个出版社出版,出版社名具有唯一性。根据以上情况,完成如下设计:


(2)将E-R图转换为关系模式(3)用下划线标出转换后的每个关系模式的主码,用波浪线标出外码。


出版社(出版社名,电话,地址,邮编,Email)

图书(书号,书名,数量,位置,出版社名) (出版社名为外键)

借书人(借书证号,姓名,单位)

借阅(借书证号,书号,借书日期,还书日期)(借书证号和书号为外键)


一对多关系时与n端对应的关系模式合并,合并后关系的属性:在n端关系中加入1端关系的主码和联系本身的属性。合并后关系的主码不变。

2、设有关系模式:R(职工号,日期,日营业额,部门名,部门经理)如果规定:每个职工每天只有一个营业额,每个职工只在一个部门工作,每个部门只有一个经理。

(1)根据上述规定,写出关系模式R的主关键字。

职工号,日期

写出最小函数依赖集,分析R最高属于第几范式,说明理由。

职工号,日期->日营业额

职工号->部门名

部门名->部门经理

属于第一范式,每个单元不可再分,存在非主属性部分依赖于主码且部门经理传递依赖于职工号。

(2)若R不属于3NF,将其分解为3NF。

分解

R1(职工号,日期,日营业额)

R2(职工号,部门号)

R3(部门名,部门经理)


推荐阅读
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • gitlab重置password
    ruby没怎么学,自己搭建的gitlab的rootpassword又忘了。幸好看见此帖子,试验okhttp:roland.kierkels.netgitreset-your-git ... [详细]
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • 本文总结了沟通管理与干系人管理在项目中的重要性,介绍了沟通管理的概述和子过程,并详细讨论了不同的沟通方法,包括交互式沟通、推式沟通和拉式沟通。同时,对书面沟通和口头沟通进行比较,并强调了正式沟通和非正式沟通的区别。本文旨在帮助读者更好地理解和应用沟通管理与干系人管理的方法和技巧。 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • 本文介绍了解决java开源项目apache commons email简单使用报错的方法,包括使用正确的JAR包和正确的代码配置,以及相关参数的设置。详细介绍了如何使用apache commons email发送邮件。 ... [详细]
  • 从批量eml文件中提取附件的Python代码实现方法
    本文介绍了使用Python代码从批量eml文件中提取附件的实现方法,包括获取eml附件信息、递归文件夹下所有文件、创建目的文件夹等步骤。通过该方法可以方便地提取eml文件中的附件,并保存到指定的文件夹中。 ... [详细]
  • C语言自带的快排和二分查找
    Author🚹:CofCaiEmail✉️:cai.dongjunnexuslink.cnQQ😙:1664866311personalPage&#x ... [详细]
  • python oj刷题网站_中小学计算机竞赛去哪里刷题?橙旭园OJ系统上线啦!
    原标题:中小学计算机竞赛去哪里刷题?橙旭园OJ系统上线啦!相信许多人在学习完编程之后都会茫然,感觉自己无所不能࿰ ... [详细]
author-avatar
手机用户2502858405
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有