一、什么是数据库

  • 数据库是数据的仓库。
  • 与普通的“数据仓库”不同的是,数据库依据“数据结构”来组织数据,因为“数据结构”,所以我们看到的数据是比较“条理化”的(比如不会跟以前的普通文件存储式存储成一个文件那么不条理化,我们的数据库分成一个个库,分成一个个表,分成一条条记录,这些记录是多么分明)
  • 也因为其“数据结构”式,所以有极高的查找速率(比如B+Tree查找法),(由于专精,可以根据自己的结构特性来快速查找,所以对于数据库的查找会比较快捷;不像普通文件系统的“查找”那么通用)
  • 如果与EXCEL来比的话,能明显的看出数据库的好处,我们能给一个个“字段”添加“约束”(比如约束一列的值不能为空)
  • 数据库与普通的文件系统的主要区别:数据库能快速查找对应的数据
  • 常说的XX数据库,其实实质上是XX数据库管理系统。数据库管理系统是一个软件,是数据库管理的程序实现。

二、什么是关系型数据库

  • 关系型数据库是依据关系模型来创建的数据库。
  • 所谓关系模型就是“一对一、一对多、多对多”等关系模型,关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。
  • 关系型数据可以很好地存储一些关系模型的数据,比如一个老师对应多个学生的数据(“一对多”),一本书对应多个作者(“一对多”),一本书对应一个出版日期(“一对一”)
  • 关系模型是我们生活中能经常遇见的模型,存储这类数据一般用关系型数据库
  • 关系模型包括数据结构(数据存储的问题,二维表)、操作指令集合(SQL语句)、完整性约束(表内数据约束、表与表之间的约束)。

三、常见的关系型数据库

  Oracle、Mysql、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access

四、关系型数据库的特点

  • 安全(因为存储在磁盘中,不会说突然断电数据就没有了)、
  • 容易理解(建立在关系模型上)、
  • 但不节省空间(因为建立在关系模型上,就要遵循某些规则,好比数据中某字段值即使为空仍要分配空间)

五、什么是非关系型数据库

  • 非关系型数据库主要是基于“非关系模型”的数据库(由于关系型太大,所以一般用“非关系型”来表示其他类型的数据库)
  • 非关系型模型比如有:
    • 列模型:存储的数据是一列列的。关系型数据库以一行作为一个记录,列模型数据库以一列为一个记录。(这种模型,数据即索引,IO很快,主要是一些分布式数据库)
    • 键值对模型:存储的数据是一个个“键值对”,比如name:zhangsan,那么name这个键里面存的值就是zhangsan
    • 文档类模型:以一个个文档来存储数据,有点类似“键值对”。

六、常见的非关系型数据库

  • 列模型:Hbase
  • 键值对模型:redis,MemcacheDB
  • 文档类模型:mongoDB

七、非关系型数据库的特点

  • 效率高(因为存储在内存中)、
  • 但不安全(断电丢失数据,但其中redis可以同步数据到磁盘中),现在很多非关系型数据库都开始支持转存到磁盘中。

Mysql-关系型数据库与非关系型数据库的更多相关文章

  1. MongoDB(一):关系型数据库和非关系型数据库

    一.关系型数据库 1.概念 关系型数据库:是指采用了关系模型来组织数据的数据库,是目前各类数据库中使用最为广泛的数据库系统.简单的说,关系模型指的就是二维表格模型,一个关系型数据库就是由二维表及其之间 ...

  2. 数据库基础 非关系型数据库 MongoDB 和 redis

    数据库基础 非关系型数据库 MongoDB 和 redis 1 NoSQL简介 访问量增加,频繁的读写 直接访问(硬盘)物理级别的数据,会很慢 ,关系型数据库的压力会很大 所以,需要内存级的读写操作, ...

  3. 【Redis】(1)-- 关系型数据库与非关系型数据库

    关系型数据库与非关系型数据库 2019-07-02  16:34:48  by冲冲 1. 关系型数据库 1.1 概念 关系型数据库,是指采用了关系模型来组织数据的数据库.关系模型指的就是二维表格模型, ...

  4. NoSQL:从关系型数据库到非关系型数据库

    关系型数据库 所谓关系型数据库,,就是指采用了关系模型来组织数据的数据库. 什么是关系模型,简单说,关系模型就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织. 关系模 ...

  5. Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念

    Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念 在学习redis之前我们先来学习两个概念,即什么是关系型数据库什么是非关系型数据库,二者的区别是什么,二者的关系又是什么? ** ...

  6. 关系型数据库 和 非关系型数据对比 以及 MySQL与Oracle对比

    一.关系型数据库 关系型数据库,是指采用了关系模型来组织数据的数据库.    关系模型1970年提出的,关系模型的概念得到了充分的发展并逐渐成为主流数据库结构的主流模型.    简单来说,关系模型指的 ...

  7. Python进阶----数据库的基础,关系型数据库与非关系型数据库(No SQL:not only sql),mysql数据库语言基础(增删改查,权限设定)

    day37 一丶Python进阶----数据库的基础,mysql数据库语言基础(增删改查,权限设定) 什么是数据库:    简称:DataBase ---->DB    数据库即存放数据的仓库, ...

  8. MySQL列举常见的关系型数据库和非关系型都有那些?

    关系型数据库: Oracle.DB2.Microsoft SQL Server.Microsoft Access.MySQL 非关系型数据库: NoSql.Cloudant.MongoDb.redis ...

  9. 关系型数据库和非关系型数据库区别、oracle与mysql的区别

    一.关系型数据库 关系型数据库,是指采用了关系模型来组织数据的数据库.    关系模型是在1970年由IBM的研究员E.F.Codd博士首先提出的,在之后的几十年中,关系模型的概念得到了充分的发展并逐 ...

随机推荐

  1. Function.prototype.bind、call与apply

    学习Function.prototype.bind.call与apply时,看到一篇博客,学到一些内容,但由于博客时间太久,根据官方文档对内容进行一些修正:下文为修正过内容 前言 前段时间面试遇见一题 ...

  2. Kubernetes实战之部署ELK Stack收集平台日志

    主要内容 1 ELK概念 2 K8S需要收集哪些日志 3 ELK Stack日志方案 4 容器中的日志怎么收集 5 K8S平台中应用日志收集 准备环境 一套正常运行的k8s集群,kubeadm安装部署 ...

  3. 利用纯代码写出一个秒表表盘的方法 —— #DF

    @interface ViewController () @property (nonatomic, strong) CALayer *secLayer; // 秒针layer @property ( ...

  4. KVC替换系统的tabbar为自定义tabbar---秀清

    CustomTabbar *tabbar = [[CustomTabbar alloc]init]; //KVC,更换系统的tabbar为自定义tabbar tabbar.tabbarDelegate ...

  5. #import和#include区别

    #import与#include的类似,都是把其后面的文件拷贝到该指令所在的地方 #import可以自动防止重复导入 #import <> 用于包含系统文件 #import"&q ...

  6. Java中的equals和==的区别以及几个常用的object中的方法简单的调试方法

    一.equals 1.equals:是Object类中的方法,只能判断引用类型 2.默认判断的是地址是否相等(判断两个参数是否是同一个对象),子类中往往重写该方法,用于判断内容(值)是否相等 二.== ...

  7. Docker 中的问题:”invalid reference format: repository name must be lowercase”

    在导入镜像的时候出现问题:invalid reference format: repository name must be lowercase 问题解决:镜像命名不能出现大写字母,将大写改为小写即可 ...

  8. Solution -「AGC 029E」「AT 4504」Wandering TKHS

    \(\mathcal{Description}\)   Link.   给一棵 \(n\) 个点的树,从某个点出发,遍历时必须走到已经走过的连通块所邻接的编号最小的结点.求从每个点出发,走到 \(1\ ...

  9. 大厂偏爱的Agent技术究竟是个啥

    搜索关注微信公众号"捉虫大师",后端技术分享,架构设计.性能优化.源码阅读.问题排查.踩坑实践. hello大家好,我是小楼,今天给大家分享一个关于Agent技术的话题,也是后端启 ...

  10. Python 面向对象编程之封装的艺术

    1. 面向对象编程 OOP ( Object  Oriented Programming) 即面向对象编程. 面向对象编程是一种编码思想,或是一种代码组织方式.如同编辑文章时,可以选择分段.分节的方式 ...