数据库实验五 数据库设计

数据库实验五 数据库设计

    • 一、实验目的
    • 二、实验内容
    • 三、实验内容
    • 四、验证性实验
    • 五、设计性实验

一、实验目的

1.了解E-R图构成要素以及各要素图元。
2.掌握概念模型E-R图的绘制方法。
3.掌握概念模型向逻辑模型的转换原则和步骤。
4.运用sql编程实现

二、实验内容

1.选取一个应用背景,分析应用和数据需求
2.完成数据库设计的需求分析报告
3.完成数据库的概念结构设计,画出E-R图(要求,实体不少于3个)
4.完成数据库的逻辑结构设计,做出表结构和完整性约束设计

三、实验内容

1.体会数据库设计的各个阶段的任务和工作
2.评价自己设计的数据库的范式级别

四、验证性实验

(1) 某同学需要设计开发班级信息管理系统,希望能够管理班级与学生信息的数据库,其中学生信息包括学号,姓名,年龄,性别,班号;班级信息包括班号、年级号、班级人数。
①确定班级实体和学生实体的属性。
学生:学号,姓名,年龄,性别,班号
班级:班号、班主任、班级人数
②确定班级和学生之间的联系,给联系命名并指出联系的类型。
一个学生只能属于一个班级,一个班级可以有很多学生,所以和学生间是1对多关系,即1:n
③确定联系本身的属性。
属于
④画出班级与学生关系的E-R图。

在这里插入图片描述
⑤将E-R图转化为关系模式,写出各关系模式并标明各自的码。
学生(学号,姓名,年龄,性别,班号),主码为:学号
班级(班号、班主任、班级人数),主码为:班号

(2)请为电冰箱经销商设计一套存储生产厂商和产品信息的数据库,要求生产厂商的信息包括厂商名称、地址、电话;产品的信息包括品牌、型号、价格;生产厂商生产某产品的数量和日期。
要求:
① 确定产品实体和生产厂商实体的属性。
生产厂商:厂商名称,地址,电话
产品:品牌,型号,价格
②确定产品和生产厂商之间的联系,给联系命名并指出联系的类型。
一个生产厂商可以生产多个产品,一个产品也可以有很多生产厂商生产,所以产品和生产厂商间是m对多关系,即m:n
③确定联系本身的属性。
生产
④画出产品与生产厂商关系的E-R图。
在这里插入图片描述
⑤将E-R图转化为关系模式,写出表的关系模式并标明各自的码。
生产厂商(厂商名称,地址,电话),主码为:厂商名称
产品(品牌,型号,价格),主码为:品牌,型号
生产(厂商名称,品牌,型号,数量,日期),主码为:厂商名称,品牌,型号

(3) 设某汽车运输公司想开发车辆管理系统,其中,车队信息:车队号、车队名等;车辆信息有牌照号、厂家、出厂日期等;司机信息有司机编号、姓名、电话等。 车队与司机之间存在“聘用”联系,每个车队可聘用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有“聘用开始时间”和“聘期”两个属性; 车队与车辆之间存在“拥有”联系,每个车队可拥有若干车辆,但每辆车只能属于一个车队; 司机与车辆之间存在着“使用”联系,司机使用车辆有“使用日期”和“公里数”两个属性,每个司机可使用多辆汽车,每辆汽车可被多个司机使用。
①确定实体和实体的属性。
车队:车队号,车队名
车辆:车牌照号,厂家,生产日期
司机:司机编号,姓名,电话,车队号
②确定实体之间的联系,给联系命名并指出联系的类型。
车队与车辆联系类型是1:n,联系名称:拥有,车队与司机联系类型是1:n,联系名称为聘用;车辆和司机联系类型为m:n,联系名称为:使用。
③确定联系本身的属性。
联系“聘用”的属性有“聘用开始时间”和“聘期”两个属性,联系“使用“有“使用日期”和“公里数”两个属性。
④画出E-R图。
在这里插入图片描述
⑤将E-R图转化为关系模式,写出表的关系模式并标明各自的码。
车队(车队号,车队名) ,主码为:车队号;
车辆(车牌照号,厂家,生产日期,车队号) ,主码为:车牌照号;
司机(司机编号,姓名,电话,车队号,聘用开始时间,聘期),主码为:司机编号 ;
使用(司机编号,车辆号,使用日期,公里数),主码为:司机编号,车辆号。

五、设计性实验

1、为在线图书销售系统中的订单管理模块设计数据库。
该模块的功能设计中有4个实体,具体信息如下表所示。
在这里插入图片描述

(1)需求分析,用文字描述图书销售系统的数据。
①确定用户实体、书籍实体、订单实体、订单明细实体的属性。
用户:用户编号,用户名,用户性别
书籍:书籍编号,书籍名称,书籍价格
订单:订单编号,下单时间,订单总价格

②确定用户、书籍、订单、订单明细之间的联系,给联系命名并指出联系的类型。
用户与书籍之间的联系是1:n,联系名称:选够=;
书籍与订单之间的联系是n:m,联系名称:订单明细。

③确定联系本身的属性。
联系“订单明细“有“订单明细编号”和“书籍数量”两个属性。

(2)设计概念模型,画出E-R图。
① 创建实体
② 添加属性
③ 设置每个实体的主码
④ 添加实体之间的联系
在这里插入图片描述
(2)将E-R图转化为关系模式,写出表的关系模式并标明各自的主码和外码。
用户(用户编号,用户名,用户性别),主码为:用户编号;
书籍(书籍编号,书籍名称,书籍价格),主码为:书籍编号;
订单(订单编号,下单时间,订单总价格),主码为:订单编号,外码为:用户编号
订单明细(订单编号,书籍编号,订单明细编号,书籍数量),主码为:订单明细编号,外码为:订单编号,书籍编号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/184340.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TCP 重传、滑动窗口、流量控制、拥塞控制的剖析

TCP 是一个可靠传输的协议,那它是如何保证可靠的呢? 为了实现可靠性传输,需要考虑很多事情,例如数据的破坏、丢包、重复以及分片顺序混乱等问题。如不能解决这些问题,也就无从谈起可靠传输。 那么,TCP 是…

使用骨传导耳机会伤耳朵吗?一文读懂骨传导耳机有哪些优点

首先说明,如果是正确的使用骨传导耳机是不会伤耳朵。 一、骨传导耳机的传声原理是什么? 声音的传播需要介质,传统的耳机是通过空气来进行传播,也被称为“空气传导耳机”,而骨传导耳机最大的特别之处就在于&#xff0…

linux安装zsh、oh-my-zsh及常用插件

大家好,我叫徐锦桐,个人博客地址为www.xujintong.com,github地址为https://github.com/xjintong。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家访问。 一、安装zsh 这个不用多说了&#xff0…

[HOW TO]-VirtualBox的虚拟机通过宿主机上网

快速链接: . 👉👉👉 [专栏目录]-环境搭建安装问题笔记目录 👈👈👈 付费专栏-付费课程 【购买须知】:👉👉👉 个人博客笔记导读目录(全部) 👈👈&a…

uni-app,nvue中text标签文本超出宽度不换行问题解决

复现:思路: 将text标签换为rich-text,并给rich-text增加换行的样式class类名解决:

nf_conntrack内核模块常见问题

nf_conntrack内核模块常见问题 问题描述排查步骤前置条件:启用nf_conntrack内核模块检查nf_conntrack配置 解决办法1:半数减少nf_conntrack buckets的值解决办法2:加倍调大m.min_free_kbytes值解决办法3:Linux社区权威答复-忽略告警 问题描述 内核报错 falling bac…

【C++初阶】四、类和对象(构造函数、析构函数、拷贝构造函数、赋值运算符重载函数)

相关代码gitee自取: C语言学习日记: 加油努力 (gitee.com) 接上期: 【C初阶】三、类和对象 (面向过程、class类、类的访问限定符和封装、类的实例化、类对象模型、this指针) -CSDN博客 引入:类的六个默认成员函数…

Web(6)Metasploit缓冲区溢出漏洞

利用ms17_010漏洞建立会话: 原理: 因为window低级版本中存在漏洞,端口445.SMB是一个协议名,全称是Server Message Block(服务器消息快协议),用于计算机之间共享文件,打印机&#x…

智驾芯片全矩阵「曝光」,这家企业的车载品牌正式官宣

随着汽车智能化加速,智能驾驶芯片格局逐渐清晰。 针对L0-L2,业内基本采用智能前视一体机方案;要实现高速NOA、城市NOA等更为高阶的智驾功能等,则基本采用域控制器方案。从前视一体机至域控,再逐步演进到舱驾一体、中央…

eclipse项目移到idea上部署运行

1.配置web模块 另外,模块这里,也要加上Spring 2.配置Artifact (用于tomcat) 就是从上面配置的web模块,产生的工件 3.添加lib 一般是在web-inf/lib , 遇到的坑: jdk版本问题,这里…

加速软件开发:自动化测试在持续集成中的重要作用!

持续集成的自动化测试 如今互联网软件的开发、测试和发布,已经形成了一套非常标准的流程,最重要的组成部分就是持续集成(Continuous integration,简称CI,目前主要的持续集成系统是Jenkins)。 那么什么是持…

6.显示评论 + 添加评论

1.显示评论 数据层:根据实体查询一页评论数据、根据实体查询评论的数量业务层:处理查询评论的业务、处理查询评论数量的业务表现层:显示帖子详情数据时,同时显示该帖子所有的评论数据 1.1 数据访问层 entity_type:实体…

linux 内存回收mglru算法代码注释2

mglru与原lru算法的兼容 旧的lru算法有active与inactive两代lru,可参考linux 内存回收代码注释(未实现多代lru版本)-CSDN博客 新的算法在引入4代lru的同时,还引入了tier的概念。 新旧算法的切换的实现在lru_gen_change_state&a…

机器学习探索计划——数据集划分

文章目录 导包手写数据划分函数使用sklearn内置的划分数据函数stratifyy理解举例 导包 import numpy as np from matplotlib import pyplot as plt from sklearn.datasets import make_blobs手写数据划分函数 x, y make_blobs(n_samples 300,n_features 2,centers 3,clus…

【UE5】资源(Asset)

了解UE游戏的基本构成 资源(Asset): 在UE中,资源(Asset)是指游戏中使用到的各种素材,例如模型、纹理、材质、声音、动画、蓝图、数据表格、关卡等(通常以uasset结尾),他…

freeswitch设置多个execute_on_media

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 fs中有非常多的接口和通道变量,使用方式多变。 官方文档有时候也仅仅是介绍了最基本的使用方法和格式。 环境 centos:CentOS release 7.0 (Final)或以上版本 freeswitch:v1.6 G…

办公技巧:Word中插入图片、形状、文本框排版技巧

目录 一、插入图片排版技巧 二、添加形状排版技巧 三、插入“文本框”排版技巧 我们平常在制作word时候经常会遇到插入选项卡下的图片、形状和文本框这三种情况下,那么如何使得Word文档当中添加这三个元素的同时,又能保证样式美观呢,今天小…

Leetcode200. 岛屿数量

Every day a Leetcode 题目来源:200. 岛屿数量 解法1:深度优先搜索 设目前指针指向一个岛屿中的某一点 (i, j),寻找包括此点的岛屿边界。 从 (i, j) 向此点的上下左右 (i1,j),(i-1,j),(i,j1),(i,j-1) …

静态链表的结构设计与主要操作功能的实现(初始化,头插,尾插,判空,删除,输出,清空,销毁)

目录 一.静态链表的结构设计 二.静态链表的结构设计示意图 三.静态链表的实现 四.静态链表的总结 一.静态链表的结构设计 typedef struct SNode {int data;//数据int next;//后继指针(下标) }SNode,SLinkList[MAXSIZE]; 二.静态链表的结构设计示意图 0:有效数据链的头节点;…

ATA-3080功率放大器在海底管道悬跨振动激振器检测中的应用

海底管道悬跨振动检测是指对海底管道在悬跨(即管道跨越两个支撑点之间的区域)段发生的振动进行监测和分析的过程。为了实现海底管道悬跨振动检测,通常使用以下几种方法: 1.加速度传感器:通过在管道表面安装加速度传感器…