【数据库概论】第七章 数据库设计

news2024/9/28 23:28:39

第七章 数据库设计

7.1 概述

1.数据库设计的基本步骤

数据库设计可以分为以下六个阶段

  1. 需求分析阶段
    准别了解和分析用户的需求(包括数据与处理)。需求分析是整个设计过程的基础,觉定了在其上构建数据库的速度和质量。需求分析做不好可能会导致整个数据库设计返工重做

  2. 概念结果设计阶段
    是整个过程的关键,通过对用户需求进行综合、归纳和抽象,形成一个独立于具体数据库的概念模型。

  3. 逻辑结构设计阶段
    将概念结果转化为某个数据库管理系统所支持的数据模型,并优化

  4. 物理结构设计阶段
    为逻辑结果模型选取一个最适用于应用环境的物理结构

  5. 数据库实施阶段
    运用DBMS提供的数据库语言根据逻辑设计和物理设计的结果建立数据库,编写与调试程序,组织数据入库。

  6. 数据库运行和维护阶段


    接下来,我们就要住个分析上述数据库设计的六个阶段

7.2 需求分析

数据库设计的第一个阶段是需求分析

1.需求分析的任务

需求分析的主要任务是分析数据库需要解决的问题。通过详细调查现实世界要处理的对象,充分了解原系统的工作概况。需要获得用户对数据库的以下要求:

  1. 信息要求:用户需要从数据库中获取的信息的内容和性质
  2. 处理需求:用户要完成的数据处理功能以及对处理的性能需求
  3. 安全性和完整性需求

2.需求分析的方法

进行需求分析的首要任务是调查清楚用户的实际要求,与用户达成共识。调查用户需求后,还需要进一步分析和表达用户的需求,**结构化分析(SA)**是一种简单实用的方法。SA从最上层的系统组织结构下手,自顶向下逐步分解来分析系统。
在这里插入图片描述

3.数据字典

数据字典是进行详细的数据收集和数据分析所获得的主要成果,是关于数据库中数据的描述。它在需求分析阶段建立,在数据库设计过程中不断的修改、充实和完善。数据字典一般包括以下内容:

数据项
数据项是不可再分的数据单位,一般数据项的描述包括以下内容:
数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,和其他数据项的关系}

其中,“取值范围”,“和其他数据项的关系”定义了数据的完整性约束条件,是设计数据检验功能的关键,在后续需要设计键的时候十分关键。

数据结构
数据结构反映了数据之间的组合关系,一个数据结构由若干个数据项或数据结构组成,内容一般如下:
数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}

数据流
数据流是数据结构在系统捏传输的路径,数据流的描述通常包括以下内容:
数据流描述={数据流名,说明,数据流来源和去向,{数据结构},平均流量,高峰期流量}

数据存储
数据存储是数据结构停留或者保存的地方,也是数据流的来源和去向之一,不一定需要存储在数据库中,也可以是txt文档,甚至是纸质文档也行。
数据存储描述={数据存储名,说明,编号,输入数据流,输出数据流,{数据结构},数据量,存取频率,存取方式}

处理过程
处理过程的具体逻辑一般用判定表或者判定树描述,数据字典中只需要描述说明性信息,真正的处理过程不存储在数据字典中。

7.3 概念结构设计

将需求分析得到的用户需求抽象为信息结构(概念模型)就是概念结构设计的主要任务。

1.概念模型

在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结果,才能更好的实现这些需求。概念模型的特点是:

  • 能够真实、充分反映真实世界事物和事物之间的联系
  • 易于理解,可以用它和不熟悉计算机的用户小欢意见
  • 易于修改,当需求发生变更的时候容易对概念模型进行修改和补充
  • 易于向其他类型的数据模型转换

2.E-R模型

ER模型是十分著名的模型,包括实体、属性、实体之间的联系等。

两个实体型之间的联系可以分为以下三种:

  1. 一对一联系(1:1)
  2. 一对多联系(1:n)
  3. 多对多联系(m:n)

两个以上的实体型之间的联系

两个以上的实体型之间也存在一对一、一对多和多对多的联系,比如一门课程会有多本参考书,然后有多个教师任教,如下图:
在这里插入图片描述

单个实体型内的联系
同一个实体集合中的个实体之间也可以存在联系,比如职工实体型内具有领导和被领导的联系,也就是某一职工干部领导若干职工。一般的,将参与联系的实体型数目称为联系的度,N个实体型之间的联系度为N,称为N元联系。

E-R图

ER图提供了标识实体型、属性和联系的方法。实体使用矩形表示,属性用椭圆形表示,联系用棱形表示。具体例子如下:

在这里插入图片描述

ISA联系

使用er图的时候,可能会碰到某个实体型是某个实体型的子类型的情况,比如本科生是学生的子类型,则会使用ISA联系,语义为“本科生 is a 学生“。一般用三角形来表示。ISA联系描述了对一个实体型中的实体的分类方法,用于描述一个实体是另一个实体的子对象。ISA联系的一个重要性质是子实体会继承父实体的所有性质。ISA使用一个三角形来表示
在这里插入图片描述
ISA约束还有以下的分类:
不相交约束和可重叠约束
不相交约束描述父类中一个实体不能同时属于多个子类中的实体集合,比如一个学生不能即是本科生又是研究生,这意味着一个父类中的实体最多属于一个子类的实体集合,用ISA联系三角形符号内加一个“X”来表示。如果父类中一个实体能够同时属于多个子类的实体集,则称为可重叠约束。

基数约束

基数约束是对实体之间一对一、一对多和多对多关系的细化。实体型可以使用基数约束来说明实体型中任何一个实体在联系中出现的最少次数和最多次数。基数约束使用一个数对min…max表示实体的取值范围,具体例子如下:
在这里插入图片描述
学生和学生证之间只能有一对一的关系,而一个课程可能会有0到无穷个学生选修,一个学生必须选修20~30门选修课。

Part-of联系

Part-of联系又名部分联系,表明某个实体型是另一个实体型的一部分,比如说汽车和轮子两个实体,轮子实体是汽车实体的一部分。这又分为来那个黄总情况:一种是整体实体被破坏,部分实体仍然可以独立存在,称之为非独占的part-of联系;比如轮子可以独立存在,不一定要安装在汽车上。非独占的Part-of联系可以使用基数约束来表达。另外还有一种Part-of是独占联系,也就是整体实体如果遭到破坏,部分实体就不可以存在,那么这个实体被称为弱实体型

3.UML

表示ER图的方法有很多,使用同统一建模语言UML是其中一种方法。UML中的类对应ER图中的实体,但是不仅包含了对象的属性,还包含了对象的方法。UML描述ER图包含三个信息:实体型、实体的嘛、联系

在这里插入图片描述

7.4 逻辑结构设计

概念结构是独立于任何一种数据模型的信息结构,因此,逻辑结构设计的任务就是把概念结构设计阶段设计好的基本ER图转化为于选用数据库管理系统产品所支持的数据模型相符合的逻辑结构。

7.5 物理结构设计

为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构,这就是数据库的物理设计,这通常分为两步:

  1. 确定数据库的物理结果
  2. 对物理结构进行评价

7.6 数据库的部署和维护

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

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

相关文章

TwinCAT 3 ADS Monitor使用

TwinCAT 3 ADS Monitor使用 《20211022 TwinCAT ADS Monitor的使用方法》 《TwinCAT3.1从入门到精通》 TF6010 | TwinCAT 3 ADS Monitor 以上是基础知识,下面是实操 先在Instance中查看变量的偏移量,即地址 多变量读写测试 结果如下,4条指令…

GPC爬虫池有什么用?

GPC爬虫池有什么用? 答案是:100%提高外贸网站在Google搜索引擎的收录量。 众所周知,要想免费从谷歌搜索引擎获取流量,就好做好谷歌SEO。 一个网站是否能获取谷歌的认可,有一个重要的技术指标,就是这个网…

R语言基础(一):注释、变量

R语言用于统计分析和绘制图表等操作。不同于Java等其它语言,R用于统计,而不是做一个网站或者软件,所以R的一些开发习惯和其它语言不同。如果你是一个编程小白,那么可以放心大胆的学。如果你是一个有编程基础的人,那么需…

数字化时代,你应该知道的BI

我曾经看到有人在讨论过商业智能BI的部署对于企业是否有实际意义,现在市场的数据已经证明商业智能BI在商业世界中,在企业的实践中证明了自己的价值,得到了广泛的认可。 一、什么是BI 有一点可能很多人没有想到,实际上商业智能BI…

CorelDRAW2023详解新增七大功能 ,CorelDRAW2023最新版本更新怎么样?

CorelDRAW2023新功能有哪些?CorelDRAW2023最新版本更新怎么样?让我们带您详细了解! CorelDRAW Graphics Suite 2023是矢量制图行业的标杆软件,2023年全新版本为您带来多项新功能和优化改进。本次更新强调易用性,包括更…

如何使用vue创建一个完整的前端项目

搭建Vue项目的完整流程可以分为以下几个步骤:安装Node.js和npm:Vue.js是基于Node.js开发的,因此在开始搭建Vue项目之前,需要先安装Node.js和npm(Node.js的包管理器)。可以从官网下载Node.js安装包并安装。安…

数据的存储--->【大小端字节序】(Big Endian)(Little Endian)

⛩️博主主页:威化小餅干📝系列专栏:【C语言】藏宝图🎏 ✨绳锯⽊断,⽔滴⽯穿!一个编程爱好者的学习记录!✨前言计算机硬件有两种存储数据的方式:大端字节序——Big Endian小端字节序——Little …

【Android -- 开源库】表格 SmartTable 的基本使用

介绍 1. 功能 快速配置自动生成表格;自动计算表格宽高;表格列标题组合;表格固定左序列、顶部序列、第一行、列标题、统计行;自动统计,排序(自定义统计规则);表格图文、序列号、列标…

第十四届蓝桥杯三月真题刷题训练——第 6 天

目录 第 1 题:星期计算 问题描述 运行限制 代码: 第 2 题:考勤刷卡 问题描述 输入格式 输出格式 样例输入 样例输出 评测用例规模与约定 运行限制 代码: 第 3 题:卡片 问题描述 输入格式 输出格式 样…

Flutter-Scaffold组件

在Flutter开发当中,我们可能会遇到以下的需求:实现页面组合使用,比如说有悬浮按钮、顶部菜单栏、左右抽屉侧边栏、底部导航栏等等效果。Scaffold组件可以帮我们实现上面需求说的效果。这篇博客主要分享容器组件的Scaffold组件的使用&#xff…

AI视频智能分析EasyCVR视频融合平台录像计划模块搜索框细节优化

EasyCVR支持海量视频汇聚管理,可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、智能分析等视频服务。在录像功能上,平台可支持: 根据业务场景自定义录像计划,可支持7*24H不间断录像,支持…

脑机接口科普0019——大脑的分区及功能

本文禁止转载!!!! 在前文脑机接口科普0018——前额叶切除手术_sgmcy的博客-CSDN博客科普中,有个这样的一张图: 这个图呢,把大脑划分为不同的区域,然后不同的区域代表不同的功能。 …

NLL loss(负对数似然损失)

NLL损失在NLP中含义 : 在自然语言处理中,通常用于分类任务,例如语言模型、情感分类等。NLL损失全称为Negative Log-Likelihood Loss,其含义是负对数似然损失。 在NLP任务中,我们通常将文本数据表示为一个序列&#x…

大数据是什么?学习后能找高薪工作么

大数据是什么,比较官方的定义是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 简单来说,大数据就是结构化的…

Unity使用webSocket与服务器通信(二)——C#服务器端使用Fleck时的简单服用方法

C#服务端用到Fleck包,它包含哪些可用的回调函数,有哪些常用的api方法? 演示:服务端收到Unity用户发来的信息 1、Fleck服务器提供哪些回调函数 Fleck提供的回调函数有下面几种: //用户连入服务器时... Action OnOp…

如何在Windows 10中安装PostgreSQL 15

PostgreSQL是一个强大的开源对象关系数据库系统,经过35年的积极开发,在可靠性、功能健壮性和性能方面赢得了很高的声誉。 通过官方文档可以找到大量的信息来描述如何安装和使用PostgreSQL。开源社区为熟悉PostgreSQL、发现它的工作原理和寻找职业机会提供了许多有用的地方。…

APP违法违规收集使用个人信息合规评流程和范围

近期,工信部通报2023年第1批《侵害用户权益行为的APP通报》(总第27批),共通报46款APP(SDK),这些被责令限期整改的APP(SDK),涉及的问题主要包括3个方面&#x…

Easy Deep Learning——卷积层

为什么需要卷积层,深度学习中的卷积是什么? 在介绍卷积之前,先引入一个场景 假设您在草地上漫步,手里拿着一个尺子,想要测量草地上某些物体的大小,比如一片叶子。但是叶子的形状各异,并且草地非…

【Unity3D小技巧】Unity3D中判断Animation以及Animator动画播放结束,以及动画播放结束之后执行函数

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在日常开发中,可能会遇到要判断Animation或者Anima…

MySQL workbench数据表和数据结构

数据表和数据结构的关系 数据表 学号姓名位置26002351李晓丽126002589张明伟226003214李雪冬326002132汪涵426006541邱明罕526003654李丽6 怎样去描述上面的数据表,用【数据表结构】表示 表头字段名字段类型位数备注学号xuehao整数/字符8 姓名xingming字符4 座…