[架构之路-172]-《软考-系统分析师》-5-数据库系统-5- 数据库设计与建模(逻辑设计-实体关系图ER图-关系图、物理设计)

news2024/11/15 17:34:09

目录

5 . 5 数据库设计与建模

5.5.1数据库设计阶段

1 . 规划:为什么做?能不能做?

2 . 需求分析:做成什么样子?

3 . 概念设计:怎么做 - 概念 (用户)

4 . 逻辑设计:怎么做?-- 逻辑

5 . 物理设计:怎么做?-- 物理

5.5.2 实体联系模型到关系图

0. 三要素

1 . 联系的类型

2. E- -R 图的集成

3. E - R 图向关系模式的转换 (向关系型数据库的格式转换)

附录:


5 . 5 数据库设计与建模

数据库设计是指对一个给定的应用环境,提供:

  • 一个确定:最优数据模型处理模式逻辑设计
  • 以及一个确定数据库存储结构存取方法物理设计
  • 建立起能反映现实世界信息和信息联系及满足用户数据要求和加工要求,以能够被某个 D B M S 所接受
  • 同时能实现系统目标,并有效存取数据的数据库。

5.5.1数据库设计阶段

基于数据库系统生命周期的数据库设计可分为如下5 个阶段:

规划、需求分析、概念设计、逻辑设计和物理设计。

1 . 规划:为什么做?能不能做?

规划阶段的主要任务是进行建立数据库的必要性可行性分析,确定数据库系统在企业和信息系统中的地位,以及各个数据库之间的联系。有关系统规划方面的知识,将在第 9 章中详细介绍。

2 . 需求分析:做成什么样子?

需求分析的目标是通过调査研究,了解用户数据处理要求,并按一定格式整理形成需求说明书需求说明书包括数据库所涉及的数据、数据的特征、使用频率和数据的估计,例如,数据名、属性及其类型 、主键属性、保密要求 、完 整性约束条件、更改要求、使用频率和数据量估计等。这些关于数据的数据称为元数据

在设计大型数据库时,这些数据通常由数据字典来管理。用数据字典管理元数据,有利于避免数据的重复或電名,以保持数据的一致性。同时,有利于提高数据库设计的质量,减轻设计者的负担。有关需求分析的知识,将在第11章中详细介绍。

3 . 概念设计:怎么做 - 概念 (用户)

概念(Idea;Notion;Concept)是人类在认识过程中,从感性认识上升到理性认识,把所感知的事物的共同本质特点抽象出来加以概括,是自我认知意识的一种表达,形成概念式思维惯性。在人类所认知的思维体系中最基本的构筑单位。

心理学上认为,概念人脑对客观事物本质的反映,这种反映是以词来标示和记载的。概念是思维活动的结果和产物,同时又是思维活动借以进行的单元。表达概念的语言形式是词或词组。概念都有内涵和外延,即其涵义和适用范围。概念随着社会历史和人类认识的发展而变化。中华人民共和国国家标准GB/T15237.1-2000:“概念”是对特征的独特组合而形成的知识单元。德国工业标准2342将概念定义为一个“通过使用抽象化的方式从一群事物中提取出来的反映其共同特性的思维单位”。

概念设计也称为概念结构设汁,其任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法将它们抽象为一个不依赖于任何 D B M S 的数据模型,即概念模型

概念模型使设计人员的注意力能够从复杂的实现细节中解脱出来,而只集中在最重要的数据的组织结构和处理模式上。为保证所设汁的概念模型能正确、完全地反映用户的数据及其相互关系,便于进行所要求的各种处理,在概念设计阶段中,可邀请用户参与

在进行概念设计时,可先设计各个应用的视图,即各个应用所看到的数据及其结构,然后再进行视图集成,以形成一个单一的概念数据模型

4 . 逻辑设计:怎么做?-- 逻辑

逻辑设计也称为逻辑结构设计,其任务是将概念模型转化为某个特定的 D B M S 上的逻辑模型。设计逻辑结构时,首先为概念模型选定一个合适的逻辑模型(例如,关系模型、网状模型或层次模型),然后将其转化为由特定 D B M S 支持的逻辑模型,最后对逻辑模型进行优化。

逻辑设计的目的是将概念设计阶段设计好的 E - R 图转换为与选用的具体机器上的D B M S 所支持的数据模型相符合的逻辑结构

5 . 物理设计:怎么做?-- 物理

物理设计也称为物理结构设计,其任务是对给定的逻辑模型选取一个最适合应用环境的物理结构,所谓数据库的物理结构,主要是指数据库在物理设备上的存储结构和存取方法

物理设计的步骤如下:

(1) 设计存储记录结构,包括记录的组成、数据项的类型和长度,以及逻辑记录到存储记录的映射。

(2) 确定数据存储安排。

(3) 设计访问方法,为存储在物理设备上的数据提供存储和检索的能力。

(4) 进行完整性和安全性的分析与设计。

(5) 数据库程序设计。

5.5.2 实体联系模型到关系图

0. 三要素

E - R 模型也称为 E - R 图,它是描述概念世界,建立概念模型的实用工具。

在 E - R 图中,主要包括以下三个要素:

(1) 实 体 (型)。

实体用矩形框表示,框内标注实体名称。

(2) 属性。

单值属性用椭圆形表示,并用连线与实体连接起来。

如果是多值属性,在椭圆形虚线外面再套实线椭圆;

如果是派生属性,则用虚线椭圆表示。其中,多值属性可以有一个或者两个以上的值,例如,学员信息数据库中可能包含关于他们个人兴趣的数据,一个学员可能有运动、电影、投资和烹调等多个兴趣;

派生属性是从基本属性计算出来的属性,例如,学员的总成绩和平均成绩等。

(3) 实体之间的联系

实体之间的联系用菱形框表示,框内标注联系名称,并用连线将菱形框分别与有关实体相连,并在连线上注明联系类型。例如,图 5 4 就是某在线教育平台系统的一个 E - R 图 (为了简单起见,省略了部分实体的属性和联系的属性)。

1 . 联系的类型

E- -R 图中的联系可以归结为三种类型,分别是一对一联系 、 一 对多联系和多对多联系。

(1) 一对一联系(1:1)。

设 A, B 为两个实体集,若 A 中的每个实体至多和B 中的一个实体有联系,反过来,B 中的每个实体至多和A 中的一个实体有联系,则称A 对 对 B或 或 B 对 对 A 是 1:1联系。要注意的是,1:1联系不一定都是一一对应的关系,可能存在着无对应。例如,在 图 5 4 中,一个班只有一个班主任,一个辅导老师不能N 时兼任两个班的班主任,由于辅导老师紧缺,某个班的班主任也可能暂缺

(2) —对 多 联 系

如 果 实 体 集 A 中的每个实体可以和B中的几个实体有联系,而 而 B 中的每个实体至少和A 中的一个实体有联系,则 A 对 对 B M 于 1⑺联系。例如,在图 5-4中,一个班级有多个学员,而一个学员只能编排在一个班级,班级与学员之间的关系属于一对多的联系。

 (3) 多对多联系(mTi )。

若实体集A 中的每个实体可与B 中的多个实体有联系,反过来,B 中的每个实体也可以与A 中的多个实体有联系,则称A 对 对 B 或 或 B 对 对 A 是 是 w力 力联系。例如,在 图 5 4 中,一个学员可以选修多门课程,一门课程由多个学员选修,学员和课程之间存在多对多的联系。

2. E- -R 图的集成

在数据库的概念设计过程中,先设计各子系统的局部E- -R 图,其设计过程是,首先,确定局部视图的范围;然后,识别实体及其标识,确定实体之间的联系;最后,分配实体及联系的属性。各子系统的局部E- -R 图设计好后,下一步就是要将所有的分E- -R 图综合成一个系统的总体E- -R 图,一般称为视图的集成。视图集成通常有两种方式,•一种方式是多个局部E- -R 图一次集成,这种方式比较复杂,做起来难度较大;

另一种方式是逐步集成,用累加的方式一次集成两个局部E- -R 图。这种方式每次只集成两个局部E- -R 图,可以降低复杂度。
由于各子系统应用所面临的问题不同,且通常是由不同的设计人员进行局部视图设计,这就导致各个局部E- -R图之间必定会存在许多不一致的问题,称之为冲突。因此,在合并E- -R 图时,不能简单地将各个局部E- -R 图M 到一起,而是必须着力消除各个局部E- -R 图中的不一致,以形成-•个能为全系统中所有用户共同理解和接受的统一的概念模型。

各局部E- -R 图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突。

(1) 属性冲突。

属性冲突包括属性域冲突和属性取值冲突。属性冲突理论上好解决,只要换成相同的属性就可以了,但实际上需要各部门协商,解决起来并不简单。

(2) 命名冲突。

命名冲突包括同名异义和异名同义。处理命名冲突通常也像处理属性冲突一样,通过讨论和协商等行政手段加以解决。

(3) 结构冲突。

结构冲突包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E- -R 图中所包含的属性个数和属性排列次序不完全相同。对于前者的解决办法是将属性变换为实体或实体变换为属性,使同一对象具有相同的抽象。对于后者的解决办法是使该实体的属性取各 M 部 E - R 图中属性的并集,再适当调整属性的次序。
另外,实体间的联系在不同的局部 E - R 图中可能为不同的类型,其解决方法是根据
应用的语义对实体联系的类型进行综合或调整。在初步的 E - R 阁中,可能存在一些冗余
的数据和实体间冗余的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库
维护增加困难,应当予以消除。消除冗余的主要方法为分析方法,即以数据字典和数据
流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。有关数据字
典和数据流图的详细知识,将 在 11.4节中介绍。

3. E - R 图向关系模式的转换 (向关系型数据库的格式转换)

E - R 图向关系模式的转换 用于数据库的逻辑设计阶段的工作,该阶段需要将 E - R 模
型转换为某种 D B M S 能处理的关系模式,具体转换规则如下:

(1) 一个实体转换为一个关系模式,实体的属性就是关系属性,实体的主键就是关系主键

(2) —个 1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为•-个独立的模式,则与该联系相连的各实体的主键和联系本身的属性均转换为关系的属性,每个实休的主键均是该关系键属性;如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的主键和联系本身的属性。

(3) —个联系可以转换为一个独立的关系模式,也可以与任意《端对应的关系模式合并。如果转换为一个独立的模式,则与该联系相连的各实体的主键和联系本身的厲性均转换为关系的属性, fft 关系的主键为《端实体的主键;如果与《端实体对应的关系模式合并,则需要在该关系模式的属性中加入1端关系模式的主键和联系本身的属性。

(4) 一个联系转换为一个独立的关系模式,与该联系相连的各实体的主键以及联系本身的属性均转换为关系的属性,而关系的主键为各实体主键的组合。

(5) 三个以上实体间的一个多元联系可以转换为一个独立的关系模式,与该联系相连的各实体的主键和联系本身的属性均转换为关系的属性,而关系的主键为各实体主键的组合。


另外,还有4 种情况是需要特别注意的:

( 1 ) 多值属性的处理

如果 E - R 图中某实体具有一个多值属性,则应该进行优化,把该属性提升为一个实体,通常称为弱实体;或者在转化为关系模式时,将实体的主键多值属性单独构成一个关系模式。

(2) B L O B 型属性的处理。

典型的 B L O B 是一张图片或一个声音文件,由于它们的容量比较大,必须使用特殊的方式来处理。处理 B L O B 的主要思想就是让文件处理器(例如,数据库管理器)不去理会文件是什么,而是关心如何去处理它。因此,从优化的角度考虑,应采用的设计方案是将 B L O B M 性与关系的主键独立为一个关系模式。

(3) 派生属性的处理。

因为派生属性可由其他厲性计算得到,因此,在转化成关系模式时,通常不转换派生属性。

(4) 在面向对象的模型中,本节的关系模式就对应类,关系模式的属性就对应类的属性。

附录:

数据库主键:指的是一个列或多列组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。主键主要是用与其他表的外键关联,以及文本记录的修改与删除。

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

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

相关文章

p66 内网安全-域横向批量atschtasksimpacket

数据来源 本文仅用于信息安全的学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。 基本概念 DMZ区域:称为“隔离区”,也称‘’非军事化区/停火区…

C语言入门篇——数据篇

目录 1、变量与常量 1.1变量 1.2常量 1.2.1#define 定义的标识符常量 1.2.2枚举常量 2、数据类型关键字 3、整数 4、浮点数 5、基本数据类型 5.1、int型数据 5.2、char型数据 5.3、_Bool类型 5.4、float、double和long double 5.5、复数和虚数类型 6、总结 1、变…

Preempt-RT实时系统下IGH主站安装

文章目录 1. 安装环境2. 确定网卡类型3. 下载IGH安装包4. 配置安装5. 启动测试6. 扫描从站7. 设置环境变量 1. 安装环境 ubuntu18.04内核版本:4.19.72-rt25 2. 确定网卡类型 查看网卡驱动 lspci -v可以看到我的网卡驱动主要有e1000e和igb两种类型,其…

localhost与本机IP IPtables匹配顺序

localhost&host IPtables iptables链匹配顺序 ping localhost 当前实验网络为IPV4模式通过tcpdump抓包,我们可以发现ping localhost的流量最终发送到lo网卡了通过iptables pkts数据计数我们可知,ping localhost的iptables过滤流程为:应…

npm install 卡住 不动弹

npm install时如果卡住,不动弹,可以试试以下几种方式。 设置注册中心,使用淘宝注册中心。 这种主要解决因为网络问题引起的下载失败,npm config set registry https://registry.npmmirror.com,设置完后使用npm config…

阻止or关闭Win10自动更新

阻止or关闭Win10自动更新 https://baijiahao.baidu.com/s?id1732432888882246429&wfrspider&forpc 一、禁用Windows Update服务 1、同时按下键盘 Win R,打开运行对话框,然后输入命令 services.msc ,点击下方的“确定”打开服务。…

轻松掌握k8s的kubectl使用命令行操作Service知识点02

1、Service将同类型一组应用统一IP访问 将一组 Pods 网络服务的抽象方法。统一Ip后,默认就实现了负载均衡。 1、只在Pod内部任意机器访问的ClusterIp类型 在命令行操作生成一个ClusterIp地址。这种ClusterIp只能在Pod内部访问。 生成了ClusterIp之后&#xff0…

Git的安装和学习使用(一)

本篇文章旨在分享本人在学习Git时的随笔记🤩 文章目录 一、Git 快速入门1.1 Git 概述1.2 SCM概述1.3 Git 安装1.3.1 软件下载1.3.2 软件安装1.3.3 软件测试 二、Git 基础使用2.1 Git 概念2.1.1 版本控制2.1.2 分布式2.1.3 系统2.1.4 区域 2.2 Git 基础指令2.2.1 Lin…

UTC时间、GMT时间、CST时间(北京时间)、时间戳

一、几个时间相关的概念。 GMT时间:Greenwich Mean Time,格林尼治平时,又称格林尼治平均时间或格林尼治标准时间。是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间。 GMT存在较大误差,因此现在已不再被作为标准时间使用。现…

【C++入门学习:基本语法】为了缩短学习周期,只记录部分不懂的语法

文章目录 一、程序结构二、定义变量和声明变量三、变量作用域四、定义常量五、类型限定符号六、存储类七、运算符八、函数九、指针与引用十、C 的基本输入输出十一、“结构成员”和“类变量”引用 一、程序结构 #include <iostream> // C 语言定义了一些头文件&#xff…

[CoderChef复盘] START86 div4 20230419】

[CoderChef复盘] START86 div4 20230419 一、本周周赛总结P1 CodeChef Learn Problem Solving1. 题目描述2. 思路分析3. 代码实现 P2、Cricket Match2. 思路分析3. 代码实现 P3 Chef and Battery1. 题目描述2. 思路分析3. 代码实现 P4 Maximise Score1. 题目描述2. 思路分析3.…

HummerRisk V1.0 :架构升级说明

升级前须知 HummerRisk v1.0.0 版本与 HummerRisk v0.10.0 以及之前版本存在一定的差异。 HummerRisk v1.0.0 增加了一些新功能&#xff0c;也同时删除了一些功能&#xff0c;另外也对部分功能进行了重构和修复。 整体架构 功能原理 工作流程 组件说明 Vue&#xff1a;使用…

windows下为python3.x安装dlib

为任意版本python3.x安装dlib&#xff0c;通过VS2022编译方式安装更合理些, 因为目前pypi也只为windows提供了python3.5和3.6的.whl 1.安装vs2019 or later2.安装cmake3. 下载dlib的源代码(保存到 C&#xff0c;D&#xff0c;E&#xff0c;F盘都可以)4.开始编译5. 编译成果&…

科学计算库——numpy

科学计算库——numpy 一、概述 numpy作为高性能科学计算和数据分析的基础包&#xff0c;它是众多数据分析、机器学习等工具的基础架构&#xff0c;掌握numpy的功能及其用法将有助于后续其他数据分析工具的学习。本章将针对numpy库的基础功能进行详细地讲解。 二、数组对象 …

浅述 国产仪器仪表 4455D 4455E 4455F数字示波器

4455系列数字示波器具有12bit垂直分辨率&#xff0c; 5GSa/s最高采样速率&#xff0c;500Mpts/CH存储深度&#xff0c;模拟带宽500MHz、1GHz、2GHz&#xff0c;为您提供高分辨率信号采集与波形分析体验。4455系列数字示波器具有波形自动设置、波形参数自动测量与统计、光标测量…

银行数字化转型导师坚鹏:商业银行大数据风控建模方法与案例

商业银行大数据风控建模方法与案例 课程背景&#xff1a; 数字化背景下&#xff0c;很多银行存在以下问题&#xff1a; 不清楚商业银行大数据风控建模方法&#xff1f; 不清楚银行大数据风控建模应用案例&#xff1f; 不知道银行大数据风控建模核心内容&#xff1f; 课…

【源码解析】Spring事务 @Transactional 源码解析

源码解析 自动化配置 在spring-boot-autoconfigure查看spring.factories引入TransactionAutoConfiguration org.springframework.boot.autoconfigure.EnableAutoConfiguration\ org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration,\查看Tran…

大数据之Spark运行流程

文章目录 前言&#xff08;一&#xff09;Spark On Yarn集群的Client模式运行流程&#xff08;二&#xff09; Spark On Yarn集群的Cluster模式运行流程总结 前言 #博学谷IT学习技术支持# 上篇文章有讨论到Spark On Yarn的两种部署模式&#xff0c;如果有不清楚的地方&#xf…

java ssm高校学术会议论文管理系统

在研究课题--学术会议论文管理系统的实现与设计&#xff0c;对操作使用的便利性&#xff0c;系统的可制定性和安全性以及管理的全面性等多个方面研究。其中主要研究的内容是将学术会议论文管理系统功能划分为: 通知类型、通知信息、部门信息、用户信息用户反馈、会议类型、会议…

JavaScript(JS)-1.JS入门

1.JavaScript概念 (1)JavaScript是一门跨平台&#xff0c;面向对象的脚本语言&#xff0c;来控制网页行为的&#xff0c;它能使网页可交互 (2)W3C标准&#xff1a;网页主要由三部分组成 ①结构&#xff1a;HTML负责网页的基本结构&#xff08;页面元素和内容&#xff09;。 …