Mysql梳理1——数据库概述(下)

YIDUY笔记来源:【MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板】 https://www.bilibili.com/video/BV1iq4y1u7vj

目录

[11.6 关系型数据库设计规则](#11.6 关系型数据库设计规则)

[11.6.1 表、记录、字段](#11.6.1 表、记录、字段)

[11.6.2 表的关联关系](#11.6.2 表的关联关系)

表与表之间的数据记录有关系(relationship)。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示

[11.6.2.1 一对一关联(one-to-one)](#11.6.2.1 一对一关联(one-to-one))

[16.6.2.2 一对多关系(one-to-many)](#16.6.2.2 一对多关系(one-to-many))

[16.2.2.3 多对多(many-to-many)](#16.2.2.3 多对多(many-to-many))

[16.2.3.4 自我引用(Self reference)](#16.2.3.4 自我引用(Self reference))


11.6 关系型数据库设计规则

关系型数据库的典型数据结构就是 数据表 ,这些数据表的组成都是结构化的(Structured)。 将数据放到表中,表再放到库中。 一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表名具有唯一性。 表具有一些特性,这些特性定义了数据在表中如何存储,类似Java和Python中"类"的设计

11.6.1 表、记录、字段

E-R(entity-relationship,实体-联系)模型中有三个主要概念:实体集、属性、联系集
一个实体集 (class)对应于数据库中的一个表( table),一个实体 (instance)则对应于数据库表中的一行 (row),也称为一条记录 (record)。一个属性 (attribute)对应于数据库表中的一行 (row),也称为一条记录 (record)。一个属性 (attribute)对应于数据库表中的一列 (column),也称为一个字段(filed)。

复制代码
ORM思想(Object Realational Mappping)体现:
数据库中的一个表<---->Java或Python中的一个类
表中的一条数据<---->类中的一个对象(或实体)
表中的一个列<---->类中的一个字段、属性(filed)

11.6.2 表的关联关系

表与表之间的数据记录有关系(relationship)。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示

四种:一对一关联、一对多关联、多对多关联、自我引用

11.6.2.1 一对一关联(one-to-one)

在实际的开发中应用不多,因为一对一可以创建成一张表。

举例:设计 学生表 :学号、姓名、手机号码、班级、系别、身份证号码、家庭住址、籍贯、紧急 联系人、...

拆为两个表:两个表的记录是一一对应关系。

基础信息表 (常用信息):学号、姓名、手机号码、班级、系别

档案信息表 (不常用信息):学号、身份证号码、家庭住址、籍贯、紧急联系人

两种建表原则:

外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一。

外键是主键:主表的主键和从表的主键,形成主外键关系。

16.6.2.2 一对多关系(one-to-many)

常见实例场景: 客户表和订单表 , 分类表和商品表 , 部门表和员工表 。

举例: 员工表:编号、姓名、...、所属部门 部门表:编号、名称、简介

一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键

16.2.2.3 多对多(many-to-many)

关系,必须创建第三个表,该表通常称为联接表 ,它将多对多关系划分为两个一对多关系将这两个表的主键都插入到第三个表中

举例1:学生-课程 学生信息表 :一行代表一个学生的信息(学号、姓名、手机号码、班级、系别...)

课程信息表 :一行代表一个课程的信息(课程编号、授课老师、简介...)

选课信息表 :一个学生可以选多门课,一门课可以被多个学生选择

举例2:产品-订单 "订单"表和"产品"表有一种多对多的关系,这种关系是通过与"订单明细"表建立两个一对多关系来 定义的。

一个订单可以有多个产品,每个产品可以出现在多个订单中。

产品表 :"产品"表中的每条记录表示一个产品。

订单表 :"订单"表中的每条记录表示一个订单。

订单明细表 :每个产品可以与"订单"表中的多条记录对应,即出现在多个订单中。

一个订单 可以与"产品"表中的多条记录对应,即包含多个产品。

举例3:用户-角色 多对多关系建表原则:需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向 各自一方的主键。

16.2.3.4 自我引用(Self reference)

上级对下级为一对多的关系,而上级和下级同属为员工,是自我引用。

相关推荐
倔强的石头_12 小时前
《Kingbase护城河》——猎捕慢查询:执行计划的微观解析与索引调优实战
数据库
SelectDB14 小时前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
jiayou642 天前
KingbaseES 表级与列级加密完全指南
数据库·后端
GBASE3 天前
G术时刻 |GBase 8s数据库事务并发控制之封锁技术介绍(下)
数据库
xiezhr3 天前
逛GitHub发现了一款免费的带AI功能的数据库管理工具
数据库·ai编程·dba
唐青枫4 天前
MySQL JSON 实战详解:从存储、查询、更新到 JSON_TABLE 与索引
sql·mysql
吃糖的小孩4 天前
给 QQ AI 机器人设计“可控记忆”:会话摘要、手动长期记忆与角色卡边界
数据库
小满8784 天前
5.Mysql事务隔离级别与锁机制
mysql
笃行3505 天前
金仓数据库数据安全双防线:静态存储加密与传输加密实战
数据库
笃行3505 天前
金仓数据库物理备份实战:sys_rman 全流程演练与误覆盖抢救
数据库