软考55-上午题-【数据库】-数据库设计步骤1

一、数据库设计的步骤

新奥尔良法,四个主要阶段:

1、用户需求分析:手机用户需求,确定系统边界;

2、概念设计(概念结构设计):是抽象概念模型,较理想的是采用E-R方法。

3、逻辑设计:E-R图——>关系模式,规范化(3NF、BCNF)

4、物理设计:逻辑模式在计算机中的具体实现。

1-1、需求分析阶段

逻辑设计、物理设计均以需求分析的设计为依据。

需求分析阶段的工作以及形成的相关文档,作为概念结构设计阶段的依据。

需求分析阶段的结果文档:

  • 需求说明文档;
  • 数据字典(系统需求说明书)
  • 数据流程图(数据流图)(系统需求说明书)

1-2、概念结构设计

1-2-1、E-R图

1、E-R模型中的基本术语(概念模型、实体-联系模型)

1、实体

矩形表示,客观存在并相互区别的事物,如:单位、职工、部门、项目。

2、联系

菱形表示,实体之间的对应关系。

2-1、两个实体集之间的联系有3种类型:

(1)、1对1的联系(1:1)。如:班和班长之间的联系。

(2)、一对多的联系(1:n)。如:班和学生之间的联系。

(3)、多对多的联系(m:n)。如:课程和学生之间的联系。

示例:

2-2、两个以上实体集之间的联系:

  • 1:1:1;
  • 1:1:n;
  • 1:n:m;
  • r:m:n;

示例:

2-2、同一实体集内的二元联系:

同一实体集内的各个实体之间也存在1:1、1:n、n:m的联系。

示例:

3、属性

椭圆表示,实体的特性,一个实体可以有若干属性。

属性的具体取值:属性值;

属性域:属性值的取值范围,如年龄的取值范围是18~60。

如:学生实体的若干属性(学号、姓名、性别、出生日期、班号)

3-1、属性的分类:

1、简单属性、复合属性

简单属性:原子的、不可再分的;

复合属性:可以细分为别的属性;例如:通信地址属性,可以再分为:邮编、省、市、街道。

2、单值属性、多值属性

单值属性:定义的属性对于特定的实体,只有一个单独的值;如:特定的职工,只对应一个职工号、职工姓名。

多值属性:一个属性对应一组值。如:职工可能有多个亲属,则职工的亲属姓名可能有多个数目。

3、NULL值属性

4、派生属性

从其他属性得来;如:工作年限的值 = 当前时间 - 入职时间,工作年限就是派生属性。

3-2、真题

真题1:

真题2:

2、E-R图实例

3、E-R图中的主要构建

4、弱实体

这种实体对另一些实体具有很强的依赖关系,即,一个实体的存在必须以另一个实体为前提。如:职工与家属,家属总是属于职工。示例:

1-2-2、概念结构设计

用E-R方式建立概念模型:

对需求分析阶段得到的数据进行分类、聚集、概括,确定:实体、属性、联系。

概念结构的具体工作步骤:选择局部应用、逐一设计分析E-R图、E-R图合并。

局部E-R图合并,示例:

合并:

没什么特别的,只是两个E-R图的合并而已。

概念结构设计阶段:

1、选择局部应用;

2、逐一设计分E-R图(局部E-R图)

3、局部E-R图的合并;

合并的过程中要解决分E-R图之间存在的冲突。

1-2-2-1、分E-R图之间的冲突,分类:
1、属性冲突

如:分数属性

学校考试的分数,取值范围:0~100

四级英语考试的分数,取值范围:0~600

2、命名冲突
  • 异名同义
  • 同名异义

示例:

3、结构冲突
  • 同一实体,在不同的分E-R图中有不同的属性;
  • 同一对象,在一个分E-R图中被抽象为实体,,在另一个分E-R图中被抽象为属性。

示例:

1-2-2-2、真题

真题1:

真题2:

教师、职工属于同一个实体。

结构冲突:

同一实体,在不同的分E-R图中有不同的属性;

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

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

相关文章

代码随想录算法训练营第七天

● 自己看到题目的第一想法 第454题.四数相加II 方法&#xff1a; 方法一&#xff1a; 暴力法 思路&#xff1a; 注意&#xff1a; 代码&#xff1a; class Solution { public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<i…

QT 网络编程 8

1 基础知识 udp tcp 2 UDP 框架 客户端: QUdpSocket x; qint64 writeDatagram( const char *data, qint64 size, const QHostAddress &address, quint16 port );服务器: void Server::initSocket(){udpSocket new QUdpSocket(this);udpSocket->bind(QHostAddress…

macos jupyter notebook字体的修改

终端codemirror 记事本打开 搜索font-family 修改font-size保存即可

重学SpringBoot3-@ConditionalOnXxx条件注解

重学SpringBoot3-ConditionalOnXxx条件注解 引言常见的条件注解常见的条件注解示例扩展条件注解1. ConditionalOnJndi2. ConditionalOnJava3. ConditionalOnCloudPlatform4. ConditionalOnEnabledResourceChain5. 自定义条件注解 总结 引言 Spring Boot 提供了一组强大的条件注…

ERDAS监督分类与温度反演教程

本期带来监督分类教程&#xff0c;更多内容&#xff0c;欢迎关注小编的公众号梧桐凉月哦&#xff01;&#xff01;&#xff01; 一、研究区自然、地理环境特征&#xff1a; 1、景德镇市位于中国江西省东北部&#xff0c;地处赣江中游的赣北盆地&#xff0c;地形地貌以丘陵和低…

mitmproxy代理

文章目录 mitmproxy1. 网络代理2. 安装3. Https请求3.1 启动mitmproxy3.2 获取证书3.3 配置代理3.4 运行测试 4. 请求4.1 读取请求4.2 修改请求4.3 拦截请求 5. 响应5.1 读取响应5.2 修改响应 6. 案例&#xff1a;共享账号6.1 登录bilibili获取cookies6.2 在代理请求中设置cook…

ER-NeRF实时对话数字人模型训练与部署

ER-NeRF是基于NeRF用于生成数字人的方法&#xff0c;可以达到实时生成的效果。 下载源码 cd D:\Projects\ git clone https://github.com/Fictionarry/ER-NeRF cd D:\Projects\ER-NeRF 下载模型 准备面部解析模型 wget https://github.com/YudongGuo/AD-NeRF/blob/master/…

MyBatisPlus入门教程

MyBatisPlus MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window) 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 官网地址&#xff1a;https://baomidou.com/ 一、入门案…

sql注入之sqli-labs-less-1 错误注入

输入?id1 得到登录页面&#xff1a; 通过order by 函数试探&#xff1a; 5的时候报错 试探到3 的时候返回正确的值&#xff1a; 然后继续注入&#xff1a;?id -1 union select 1,2,3 -- 查看回显点&#xff1a; 开始查看数据库内容&#xff1a;id-1 union select 1,databa…

open-spider开源爬虫工具:抖音数据采集

在当今信息爆炸的时代&#xff0c;网络爬虫作为一种自动化的数据收集工具&#xff0c;其重要性不言而喻。它能够帮助我们从互联网上高效地提取和处理数据&#xff0c;为数据分析、市场研究、内容监控等领域提供支持。抖音作为一个全球性的短视频平台&#xff0c;拥有海量的用户…

CKA考生注意:这些Deployment要点能助你一臂之力!

往期精彩文章 : 提升CKA考试胜算&#xff1a;一文带你全面了解RBAC权限控制&#xff01;揭秘高效运维&#xff1a;如何用kubectl top命令实时监控K8s资源使用情况&#xff1f;CKA认证必备&#xff1a;掌握k8s网络策略的关键要点提高CKA认证成功率&#xff0c;CKA真题中的节点维…

68-解构赋值,迭代器,生成器函数

1.解构赋值(针对数组array&#xff0c;字符串String及对象object以) 结构赋值是一种特殊的语法&#xff0c;通过将各种结构中的元素复制到变量中达到"解构"的目的&#xff0c;但是数组本身没有改变 1.1解构单层数组 <script>let arr [1,2,3,4,5];//获取数组…

c++ primer学习笔记(一)

目录 第一章、c快速入门 重点&#xff1a;类的简介 第二章 1、基本内置类型 2、字面值常量 1、整型字面值规则 2、浮点字面值规则 3、布尔字面值 4、字符字面值 5、非打印字符的转义序列 ​编辑 6、字符串字面值 3、变量 1、变量标识符 2、定义和初始化对象 3、…

java: 无法访问org.springframework.web.bind.annotation.RequestMapping......类文件具有错误的版本 61.0, 应为 52.0

文章目录 一、报错问题二、问题背景三、原因分析四、解决方案 一、报错问题 java: 无法访问org.springframework.web.bind.annotation.RequestMapping 错误的类文件: /D:/SoftwareInstall/Maven/repository/org/springframework/spring-web/6.0.9/spring-web-6.0.9.jar!/org/s…

latex报错Repeated entry解决办法

报错原因——重复了两个参考文献&#xff0c;删掉一个即可 总结 "Repeated entry"这个错误通常出现在你尝试在LaTeX中多次使用同一个标签&#xff08;label&#xff09;或者多次插入相同的图像/表格等时。例如&#xff0c;在LaTeX中&#xff0c;我们可能会为每一个章…

Modern C++ std::any为何要求Tp可拷贝构造?

小问题也会影响设计的思路&#xff0c;某个问题或某种case的探讨有助于理解设计的初衷。 声明&#xff1a;以下_Tp/Tp都是指要放入std::any的对象的类型。 它要求_Tp is_copy_constructible, 仅仅是因为有很多函数的实现调用了Tp的拷贝构造函数吗&#xff1f;比如说上节提到的初…

动态SQL的处理

学习视频&#xff1a;3001 动态SQL中的元素_哔哩哔哩_bilibili 目录 1.1为什么学 1.2动态SQL中的元素 条件查询操作 if 元素 choose、when、otherwise元素 where、trim元素 更新操作 set元素使用场景 复杂查询操作 foreach 元素中的属性 ​编辑 迭代数组 迭代List 迭代Map 1…

第3部分 原理篇2去中心化数字身份标识符(DID)(4)

3.2.3. DID解析 3.2.3.1. DID解析参与方 图3-5 DID 解析过程 本聪老师&#xff1a;我们之前提到过&#xff0c;DID 解析过程是将 DID 转换为对应的 DID 文档。这样做的目的是验证 DID 所代表的主体的身份。那么解析过程会涉及哪些概念呢&#xff1f;我们看图3-&#xff0c;DI…

端智能:面向手机计算环境的端云协同AI技术创新

近年来&#xff0c;随着移动端设备软硬件能力的进步&#xff0c;移动端的算力有了很大提升&#xff0c;同时面向移动端的机器学习框架和模型轻量化技术越来越成熟&#xff0c;端上的AI能力逐渐进入大众视野&#xff0c;端智能在电商领域也开始逐步走向规模化应用。通过持续探索…

leetcode日记(35)跳跃游戏Ⅱ

想了一个晚上&#xff0c;第一个思路是用动态规划&#xff0c;记录走到每一个节点需要跳动的最小步数&#xff0c;大致方法是每走到一个节点就遍历一下前面的全部节点&#xff0c;看看哪个节点可以一部跳到该节点&#xff0c;然后从中选取跳跃步数最小的节点&#xff0c;最后输…