• MySQL8.0优化 - ER模型、数据表的设计原则



    学习资料

    【MySQL数据库教程天花板,mysql安装到mysql高级,强!硬!-哔哩哔哩】
    【阿里巴巴Java开发手册】https://www.w3cschool.cn/alibaba_java

    ER模型

    数据库设计是牵一发而动全身的。那有没有办法提前看到数据库的全貌呢?比如需要哪些数据表、数据表中应该有哪些字段,数据表与数据表之间有什么关系、通过什么字段进行连接,等等。这样我们才能进行整体的梳理和设计。

    其实,ER模型就是一个这样的工具。ER模型也叫做实体关系模型,是用来描述现实生活中客观存在的事物、事物的属性,以及事物之间关系的一种数据模型。在开发基于数据库的信息系统的设计阶段,通常使用ER模型来描述信息需求和信息特性,帮助我们清理业务逻辑,从而设计出优秀的数据库。

    ER模型包括哪些要素?

    ER模型中有三个要素,分别是实体、属性和关系

    实体

    可以看做是数据对象,往往对应于现实生活中的真实存在的个体。在ER模型中,在矩形来表示。实体分为两类,分别是强实体弱实体。强实体是指不依赖于其他实体的实体;弱实体是指对另一个实体有很强的依赖关系的实体。

    属性

    则是指实体的特性。比如超市的地址、联系电话、员工数等。在ER模型中用椭圆形来表示。

    关系

    则是指实体之间的联系。比如超市把商品卖给顾客,就是一种超市与顾客之间的联系。在ER模型中用菱形来表示。

    注意:实体和属性不容易区分。这里提供一个原则:我们从系统整体的角度出发去看,可以独立存在的实体,不可再分的属性。也就是说,属性不能包含其他属性。

    关系的类型

    在ER模型的3个要素中,关系又可以分为3种类型,分别是 一对一、一对多、多对多。

    一对一

    指实体之间的关系是 一 一 对应的,比如个人与身份证信息之间的关系就是一对一的关系。一个人只能有一个身份证信息,一个身份证信息也只属于一个人。

    一对多

    指一边的实体通过关系,可以对应多个另外一边的实体。相反,另外一边的实体通过这个关系,则只能对应唯一的一边的实体。比如说,我们新建一个班级表,而每个班级都有多个学生,每个学生则对应一个班级,一个班级对学生就是一对多的关系。

    多对多

    指关系两边的实体都可以通过关系对应多个对方的实体。比如在进货模块中,供货商与超市之间的关系就是多对多关系,一个供货商可以给多个超市供货,一个超市也可以从多个供货商那里采购商品。再比如一个选课表,有许多科目,每个科目有很多学生选,而每个学生又可以选择多个科目,这就是多对多的关系。

    数据表的设计原则

    数据表的个数越少越好

    RDBMS的核心在于对实体和联系的定义,也就是E-R图(Entity Relationship Diagram),数据表越少,证明实体和联系设计得越简洁,既方便理解又方便操作。

    数据表的字段个数越少越好

    字段个数越多,数据冗余的可能性越大。设置字段个数少的前提是各个字段互相独立,而不是某个字段的取值可以由其他字段计算出来。当然字段个数少是相对的,我们通常在数据冗余检索效率中进行平衡。

    数据表中联合主键的字段个数越少越好

    设置主键是为了确定唯一性,当一个字段法确定唯一性的时候,就需要采用联合主键的方式(也就是用多个字段来定义一个主键)。联合主键的字段越多,占用的索引空间越大,不仅会加大理解难度,还会增加运行时间和索引空间,因此联合主键的字段个数越少越好。

    使用主键和外键越多越好

    数据库的设计实际上就是定义各种表,以及各种字段之间的关系。这些关系越多,证明这些实体之间的冗余度越低,利用度越高。这样做的好处在于不仅保证了数据表之间的独立性,还能提升相互之间的关联使用率。

    “三少一多”原则的核心就是简单可复用。简单指的是用更少的表、更少的字段、更少的联合主键字段来完成数据表的设计。可复用则是通过主键,外键的使用来增强数据表之间的复用率。因为一个主键可以理解是一张表的代表。键设计得越多,证明它们之间的利用率越高。

    注意

    这个原则并不是绝对的,有时候,我们需要牺牲数据的冗余度来换取数据处理的效率。

  • 相关阅读:
    单例模式实现及防止反射与序列化
    Go 语言使用 MySQL 的常见故障分析和应对方法
    论文阅读——ONE-PEACE
    Android - 进程
    js对象和原型、原型链的关系
    不看后悔!第一本全面详解Transformer的综合性书籍!284页pdf下载
    【TcaplusDB知识库】Tmonitor后台一键安装介绍(一)
    Fabric中的私有数据
    PMI-ACP练习题(24)
    解决0-1背包问题(方案一):二维dp数组
  • 原文地址:https://blog.csdn.net/ChinaYangJu/article/details/127916389