软考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图中有不同的属性;

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

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

相关文章

uniapp聊天记录本地存储(详细易懂)

目录 目录 1、通过websocket拿取数据 2、获取聊天数据 3、聊天信息存储 、更新 4、读取聊天记录 5、发送信息,信息获取 6、最终效果 1.聊天信息的存储格式 2、样式效果 写聊天项目,使用到了本地存储。需要把聊天信息保存在本地,实时获…

如何限制一个账号只在一处登陆

大家好,我是广漂程序员DevinRock! 1. 需求分析 前阵子,和问答群里一个前端朋友,随便唠了唠。期间他问了我一个问题,让我印象深刻。 他问的是,限制同一账号只能在一处设备上登录,是如何实现的…

Vue中如何实现动态路由?

在前端开发中,Vue.js 是一个极为流行的 JavaScript 框架,提供了灵活性和易用性,使得开发者可以快速构建单页面应用(SPA)。在 Vue 中,我们经常需要处理动态路由的情况,比如根据用户的操作或者权限…

Linux——进程控制(二)进程等待

目录 前言 一、进程等待 二、如何进行进程等待 1.wait 2.waitpid 2.1第二个参数 2.2第三个参数 3. 等待多个进程 三、为什么不用全局变量获取子进程的退出信息 前言 前面我们花了大量的时间去学习进程的退出,退出并不难,但更深入的学习能为本…

IPC资源在linux内核中如何管理

1.先看各个通信的接口 1.共享内存接口 2.消息队列接口 3.信号量接口 2.管理他们的结构体: 其实管理他们的是一个数组,和open返回的fd差不多,shmid,msqid,semid的大小都是这个数组的下标。那数组的结构是什么呢? 然后…

UniApp项目处理小程序分包

目前 uniApp也成为一种 App端开发的大趋势 因为在目前跨端 uniApp可以说相当优秀 可以同时兼容 H5 PC 小程序 APP 的技术 目前市场屈指可数 那么 说到微信小程序 自然就要处理分包 因为微信小程序对应用大小限制非常铭感 限制在2MB 超过之后就会无法真机调试与打包 不过需要注…

前端学习第四天-css提升

达标要求 掌握css复合选择器 块级元素和行内元素及行内块的区别? 哪些元素是块元素,行内元素及行内块元素? 熟练掌握display的用法 能够说出css三大特性 熟练运用背景样式 1. CSS复合选择器 复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的…

使用 Docker 部署 MrDoc 在线文档管理系统

1)MrDoc 介绍 MrDoc 简介 MrDoc 觅思文档:https://mrdoc.pro/ MrDoc 使用手册:https://doc.mrdoc.pro/p/user-guide/ MrDoc 可以创建各类私有化部署的文档应用。你可以使用它进行知识管理、构建团队文库、制作产品手册以及在线教程等。 Mr…

抖音视频批量采集软件|视频评论下载工具

在日常工作中,需要频繁下载抖音视频,但逐个复制分享链接下载效率太低?别担心!我们推出了一款专业的抖音视频批量采集软件,基于C#开发,满足您的需求,让您通过关键词搜索视频并自动批量抓取&#…

Zookeeper学习2:原理、常用脚本、选举机制、监听器

文章目录 原理选举机制(重点)情况1:正常启动集群情况2:集群启动完,中途有机器挂了 监听器客户端向服务端写入数据客户端向服务端Leader节点写入客户端向服务端Follower节点写入 Paxos算法(每个节点都可以提…

Dynamo幕墙探究系列(四)——Revolve

我们先放一张截图,不再是通过 loft 创建模型,而是通过旋转生成模型,效果如下,今天我们就来聊聊这个模型是怎么生成得。 “旋转”,顾名思义,和 Revit 中创建形状的旋转是一个意思,只是用来旋转的…

【MATLAB】 CEEMDAN信号分解+FFT傅里叶频谱变换组合算法

有意向获取代码,请转文末观看代码获取方式~ 展示出图效果 1 CEEMDAN信号分解算法 CEEMDAN 分解又叫自适应噪声完备集合经验模态分解,英文全称为 Complete Ensemble Empirical Mode Decomposition with Adaptive Noise。 CEEMDAN是对CEEMD的进一步改进…

MySQL 教程 2.4

MySQL UNION 操作符 本教程为大家介绍 MySQL UNION 操作符的语法和实例。 描述 MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合,并去除重复的行。 UNION 操作符必须由两个或多个 SELECT 语句组成,每个 SELECT 语句的列数…

蓝桥杯倒计时 41天 - KMP 算法

KMP算法 KMP算法是一种字符串匹配算法,用于匹配模式串P在文本串S中出现的所有位置。 例如S“ababac,P“aba”,那么出现的所有位置是13。 在初学KMP时,我们只需要记住和学会使用模板即可,对其原理只需简单理解&#xff…

会员丨这些年开的会员

1、淘宝88VIP-88元/年 要说现在最实惠的会员,肯定是88vip莫属了。88元/年即可拥有: 优酷/芒果年卡; 饿了么年卡(每月4张吃货卡,但现在饿了么改的越来越不实惠了); 网易云音乐年费会员&#xf…

NACOS在Windows和Linux下的安装教程

目录 1、Windows安装 1.1、下载安装包 1.2、解压 1.3、端口配置 1.4、启动 1.5、访问 2、Linux安装 2.1、安装JDK 2.2、上传安装包 2.3、解压 2.4、端口配置 2.5、启动 3、Nacos的依赖 1、Windows安装 开发阶段采用单机安装即可。 1.1、下载安装包 在Nacos的Git…

【Python】进阶学习:pandas--query()用法详解

📚【Python】进阶学习:pandas–query()用法详解 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希…

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

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

行业独角兽—Matic Network来临,成就百万富翁的项目!

Matic Network由印度Bangalore及日本超级节点打造 ,独创保险仓九仓共振循环模式。 Mtc于2023年初完成了700万美元的种子轮融资, Paradigm领投,a16z、Variant、Solana Ventures和Jump Crypto参投,旨在全方位布局Web3.0的去中心化生…

Java基础数据结构之栈

一.什么是栈 栈是一种特殊的线性表,它只允许在固定的一端进行元素的添加与使用,且遵循先进后出的原则。添加取用元素的一端称为栈顶,另一端称为栈底。出栈和入栈都是操作栈顶元素 二.栈的模拟实现 栈的底层是一个数组 这是里面的成员变量以…