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

一、E-R图向关系模型的转换

E-R图向关系模型的转换要解决的是如何将实体型和实体间的联系转换为关系模式,如何确定这些关系模式的属性和码。
1. 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性每个实体的码均是该关系的候选码。如果某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
2. 一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
3. 一个m:n联系转换为一个关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
4. 三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
5. 具有相同码的关系模式可合并。

二、数据模型的优化

数据库逻辑设计的结果不是唯一的。关系数据模型的优化通常以规范化理论为指导,方法有:
1. 确定数据依赖。
2. 对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
3. 按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。
4. 根据需求分析阶段得到的处理要求分析对于这样的应用环境这些模式是否合适,确定是否对某些模式进行合并或分解。
5. 对关系模式进行必要分解,提高数据操作效率和存储空间利用率。常用分解方法有:
1)水平分解
把(基本)关系的元组分为若干个子集合,定义每个子集合为一个子关系,以提高系统的效率。根据“80/20原则”,一个大关系中,经常被使用的数据只是关系的一部分,约20%,可以把经常使用的数据分解出来,形成一个子关系。如果关系R上具有n个事务,而且多事务存取的数据不相交,则R可分解为少于或等于n个子关系,使每个事务存取的数据对应一个关系。
2)垂直分解
把关系模式R的属性分解为若干个子集合,形成若干个子关系模式。垂直分解的原则是,将经常在一起使用的属性从R中分解出来形成一个子关系模式。垂直分解可以提高某些事务的效率,但也可能使另一些事务不得不执行连接操作,从而降低效率。因此是否进行垂直分解取决于分解后R上的所有事务的总效率是否得到了提高。垂直分解需要确保无损连接性和保持函数依赖,即保证分解后的关系具有无损连接性和保持函数依赖性。

三、设计用户子模式

将概念模型转换为全局逻辑模型后,还应该根据局部应用的需求,结合具体关系数据库管理系统的特点设计用户的外模式。
定义数据库全局模式主要从系统的时间效率、空间效率、易维护等角度出发。由于用户模式与模式是相对独立的,因此在定义用户外模式时开可以注重考虑用户的习惯与方法。
1. 使用更符合用户习惯的别名。用视图机制可以在设计用户视图时重新定义某些属性名,使其与用户习惯一致,以方便使用。
2. 可以对不同级别的用户定义不同的视图,以保证系统的安全性。
3. 简化用户对系统的使用。如果某些局部应用中经常要使用某些很复杂的查询,为了方便用户,可以将这些复杂查询定义为视图,用户每次只对定义好的视图进行查询,大大简化了用户的使用。

数据库分析之逻辑结构设计相关推荐

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

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

  2. 数据库 - 逻辑结构设计

    逻辑结构设计 逻辑结构设计的任务 把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构 逻辑结构设计的步骤 将概念结构转化为一般的关系.网状.层次模型 将转换 ...

  3. 数据库 之数据库设计浅知识 -- 设计概述、概念结构设计(E-R模型概述)、逻辑结构设计(函数依赖和范式)、物理结构设计

    文章目录 1. 数据库设计概述 1.1 数据库设计的特点:结构和行为分离的设计 1.2 数据库设计方法 1.3 数据库设计的基本步骤 1.4 数据库设计过程中的各级模式 2. 需求分析 2.1 需求分 ...

  4. 数据库原理(十 二)- 逻辑结构设计

    数据库原理(十 二)- 逻辑结构设计 前言 E-R图向关系模型的转换 数据模型的优化 设计用户子模式 前言 概念结构是独立于任何一种数据模型的信息结构,逻辑结构设计的任务就是概念结构设计阶段设计好的基 ...

  5. 数据库的逻辑结构设计

    逻辑结构是独立于任何一种数据模型的,在实际应用中,一般所用的数据库环境已经给定(如SQL Server或Oracle或MySql).由于目前使用的数据库基本上都是关系数据库,因此首先需要将E-R图转换 ...

  6. 数据库设计_数据库设计(一)分析及逻辑设计

    ​作为一个后端开发者,数据库设计是我们避不开的课题,不管是面试的时候,还是在真实工作的情境下,我们的工作不仅仅是将代码开发出来,根据开发的项目,设计出支撑项目的数据库,也是一个合格的开发者所应该具备的 ...

  7. (数据库系统概论|王珊)第七章数据库设计-第四节:逻辑结构设计

    文章目录 一:E-R图向关系模式的转换 (1)转换原则 (2)具体转换 A:同一实体间 ①:同一实体间1:m 联系 ②:同一实体间m:n 联系 B:两实体间 ①:两实体间1:1联系 ②:两实体间1:m ...

  8. sql server 2017数据库复习:第六章-数据库设计(需求分析、概念结构设计(ER图)、逻辑结构设计)+练习题

    数据库设计的基本过程及每阶段的主要任务 说明:数据流图用于实现需求分析! ER图设计 局部ER图->全局ER图->全局ER图优化 在ER图合并的时候,会出现以下3种冲突: 1.属性冲突:属 ...

  9. 养老院管理系统的数据库逻辑结构设计

    养老院管理系统的数据库逻辑结构设计是指为了管理养老院的信息,对数据库进行逻辑结构上的划分和组织.一般来说,养老院管理系统的数据库逻辑结构设计应该包括以下几个方面: 基本信息表:该表存储养老院的基本信息 ...

最新文章

  1. 对象分割--Fully Convolutional Instance-aware Semantic Segmentation
  2. 低内阻的MOS管 4N04R7
  3. Linux(Centos)之安装Redis及注意事项
  4. java访问glusterfs_GlusterFS: 访问权限设置
  5. linux如何生成tar文件内容,linux如何使用tar命令创建Tar.Gz压缩文件
  6. nginx源码分析之网络初始化
  7. Java学习总结 16个亮点
  8. sonyflake.go
  9. python金字塔_高斯金字塔与拉普拉斯金字塔的原理与python构建
  10. cron 每年执行一次_crontab服务执行定时脚本,在指定时间内让php执行处理业务逻辑...
  11. VS中出现 模块计算机类型“x86”与目标计算机类型“x64”冲突
  12. CSS3 过渡和动画
  13. Head First设计模式读书笔记二 观察者模式
  14. Windows10和Ubuntu双系统下用windows引导Ubuntu
  15. 华为P50系列旗舰恐延期至5月发布:首发预装鸿蒙系统
  16. docker核心视频教程
  17. java游戏局域网实现的_java学习笔记: 实现简易局域网聊天程序
  18. 服务器3389信息,服务器3389远程记录查看
  19. 【刷题】求长方形与正方形的个数
  20. 51单片机控制的自动感应调光、坐姿矫正智能台灯

热门文章

  1. 早期的行人再识别与深度行人再识别研究——行人再识别技术综述阅读笔记
  2. JS 为按钮绑定多个点击事件(兼容性代码)
  3. 常用数据库的特点、应用场景信息整理
  4. 智慧交管大屏可视化决策系统
  5. windows event log 错误2 的解决办法(电脑网络连接图标消失的罪魁祸首)
  6. 用python做生日礼物_如何做一个网页送给女朋友做生日礼物?
  7. JavaWeb购物车项目
  8. 算法推荐女朋友,靠谱吗?
  9. Python简单的操作excel表格
  10. http://39.98.219.132 题库标准答案(题库序号:179)之判断素数