MySQL基础篇——第01章 数据库概述
1. 数据库与数据库管理系统
1.1 数据库的相关概念
DB:数据库(Database) |
---|
即存储数据的“仓库”,其本质是一个文件系统。它保存了一系列有组织的数据。 |
DBMS:数据库管理系统(Database Management System) |
是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控 制。用户通过数据库管理系统访问数据库中表内的数据。 |
SQL:结构化查询语言(Structured Query Language) |
专门用来与数据库通信的语言。 |
1.2 数据库与数据库管理系统的关系
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uyuSAlqQ-1652660020998)(MySQL基础篇——第01章 数据库概述.assets/image-20220418070505218-16502367140981.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7iZHF4uS-1652660020999)(MySQL基础篇——第01章 数据库概述.assets/image-20220418070520751-16502367220802.png)]
2. RDBMS 与 非RDBMS
2.1 关系型数据库(RDBMS)
- 关系型数据库模型是把复杂的数据结构归结为简单的二元关系 (即二维表格形式)
- 关系型数据库以 行(row) 和 列(column) 的形式存储数据,以便于用户理解。这一系列的行和列被称为 表(table) ,一组表组成了一个库(database)
- 表与表之间的数据记录有关系(relationship)。现实世界中的各种实体以及实体之间的各种联系均用关系模型 来表示。关系型数据库,就是建立在 关系模型 基础上的数据库
- SQL 就是关系型数据库的查询语言
- 优势:
- 复杂查询 可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询
- 事务支持 使得对于安全性能很高的数据访问要求得以实现
2.2 非关系型数据库(非RDBMS)
- 非关系型数据库,是传统关系型数据库的功能阉割版本 ,基于
Key-Value
对存储数据,不需要经过SQL层的解析,性能非常高 - NoSQL 泛指非关系型数据库
- 键值型数据库通过
Key-Value
键值的方式来存储数据,其中 Key 和 Value 可以是简单的对象,也可以是复杂的对象。Key作为唯一的标识符,优点是查找速度快,明显优于关系型数据库,缺点是无法像关系型数据库一样使用条件过滤(比如WHERE
),如果你不知道去哪里找数据,就要遍历所有的键,这就会消耗大量的计算 - 键值型数据库典型的使用场景是作为 内存缓存 。
Redis
是最流行的键值型数据库
3. 关系型数据库(RDBMS)的设计规则
- 关系型数据库的典型数据结构就是
数据表
,这些数据表的组成都是结构化的(Structured) - 将数据放到表中,表再放到库中
- 一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表名具有唯一性
- 表具有一些特性,这些特性定义了数据在表中如何存储,类似Java和Python中 “类”的设计
3.1 表、记录、字段
- E-R(entity-relationship,实体-联系)模型中有三个主要概念是: 实体集 、 属性 、 联系集 。
- 一个实体集(class)对应于数据库中的一个表(table)
- 一个实体(instance)则对应于数据库表中的一行(row),也称为一条记录(record)
- 一个属性(attribute)对应于数据库表中的一列(column),也称为一个字段(field)
ORM思想 (Object Relational Mapping)体现:
数据库中的一个表 <—> Java或Python中的一个类
表的一行(一条记录) <—> 类的一个对象(或实体)
表的一列 <----> 类中声明的一个属性 / 字段(field)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6bzkzTfh-1652660021000)(MySQL基础篇——第01章 数据库概述.assets/image-20220418073647036-16502386090471.png)]
3.2 表的关联关系
- 表与表之间的数据记录有关系(relationship)。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。
- 四种:一对一关联、一对多关联、多对多关联、自我引用
现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。 - 四种:一对一关联、一对多关联、多对多关联、自我引用