软考笔记--数据库设计与建模

数据库设计是指对一个给定的应用环境,提供一个确定最有数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立起能反映显示世界信息和信息联系及满足用户数据要求和加工要求,以能够被某个DBMS所接受,同时能实现系统目标,并有效存取数据的数据库。

一.数据库的设计阶段

基于数据库系统声明周期的数据库设计可分为五个阶段:规划,需求分析,概念设计,逻辑设计和物理设计。

1.规划

规划阶段的主要任务是建立数据库的必要性及可行性分析,确定数据库系统在企业和信息系统中的地位,以及各个数据库之间的联系。

2.需求分析

需求分析的目标是通过调查研究,了解用户的数据和处理要求,并按一定的格式整理形成需求说明书。需求说明书包括数据库所涉及的数据,数据的特征,使用频率和数据量的估计。

3.概念设计

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

4.逻辑设计

逻辑设计也称为逻辑结构设计,其任务是将概念模型转换为某个特定的DBMS上的逻辑模型。逻辑设计的目的是将概念设计阶段设计好的E-R图转换为与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构。

5.物理设计

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

二.实体联系模型

E-R模型也称为E-R图,它是描述概念世界,建立概念模型的使用工具。在E-R图中主要包括以下三个要素:

(1)实体。实体用矩阵框表示,框内标注实体名称。

(2)属性。单值属性用椭圆表示,并用联系与实体连接起来。

(3)实体之间的联系。实体之间的联系用菱形框表示,框内标注联系名称,并用连线将菱形框分别与有关实体相连,并在连线上标名联系类型。

 1.联系的类型

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

(1)一对一联系(1:1)。设A,B为两个实体集,若A中的每个实体至多和B中的一个实体有联系,反过来,B中的每个实体至多和A中的一个实体有联系,则称A对B或B对A是1:1联系。

(2)一对多(1:n)。如果实体集A中的每个实体可以和B中的几个实体有联系,而B中的每个实体至少和A中的一个实体有联系,则A对B属于1:n联系。

(3)多对多联系(m:n)。若实体集A中的每个实体可与B中的多个实体有联系,反过来,B中的多个实体也可以与A中的多个实体有联系,则称A对B或B对A是m:n联系。

 2.E-R图的集成

在数据库的概念设计过程中,先设计各子系统的局部E-R图,其设计过程是,首先,确定局部视图的范围,然后,识别实体及其标识,确定实体之间的联系,最后,分配实体及联系的属性。各子系统的局部E-R图设计好之后,下一步就是将所有分E-R图综合成一个系统的总体E-R图,一般称为视图的集成。

视图集成通过有两种方式:

一种方式是多个局部E-R图一次集成,该方式比较复杂,难度大;

另一种方式是逐步集成,用累加的方式一次集成两个局部E-R图。该方式每次集成两个布局E-R图,复杂度降低。 

各局部E-R图之间的三种冲突:

(1)属性冲突。属性冲突包括属性域和属性取值冲突。

(2)命名冲突。命名冲突包括同名异议和异名同义。

(3)结构冲突。结构冲突包括对统一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不一致。

 3.E-R图向关系模式的转换

 E-R图向关系模式的转换属于数据库的逻辑设计阶段的工作,该阶段需要将E-R模型转换为某种DBMS能处理的关系模式。

转换规则如下:

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

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

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

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

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

四种特别的注意点:

  1. 多值属性的处理。如果E-R图中某实体具有一个多值属性,则应该进行优化,把该属性提升为一个实体,通常称为弱实体;或者在转化为关系模式时,将实体的主键与多值属性单独构成一个关系模式。
  2. BLOB型属性的处理。处理BLOB的主要思想就是让文件处理器(例如,数据库管理器)不去理会文件是什么,而是关心如何去处理它。
  3. 派生属性的处理。因为派生属性可由其他厲性计算得到,因此,在转化成关系模式时,通常不转换派生属性。
  4. 在面向对象的模型中,关系模式对应类,关系模式的属性就对应类的属性。

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

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

相关文章

【链表】-Lc328-基于奇偶节点拆分链表(oddHead,oddTail,evenHead,evenTail)

写在前面 最近想复习一下数据结构与算法相关的内容,找一些题来做一做。如有更好思路,欢迎指正。 目录 写在前面一、场景描述二、具体步骤1.环境说明2.代码 写在后面 一、场景描述 给定一个单链表,把所有的 奇数节点 和 偶数节点 分别排在一起…

红队打靶练习:INFOSEC PREP: OSCP

目录 信息收集 1、arp 2、nmap WEB 信息收集 wpscan dirsearch ssh登录 提权 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:69:c7:bf, IPv4: 192.168.110.128 Starting arp-scan 1.10.0 with 256 ho…

地理空间数据科学进阶

目录 写在开头1. 地理编码基础1.1 地理编码的基本原理1.1.1 坐标系统1.1.2 地名解析1.1.3 编码算法1.2 Python中使用地理编码的基础知识1.2.1 百度地图API1.2.2 高德地图API1.2.3 腾讯地图API1.3 Python中实现代码2. 逆地理编码2.1 利用Python进行逆地理编码2.1.1 获取高德地图…

监测Tomcat项目宕机重启脚本(Linux)

1.准备好写好的脚本 #!/bin/sh # 获取tomcat的PID TOMCAT_PID$(ps -ef | grep tomcat | grep -v tomcatMonitor |grep -v grep | awk {print $2}) # tomcat的启动文件位置 START_TOMCAT/mnt/tomcat/bin/startup.sh # 需要监测的一个GET请求地址 MONITOR_URLhttp://localhost:…

java 图书管理系统 spring boot项目

java 图书管理系统ssm框架 spring boot项目 功能有管理员模块:图书管理,读者管理,借阅管理,登录,修改密码 读者端:可查看图书信息,借阅记录,登录,修改密码 技术&#…

Yalmip学习笔记

这里写自定义目录标题 基本用法变量定义关于大MBilevel programming 注:这篇文章主要是留给自己查漏补缺的,所以从来没有使用过yalmip的读者看着会觉得跳来跳去。 基本用法 建模开始前,使用yalmip(clear)清空Yalmip的内部数据库。 下面是一个…

【战报】2023年11月25日PMP考试战报来袭!!

项目管理认证 PMP项目管理课程介绍 PMP成绩查询及电子版证书下载-CSDN博客文章浏览阅读501次,点赞9次,收藏4次。2025.11.25的PMP考试成绩出来了!https://blog.csdn.net/XMWS_IT/article/details/135939596?spm1001.2014.3001.5501 2023年1…

DSP系统时钟总结

一、stm32中断偏移向量介绍 1.1 为什么要设置中断向量偏移 上图可以看出程序上电先进入0x08000000开始运行,紧接着执行复位中断向量,然后执行复位中断程序,然后进入main函数。 如果想要app的中断正常运行,那就必须手动设置中断向…

C语言——深入理解指针3

目录 1. 数组名的理解1. 数组名1.2 数组名理解的特例 2. 使用指针访问数组3. 一维数组传参的本质4. 冒泡排序4.1 冒泡排序的概念4.2 冒泡排序的优化 5. 二级指针5.1 二级指针的概念5.2 二级指针的运算 6. 指针数组7. 指针数组模拟二维数组 1. 数组名的理解 1. 数组名 在上⼀个…

Python武器库开发-武器库篇之pdf文件暴力破解(五十二)

Python武器库开发-武器库篇之pdf文件暴力破解(五十二) PDF(Portable Document Format,便携式文档格式)是由Adobe公司开发的一种文件格式。PDF文件被广泛用于以可靠方式共享和传输电子文档。它能够保留文档的原始格式,包括字体、图…

公众项目评估方法

本文由群狼调研(社会舆情调查)出品,欢迎转载,请注明出处。公众项目评估方法可以根据项目的性质、规模和目标受众的特点而有所不同。以下是一些常用的公众项目评估方法: 1.调查问卷:设计并实施调查问卷&…

NetCore iText7 根据PDF模板 导出PDF文件

iText 7 是一个用于处理 PDF 文件的流行的开源库,它提供了丰富的功能,包括创建、编辑和处理 PDF 文档。它支持 .NET 平台,因此可以在 .NET Core 中使用该库来处理 PDF 文件。 使用 iText 7,您可以进行以下操作: 1. 创…

[C语言][C++][时间复杂度详解分析]二分查找——杨氏矩阵查找数字详解!!!

一,题目 遇到的一道算法题: 1,已知有一个数字矩阵(row行,col列),矩阵的每行 从左到右 递增,每列 从上到下 递增。 2,现输入一个数字 num ,判断数字矩阵中…

Little云盘测试用例

Little云盘实现了用户的注册、登录,上传文件,下载文件,预览文件(支持视频预览),删除文件,创建文件夹,分享文件链接等功能。管理员可管理用户存储空间、用户信息及文件消息。以下是该…

微信小程序之下拉刷新事件、上拉触底事件和案例

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

趣学Python算法100例-1.1 抓交通肇事犯

1.问题描述 一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号,只记下了车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但…

vue核心知识点

一、Vue基础知识点总结 开发vue项目的模式有两种: 基于vue.js,在html中引入vue.js,让vue.js管理div#app元素。基于脚手架环境:通过vue脚手架环境可以方便的创建一个通用的vue项目框架的模板,在此基础之上开发vue项目…

leetcode-top100数组专题下

第一题:48.旋转图像 题目链接 48. 旋转图像 - 力扣(LeetCode) 解题思路 辅助数组 首先我们分析位置关系 matrix_new[j][n - i - 1] matrix[i][j] 如果我们使用一个辅助数组 class Solution:def rotate(self, matrix: List[List[int]…

Python面向对象编程:探索代码的结构之美

文章目录 一、引言二、为什么学习面向对象编程2.1 提高代码的可维护性:通过封装、继承和多态实现模块化设计2.2 提升代码的复用性:通过类和对象的创建实现代码的重用 三、类和对象的基本概念3.1 类和对象的定义和关系:类是对象的模板&#xf…

【劳德巴赫 Trace32 高阶系列 3 -- trace32 svf 文件操作命令】

请阅读【嵌入式开发学习必备专栏 之 Trace32 系列 】 文章目录 Trace32 SVF 文件操作命令JTAG.PROGRAM.autoJTAG.PROGRAM.SVF命令参数介绍IRPREIRPOSTDRPREDRPOSTInitStateIgnoreTDOVerbose使用示例Trace32 SVF 文件操作命令 JTAG.PROGRAM.auto Format: JTAG.PROGRAM.</