SQL - 设计数据库

  • 数据建模

    • 数据建模就是为要存储在数据库中的数据创建模型的过程
    • 步骤

      • 1.理解和分析业务需求

        • (收集信息)
        • 收集需求,明确业务流程,定义数据需求,分析业务规则
      • 2.构建业务的概念模型

        • (识别和表示业务中实体、事务或概念以及它们之间的关系)
        • 识别实体,定义属性,确定关系,绘制ER图,验证模型
      • 3.构建逻辑模型

        • (继续完善概念模型,会生成一个数据结构存储数据)
        • 规范化,定义主键和外键,设计关系,业务规则实现
      • 4.构建物理模型(实体)
        • 选取DBMS,物理存储设计,性能优化,安全性和备份
  • 概念模型

    • 可视化方式, ER图 或 UML图(标准建模语言图),用来观察这些实体及他们之间的关系;
    • 找到实体,找到实体对应的属性,确定关系
  • 逻辑模型

    • 进一步完善概念模型,生成一个数据模型或数据结构来存储我们的数据
    • 指定每个属性的类型(如 string),指定实体间关系的类型(one to one,one to many,many to many),将实体间的关系也抽象出一个实体
  • 实体模型

    • 实体模型是逻辑模型通过特定数据库技术实现的
  • 主键

    • 主键是唯一标识给定表里每条记录的那列
  • 外键

    • 外键是在一张表中引用了另一张表主键的那列
  • 外键约束

    • cascade,no action,每当你的表中有外键,你需要为外键设置约束,这样本质上可以保护你的数据不受损坏
  • 标准化

    • 标准化是将数据分解成最小的逻辑单元,以消除冗余和确保数据一致性的过程。
    • 标准化是审查我们的设计,并确保它遵循一些防止数据重复的预定义规则的这一过程。基本上由7条规则(七范式),我们可以应用到第3范式即可。

      • 1NF(第一范式)
        • 第一范式要求一行中的每个单元格都应该有单一值,且不能出现重复列。也就是说表中一行中的列值是一个而不能是多个,也不能出现重复的列。
      • 2NF(第二范式)
        • 在第一范式的基础上,第二范式要求每张表都应该有一个单一目的。也就是说这张表只能代表一种实体,而表中的每一列都应该用来描述那个实体。
      • 3NF(第三范式)
        • 在第二范式的基础上,第三范式表示,表中的列不能派生自其他列。也就是说表中的列不能通过其他列得到。
  • 链接表

    • 链接表在数据库设计中用于处理多对多关系。它通过创建中间表,将两个实体表的主键作为外键存储在中间表中,从而建立实体之间的关系。
  • 注意

    • 不要在意范式的具体内容,没必要,注重消除数据的冗余即可。
    • 进行数据库设计时,要先从逻辑或概念模型开始,不要直接跳到创建表。
  • MySQL工作台相关

    • 模型的正向工程,通过工作台将一个实体模型创建成数据库
    • 数据库同步模型,当对一个数据库的实体模型修改时,应同步到所有的该数据库。
    • 模型的逆向工程,通过工作台建立一个数据库的实体模型
相关推荐
bksczm6 小时前
InnoDB 页结构详解:页类型、页头页尾、数据行与页目录
数据库·mysql
bksczm7 小时前
InnoDB 行格式详解:DYNAMIC / COMPACT / COMPRESSED / REDUNDANT
java·开发语言·数据库
字节跳动开源7 小时前
OpenViking连接业务系统,LLM Wiki一键编译
数据库·开源
进击的荆棘8 小时前
MySQL——数据库基础
数据库·mysql
Decay__8 小时前
22_MySQL 运维自动化平台 —— 部署编排 + 监控 + 巡检 + 告警 + 工单闭环一体化
运维·数据库·sql·mysql·架构
codeejun9 小时前
每日一Go·MySQL-11、覆盖索引 & 回表原理
javascript·数据库·mysql
CoderYanger9 小时前
Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)
java·数据库·spring·面试·职场和发展·java-ee·mybatis
XLYcmy10 小时前
信息检索报告数字经济赋能城市低碳治理的路径研究——基于“传统数据库 + 生成式人工智能”双轮驱动的检索实践 检索实施与结果分析 Web of Science
数据库·ai·llm·prompt·ssci·deepseek·wos
Decay__10 小时前
21_MySQL 优化案例集 —— 慢 SQL 优化、索引重构与参数调整收益对比
运维·数据库·sql·mysql·架构
codigger11 小时前
MySQL 深分页优化:limit 100000, 10 慢在哪,怎么救
数据库·sql·mysql·程序员