MySQL数据库(关系型数据库和非关系型数据库的对比,数据库相关概念和常用的设计规则)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

MySQL数据库的概述

为什么需要使用数据库

  • 满足持久化的需求将数据保存到可掉电式存储设备中以便之后使用数据持久化意味着将内存中的数据保存到硬盘上加以“固化”
  • 持久化的主要作用将内存中的数据存储在关系型数据库中

数据库与数据库管理系统

数据库的相关概念

  • 数据库 database (DB) 即存储数据的仓库本质就是一个文件系统存储一系列有组织的数据
  • 数据库管理系统 DBMS是一种操作和管理数据库的大型软件用于建立使用和维护数据库对数据库进行统一的管理和控制
  • 结构化查询语言SQL专门用来与数据库通信的语言

数据库和数据库管理系统的关系

常见的数据库管理系统

MySQL是开放源代码的关系型数据库管理系统

关系型数据库和非关系型数据库之间的区别RDBMS vs 非RDBMS

RDBMS是当前主流DBMS的选择

关系型数据库 RDBMS

  • 关系型数据库是最古老的数据库类型将复杂的数据结构归结成简单的二元关系即二维表格形式
  • 关系型数据库以row和column的形式存储数据。这一系列的行和列被称为table,一组表组成了一个database
  • 表与表之间的数据记录会存在关系。现实世界的各种实体以及实体之间的各种联系均用关系模型来表示。关系型数据库就是建立在关系模型基础上的数据库
  • 优势
    • 复杂查询在一个表以及多个表之间复杂的数据查询
    • 事务支持对于安全性能很高的数据访问要求得以实现

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

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

键值型数据库

键值型数据库通过key-value键值的方式进行存储数据其中key和value可以是简单的对象也可以是复杂的对象。

key作为唯一的标识符优点查找速度快。缺点无法像关系型数据库使用条件过滤where。

典型的使用场景内存缓存。redis是典型的键值型数据库

文档型数据库

文档型数据库可用来存放并获取文档可以是XML,JSON等格式。在数据库中文档作为处理信息的基本单位一个文档就相当于一条记录。文档数据库所存放的文档就相当于键值数据库中所存放的值。典型的数数据库MongoDB

搜索引擎数据库

搜索引擎数据库应用在搜索引擎领域的数据存储形式并以特定格式进行存储核心原理“倒排索引”

典型数据库Solr,ELasticsearch

列式数据库

列式数据库是将数据按照列存储到数据库中这样做的好处可以大量降低系统的I/O,适合于分布式文件系统但不足在于功能相对有限 典型数据库HBase

图形数据库

图形数据库存储图形关系的数据库利用图这种数据结构存储实体对象之间的关系数据模型主要以节点和边关系来实现特点是能高效解决复杂的关系问题。

典型产品Neo4jInfoGrid

关系型数据库的设计规则

  • 关系型数据库的典型数据结构是 数据表这些数据表组成都是结构化的
  • 一个数据库中可以有多个表每个表都有自己的名字。用以表示自己表名具有唯一性
  • 表具有一些特征这些特征定义了数据在表中如何存储类似于“类”设计

ORM思想Object Relational Mapping

  • 数据库中的一个表 ------> java或python中的类
  • 表中的一条数据 -------> 类中的一个对象或实体
  • 表中的一个列 ----------> 类中的一个字段属性field

ER模型entity-relationship

  • 实体集对应于数据库中的一个表
  • 实体记录对应于数据库表中的一行
  • 属性字段对应于数据库表中的一列
  • 联系集

表的关联关系

表与表之间的数据记录存在关系。主要有四类关系

  • 一对一关联
    • 建表原则
      • 外键唯一主表的主键和从表的外键唯一形成主外键关系外键唯一
      • 外键是主键主表的主键和从表的主键形成主外键关系
  • 一对多关联
    • 在从表(多方)创建一个字段字段作为外键指向主表一方的主键
  • 多对多关联
    • 要表示多对多关系必须创建第三个表该表通常称为联接表其将多对多关系划分为两个一对多关系将这两个表的主键都插入第三个表中
  • 自我引用
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: mysql数据库