当前位置:网站首页>数据库上机实验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、注意候选码和主码的区别:候选码是能够唯一标识一行记录的列或列的组合,主码是从候选码中选择一个作为主码。在一个表中,候选码可以有多个,但主码只能有一个。
边栏推荐
- Anaconda配置环境指令
- MySQL forgot password
- mysql stored procedure
- TOGAF之架构标准规范(一)
- Duplicate entry 'XXX' for key 'XXX.PRIMARY' solution.
- 基于web3.0使用钱包Metamask的三方登陆
- 剑指offer专项突击版 --- 第 3 天
- Why use Flink and how to get started with Flink?
- CentOS7 install MySQL graphic detailed tutorial
- MySQL optimization slow log query
猜你喜欢

Tapdata 与 Apache Doris 完成兼容性互认证,共建新一代数据架构
![2022-07-30:以下go语言代码输出什么?A:[]byte{} []byte;B:[]byte{} []uint8;C:[]uint8{} []byte;D:[]uin8{} []uint8。](/img/7f/130a9b733855a2bab07d26ffda2c49.png)
2022-07-30:以下go语言代码输出什么?A:[]byte{} []byte;B:[]byte{} []uint8;C:[]uint8{} []byte;D:[]uin8{} []uint8。

剑指offer专项突击版 ---- 第2天

SQL row-column conversion

分布式事务——分布式事务简介、分布式事务框架 Seata(AT模式、Tcc模式、Tcc Vs AT)、分布式事务—MQ

Minesweeper game (written in c language)

账号或密码多次输入错误,进行账号封禁

Shell重油常压塔模拟仿真与控制

Swordsman Offer Special Assault Edition --- Day 3

centos7安装mysql5.7
随机推荐
剑指offer基础版 ---- 第29天
面试官问我TCP三次握手和四次挥手,我真的是
Paginate the list collection and display the data on the page
分布式事务——分布式事务简介、分布式事务框架 Seata(AT模式、Tcc模式、Tcc Vs AT)、分布式事务—MQ
剑指offer基础版 ---- 第27天
Distributed Transactions - Introduction to Distributed Transactions, Distributed Transaction Framework Seata (AT Mode, Tcc Mode, Tcc Vs AT), Distributed Transactions - MQ
MySQL forgot password
Three handshakes and four waves
Anaconda配置环境指令
Typec手机有线网卡网线转网口转接口快充方案
Three oj questions on leetcode
运用flask框架发送短信验证码的流程及具体代码
数据库学习笔记
Temporal线上部署
mysql5.7.35安装配置教程【超级详细安装教程】
.NET-9. A mess of theoretical notes (concepts, ideas)
MySQL transaction (transaction) (this is enough..)
三次握手与四次挥手
tf.keras.utils.pad_sequences()
Swordsman Offer Special Assault Edition --- Day 3