【学习笔记】数据库系统原理 第七章 数据库设计

以下内容为参考课件和《数据库系统概论》(第5版,王珊等著)的个人整理,若有错误欢迎指出

第七章 数据库设计


设计步骤
在这里插入图片描述

一、需求分析

需要什么信息、需要什么处理要求。

数据字典:系统中各类数据描述的集合,包括:

  • 数据项:数据项名及其含义,类型,长度,取值范围含义,与其他数据项的逻辑关系。

  • 数据结构:若干数据项或数据结构的组合

  • 数据流:来源、去向、组合(数据结构)等

  • 数据存储:输入输出(数据流)、说明

  • 处理过程:输入输出(数据流)、处理说明

二、概念模型设计

1、E-R图

根据需求得到E-R图,可以自顶向下,也可以自底向上,也可以先设计局部再合并。

ER图的集成:合并相同的实体,消除冗余。但可能需要处理以下冲突:

  • 命名冲突:看含义是否相同,相同的统一名字,不同的区分名字。
  • 结构冲突:同一对象可能在一个图是实体,一个是属性,一般往大的改。如果属性个数不同,也是往多的改。
  • 值域冲突:属性的域、单位冲突,需要统一。
  • 约束冲突:统一

2、事务设计

定义事务功能,说明事务的输入、输出、功能

三、逻辑结构设计

1、将E-R图转变为DBMS支持的数据模型(表格形式)

需要满足用户的完整性和安全约束等。

2、步骤

  • 形成初始关系数据库模式

    实体间联系的转换:

    • 1:1联系可以直接转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并(需要加入另一端的码以及联系本身的属性)。
    • 1:n联系可以直接转换为一个独立的关系模式,也可以与n端对应的关系模式合并(n端的带另一端的码)。
    • n:n联系只能是一个独立的关系模式。
    • 多个实体间的一个联系,也是一个独立的关系模式,含所有实体的码+联系本身的属性。

    合并处理的查询效率高

  • 关系模式规范化

    确定函数依赖,极小化,并逐一进行规范化处理。

  • 关系模式优化

    关系规范化是分解模式,但是分解过多,在查询时需要连接,因此影响效率。为了减少连接时的开销,有以下两种优化方法:

    水平分解:把关系元组分为若干子集合,相当于减少数据量。

    垂直分解:按照属性分解。

    一般就把常用的分成一个关系模式,这样连接的时候数据量就少了

    如果连接操作代价很高,可以逆规范化,但是要求这些数据比较少更新。

  • 定义关系上的完整性和安全性约束

  • 子模式定义

    上面个相当于设计模式,此处是设计外模式。

  • 性能估计

四、物理设计

一般现在的数据库已经设计好了

一般涉及存储结构、存取方法(索引、聚簇等)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值