当前位置:网站首页>数据库上机实验7 数据库设计
数据库上机实验7 数据库设计
2022-07-31 05:09:00 【Meteor.792】
一、实验目的
1、了解用户需求的整理和分析。
2、掌握概念结构设计方法和步骤。
3、掌握逻辑结构设计的方法和步骤。
4、掌握索引的选择和设计方法。
二、实验内容
(1)某工厂的物资管理系统涉及的实体有:
仓库:属性有仓库号、面积、电话号码
零件:属性有零件号、名称、单价
供应商:属性有供应商号、姓名、地址、电话
项目:属性有项目号、预算、开工日期
职工:属性有职工号、姓名、年龄
其中,一个仓库可以存放多种零件,一种零件可以存放在多个仓库中,用库存量来表示某种零件在某个仓库中的数量。一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作。 供应商、项目和零件三者之间具有多对多的联系。即一个供应商可以供给若干项目多种零件,每个项目可以使用不同供应商供应的零件,每种零件可由不同供应商供给,用供应量来表示供应数量。
根据以上需求分析的情况,完成以下有关的设计。
1、画出该物资管理系统的E-R图。
2、将该E-R图转换为对应的关系模式,并用下划线标示出各关系模式的主码。
仓库(仓库号、面积、电话号码)
零件(零件号、名称、单价)
供应商(供应商号、姓名、地址、电话)
项目(项目号、预算、开工日期)
职工(职工号、姓名、年龄、仓库保管员)
存放(仓库号、零件号、库存量)
供应(零件号、供应商号、项目号、供应量)
3、指出转换以后的各关系模式的最高范式等级。
仓库 最高范式等级为BCNF
零件 最高范式等级为BCNF
供应商 最高范式等级为BCNF
项目 最高范式等级为BCNF
职工 最高范式等级为BCNF
存放 最高范式等级为BCNF
供应 最高范式等级为BCNF
(2)某工厂的劳动人事管理系统涉及的实体有:
职工:属性有职工号、姓名、年龄
产品:属性有产品号、产品名、负责人职工号
零件:属性有零件号、名称、单价
供应商:属性有供应商号、姓名、地址、电话
其中,职工和产品之间有两种联系:生产和负责。一个职工可以参加多种产品的生产,一种产品可以有多个职工参加生产,使用天数来记工作量;一个职工只能负责一种产品生产,一种产品也只能有一个职工负责。供应商、产品和零件三者之间具有多对多的联系。即一个供应商可以供给若干产品多种零件,每个产品可以使用不同供应商供应的零件,每种零件可由不同供应商供给,有供应量作为属性。
1、画出该劳动人事管理系统的E-R图。
2、将该E-R图转换为对应的关系模式,并用下划线标示出各关系模式的主码。
职工(职工号、姓名、年龄)
产品(产品号、产品名、负责人职工号)
零件(零件号、名称、单价)
供应商(供应商号、姓名、地址、电话)
生产(职工号、产品号、天数)
供应(产品号、零件号、供应商号、供应量)
3、指出转换以后的各关系模式的最高范式等级。
职工 最高范式等级为BCNF
产品 最高范式等级为BCNF
零件 最高范式等级为BCNF
供应商 最高范式等级为BCNF
生产 最高范式等级为BCNF
供应 最高范式等级为BCNF
三、实验指导
1、注意ER图的画法:实体用矩形表示,属性用椭圆表示,联系用菱形表示,实体、属性、联系之间用直线连接,联系分为三种类型,1:1,1:n,m:n。
2、将E-R图转换成关系模式的原则:
总体原则:一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的码为关系的主码。
联系的处理:一个联系转换为一个关系模式,有三种情况:如果联系为1:1,则每个实体的主码都是关系的候选码;如果联系为1:n,则n端实体的主码是关系的主码;如果联系为n:m,则每个实体的主码的组合是关系的主码。
3、将E-R图转换成关系模式时,主码要用下划线表示出来。
4、注意候选码和主码的区别:候选码是能够唯一标识一行记录的列或列的组合,主码是从候选码中选择一个作为主码。在一个表中,候选码可以有多个,但主码只能有一个。
边栏推荐
- 面试官问我TCP三次握手和四次挥手,我真的是
- 剑指offer基础版 ---- 第29天
- ES source code API call link source code analysis
- Distributed Transactions - Introduction to Distributed Transactions, Distributed Transaction Framework Seata (AT Mode, Tcc Mode, Tcc Vs AT), Distributed Transactions - MQ
- 12 reasons for MySQL slow query
- 目标检测学习笔记
- Pytorch教程Introduction中的神经网络实现示例
- centos7安装mysql5.7步骤(图解版)
- Summary of MySQL common interview questions (recommended collection!!!)
- Numpy中np.meshgrid的简单用法示例
猜你喜欢
为什么要用Flink,怎么入门使用Flink?
Interviewer: If the order is not paid within 30 minutes, it will be automatically canceled. How to do this?
[MQ I can speak for an hour]
Summary of MySQL common interview questions (recommended collection!!!)
CentOS7 install MySQL graphic detailed tutorial
信息系统项目管理师核心考点(五十五)配置管理员(CMO)的工作
Temporal客户端模型
Temporal介绍
Interviewer, don't ask me to shake hands three times and wave four times again
如何将项目部署到服务器上(全套教程)
随机推荐
Interviewer: If the order is not paid within 30 minutes, it will be automatically canceled. How to do this?
wx.miniProgram.navigateTo在web-view中跳回小程序并传参
Flink sink redis 写入Redis
限流的原理
Unity resources management series: Unity framework how to resource management
pycharm专业版使用
【JS面试题】面试官:“[1,2,3].map(parseInt)“ 输出结果是什么?答上来就算你通过面试
Quickly master concurrent programming --- the basics
Three oj questions on leetcode
MySQL8.0.26安装配置教程(windows 64位)
C语言教程(三)-if和循环
Numpy中np.meshgrid的简单用法示例
[Introduction to MySQL 8 to Mastery] Basics - silent installation of MySQL on Linux system, cross-version upgrade
Temporal线上部署
What are the advantages and disadvantages of Unity shader forge and the built-in shader graph?
The interviewer asked me TCP three handshake and four wave, I really
Lock wait timeout exceeded解决方案
ABC D - Distinct Trio (Number of k-tuples
面试官问我TCP三次握手和四次挥手,我真的是
Mysql application cannot find my.ini file after installation