【数据库系统概论】第7章-数据库设计

文章目录

    • 7.1 数据库设计概述
    • 7.2 需求分析
      • 7.2.1 需求分析的任务
      • 7.2.2 需求分析的难点
      • 7.2.2 需求分析的方法
      • 7.2.3 数据字典
    • 7.3 概念结构设计
      • 7.3.1 概念模型
      • 7.3.2 E-R模型
      • 7.3.3 概念结构设计
    • 7.4 逻辑结构设计
      • 7.4.1 E-R图向关系模型的转换
      • 7.4.2 数据模型的优化
      • 7.4.3 设计用户子模式
      • 小结
    • 7.5 物理结构设计
      • 7.5.3 确定数据库存储结构
      • 7.5.4 评价物理结构
    • 7.6 数据库的运行和维护
    • 小结

7.1 数据库设计概述

  1. 定义
    在这里插入图片描述
  2. 数据库设计的特点
    (1) 三分技术、七分管理、十二分基础数据
    (2)结构(数据)设计和行为(处理)设计密切结合
    在这里插入图片描述
  3. 数据库设计的六个步骤
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  4. 数据库设计中的各级模式
    在这里插入图片描述

7.2 需求分析

在这里插入图片描述

7.2.1 需求分析的任务

在这里插入图片描述

7.2.2 需求分析的难点

在这里插入图片描述

7.2.2 需求分析的方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 数据流图

在这里插入图片描述

7.2.3 数据字典

在这里插入图片描述
在这里插入图片描述

7.3 概念结构设计

  1. 定义
    在这里插入图片描述
    在这里插入图片描述

7.3.1 概念模型

在这里插入图片描述

7.3.2 E-R模型

在这里插入图片描述

  1. E-R模型三要素
    实体、属性、联系。(另外,别忘了实体间的映射关系,如下)
  2. 实体间的联系
    在这里插入图片描述
    (1)在这里插入图片描述
    (2)在这里插入图片描述
    (3)在这里插入图片描述
    在这里插入图片描述
  3. E-R图画法
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 练习
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

7.3.3 概念结构设计

现在自己动手设计E-R图,没给你明确属性了。

  1. 设计方法
    需求分析:自顶向下
    概念结构设计:自底向上
    在这里插入图片描述
    在这里插入图片描述
  2. 实体与属性的划分原则
    在这里插入图片描述
    在这里插入图片描述
  3. 设计分E-R图
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  4. E-R图的集成
    在这里插入图片描述
    5.
    在这里插入图片描述
  5. 冲突
    (1)属性冲突
    在这里插入图片描述
    (2)命名冲突
    在这里插入图片描述
    (3)结构冲突
    在这里插入图片描述
  6. 修改和重构
    在这里插入图片描述
    在这里插入图片描述
  7. 冗余
    在这里插入图片描述
    (1)消除冗余的方法
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    触发器的作用体现了:保证数据一致
    在这里插入图片描述
  8. 验证整体概念结构
    在这里插入图片描述
    在这里插入图片描述
  9. 概念结构设计小结
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

7.4 逻辑结构设计

在这里插入图片描述
在这里插入图片描述

  1. 不需要,概念结构设计是现实世界到信息世界的抽象,不涉及具体的实现。
  2. 需要。逻辑结构设计属于信息世界到机器世界的转换,涉及到具体的实现。
  3. 任务:
    把概念设计阶段设计好的基本E-R图转换为与选用数据库管理系统产品所支持的数据模型相符合的逻辑结构。
  4. 步骤
    在这里插入图片描述
    一般的、特定的、优化的

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

  1. 转换什么?
    实体、属性、实体间的联系
  2. 要解决的问题
    在这里插入图片描述
  3. 转换的原则(解决问题1)
    一个实体型转换为一个关系模式,关系的属性就是实体的属性,关系的码就是实体的
    在这里插入图片描述
  4. 实体之间联系的转换?(解决问题2)
    (1)1:1
    在这里插入图片描述
    (2)1:n
    向n端合并,或者新增一个关系模式
    在这里插入图片描述
    或者新增:员工部门(员工,部门)
    (3)m : n
    新增一个表,用双方主码+联系产生的属性
    在这里插入图片描述
    (4)m:n:p
    在这里插入图片描述
    在这里插入图片描述
    (5)具有相同码的关系模式可以合并

在这里插入图片描述

7.4.2 数据模型的优化

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  1. 水平分解
    按关系的水平方向分解,即按元组分解。
    在这里插入图片描述
  2. 垂直分解
    在这里插入图片描述
  3. tips

在这里插入图片描述

7.4.3 设计用户子模式

创建视图了,外模式;逻辑结构设计的第二个模式。

  • 定义
    1
  • 授权
    在这里插入图片描述

小结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.5 物理结构设计

  1. 定义
    在这里插入图片描述
  2. 设计步骤
    在这里插入图片描述
    确定结构,评估效率。
  3. 下面是PPT环节
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    1
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 存取方法总结
    索引、聚簇、HASH
    在这里插入图片描述

7.5.3 确定数据库存储结构

在这里插入图片描述

7.5.4 评价物理结构

在这里插入图片描述

7.6 数据库的运行和维护

在这里插入图片描述
在这里插入图片描述

小结

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/823615.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

PowerShell Instal 一键部署gitea

gitea 前言 Gitea 是一个轻量级的 DevOps 平台软件。从开发计划到产品成型的整个软件生命周期,他都能够高效而轻松的帮助团队和开发者。包括 Git 托管、代码审查、团队协作、软件包注册和 CI/CD。它与 GitHub、Bitbucket 和 GitLab 等比较类似。 Gitea 最初是从 Gogs 分支而来…

QT上位机开发(倒计时软件)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 倒计时软件是生活中经常遇到的一种场景。比如运动跑步,比如学校考试,比如论文答辩等等,只要有时间限制规定的地…

21 UVM printer

uvm_printer 类提供了以不同格式打印 uvm_objects 的灵活性。我们已经讨论了使用 uvm_field_* 宏的 print() 方法,或者如果不使用 utils_begin/ end 宏,则编写 do_print() 方法。 UVM printer提供四种内置printer。 uvm_printeruvm_table_printeruvm_t…

Git:远程仓库的使用

查看当前的远程库 要查看当前配置有哪些远程仓库,可以用git remote 命令,它会列出每个远程库的简短名字。在克隆完某个项目后,至少可以看到一个名为origin 的远程库,Git 默认使用这个名字来标识你所克隆的原始仓库: 也…

DM达梦数据库表占用空间大小

问题描述: 项目涉及用户量大且数据量大,为提高查询性能采用分表方式处理数据;根据业务要求总共4张业务表,每张业务表扩展成100张表,系统中总共400张表。部署至测试环境发现测试环境占用的磁盘空间是开发环境的8倍。 问…

从程序员到项目经理

前言 看到这个话题,博主不禁有感而发。那么就简单讲讲,从程序员到项目经理,需要具备哪些必备能力或基本的素养。 一、必备 1、技术能力 程序员首先必须成为一个名合格的coder,有思想有见解有态度。 无论身处什么开发岗位&…

python2.x编码Unicode字符串

1 python2.x编码Unicode字符串 python2.x默认编码方法为ASCII码。字符串赋值时按系统默认编码自动编码,通过decode()方法解码为Unicode,再通过encode()方法编码为指定码。 1.1 编码解码基础知识 1.1.1 位 位(bit)是计算机存储数据的最小单位&#xf…

数据之光:乡镇企业的发展利器——数据可视化

数据可视化是一项强大的工具,它不仅在大型企业中发挥关键作用,而且在乡镇企业中也能作出显著贡献。那么,数据可视化究竟能为乡镇企业做出什么样的贡献呢? 首先,数据可视化为乡镇企业提供了更清晰的业务洞察。通过将庞大…

超简单实用,推荐的深度学习科研必备网站(轻松找论文,代码项目,写论文综述)

一个非常有用的深度学习必备网站 网址推荐 接触新方向需要了解的内容1.在某一个研究方向下,有哪些算法模型可以用?不同算法之间效果对比如何?2.在某一个研究方向下,到底有哪些论文,模型是可以用的?3.在某一…

Python中如何使用_new_实现单例模式

单例模式是一个经典设计模式,简要的说,一个类的单例模式就是它只能被实例化一次,实例变量在第一次实例化时就已经固定。 在Python中常见的单例模式有None,这就是一个很典型的设计,通常使用 if xxx is None或者if xxx …

ESP32S3+HX8347+3线SPI运行LVGL例程

一、clone lv_port_esp32到本地 git clone https://github.com/lvgl/lv_port_esp32.git 二、增加hx8347.c、hx8347.h components\lvgl_esp32_drivers\lvgl_tft下新增2个文件:hx8347.c、hx8347.h。因为lv_port_esp32中没有hx8347的驱动,需要自己写。这两个…

分库分表之Mycat应用学习二

3 Mycat 概念与配置 官网 http://www.mycat.io/ Mycat 概要介绍 https://github.com/MyCATApache/Mycat-Server 入门指南 https://github.com/MyCATApache/Mycat-doc/tree/master/%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%973.1 Mycat 介绍与核心概念 3.1.1 基本介绍 历史&#x…

怎么使用FTP

FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。FTP是File Transfer Protocol的缩写,即文件传输协议,是一种基于TCP的协议,采用客户/服务…

软件测试/测试开发丨Python 数据类 dataclass 学习笔记

dataclass 介绍 dataclass优势 可读性强操作灵活轻量 应用场景 创建对象完美融合平台开发 ORM 框架 案例 场景:如果创建一只猫,信息包括猫的名字、体重、颜色。同时打印这个对象的时候,希望能打印出一个字符串(包含猫的各种信息&…

Python跨年烟花秀

写在前面 今年跨年怎么过呢~博主用python的pygame实现了一场炫酷的烟花秀,一起来看看吧! 环境需求 python3.11.4及以上PyCharm Community Edition 2023.2.5pyinstaller6.2.0(可选,这个库用于打包,使程序没有python环境…

图灵日记之java奇妙历险记--继承和多态

目录 继承概念继承语法父类成员访问子类中访问父类的成员变量子类中访问父类的成员方法 super关键字子类构造方法super和this初始化protected关键字继承方式final 关键字继承与组合 多态条件向上转型重写动态绑定&&静态绑定多态再理解向下转型多态的优缺点好处缺陷 继承…

【Transformer】深入理解Transformer模型2——深入认识理解(下)

前言 Transformer模型出自论文:《Attention is All You Need》 2017年 近年来,在自然语言处理领域和图像处理领域,Transformer模型都受到了极为广泛的关注,很多模型中都用到了Transformer或者是Transformer模型的变体&#xff0…

java springboot宠物医院管理系统

一.项目简介 宠物医院管理系统,java项目,springboot项目。eclipse和idea都能打开运行。 使用技术:springboot,mybatis,jsp,mysql 5.7 共分为三个角色:系统管理员、医生、用户 功能模块&…

9. 进程

9. 进程 1. 进程与程序1.1 main() 函数由谁调用1.2 程序如何结束1.2.1 注册进程终止处理函数 atexit() 1.3 何为进程1.4 进程号 2. 进程的环境变量2.1 应用程序中获取环境变量2.1.1 获取指定环境变量 2.2 添加/删除/修改环境变量2.2.1 putenv()2.2.2 setenv()2.2.3 命令行式添加…

springboot参数校验常用注解及分组校验

一、使用方式添加Validated 二、常见注解 Null 被注解的元素必须为null NotNull 被注解的元素必须不为null NotBlank 只能作用在接收的 String 类型上,注意是只能,不能为 null,而且调用 trim() 后,长度必须大于 0即&#xff…