数据库设计

第三章 数据库设计

数据库设计概述

数据库的生命周期

  1. 数据库分析与设计阶段:
    • 需求分析;
    • 概念设计;
    • 逻辑设计;
    • 物理设计;
  2. 数据库实现与操作阶段:
    • 实现;
    • 操作与监督;
    • 修改与调整;

数据库设计的目标

  1. 满足应用功能需求:增(存)、删、改、查(取);
  2. 良好的数据库性能:
    • 数据的高效率存取和空间的节省;
    • 共享性、完整性、一致性、安全保密性;

数据库设计的内容

  1. 数据库 结构 设计(静态的):
    • 数据库 概念 结构设计;
    • 数据库 逻辑 结构设计;
    • 数据库 物理 结构设计;
  2. 数据库 行为 设计(动态的):
    • 功能 设计;
    • 事务 设计;
    • 程序 设计;

数据库设计的方法

  1. 直观设计法:最原始的数据库设计方法;
  2. 规范设计法:
    • 新奥尔良设计方法:需求分析、概念结构设计、逻辑结构设计、物理结构设计;
    • 基于 E-R模型 的数据库设计方法;
    • 基于 第三范式 的设计方法,是一类结构化设计方法;
  3. 计算机辅助设计法:辅助软件工程工具;

数据库设计的特点

行为设计和结构设计的 分离

数据库设计的过程(简答)

  1. 需求分析;
  2. 内容设计:结构设计 + 行为设计;
  3. 数据库实施:加载数据库数据 + 调试运行运用程序;
  4. 数据库运行与维护;

数据库设计的基本步骤

  1. 需求分析:数据库设计的 起点
  2. 概念结构设计;
  3. 逻辑结构设计;
  4. 物理结构设计;
  5. 数据库实施;
  6. 数据库运行和维护;

需求分析

目标:是了解与分析用户的信息及应用处理的要求,并将结果按照一定格式整理而形成需要 分析报告

需求分析是 概念设计、逻辑设计、物理设计、数据库建立与维护 的依据。

需求分析的 步骤

  1. 确定数据库范围;
  2. 分析数据应用过程;
  3. 收集和分析数据;
  4. 编写需求分析报告;

确定数据库范围

数据库的 第一项工作:(简答)

  • 有效地利用计算机设备及数据库系统的潜在能力;
  • 提高数据库的应变能力;
  • 避免应用过程中对数据库做太多或太大的修改;
  • 延长数据库的生命周期;

应用过程分析

了解并分析数据与数据处理间的关系:

  • 用到哪些数据;
  • 数据使用的顺序;
  • 对数据作何处理和处理的策略以及结果;

应用过程分析的结果是数据库结构设计的 重要依据

收集和分析数据

任务:是了解并分析数据的组成格式及操作特征,每个数据元素的语义及关系等,并将他们收集起来整理归档。

  • 静态结构:不施加 应用操作与其上时数据的 原始状况
    1. 数据分类表;
    2. 数据元素表;
  • 动态结构:将应用操作 施加 于数据之上后数据的状况;
    1. 任务分类表;
    2. 数据特征操作表;
  • 数据约束:使用数据时的特殊要求;
    1. 数据的安全保密性;
    2. 数据的完整性;
    3. 响应时间;
    4. 数据恢复;

静态结构的 数据分类表:用于数据的总体描述

数据ID 数据名 用途 主人 用户 来源 去向 存档时间 数据量

可通过【数据ID】进行联想

静态结构的 数据元素表:指通常意义下的数据项或属性

数据ID 数据元素ID 元素名 意义 类型 长度 算法 备注

可通过【数据元素ID】进行联想

动态结构的 任务分类表:一个任务指为完成某一个特定处理功能的相对独立的 操作序列

任务ID 名称 功能 类型 主人 用户 执行日期 频率 操作过程 备注

可通过【任务ID】进行联想

动态结构的 数据特征操作表:用以描述 任务和数据 之间的关系,它包括不同任务对数据执行不同操作的频率

任务ID 数据ID 建立 查询 插入 修改 删除 数据量

可通过【任务ID】+【数据ID】进行联想

编写需求分析报告

编写需求分析报告的 内容

  1. 数据库的应用功能目标;
  2. 标明不同用户视图范围;
  3. 应用处理过程需求说明,包括:数据流程图、任务分类表、数据操作特征表、操作过程说明书;
  4. 数据字典:是数据库系统中存储三级结构定义的数据库,通常指的是数据库系统中各类数据详细描述的集合。功能是存储和检索各种数据描述,即元数据。包括数据分类表、数据元素表和各类原始资料;
  5. 数据量;
  6. 数据约束;

概念结构设计

概念结构设计的 任务

在需求分析中产生的需求分析报告的基础上,按照特定的方法设计满足应用需求的用户信息结构。

概念结构设计的 方法

  1. 实体分析法(自顶向下法);
  2. 属性综合法(自底向上法);

概念模型(自顶向下),独立于任何软件和硬件,主要目标:最大限度的满足应用需求。

逻辑结构设计

目标:将概念模型转换为等价的、并为特定DBMS所支持数据模型的结构。

数据库的逻辑模型:

  1. 层次 数据模型;
  2. 网状 数据模型;
  3. 关系 数据模型;

逻辑结构设计的 步骤

  1. 模型转换 是指将概念模型等价地转换为特定DBMS支持的关系模型、网状模型或层次模型表示;
  2. 子模型设计 的目标是抽取或导出模式的子集,以构造不同用户使用的局部数据逻辑结构;
  3. 应用程序设计说明 的目的是为可实际运行的应用程序设计提供依据与指导,并作为设计评价的基础;
  4. 设计评价 的任务是分析并检验模式及子模式的正确性与合理性;

物理结构设计

具体任务主要是确定数据库在 存储设备 上的 存储结构存取方法

因DBMS的不同还可能包括 建立索引、聚集、物理块的大小、缓冲区的个数及大小、数据压缩的选择 等。

数据库实施

数据库实施的 步骤

  1. 加载数据:收集、分类、整理、校验、输入等;
  2. 应用程序设计;
  3. 数据库试运行,好处:
    • 有利于工作人员掌握并熟悉系统;
    • 有利于正式运行时避免人为的操作不当等损害;

数据库运行与维护

目标:保证数据库的正常运行。

系统维护中 最困难 的工作是 数据库重组与重构

关系数据库设计方法

概念模型的表示方法

E-R 图 的表示方法:

  1. 矩形 表示实体型;
  2. 椭圆 表示属性;
  3. 棱形 表示联系;

联系 可以有 属性;

概念结构设计方法

E-R图

两个 实体间的关系:

  1. 一对一:1:1
  2. 一对多:1:N
  3. 多对多:M:N

单个 实体间的关系:

  1. 一对多:1:N

三个 实体间的关系:

  1. 一对多:1:M:N
  2. 多对多:M:N:P

局部信息结构设计

  1. 确定局部范围:局部范围主要依据 需求分析报告 中标明的 用户视图范围 来确定;
  2. 选择实体:
    • 数据分类表 是选择实体的直接依据;
    • 实体选择的最大困难是如何区别 实体与属性
  3. 选择实体的关键字属性:实体的存在依赖于其 关键字 的存在;
  4. 确定实体间的联系:数据间的联系必须在 概念设计 是确定;
  5. 确定实体的属性:属性分为 标识属性说明属性

逻辑结构设计方法

  1. 将E-R图转换为关系模型;
  2. 对关系数据模型进行优化;
  3. 设计面向用户的外模式;

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

  1. 一个实体型转换为一个关系模式,实体的属性作为关系的属性,实体的码作为关系的码;
  2. 一个一对一联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并;
  3. 一个一对多联系可以转换为一个独立的关系模式,也可以与N端对应的关系模式合并;
  4. 一个多对多联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性;
  5. 三个或以上实体间的一个多元联系可以转换为一个关系模式;
  6. 具有相同码的关系模式可合并;
用户组E-R图.png

将上面的 E-R 图进行转换,得到的结果:

  1. 用户(用户ID,用户名,用户组ID,部门ID)
  2. 用户组(用户组ID,用户组名)
  3. 部门(部门ID,部门名)
  4. 权限(权限ID,权限名)
  5. 拥有(用户组ID,权限ID)

拥有 表中的 用户组ID + 权限ID 即作为 联合主键,也是 外键

数据模型的优化

  1. 确定各 属性 间的函数依赖关系;
  2. 对于各个关系模式之间的数据依赖进行极小化处理,消除 冗余 的联系;
  3. 判断每个关系模式的 范式,根据实际确定最合适的范式;
  4. 按照 需求分析 阶段得到的处理要求,分析这些模式对于这样的应用环境是否合适,确定是否要对某些模式进行合并或分解;
  5. 对关系模型进行必要的分解,提高 数据操作 的效率和 存储空间 的利用率;

设计用户子模式

  1. 可以通过视图机制在设计用户视图时,重新定义某些属性的别名,使其更符合用户的习惯,以方便使用;
  2. 可以对不同级别的用户定义不同的视图,以保证系统的安全性;
  3. 简化用户对系统的使用;

物理结构设计方法

  1. 建立索引(逻辑连接):
    • 静态索引建立:预先 建立,适用于用户较多且周期较长的数据;
    • 动态索引建立:临时 建立,适用于单独用户或临时性使用要求;
  2. 建立聚集(物理聚集):
    • 聚集是将相关数据集中存放的 物理存储技术
    • 数据聚集结构的一种有效方式是 块结构方式
    • 数据聚集可在 一个或多个 关系上建立;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容