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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云原生数据库 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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
11天前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
47 3
|
5天前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
|
6天前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
5天前
|
SQL 关系型数据库 MySQL
Mysql数据恢复—Mysql数据库delete删除后数据恢复案例
本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致全表数据被删除。删除后未对该表进行任何操作。需要恢复误删除的数据。 在本案例中的mysql数据库未进行备份,也未开启binlog日志,无法直接还原数据库。
|
11天前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
154 7
|
11天前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
58 1
|
11天前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
|
5月前
|
关系型数据库 分布式数据库 数据库
一库多能:阿里云PolarDB三大引擎、四种输出形态,覆盖企业数据库全场景
PolarDB是阿里云自研的新一代云原生数据库,提供极致弹性、高性能和海量存储。它包含三个版本:PolarDB-M(兼容MySQL)、PolarDB-PG(兼容PostgreSQL及Oracle语法)和PolarDB-X(分布式数据库)。支持公有云、专有云、DBStack及轻量版等多种形态,满足不同场景需求。2021年,PolarDB-PG与PolarDB-X开源,内核与商业版一致,推动国产数据库生态发展,同时兼容主流国产操作系统与芯片,获得权威安全认证。
|
2月前
|
存储 关系型数据库 分布式数据库
喜报|阿里云PolarDB数据库(分布式版)荣获国内首台(套)产品奖项
阿里云PolarDB数据库管理软件(分布式版)荣获「2024年度国内首版次软件」称号,并跻身《2024年度浙江省首台(套)推广应用典型案例》。

推荐镜像

更多