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

  • 前言
  • E-R图向关系模型的转换
  • 数据模型的优化
  • 设计用户子模式

前言

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

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

E-R图向关系模型的转换要解决的问题:

  • 如何将实体型和实体间的联系转换为关系模式
  • 如何确定这些关系模式的属性和码

转换的一般规则:

一个实体型转换为一个关系模式,关系的属性就是实体的属性,关系的码就是实体的码

不同联系的转换规则:

  • 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并
  • 一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并
  • 一个m:n联系可以转换为一个关系模式,与该联系相连的各实体的码以及联系本身的属性均转为关系的属性,各实体的码组成关系的码或关系码的一部分
  • 多元联系转换为一个关系模式,与该多元联系相连的各实体的码以及联系本身的属性均转为关系的属性,各实体的码组成关系的码或关系码的一部分
  • 具有相同码的关系模式可以合并

上面的几条转换规则不知道你们看不看得懂,如果看不懂用下面的例子说明

1:1联系,如下图中

一共有两个关系实体,我们可以转化为两个关系模式,分别是顾客和会员卡,按照转换规则,我们选择任意一端合并,并将一端的主码添加为合并端关系模式的外码

顾客(姓名,性别,年龄)
会员卡(卡号,消费金额,积分,顾客姓名)

1:n联系和m:n联系,如下图:

1:n联系中,可以看到有班级和学生两个实体,按照转换规则,选择n端合并,1端的主码添加到n端的关系模式做外码

班级(班级号,班级名,辅导员)
学生(学号,姓名,性别,年龄,班级号)

m:n联系中,可以看到有学生和课程两个实体,以及一个选修联系实体,按照转换规则,学生和课程两个实体的码和属性不变,将各自的主码添加进选修联系实体中做主码和外码

学生(学号,姓名,性别,年龄,班级号)
课程(课程号,课程名,学分)
选修(学号,课程号,成绩)

如果m:n联系中,没有联系的属性,那么就合并n端,m端的主码作n端的外码,在关系模式中主码用下划线标识外码用波浪线标识

数据模型的优化

数据逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,还应该根据应用需要适当地修改、调整数据模型的结构,这就是数据模型的优化。关系数据模型的优化通常以规范化理论为指导,方法为:

  1. 确定数据依赖
  2. 对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系
  3. 按照数据依赖的理论对关系模式逐一分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式属于第几范式
  4. 根据需求分析阶段得到的处理要求分析对于这样的应用环境这些模式是否合适,确定是否要对某些模式进行合并或分解
  5. 对关系模式进行必要分解,提高数据操作效率和存储空间利用率

设计用户子模式

将概念模型转换为全局逻辑模型后,还应该根据局部应用需求,结合具体关系数据库管理系统的特点设计用户的外模式。
定义数据库全局模式主要是从系统的时间效率、空间效率、易维护等角度出发。由于用户外模式与模式是相对独立的,因此在定义用户外模式时可以注重考虑用户的习惯与方便,具体包括一下几个方面:

  1. 使用更符合用户习惯的别名
  2. 可以对不同级别的用户定义不同的视图
  3. 简化用户对系统的使用

数据库原理(十 二)- 逻辑结构设计相关推荐

  1. 数据库原理实验二 数据库管理 实验报告

    广州大学学生实验报告实验二:数据库管理 此篇分享仅供参考学习,图文禁复制,勿作他用!谢谢配合! 数据库原理实验之实验二:数据库管理 软件:Oracle SQL Developer 今天实验才刚开始,花 ...

  2. 【MySQL数据库 | 第十二篇】:约束

    约束: 在MySQL中,约束是一种限制数据表中列值的规定.保证数据库中的数据正确,有效性和完整性.MySQL中的约束有以下几种: 1. 主键约束(Primary Key Constraint):主键是 ...

  3. SQL Server数据库第十二课:事务处理

    知识点:事务概念.事务处理 1.事务简介 1.1  什么是事务 事务(Transaction)是一个由多条SQL语句组成的工作逻辑单元,这些语句要么全部执行成功,要么全部不执行,只要有一条SQL语句执 ...

  4. 数据库原理——实验二《数据查询》

    1.(1)查询选修了课程号为"01","02","03"的学号.课程号和成绩记录 select sno,cno,grade from sco ...

  5. 考研复试数据库原理面试题(四)—关系数据库设计与设计理论

    写作目的:为了应对考研复试中的面试,我整理了导师可能提问的地方,力求用口语化的语言描述出来. 这只是一部分,陆续还有数据库原理的其它章节,还会推出数据结构.计算机网络复试题整理. 数据库原理我的参考书 ...

  6. 数据库原理(十 一)- 概念结构设计

    数据库原理(十 一)- 概念结构设计 前言 概念结构的特点 E-R模型 概念结构设计 实体划分的原则 E-R的集成 借鉴 前言 将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设 ...

  7. 【数据库原理及应用】经典题库附答案(14章全)——第十二章:数据库技术新发展

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

  8. [Python从零到壹] 十二.机器学习之回归分析万字总结全网首发(线性回归、多项式回归、逻辑回归)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

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

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

最新文章

  1. shell最大出现和连续出现次数_从 1 到 n 整数中 1 出现的次数
  2. github设置添加SSH
  3. docker 安装mysql_docker学习4docker安装mysql环境
  4. 每天一道LeetCode-----只可能有'.'和'*'的字符串正则匹配
  5. Php输出Xml报错:XML declaration allowed only at the start of the document
  6. 1 张图秒懂 Nova 16 种操作 - 每天5分钟玩转 OpenStack(44)
  7. 关于Nand ECC 错误
  8. ZZULIOJ 1066:字符分类统计
  9. 开源个性化内容推荐引擎_您是哪种开源个性类型?
  10. boot入门思想 spring_(第一讲)Spring Initializr-快速入门Spring Boot的最好选择
  11. php foreach 为什么在if条件下多条数据只取出一条数据_微信大牛教你深入了解数据库索引...
  12. bianma 水平 技巧
  13. MATLAB实现主成分分析
  14. winyyy sys hcpidesk sys mtlrd sys uldfhjfh sys servets exe等1
  15. 计算机博弈大赛源代码,2020计算机博弈大赛幻影围棋分组第一天 信息交互模块...
  16. arcgis出界址点成果表_勘测定界界址点坐标成果表(TXT文件)
  17. Prometheus踩坑记
  18. 【Redux】异步action与同步action
  19. 问卷星问卷数据怎么快速导入SPSSAU?
  20. 直流电机驱动电路中L298与电机间二极管的作用

热门文章

  1. 可用性测试易用性和有用性_选择您的可用性测试和参与者
  2. python四分位数怎么算_四分位数计算以及使用pandas计算
  3. 发票模板,纯css+html
  4. 科创板又现新进展:可受理开户申请,进度快到不敢相信...
  5. wsl ubuntu中安装fzf
  6. 秦淮数据财报:秦淮数据2023年的收入将下滑,盈利能力将减弱
  7. buff/cache内存占用过多
  8. linux的docker命令,docker命令_Linux系统Docker命令怎么使用
  9. 在编辑器插入的视频在网页上直接播放的方法
  10. 量化投资界领头羊-明汯投资