【MySQL学习笔记】系列一:数据库概述、初识关系型数据库MySQL(二)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 【MySQL学习笔记】系列一:数据库概述、初识关系型数据库MySQL(二)

4. RDBMS与非RDBMS


4.1 关系型数据库(RDBMS)


4.1.1 实质


这种类型的数据库是最古老的数据库类型,关系型数据库模型是把复杂的数据结构归结为简单的二元关系 (即二维表格形式)。

关系型数据库以行(row)和列(column)的形式存储数据,以便于用户理解。这一系列的行和列被称为表(table),一组表组成了一个库(database)。

SQL就是关系型数据库的查询语言。


4.1.2 优势


复杂查询可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。

事务支持使得对于安全性能很高的数据访问要求得以实现。


4.2 非关系型数据库(非RDBMS)


4.2.1 介绍


非关系型数据库,可看成传统关系型数据库的功能阉割版本,基于键值对存储数据,不需要经过SQL层的解析,性能非常高。同时,通过减少不常用的功能,进一步提高性能。


5. 关系型数据库设计规则


一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表名具有唯一性。

表具有一些特性,这些特性定义了数据在表中如何存储,类似Java和Python中 “类”的设计。


5.1 表、记录、字段


E-R(entity-relationship,实体-联系)模型中有三个主要概念是:实体集、属性、联系集。

一个实体集(class)对应于数据库中的一个表(table),一个实体(instance)则对应于数据库表中的一行(row),也称为一条记录(record)。一个属性(attribute)对应于数据库表中的一列(column),也称为一个字段(field)。


5.2 表的关联关系


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

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


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


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

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

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


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


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


两种建表原则:

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

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


ccad2fad39b7d4c6d961657dcd6e9691_f01fc0d2e64b47b0b3416db963ff4b99.png


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


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

举例:

员工表:编号、姓名、…、所属部门


部门表:编号、名称、简介


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


e10e96ee424b5ecf7f6eb027860cba4c_4eb0c049539a4f1fb7a1fda3e5d7c932.png


c345cf58af63a055e49d8d28a69f811b_3b33fc9b80604d91ac4e1620681b76fe.png


81a73cffa947b54c510b4daada73b0de_1c490e3fff6144fab4961d393c2be2fc.png



5.2.3 多对多(many-to-many)


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


8b6d863b76ae24d6b287b2245af7f7d6_be7d6c45107b4bb691a909b3f42a39f1.png


举例1:学生-课程


学生信息表:一行代表一个学生的信息(学号、姓名、手机号码、班级、系别…)


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


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


学号     课程编号  
1        1001
2        1001
1        1002


举例2:产品-订单


“订单”表和“产品”表有一种多对多的关系,这种关系是通过与“订单明细”表建立两个一对多关系来定义的。一个订单可以有多个产品,每个产品可以出现在多个订单中。


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

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

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


8bdac1aee0a44dab45ba7ecf942489a8_13ed8df61cef4abcbd6c53a84062cdfa.png


举例3:用户-角色

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


4f93b782a36defec9cd252ba8a52f8c2_d24d5cff522f404fba7ee708d3699174.png


5.3.4 自我引用(Self reference)


6b71271cd0b9bd518bbab7255407679b_99832f54f2e042e1a1272fd9301f0c5a.png

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
66
分享
相关文章
docker拉取MySQL后数据库连接失败解决方案
通过以上方法,可以解决Docker中拉取MySQL镜像后数据库连接失败的常见问题。关键步骤包括确保容器正确启动、配置正确的环境变量、合理设置网络和权限,以及检查主机防火墙设置等。通过逐步排查,可以快速定位并解决连接问题,确保MySQL服务的正常使用。
105 82
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
MySQL生产环境迁移至YashanDB数据库深度体验
这篇文章是作者将 MySQL 生产环境迁移至 YashanDB 数据库的深度体验。介绍了 YashanDB 迁移平台 YMP 的产品相关信息、安装步骤、迁移中遇到的各种兼容问题及解决方案,最后总结了迁移体验,包括工具部署和操作特点,也指出功能有优化空间及暂不支持的部分,期待其不断优化。
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
150 25
云数据库:从零到一,构建高可用MySQL集群
在互联网时代,数据成为企业核心资产,传统单机数据库难以满足高并发、高可用需求。云数据库通过弹性扩展、分布式架构等优势解决了这些问题,但也面临数据安全和性能优化挑战。本文介绍了如何从零开始构建高可用MySQL集群,涵盖选择云服务提供商、创建实例、配置高可用架构、数据备份恢复及性能优化等内容,并通过电商平台案例展示了具体应用。
从 MySQL 到时序数据库 TDengine:Zendure 如何实现高效储能数据管理?
TDengine 助力广州疆海科技有限公司高效完成储能业务的数据分析任务,轻松应对海量功率、电能及输入输出数据的实时统计与分析,并以接近 1 : 20 的数据文件压缩率大幅降低存储成本。此外,taosX 强大的 transform 功能帮助用户完成原始数据的清洗和结构优化,而其零代码迁移能力更实现了历史数据从 TDengine OSS 与 MySQL 到 TDengine 企业版的平滑迁移,全面提升了企业的数据管理效率。本文将详细解读这一实践案例。
14 0
数据库数据恢复——MySQL简介和数据恢复案例
MySQL数据库数据恢复环境&故障: 本地服务器,安装的windows server操作系统。 操作系统上部署MySQL单实例,引擎类型为innodb,表空间类型为独立表空间。该MySQL数据库没有备份,未开启binlog。 人为误操作,在用Delete命令删除数据时未添加where子句进行筛选导致全表数据被删除,删除后未对该表进行任何操作。
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
194 42

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等