【数据库设计】概念结构设计

引入——整体解释

上次我们讲完了关系模型,这次我们来讲新的章节:数据库设计

该怎样有效地管理和存储现实中的数据?答案是设计一个优秀的数据库。现实中的数据转化成关系表中的数据需要经过四个主要的设计步骤。

现实世界需求分析——>概念结构设计——>逻辑结构设计——>物理结构设计
注:物理结构设计其实就是表的形式

现实世界需求分析很容易理解比如要开发一个学生选课系统,这时候就需要设计一个存储和管理学生的数据库。其余三个阶段的设计使用不同的方式表示数据,我们说过描述数据和数据之间关系的叫数据模型,换言之,各个阶段有各自的数据模型。设计一款数据库的最终目的是将概念数据模型转化成物理数据模型。

概念结构设计

即将现实世界里的客观事物和它们之间的联系抽象成实体(entity)和关系(relation),叫E-R模型。此模型属于基于对象的逻辑模型,用来描述现实世界中的数据对象及其关系。

E-R模型组成

实体:可以指现实世界中的人或事物,比如你自己,再比如公司里的职员,学校里的学生,但这种数量多的叫实体集。

属性:实体集可以有单个或者多个特征来描述,比如学校里的学生,是个实体集,可以有学生号、学生姓名等属性来描述。属性其中:可以唯一区分实体的叫标识符,如:

多个组合在一起能唯一区分实体的叫复合标识符,如:

联系:就像现实世界里人与人之间人与事物之间的联系,此处可以指实体之间的联系也可以指实体里各个属性之间的联系。但E-R模型中的联系通常指实体与实体之间的联系,并且联系用动词来表示,比如:

学生表和课程表之间的联系是“选课”。

E-R图

以上元素可以用图来表示:

如上图:Student表示实体,用矩形表示,属性用椭圆表示,标识符用下划线来标出。

课程表的类似。

如下图:联系用菱形表示,即图中的SC,在两端标注上联系类型,这里是n:m,即每一个学生可以选多门课,每一门课也可以被多个学生选择。

联系类型

可以分成一元、二元、三元联系。

一元:指实体集之间内部的联系,比如学生实体集中存在“同级管理”的联系,有班干部管理其余学生的联系,此联系是“同级管理”

二元:即两个实体之间,如学生与课程之间。此联系是“选课”

二元联系又包含上面说的多对多(n:m),还有1:1,1:n,n:1。

1:1

n:1

三元:即三个实体之间,如学生与学校与课程之间。该联系是“学习”,用一句描述:学生在学校选课学习。

通常情况下会将三元联系转化成二元的:创设一个新的实体,然后之前的每一个实体都与新实体建立联系,也就变成了新实体和旧实体的二元联系。比如图中新的实体是“修读计划”,与旧实体之间的联系分别是“包含”、“选择、“制定”。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java常用工具包

Java标准库(Java Standard Library) 比喻:就像你厨房里的基础调料,没有它们,你很难做出美味的菜肴。Java标准库包含了进行基本编程所需的所有核心类和方法,如字符串处理、集合框架、输入输出操作等。 关键…

C++ 内存布局 - Part6: 虚继承

1. 关于虚继承 虚继承可以在菱形继承体系中,防止派生类中有多份重复祖基类内容。如下图所示,如果是常规继承,Class Final中会有两份Class Base的内容。通过虚继承,即Derived1 虚继承自Base, Derived2 也虚继承自Base, 那么Final中…

003_ipc概述及信号

【背景】 程序运行起来后,每个模块都有自己的进程,那么不同的模块如何进行通讯或者数据交换呢? 上面这张图说明了linux的ipc是继承最初的Unix 的IPC逻辑的,那么具体关系和概述讲解,请参考此链接的原文:htt…

mac 桌面版docker no space left on device

报错信息 docker pull镜像时报: failed to register layer: Error processing tar file(exit status 1): write /home/admin/oceanbase_bak/bin/observer: no space left on device 解决 增加 docker 虚拟磁盘大小。 调整完点击重启即可。

助力语音技术发展,景联文科技提供语音数据采集服务

语音数据采集是语音识别技术、语音合成技术以及其他语音相关应用的重要基础。采集高质量的语音数据有助于提高语音识别的准确性,同时也能够促进语音技术的发展。 景联文科技作为专业的数据采集标注公司,支持语音数据采集。可通过手机、专业麦克风阵列、专…

两个案例全面阐述全链路测试怎么做

首先我们先针对全链路功能测试部分进行一下讲解。去年的时候,有一家电商公司可能知道我一直在帮银行做相关的测试,就请我帮他们去做一些规划。这个平台有虚拟订单,也有实体订单,方式不太一样。 还涉及到分账分佣以及跟银行的对接…

大数据-174 Elasticsearch Query DSL - 全文检索 full-text query 匹配、短语、多字段 详细操作

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

计算机网络基础(1)

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 计算机网络基础 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1. 计算机网…

简易CPU设计入门:验证取指令模块【未完成】

项目代码下载 还是请大家首先准备好本项目所用的源代码。如果已经下载了,那就不用重复下载了。如果还没有下载,那么,请大家点击下方链接,来了解下载本项目的CPU源代码的方法。 下载本项目代码 准备好了项目源代码以后&#xff…

MySQL详细学习攻略 MySQL基础非常全面教程 MySQL安装教程

MySQL安装教程 章节目录 一、MySQL简介与安装前准备 二、Windows系统下MySQL的安装 三、Linux系统下MySQL的安装 四、MySQL安装后的基本配置 五、MySQL服务的启动与停止 六、MySQL客户端工具的使用 七、MySQL安装常见问题与解决方案 一、MySQL简介与安装前准备 重点内容知识…

Flythings学习(四)串口通信

文章目录 1 串口编程基本步骤1.1 打开串口1.2 配置串口 1.3 读串口1.4 发送串口1.5 关闭串口 2 综合使用3 如何在软件上保证串口稳定通信4 flythings中的串口通讯5 协议接收部分使用和修改方法6 通讯协议数据怎么和UI控件对接 1 串口编程基本步骤 串口通信有5个步骤 1.打开串口…

YOLOv11模型改进-注意力机制-引入自适应稀疏自注意力ASSA

随着目标检测领域的快速发展,YOLO系列模型凭借其端到端、高效的检测性能逐渐成为工业界和学术界的标杆。然而,如何进一步优化YOLOv11的特征提取能力,减少冗余信息并提升模型对复杂场景的适应性,仍是一个值得深入探讨的问题。为此&…

Android:记录一个打包发布版的release包以后闪退的问题

个人感觉其实release闪退的问题挺难排查的,因为release包运行起来as捕获不到相应的应用程序进程,从而不易查看到日志,也是我玩得不溜,大家有不同的方法可以评论区探讨,我也定期回复一些评论一起讨论。以下是我遇到的情…

【数据结构】宜宾大学-计院-实验三

线性表的应用——实现两多项式的相加 课前准备:实验学时:2实验目的:实验内容:实验结果:实验报告:(及时撰写实验报告)实验测试结果:代码实现:(C/C)…

安宝特方案 | AR技术在轨交行业的应用优势

随着轨道交通行业不断向智能化和数字化转型,传统巡检方式的局限性日益凸显。而安宝特AR眼镜以其独特的佩戴方式和轻便设计,为轨道交通巡检领域注入了创新活力,提供了全新的解决方案。 01 多样化佩戴方法,完美适应户外环境 安宝特…

访问控制列表(课内实验)

实验2:访问控制列表 实验目的及要求: 通过实验,进一步的理解标准ACL与扩展ACL的工作原理及执行过程。理解通配符的概念,熟练掌握标准ACL与扩展ACL的配置指令,掌握将访问控制列表应用VTY线路上,并且能够判断…

鸿蒙开发 四十五 鸿蒙状态管理(嵌套对象界面更新)

当运行时的状态变量变化,UI重新渲染,在ArkUI中称为状态管理机制,前提是变量必须被装饰器修饰。不是状态变量的所有更改都会引起刷新,只有可以被框架观测到的更改才会引起UI刷新。其中boolen、string、number类型,可观察…

Oracle漏洞修复 19.3 补丁包 升级为19.22

1.场景描述 上周末2024-10-12日,服务器扫出漏洞,希望及时修复。其中,oracle的漏洞清单如下,总结了下,基本都是 Oracle Database Server 的 19.3 版本到 19.20 版本和 21.3 版本到 21.11 版本存在安全漏洞,即版本问题。如: Oracle Database Server 安全漏洞(CVE-2023-22…

Spring AI Java程序员的AI之Spring AI(一)

SpringAI 基础使用 前言Spring AIChatClientImageClientOpenAiAudioTranscriptionClientEmbeddingClient 总结 前言 Spring AI,听着名字就感觉很好使用,快速上手,虽然功能没有太完善,但是社区活跃度很高,可以看看源码…

低代码框架参考

企业管理信息系统作为一类重要的应用软件系统,具有自己的特点,主要有两个方面: 1. 系统规模大,目前市场上常见的ERP系统一般都有几千个页面。 2. 页面逻辑相似性强。经过比较可以发现,大部分页面具有类似的功能&…