数据库设计是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。例如,编程微课是在线编程教育项目,该项目涉及到课程、学生、老师、学习资料等数据,这些数据都要被存储下来,并且能够方便的增加、修改、删除和查询。这就需要规划课程、学生、老师、学习资料等数据构成以及相互之间的关系。因此,规划数据构成及数据间关系,并应用某一具体的数据库管理系统如MySQL构建数据库的过程就是数据库设计。

由于项目需求的易变性和数据的复杂性,数据库设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程。数据库设计步骤如下图所示:

图2-5 数据库设计过程流程图

需求分析阶段主要分析项目涉及的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及在业务活动中的存储情况,确定用户对数据库系统的使用要求和各种约束条件等,形成数据库需求说明书

概念结构设计阶段根据数据库需求说明书,创建数据库概念结构,描述概念结构的有力工具是ER模型

ER模型表示的概念结构模型独立于任何一种数据模型,并独立于任何一个具体的数据库管理系统。因此,需要把概念结构设计阶段设计的ER模型转换为关系数据模型二维表结构,此阶段为逻辑结构设计阶段

物理设计阶段是在计算机的物理设备上确定应采取的数据存储结构和存取方法,以及如何分配存储空间等问题。关系数据库物理设计的主要工作是由系统自动完成的,数据库设计者只要关心索引文件的创建即可

验证设计是在上述设计的基础上,收集数据并建立数据库,运行应用任务来验证数据库的正确性和合理性,当发现设计问题时,可能需要对数据库设计进行修改。

实体联系模型(ER图)

当前常用的概念数据模型是ER模型。ER模型描述数据库的概念模式,不考虑数据库的逻辑与物理结构,它充分反映现实世界,易于理解,将现实世界的事物以信息结构的形式很方便地表示出来。

例如,课程是编程微课的主要内容,课程涉及到老师、学生等对象等实体,进一步分析还涉及到课程视频、课程资料、课程价格等各种数据。在用ER模型对课程分析和描述中,对这些实体以及实体之间的联系给出了确切的定义。

ER模型有四个概念,分别是实体、属性、联系、实体集

实体

实体是客观存在并且可以互相区分的事物,可以是人或物,也可以是抽象的概念。在现实世界,实体并不是孤立存在的,实体与实体之间也存在联系。例如,课程与学生之间存在学生学习课程的联系,课程与老师之间存在老师创建课程的联系。

属性

每个实体具有的特征称为属性,一个实体可以由若干属性来描述,属性都有其取值范围,称为值集或值域。例如,课程实体可以由课程编号、课程名称、授课老师、类别、简课程介、价格等属性组成。唯一地标识实体的属性或属性组称为实体的关键字。例如,属性值“20180603,Java编程基础,郎老师,编程语言,课程以浅显易懂的语言,以常见的生活场景为案例,带领大家逐步进入计算机编程世界,86”。其中20180603是课程编号的属性值,该编号在在所有的课程实体中是唯一的,该属性就是课程实体的关键字。

联系

实体不是孤立存在的,实体之间是有联系的。实体之间的联系可以分为三类:一对一(1:1)、一对多(1:n)和多对多(m:n)。例如,一个老师可以创建多个课程,老师与课程的联系就是一对多的;如果一个老师只能创建一个课程,则老师和课程的联系就是一对一的。在进行问题分析时,要根据客观实际,抓住问题实质进行现实世界的抽象

实体集

具有相同属性的实体的集合称为实体集。在同一实体集中,每个实体的属性及其值域是相同的,但可能取不同的值。例如,所有的课程实体组成课程实体集,所有的老师实体组成老师实体集。

绘制ER图

ER图是ER模型的图形化描述。俗话说:一张图胜过千言万语,用ER图可以清晰地描述出ER模型的结构。

规范的ER图可以帮助人们对ER模型的统一认识,便于沟通和讨论,有助于工作效率的提高。它使用一组预定义的符号来表示ER模型的实体、属性、联系等概念,这些预先定义的符号已经标准化,从而让全世界的开发人员都可以采用这些符号而不会引起混淆。ER图的基本图素有如下的约定:

图 2-6 ER图的基本图素

(1)用长方形表示实体,在框内写上实体名。

(2)用椭圆表示实体的属性,并用连接线把实体与属性连接起来,属性如果是实体的关键字,可以用双线椭圆表示。

(3)用菱形表示实体间的联系,菱形内写上联系名,用连接线把菱形分别与有关的实体相连接,在连接线旁标上连接的类型,如果联系也有属性,则联系的属性和菱形连接。

图 2-7 用ER图表示的课程管理

图2-7所示为用ER图表示一个课程管理,这是一个简化的课程管理模型,课程由老师创建并属于老师,两者之间是一对多的联系。课程与学生直接存在学习的联系,课程与学生是多对多的联系,因此联系也有属性,分别是学生编号和课程编号。双线椭圆表示的属性编号是实体的关键字。

通过图2-7可以看出,ER模型是依赖业务运营方式的,它是企业运营方式的信息化描述。企业业务的改变直接影响着ER图的结构和实体间的联系。即使是相同的业务,数据库设计人员侧重分析的数据不同,给出的ER图也可能是不同的。

对于设计比较复杂的系统来说,有时为了使ER图简洁明了,在ER图中可以省略属性,只画出实体和联系,将属性以表格的形式另外列出。如图2-8所示,给出的是不包含属性的ER图,

图 2-8 不包含属性的课程管理ER图

ER图直观易懂,是系统开发人员和客户之间很好的沟通工具。对于客户来说,它概况了企业运营的方式和各种联系;对于系统开发人员来说,它从概念上描述了一个应用系统数据库的信息组织。因此,如能准确画出企业运营方式的ER图,就意味着搞清楚了企业的业务运营方式,以后可以根据ER图,结合具体的数据库管理系统,把ER图转换为数据库管理系统所能支持的数据模型。这种逐步推进的数据库设计方法已经普遍应用于数据库设计中,画出应用系统的ER图成为数据库设计的一个重要步骤。

关系模型

ER图给出了实体联系模型的图形化描述,增强了开发人员与客户的沟通能力。在需求开发阶段ER模型是非常重要的,也是从企业的业务运营方式到概念模型的映射。

到了设计阶段。就需要在概念模型的基础上建立关系模型,关系模型是用二维表来表示实体集属性间的关系以及实体间联系的形式化模型。它将用户数据的逻辑结构ER模型归纳为满足一定条件的二维表的形式。

ER模型中的一个实体或联系对应一张二维表,ER模型中的实体属性转换为二维表的列,也可称为属性,每个属性的名称称为属性名,也可称为列名。每个属性取值范围称为该属性的域。二维表每个属性或列取值后的一行数据称为二维表的一个元组,也可以称为一条记录。二维表可以包含有限个不重复的记录。

图2-9给出了实体“课程”、“老师”转化为关系模型的二维表。每个课程是课程表中的一条记录或一个元组,即一行;同样,每个老师的属性也反映在老师表中的一行;课程表和老师表的联系反映在课程表属性“老师编号”字段上,该字段和老师表的编号字段为同一个字段,因此通过“老师编号”字段可以确定是哪位老师建立的课程。

图 2-9 由实体课程和老师转化的课程和

二维表的不可重复性可知,关系中必然存在一个属性或属性组,能够唯一标识一个元组,该属性或属性组称为关键字。当关系中存在多个关键字时,称它们为候选关键字,指定其中一个为主关键字,简称主键。

设计二维表时,关系应满足如下性质。

(1)表中每一列的取值范围都是相同的,也就是数据类型相同。

(2)不同列的取值范围可以相同,但列名称不能相同。

(3)表中列的次序可以变换,不影响关系的实际意义。

(4)同一个表中,不允许存在两个完全相同的元组,这是集合的一个基本性质,保证了关系中元组的唯一性。

(5)行的次序可以任意交换。

(6)关系中的任何一个属性值都必须是不可分的元素。

数据库实体联系模型与关系模型相关推荐

  1. 【数据库】逻辑设计-ER模型转换为关系模型

    转载: https://blog.csdn.net/HaoDaWang/article/details/78098937?locationNum=4&fps=1 如何把ER模型转换为关系模型 ...

  2. er图的好处_如何把ER模型转换为关系模型(超详细,含例题)

    本文转载自:http://blog.csdn.net/HaoDaWang/article/details/78098937?locationNum=4&fps=1 超级感谢博主分享 本篇博文中 ...

  3. 常用的数据模型及其对比(层次模型、网状模型、关系模型)

    数据库领域中主要的逻辑数据模型有:层次模型.网状模型.关系模型.面向对象数据模型等,我们重点讲解了**层次模型.网状模型.关系模型**. 1.1 层次模型 层次数据库系统的典型代表是IBM公司的Inf ...

  4. 浅析ER模型与关系模型

    前言: 实体联系模型(ER模型)是广泛被采用的概念设计方法,此博客介绍ER模型的基本元素.属性的分类和联系的设计,以及才用ER模型的概念设计步骤. ER模型与关系模型的区别以及转换是"数据库 ...

  5. er模型转关系模式_ER模型到关系模型

    er模型转关系模式 As we all know that ER Model can be represented using ER Diagrams which is a great way of ...

  6. mysql学生选课系统的关系模型_数据库系统原理ER模型与关系模型

    数据库系统是软件的一种,数据库系统自然而然也有他自己的生命周期生存期.它的生存期从规划开始,一直到将它卸载不用了.它的中间过程很复杂,为了实现用户的想法,数据库有关人员将现实生活中的数据进行抽象,然后 ...

  7. 1.2 《数据库系统概论》之数据模型(概念模型、逻辑模型--物理模型、层次模型、网状模型、关系模型、面向对象模型、对象关系模型)

    文章目录 0.思维导图 1.数据模型的概念 2.两大类数据模型 客观对象的抽象过程---两步抽象 3.数据模型的组成要素 (1)数据结构 (2)数据操作 (3)数据的完整性约束条件 4.概念模型 (1 ...

  8. er图转关系模式规则_将ER模型转换为关系模型的规则

    将 ER 模型转换为关系模型的规则如下: (1) 一个实体型转换为一个关系模式, 实体的属性就是关系的属性, 实体的码 就是关系的码. (2)一个1 : 1的联系可以转换为一个独立的关系模式,也可以与 ...

  9. E-R模型转换为关系模型

    项目(实训)目标 能采用E-R模型进行概念结构设计 能实现E-R模型向关系模型的转化 项目(实训)中的具体任务 1.从应用背景的实体与实体关系,画出实体联系图(E-R图). 2.将得到的E-R图转化为 ...

最新文章

  1. Android零基础入门第25节:最简单最常用的LinearLayout线性布局
  2. 学习微信小程序之css14浮动的特性
  3. c语言怎样输入动态数组代码,求助~~ 如何把数组变成动态输入的?
  4. 腾讯视频app下载2019_腾讯视频主设备如何设置
  5. 《PPT高手之道:六步变身职场幻灯派》一0.4 PPTology的3大阶段、6个步骤、24个模块...
  6. Sublime Text Build 3176 安装图文详细教程
  7. 开源的 DNS 转发软件 Dnsmasq 被曝7个漏洞,可劫持数百万台设备
  8. jQuery - Ajax解决跨域问题
  9. AI相亲,让爱变得简单
  10. Android UI:使用矢量图,抛弃PNG
  11. Vivado ROM IP核
  12. 干货分享 | 4万字全面解读数据中台、数据仓库、数据湖(建议收藏)
  13. 巨星故事之永恒答案:强者才能生存!斗士艾弗森
  14. 【Spark Core】【RDD】【01】核心属性 执行原理
  15. linux gic驱动
  16. 红绿灯记忆游戏-第13届蓝桥杯Scratch选拔赛真题精选
  17. CVPR 2022: 图像分割论文大盘点
  18. 二项分布、泊松分布,正态分布(高斯分布)之间的联系与区别
  19. 怎么减少if()---else操作,优化代码
  20. 数据可视化(pyecharts库的介绍)

热门文章

  1. iPadPro看电影之MKV转MP4视频格式教程
  2. Unity批量替换文字字体自制工具
  3. 神经网络是算法还是模型,神经元网络算法的思想
  4. php登陆界面点登陆没有反应,ThinkPHP5实战的登录界面的登陆按钮点击之后没有任何反应怎么解决?...
  5. 按降序显示奇数python_程序在Python中分别以升序和降序对所有偶数和奇数进行排序...
  6. 计算机网络运输层的简单总结与思考
  7. 电子邮件协议---SMTP,POP3,IMAP,MIME
  8. 倒计时1天,六位专家周末带你解锁前端研发新姿势
  9. 使用NGINX发布DEM切片
  10. 【信息检索】Java简易搜索引擎原理及实现(三)B+树索引和轮排索引结构