7.1 数据库设计概述

数据库设计,广义上讲,是数据库及其应用系统的设计,即设计整个数据库应用系统;狭义上讲,是设计数据库本身,即设计数据库的各级模式并建立数据库,这是数据库应用系统设计的一部分。

数据库设计是指对于一个给定的应用环境,构造设计优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效的存储和管理数据,满足用户的应用需求,包括信息管理要求和数据操作要求。

7.1.1 数据库设计的特点

特点:三分技术,七分管理,十二分基础数据

结构(数据)设计和行为(处理)设计相结合

7.1.2 数据库设计方法

  • 新奥尔良方法
  • 基于E-R模型的设计方法
  • 3NF的设计方法
  • 面向对象的数据库设计方法
  • 统一建模语言

7.1.3 数据库设计的具体步骤

  • 需求分析
  • 概念结构设计
  • 逻辑结构设计
  • 物理结构设计
  • 数据库实施
  • 数据库运行和维护

7.1.4 数据库设计中过程中的各级模式

7.2 需求分析

7.2.1 需求分析的任务

调查的重点是“数据”和“处理”,通过调查、收集和分析,获得用户对数据库的如下要求:

  • 信息要求:用户需要从数据库中获得信息的内容和性质
  • 处理要求:数据要完成的数据处理功能
  • 安全性与完整性要求

7.2.2 需求分析的方法

7.2.3 数据字典

定义:关于数据库中数据的描述,即元数据,包括数据项、数据结构、数据流、数据存储和处理过程。

  • 数据项:名称类型长度等
  • 数据结构:数据之间的组合关系
  • 数据流:数据结构在系统内传输的路径。
  • 数据存储:数据结构停留或者保存的地方。
  • 处理过程:具体的处理逻辑一般用判定表或判定树来描述。

7.3 概念结构设计

7.3.1 概念模型

概念模型的主要特点是:

  1. 真实充分地反映现实世界
  2. 易于理解
  3. 易于更改
  4. 易于向关系、网状、层次等各种数据模型转换

7.3.2 E-R模型

  • 实体之间的联系
  1. 两个实体型之间的联系

    (1)一对一联系
    (2)一对多联系
    (3)多对多联系

  2. 两个以上的实体型之间的联系:同上

  3. 单个实体型内的联系

  • 一般地,把参与联系的实体型的数目称为联系的度。N个实体型之间的联系度为N,也称为N元联系。

E-R 图

  • 矩形:实体型
  • 属性:椭圆形
  • 联系:菱形


设计原则:

  1. 尽量减少实体的数目,能用属性表示的就不要用实体描述
  2. 属性不能再由属性来描述
  3. 属性不能与其他实体具有联系

7.3.3 扩展的E-R模型

7.3.4 UML

7.3.5 概念结构设计

实体与属性的划分原则

  • 作为属性,不能再具有需要描述的性质
  • 属性不能与其他实体具有联系

E-R图的集成

  1. 合并E-R图,生成初步E-R图
  2. 消除不必要的冗余,设计基本E-R图

各子系统的E-R图之间的冲突主要有三类:

  1. 属性冲突

属性域冲突:属性值的类型、取值范围、取值集合不同

属性取值单位冲突:斤和公斤

  1. 命名冲突

同名异义:不同意义的对象在不同的局部应用中具有相同的名字

异名同义:同一意义的对象在不同的局部应用中具有不同的名字

  1. 结构冲突

同一对象在不同应用中具有不同的抽象:把职工当作实体或属性
同一实体在不同子系统的E-R图所包含的属性个数和属性排列次序不完全相同

7.4 逻辑结构设计

逻辑结构设计的任务就是把概念结构设计好的基本E-R图转换为数据库管理系统所支持的数据模型相符合的逻辑结构。

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

一个实体型转换成一个关系模式。

7.4.2 数据模型的优化

原因:数据库逻辑设计的结果不是唯一的

优化方法:

  1. 确定数据依赖
  2. 对于各个关系模式之间的数据进行极小化处理
  3. 按照数据依赖的理论关系模式逐一进行分析
  4. 根据需求分析阶段得到的处理要求分析对于这样的应用环境这些模式是否合适,确定是否要对某些模式进行合并或分解
  5. 对关系模式进行必要分解,提高数据操作效率和存储空间利用率

7.4.3 设计用户子模式

目的:设计更符合局部用户需要的用户外模式

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

7.5 物理结构设计

定义:为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程

数据库的物理设计通常分为两步:

  1. 确定数据库的物理结构
  2. 对物理结构进行评价

7.5.1 数据库物理设计的内容和方法

  • 关系模式选择存取方法
  • 设计关系、索引等数据库文件的物理存储结构

7.5.2 关系模式存取方法选择

存取方法:

1.B+树索引(一般是缺省的)

适合用B+树索引存取方法的条件:

  1. 经常在查询条件中出现的属性
  2. 经常作为最大值和最小值等聚集函数的参数的属性
  3. 经常在连接操作的连接条件中出现的属性

2. hash索引

适合用hash索引存取方法的条件:

  1. 一个关系的大小可预知,且不变
  2. 关系的大小动态改变,但DBMS提供了动态hash存取方法

3.聚簇索引

把在某些属性上具有相同值的元组集中存放在连续的物理块中,该属性称为聚簇码。一个关系只能加入一个聚簇。比较适合经常访问和连接的应用。建立和维护聚簇的开销相当大,对已有关系建立聚簇将导致关系中元组移动其物理存储位置,并使此关系上原来所建立的所有索引重建。

7.6 数据库的实施和维护

7.6.1 数据的载入和应用程序的调试

数据库应用程序的设计应该与数据库设计同时进行

7.6.2 数据库的试运行

  1. 先输入小批量数据做调试用,待试运行基本合格后再大批量输入数据,逐步增加数据量,逐步完成运行评价
  2. 做好数据库的转储和恢复工作

7.6.3 数据库的运行和维护

  1. 数据库的转储和恢复
  2. 数据库的安全性、完整性控制
  3. 数据库性能的监督分析和改造
  4. 数据库的重组织和重构造

数据库系统概论:第七章 数据库设计相关推荐

  1. 数据库系统概论 第七章 数据库设计(1)特点,概述,设计方法,规范设计方法,新奥尔良方法,用户和数据库管理员,模式,外模式,概念模式,逻辑模式,内模式,需求分析,数据项,数据流,数据存储,处理过程

    关注公众号凡花花的小窝,收获更多的考研计算机专业编程相关的资料 7.1数据库设计概述 广义的讲,是数据库及其应用系统的设计,即设计整个数据库应用系统 狭义的将,是设计数据库本身,即设计数据库的各级模式 ...

  2. 数据库系统:第七章数据库设计

    7.1 数据库设计概述 数据库设计: 广义地讲,设计整个数据库应用系统. 侠义地讲,是指设计数据库本身. 一般性定义:数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构, ...

  3. (数据库系统概论|王珊)第七章数据库设计-第一节:数据库设计概述

    注意:此部分内容和软件工程的知识点重合较多,更多请点击[免费分享]软件工程核心知识点 本章较分散,各节导航如下 (数据库系统概论|王珊)第七章数据库设计-第二节:需求分析 (数据库系统概论|王珊)第七 ...

  4. 数据库系统概念总结:第七章 数据库设计和E-R模型

    周末无事水文章,期末备考的总结资料 第七章 数据库设计和E-R模型 7.1 设计过程概览 7.1.1 设计阶段 需要完整地刻画未来数据库用户的数据需求 选择数据模型,并采用所选数据模型的概念将这些需求 ...

  5. (数据库系统概论|王珊)第七章数据库设计-第三节:概念结构设计

    pdf下载:密码7281 专栏目录首页:[专栏必读](考研复试)数据库系统概论第五版(王珊)专栏学习笔记目录导航及课后习题答案详解 文章目录 一:E-R模型 (1)两个实体之间的联系 ①:一对一联系( ...

  6. (数据库系统概论|王珊)第七章数据库设计:习题

    名词解释 数据库设计(database design):数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满 ...

  7. (数据库系统概论|王珊)第七章数据库设计-第二节:需求分析

    文章目录 一:需求分析的任务 二:需求分析的步骤和方法 (1)步骤 (2)方法 三:数据字典 (1)定义 (2)组成 ①:数据项 ②:数据结构 ③:数据流 ④:数据存储 ⑤:处理过程 注意 更多可参照 ...

  8. 数据库系统概论 第七章设计数据库

    一.数据库设计 1.基本步骤 数据库设计的基本步骤:需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施,数据库运行与维护. 2.E-R图 E-R图的表示方法:实体型用矩形表示:属性用椭圆形 ...

  9. 数据库系统及应用复习——第七章数据库设计

    重点:概念设计中ER模型的设计方法,逻辑设计中ER模型向关系模型的转换方法,数据库设计的阶段组成,每个阶段的主要任务. 一.数据库设计概述 数据库应用系统的开发也是一项软件工程,称为数据库工程,数据库 ...

最新文章

  1. PonyAI的首份美国无人出租成绩单:总数1271趟,15%拼车
  2. 4、数据类型二:Lists
  3. 人工智能:一种现代方法汇总
  4. STL容器之deque
  5. qt实现窗口拖动的两种思路
  6. android camera滑动,Android怎么实现小米相机底部滑动指示器
  7. [ci] jenkins的Timestamper插件-让日志显示时间
  8. mysql 索引 二_MySQL之索引(二)
  9. 程序员面试金典——17.5珠玑妙算
  10. mybatis数据库连接池介绍和源码剖析
  11. 利用MyEclipse连接数据库并自动生成基于注解或者XML的实体类
  12. c语言文件修改某一行,利用C语言替换文件中某一行的方法
  13. java 区间api_Java 常用API(一)
  14. c语言资产管理系统设计报告,(C)固定资产管理系统论文
  15. Java基本数据类型自动转换规则
  16. 电脑无法进入路由器192.168.1.1的解决办法
  17. 跳跃表skiplist简析
  18. 联想笔记本维修记——硬盘问题
  19. MySQL OCP报考流程
  20. A4988电机驱动简单使用

热门文章

  1. django 的form登录 注册
  2. CSS3实现带阴影的弹球
  3. 浅入“Block Formatting Context”
  4. for循坏的穷举与迭代,while、do while循环
  5. (转载)conflicting types for xx各种错误的总结
  6. 受显微镜下线虫启发,MIT人工智能实验室推出“液态”神经网络
  7. 深入理解傅立叶变换(详细)
  8. linux 可执行文件权限不够,root执行/media可执行文件权限不够,chmod修改权限无效...
  9. 监控ui_做了10年监控系统,有些经验想和你分享
  10. 当一个软件新版本提交测试时要有,如何改善没完没了的软件测试版本?