跳至主要內容

一、概述

鲨瓜大约 4 分钟数据库数据库MySQL

一、概述

1.1 RDBMS 和 非 RDBMS

关系型数据库绝对是 DBMS 的主流,其中使用最多的 DBMS 分别是 Oracle、 MySQL 和 SQL Server。

这些都是关系型数据库(RDBMS)。

1.1.1 关系型数据库(RDBMS)

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

image-20240107131342618.png
image-20240107131342618.png

关系型数据库以 行(row)列(column) 的形式存储数据,以便于用户理解。这一系列的行和列被

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

优势

  • 可以使用SQL语句方便在一个表或者多个表进行复杂查询
  • 使得对于安全性能很高的数据访问要求得以实现

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

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

有哪些非关系型数据库?

键值型数据库

键值型数据库通过 Key-Value 键值的方式来存储数据,其中 Key 和 Value 可以是简单的对象,也可以是复杂的对象。Key 作为唯一的标识符,优点是查找速度快,在这方面明显优于关系型数据库,缺点是无法像关系型数据库一样使用条件过滤(比如 WHERE),如果你不知道去哪里找数据,就要遍历所有的键,这就会消耗大量的计算。

典型的键值型数据库使用场景是作为缓存。比如:Redis

文档型数据库

此类数据库可存放并获取文档,可以是XML、JSON等格式。在数据库中文档作为处理信息的基本单位, 一个文档就相当于一条记录。文档数据库所存放的文档,就相当于键值数据库所存放的“值”。MongoDB 是最流行的文档型数据库。此外,还有CouchDB等。

搜索引擎数据库

虽然关系型数据库采用了索引提升检索效率,但是针对全文索引效率却较低。搜索引擎数据库是应用在 搜索引擎领域的数据存储形式,由于搜索引擎会爬取大量的数据,并以特定的格式进行存储,这样在检 索的时候才能保证性能最优。核心原理是“倒排索引”。 典型产品:Solr、Elasticsearch、Splunk 等。

1.2 关系型数据库的设计规则

  • 一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。
  • 表名具有唯一性。 表具有一些特性,这些特性定义了数据在表中如何存储,类似Java和Python中 “类”的设计。

1.2.1 表、记录、字段

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

image-20240107133218203
image-20240107133218203
数据库中的一张表  <----> Java中的类
数据库中的一条记录  <----> Java中的对象
数据库中的一个列  <----> Java中的一个字段、属性

1.2.2 表的关联关系

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

一对一(one to one)

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

两种建表原则

  • 外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一。
  • 外键是主键:主表的主键和从表的主键,形成主外键关系。
image-20240107134006553
image-20240107134006553

一对多关系(one to many)

  • 一条记录对应另一个表中的多条记录

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

image-20240107134232352
image-20240107134232352

多对多关系(many to many)

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

image-20240107134510774
image-20240107134510774

自我引用(self reference)

image-20240107134613344
image-20240107134613344
上次编辑于:
贡献者: “杨照光”
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3