目录

一、概念

二、初始关系模式设计(E-R图转换关系模式)

1、实体集向关系模式的转换

2、两个实体型之间的联系集向关系模式的转换

3、同一实体型之间的联系集向关系模式的转换

4、多实体型之间的联系向关系模式的转换

5、弱实体集向关系模式的转换

三、关系模式规范化

1、概念

2、范式

四、模式的评价与改进


一、概念

逻辑结构设计是将概念结构设计阶段完成的概念模型,转换成能被选定的数据库管理系统(DBMS)支持的数据模型。这里主要将E-R模型转换为关系模式。需要具体说明把原始数据进行分解、合并后重新组织起来的数据库全局逻辑结构,包括所确定的关键字和属性、重新确定的记录结构和文件结构、所建立的各个文件之间的相互关系,形成本数据库的数据库管理员视图。一般的逻辑设计分为以下3步:初始关系模式设计、关系模式规范化、模式的评价与改进。

二、初始关系模式设计(E-R图转换关系模式)

1、实体集向关系模式的转换

        实体集的转换规则:一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就的码。

例:学生实体可以转换为如下关系模式:

学生(学号,姓名,性别,出生日期,所在系,年级)

2、两个实体型之间的联系集向关系模式的转换

(1)1:1联系的转换

1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。

如果转换为一个独立的关系模式,则与该联系相连的各实体的主码以及联系本身的属性均转换为关系的属性,每个实体的主码均是该关系的候选码。如果与某一端对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的主码和联系本身的属性。

(2)1:n联系的转换

1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。

若转换为一个独立的关系模式,则与该联系相连的各实体的主码以及联系本身的属性均转换为关系的属性,而关系的主码为n端实体的主码。若与n端关系模式合并,则在n端实体集中增加新属性,新属性由联系对应的1端实体集的主码和联系自身的属性构成,而关系模式的主码不变。

(3)m:n联系的转换

与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。

3、同一实体型之间的联系集向关系模式的转换

同一实体型的实体间的联系即自联系,也可按上述1:1、1:nm:n三种情况分别处理。

(1)1:1联系的转换

(2)1:n联系的转换

(3)m:n联系的转换

4、多实体型之间的联系向关系模式的转换

两个以上的实体型间也存在着1:1、1:n和m:n三种情况。

(1)1:n的多元联系

修改1端实体集对应的关系,即将与联系相关的其他实体集的码和联系自身的属性作为新属性加入到1端实体集中。

(2)m:n的多元联系

新建一个独立的关系,多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。

5、弱实体集向关系模式的转换

强实体集和弱实体集的概念与存在依赖密切相关,强实体集的成员必然是支配实体,而弱实体集的成员是从属实体。由于弱实体不能独立存在,它必须依附于一个所有者实体,因此将弱实体集转换成关系模式时,弱实体所对应的关系中必须包含所有者实体的主码。

三、关系模式规范化

1、概念

数据库逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,还应该根据应用需要适当修改、调整数据模型的结构,这就是数据模型的优化。关系数据模型的优化通常以规范化理论为指导,将关系模式规范化,使之达到较高的范式是设计好关系模式的唯一途径,否则,设计的关系数据库会产生一系列的问题。

一个“好”的关系模式应当不会发生插入和删除异常,冗余度要尽可能少。对于存在问题的关系模式,可以通过模式分解的方法使之规范化。“分解”是解决冗余的主要方法,也是规范化的一条原则,“关系模式有冗余问题,就分解它”。

函数依赖基本概念
        规范化是指用形式更为简洁、结构更加规范的关系模式取代原有关系模式的过程。

关系模式必须满足一定的完整性约束条件以达到现实世界对数据的要求。完整性约束条件主要包括以下两个方面:

对属性取值范围的限定

属性值间的相互联系(主要体现在值的相等与否),这种联系称为数据依赖。

客观世界的事物间存在着错综复杂的联系,实体间的联系有两类:一类是实体与实体之间的联系;另一类是实体内部各属性间的联系。而属性间的联系可分为3类:

一对一联系(1:1)。设X和Y是关系R的两个属性(集)。如果对于X中的任一具体值,Y中至多有一值与之对应;反之亦然,则称X、Y两属性间是一对一联系。

一对多联系(1:n)。设X和Y是关系R的两个属性(集)。如果对于X中的任意具体值,Y中至多有一个值与之对应,而Y中的一个值却可以在X中的n个值(n≥0)相对应,则称Y对X是一对多联系。

多对多联系(m:n)。设X和Y是关系R的两个属性(集)。如果对于X中的任意具体值,Y中有m个值(m≥0)与之对应,而Y中的一个值也可以和X中的n个值(n≥0)相对应,则称Y对X是多对多联系。

数据依赖是指通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间相互联系的抽象,是数据内在的性质。数据依赖共有3种:

函数依赖(Functional Dependency, FD)

多值依赖(Multivalued Dependency, MVD)

连接依赖(Join Dependency, JD)

其中最重要的是函数依赖和多值依赖。

在数据依赖中,函数依赖是最基本、最重要的一种依赖,它是属性之间的一种联系,假设给定一个属性的值,就可以唯一确定(查找到)另一个属性的值。这种唯一性并非指只有一个记录,而是指任何记录。

设有关系模式R(U),X和Y均为U={A1, A2, …, An}的子集,r是R的任一具体关系,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等(也就是说,如果对于r中的任意两个元组t和s,只要有t[X]=s[X],就有t[Y]=s[Y]),则称X函数决定Y,或称Y函数依赖于X,记作X→Y,其中X叫作决定因素(Determinant),Y叫作依赖因素(Dependent)。

属性间联系决定函数依赖。

1:1联系。如果两属性集X、Y之间是1:1联系,则存在函数依赖X←→Y。

1:n联系。如果两属性集X、Y之间是n:1联系,则存在函数依赖X→Y。

m:n联系。如果两属性集X、Y之间是m:n联系,则不存在函数依赖。

识别函数依赖是理解数据语义的一个组成部分,依赖是关于现实世界的断言,它不能被证明,决定关系模式中函数依赖的唯一方法是仔细考察属性的含义。

2、范式

利用规范化理论,使关系模式的函数依赖集满足特定的要求,满足特定要求的关系模式称为范式(Normal Form)。关系按其规范化程度从低到高可分为5级范式,分别称为1NF、2NF、3NF(BCNF)、4NF、5NF。规范化程度较高者必是较低者的子集。一个低一级范式的关系模式,通过模式分解可以转换成若干个高一级范式的关系模式的集合,这个过程称为规范化。

(1)第一范式(1NF)
        如果关系模式R中不包含多值属性(每个属性必须是不可分的数据项),则R满足第一范式(First Normal Form),记作R∈1NF 。1NF是规范化的最低要求,是关系模式要遵循的最基本的范式,不满足1NF的关系是非规范化的关系。关系模式如果仅仅满足1NF是不够的,只有对关系模式继续规范化,使之满足更高的范式,才能得到高性能的关系模式。

(2)第二范式(2NF)
        如果关系模式R(U, F)∈1NF,且R中的每个非主属性完全函数依赖于R的某个候选码,则R满足第二范式(Second Normal Form),记作R∈2NF。不满足2NF的关系模式,会产生以下几个问题:插入异常、删除异常、更新异常。解决的办法是用投影分解把关系模式分解为多个关系模式。投影分解是把非主属性及决定因素分解出来构成新的关系,决定因素在原关系中保持,函数依赖关系相应分开转化(将关系模式中部分依赖的属性去掉,将部分依赖的属性单组组成一个新的模式)。

(3)第三范式(3NF)
        如果关系模式R(U, F)∈2NF,且每个非主属性都不传递函数依赖于任何候选码,则R满足第三范式(Third Normal Form),记作R∈3NF。解决的办法同样是投影分解。3NF是一个可用的关系模式应满足的最低范式,也就是说,一个关系模式如果不满足3NF,则实际上它是不能使用的。

四、模式的评价与改进

关系模式的规范化不是目的而是手段,数据库设计的目的是最终满足应用需求。因此,为了进一步提高数据库应用系统的性能,还应该对规范化后产生的关系模式进行评价、改进,经过反复多次的尝试和比较,最后得到优化的关系模式。

数据库设计5-逻辑结构设计相关推荐

  1. mysql逻辑结构设计_数据库设计:逻辑结构设计

    概念结构设计所得的E-R模型是对用户需求的一种抽象的表达形式,它独立于任何一种具体的数据模型,因而也不能为任何一个具体的DBMS所支持.为了能够建立起最终的物理系统,还需要将概念结构进一步转化为某一D ...

  2. 数据库逻辑删除的sql语句_SQL查询优化的数据库设计和逻辑断言

    数据库逻辑删除的sql语句 Database design and Logical Asseveration play a vital role in database performance and ...

  3. 数据库 - 设计:逻辑设计

    数据库 - 设计:逻辑设计 逻辑设计是关于将实体,关系和多值属性映射到逻辑模式中. 将公司ER模式映射到关系模式的结果. 希望你已经出现了最后一部分数据库 - 建模:实体关系图(ERD)(第5部分) ...

  4. 数据库分析之逻辑结构设计

    概念结构是独立于任何一种数据模型的信息结构,逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用数据库系统产品所支持的数据模型相符合的逻辑结构. 一.E-R图向关系模型的转换 E- ...

  5. 数据库设计之逻辑设计

    逻辑设计 1:将需求转化成数据库的逻辑模型 2:通过ER图的型式对逻辑模型进行展示 3:同所选用的具体的DBMS系统无关 名词解释 关系:一个关系对应通常所说的一张表 元组:表中的一行即为一个元组 属 ...

  6. 数据库设计:概念结构设计

    概念结构设计的任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法把它们抽象为一个不依赖于任何具体机器的数据模型,即概念模型.概念模型使设计者的注意力能够从复杂的实现细节中解脱出来,而只集中在 ...

  7. 数据库设计之物理结构设计

    数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统.为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计. 一.数据库的物理设计 ...

  8. 很多字段的数据要插入另一张表_一文看懂数据库设计之逻辑设计,值得收藏

    概述 数据库逻辑设计是从事数据库应用设计.开发.运行维护等各方面工作的一个重要的基础性工作.根据不同业务和应用需求,确定并遵循数据库逻辑设计原则,例如按照第三范式开展逻辑设计,不仅能满足减少数据冗余. ...

  9. 【转】数据库设计:物理结构设计

    数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库模型确定合理的存储结构和存取方法.所谓的"合理"主要有两个含义:一个是要使设计出的物理数据库占 ...

  10. mysql逻辑设计_一文看懂数据库设计之逻辑设计,值得收藏

    概述 数据库逻辑设计是从事数据库应用设计.开发.运行维护等各方面工作的一个重要的基础性工作.根据不同业务和应用需求,确定并遵循数据库逻辑设计原则,例如按照第三范式开展逻辑设计,不仅能满足减少数据冗余. ...

最新文章

  1. 遇到一个sql2000的问题,实在搞不懂了,求解决的办法?
  2. java.lang包—类Class应用之Java反射机制是什么,为什么,怎么用。
  3. java 正则表达式 中文数字和字母_Java中过滤出字母、数字和中文的正则表达式 | 学步园...
  4. java语言程序设计一_java语言程序设计(一)-1
  5. 剑指offer 26.数字的子结构
  6. 数据科学 IPython 笔记本 8.10 自定义颜色条
  7. MVC和WebApi中设置Area中的页为首页
  8. -Xlint:deprecation
  9. VS2008SP1下jQuery使用初体验
  10. 数字和模拟通信系统 中文版_浏览器指纹欺骗工具-VMLogin中文版是怎么一个反指纹防关联浏览器...
  11. 教你详细制作flash游戏青蛙(附源代码)
  12. c语言俄罗斯方块源代码 解说,C语言课程设计俄罗斯方块源代码解说.doc
  13. 大气压力换算公式_常用压力单位换算表
  14. 关于嵌入式的bin、hex、axf、map
  15. Spring Boot整合Redis---学习09
  16. wannacry 蠕虫勒索软件“永恒之蓝”席卷全球100多个国家,已经感染了勒索病毒“永恒之蓝”的主机该怎么处理?
  17. 快手科技更新招股书:前11个月营收525亿元,引入10家基石投资者
  18. 这几款视频语音转文字软件你值得拥有
  19. canvas用于绘制视频
  20. 国夜景最美丽的十大城市

热门文章

  1. 去除WinRar压缩 迷你页
  2. net.sf.json.JSONException: JSONObject[节点名称] not found解决方法
  3. 计算机无法连接路由器上网,电脑连接路由器不能上网怎么办
  4. 当浏览器默认禁用第三方cookie
  5. 详解电磁兼容测试中 EMI 接收机的几种检波器
  6. 免费mysql数据库_免费mysql空间,免费数据库,免费MYSQL云数据库申请 | 帮助信息-动天数据...
  7. Openwrt:icmpv6_send: no reply to icmp error
  8. Linux命令学习(1) cat命令详解
  9. Java实现动态规划经典题目
  10. 新浪微博客户端开发之发布微博,Android面试题