三、数据库设计

1.数据库设计概述

1.数据库的生命周期

数据库的生命周期.png

2.数据库设计的目标

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

3.数据库设计的内容

数据库设计的内容.png

4.数据库设计的方法

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

5.数据库设计的过程

数据库的设计过程

2.数据库设计的基本步骤

数据库设计的基本步骤.png

1.需求分析

定义

  1. 数据库设计的起点
  2. 目标:是了解与分析用户的信息及应用处理的要求,并将结果按一定形式整理而形成需求分析报告。
  3. 该分析报告是后续概念设计、逻辑设计、物理设计、数据库建立与维护的依据。

步骤

  1. 确定数据范围(数据库的第一项工作
    1. 有效的利用计算机设备及数据库系统的潜在能力
    2. 提高数据库的应变能力
    3. 避免应用过程中对数据库做太多或太大的修改
    4. 延长数据库的生命周期
  2. 分析数据应用过程(了解并分析数据和数据处理之间的关系),应用过程分析的结果是数据库结构设计的重要依据
    1. 用到哪些数据
    2. 数据使用的顺序
    3. 对数据做何处理和处理的策略以及结果
  3. 收集与分析数据:数据收集与分析的任务是了解及分析数据的组成格式及操作特征,每个数据元素的语义和关系等,并将他们收集起来并整理归档。
    1. 静态结构:不施加应用操作于其上时数据的原始状况

      1. 数据分类表:用于数据的总体描述

        数据id 数据 用途 主人 用户 来源 去向 存档时间 数据量
      2. 数据元素表:指通常意义下的数据项或属性

        数据id 数据元素id 元素名 意义 类型 长度 算法 备注
    2. 动态结构:将应用操作施加于数据之上后数据的状况

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

        | 任务id | 名称 | 功能 | 类型 | 主人 | 用户 | 执行日期 | 评率 | 操作过程 |
        | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |

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

        | 任务id | 数据id | 建立 | 查询 | 插入 | 修改 | 删除| 数据量|
        | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |

    3. 数据约束:使用数据时的特殊要求

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

2.概念结构设计

  • 概念模型:独立于任何软件和硬件,主要目标是最大限度的满足应用的需求。分为:
    • 实体分析法(自顶向下法)
    • 属性综合法(自底向上法)

3.逻辑结构设计

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

  2. 步骤:

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

具体任务主要是确定数据库在存储设备上的存储结构存取方法,因DBMS的不同还可能包括建立索引聚集,以及物理块大小缓冲区个数和大小数据压缩的选择等。

  1. 数据库实施

    1. 加载数据:收集、分类、整理、校验、输入等
    2. 应用程序设计
    3. 数据库试运行
      1. 有利于工作人员掌握并熟悉系统
      2. 有利于正式运行时避免人为的操作不当等损害
  2. 数据库运行与维护:系统维护中最困难的工作是数据库重组与重构

    image.png

3.关系数据库设计方法

1.概念模型的表示方法:E-R图

  1. 矩形:实体型
  2. 圆形:属性
  3. 菱形:联系

2.概念结构设计方法

1:1联系

image.png

1:N联系

image.png

M:N联系

image.png

三个实体之间的一对多关系

image.png

三个实体之间的多对多关系

image.png

单个实体内的一对多关系

image.png
  • 局部信息结构设计

    • 确定局部范围:局部范围主要依据需求分析报告中标明的用户视图范围来确定。往往与子模式相对应。
    • 选择实体:数据分类表是选择实体的直接依据。实体选择的最大困难是如何区分实体与属性
    • 选择实体的关键字属性:实体的存在依赖于其关键字的存在。
    • 确定实体间联系:数据间的联系必须在概念设计时确定。
    • 确定实体的属性:属性分为标识属性说明属性
  • 用户管理系统E-R图示例

    1. 用户:用户ID、用户名、年龄、口令
    2. 用户组:用户组ID、用户组名、用户组描述
    3. 部门:部门ID、部门名、部门所在地、部门领导
    4. 权限:权限ID、权限名、权限链接

    1. 用户组与用户之间是一对多联系,表示每个用户属于一个用户组,一个用户组有多个用户,其联系的名称定义为“属于” 。
    2. 部门与用户之间是一对多联系,表示每个部门包含多个用户,每个用户只在一个部门,其联系的名称定义为“包含”。
    3. 用户组和权限之间是多对多联系,表示一种权限可以分配给多个用户组,每个用户组可以拥有多种权限,其联系的名称定义为“拥有”。
    E-R图.png

3.逻辑结构的设计方法

  1. 将E-R图转换为关系模型
    • 一个实体型转换为一个关系模式,实体的属性作为关系的属性,实体的码作为关系的码
    • 一个一对一联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并
    • 一个一对多联系可以转换为一个独立的关系模式,也可以与N端对应的关系模式合并
    • 一个多对多联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性
    • 三个或以上实体间的一个多元联系可以转换为一个关系模式
    • 具有相同码的关键模式可合并
  2. 对关系数据模型进行优化(数据库逻辑设计的结果,不是唯一的
    1. 确定各属性间的函数依赖关系
    2. 对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系
    3. 判断每个关系模式的范式,根据实际需要确定最合适的范式
    4. 按照需求分析阶段得到的处理要求,分析这些模式对于这样的应用环境是否合适,确定是否要对某些模式进行合并或者分解
    5. 对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率
  3. 设计面向用户的外模式
    1. 可以通过视图机制在设计用户视图时,重新定义某些属性的别名,使其更符合用户的习惯,以方便使用。
    2. 可以对不同级别的用户定义不同的视图,以保证系统的安全性
    3. 简化用户对系统的使用

4.物理设计方法

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