• 设计数据库


    Data Modeling

    • Understand the requirements:充分理解和分析业务需求。
    • Build a Conceptual Model:识别业务中的实体、事物或概念以及它们之间的关系。
    • Build a Logical Model:生成一个数据模型或数据结构用以存储数据。
    • Build a Physical Model:在这个模型中。你需要具备由数据库技术支持的确切的数据类型。列默认值、表主键。以及其他对象,如视图、存储过程触发器等等

    三种数据模型
    在这里插入图片描述

    Conceptual Model(概念模型)

    • 作用:表示业务中的实体、事物或概念以及它们之间的关系。

    • 可视化方法
      1.Entity Relationship(实体关系-ER)
      示意图:
      在这里插入图片描述

      2.Unified Modeling Language(标准建模语言-UML)

    Logical Model(逻辑模型)

    • 作用:逻辑模型为我们的概念模型增加了更多细节,这样我们见乎了解什么结构或什么表需要用来存储数据。
    • 示意图
      在这里插入图片描述

    Physical Model(实体模型)

    • 作用:在数据库中进行建模
      在这里插入图片描述

    Normalization(标准化)

    • 作用:审查数据库设计,防止数据重复预定义。
    • First Normal Form(第一范式):每个单元格都应该有单一值,且不能出现重复列。
      注意:关系型数据库只有“一对一”,“一对多”关系,没有“多对多”关系,如果需要实现两个表的“多对多”关系,则需要使用链接表,拆分成两段“一对多”关系。

    示意图:courses表的tags违反了第一范式,修改如下
    在这里插入图片描述

    • Second Normal Form(第二范式)
      1、满足第一范式
      2、每张表都应该有一个单一目的。换句话说,它应该只能代表一种且仅有一种实体类型,而表中的每一列都应该用来描述那个实体。

    示意图:courses表中的instructors违反了第二范式,修改如下
    在这里插入图片描述

    • Third Normal Form(第三范式)
      1、满足第二范式
      2、表中的列不应该派生自其他列

    举例:在customers表中,已经有first_name和last_name,就不能再出现full_name,违反了第三范式
    在这里插入图片描述
    Don’t jump into creating tables!

  • 相关阅读:
    回溯算法——好的开始
    卷积神经网络的算法过程,卷积神经网络原理简述
    树莓派无桌面配置WiFi连接
    【Python】内存管理和random模块
    C++ Tutorials: Boolean Operations
    【案例30】WebSphere诡异宕机
    软件测试岗位未来趋势怎么样?
    Oracle数据库透明加密 安当加密
    当前 Python 版本中所有保留字keyword.kwlist
    【小程序】WXML模板语法
  • 原文地址:https://blog.csdn.net/weixin_43752912/article/details/126700281