数据库精讲(0) | 关系型数据库 VS 非关系型数据库 详细对比分析

A.关系型数据库

一.基本介绍

关系数据库(英语:Relational database),是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示关系模型是由埃德加·科德于1970年首先提出的,并配合“科德十二定律”。现如今虽然对此模型有一些批评意见,但它还是数据存储的传统标准标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作

关系模型由关系数据结构关系操作集合关系完整性约束三部分组成。

二.实体关系模型

实体关系模型(Entity-Relationship Model),简称E-R Model,是陈品山(Peter P.S Chen)博士于1976年提出的一套数据库的设计工具,他运用真实世界中事物关系的观念,来解释数据库中的抽象的数据架构。实体关系模型利用图形的方式(实体-关系图(Entity-Relationship Diagram))来表示数据库的概念设计,有助于设计过程中的构思沟通讨论

三.关系操作

关系模块中常用的操作包括:
在这里插入图片描述

A.数据查询

  1. 选择
  2. 投影
  3. 连接

B.数据操作

  1. 插入
  2. 删除
  3. 修改
  4. 查询

四.完整性约束

完整性约束包括:

  • 实体完整性
  • 参照完整性
  • 用户定义完整性

五.关系数据语言SQL

SQL(Structured Query Language)语言是1974年由Boyce和Chamberlin提出的一种介于关系代数与关系演算之间的结构化查询语言,是一个通用的、功能极强的关系性数据库语言

六.模式结构

  • 外模式
  • 模式
  • 内模式

1.表(关系Relation)

表(关系Relation)是以值组Tuple)和属性Attribute)的形式组织起来的数据的集合。一个数据库包括一个或多个表(关系Relation)。例如,可能有一个有关作者信息的名为authors的表(关系Relation)。每行(属性Attribute)都包含特定类型的信息,如作者的姓氏每列(值组Tuple)都包含有关特定作者的所有信息:姓、名、住址等等。在关系型数据库当中一个表(关系Relation)就是一个关系,一个关系数据库可以包含多个表(关系Relation)

2.视图

视图表 (View) 是在关系数据库中,将一组查询指令构成的结果集组合成可查询的数据表的一种数据库对象。与数据表不同的是,数据表是一种实体结构(Physical Structure),但视图表是一种虚拟结构(Virtual Structure),在实体数据表中的改变都可以立刻反映在视图表中,不过部分数据库管理系统也支持具更新能力的视图表(Updatable View)。

视图表具有下列的好处:

  1. 可以将实体数据表隐藏起来,让外部程序的设计师无法得知实际的数据结构,降低数据库被攻击的风险
  2. 在多数的情况下,视图表是只读的,外部程序无法直接透过视图表修改数据(具更新能力的视图表除外)。
  3. 简化查询,数据库管理员可以将高度复杂的查询,包装在视图表中,外部程序只需要直接访问该视图表即可取出需要的数据。
  4. 在视图表中先行运行运算。
  5. 视图表可视为数据表,具有 JOIN 的能力。
  6. 数据库中只需要存储定义无须存储数据

语法
视图表由于是数据库对象之一,因此需要使用数据定义语言来创建修改与删除,例如下列的指令:

CREATE VIEW v_myView
AS
   SELECT * FROM myTable

即可创建一个视图表,而外部程序可以用下列指令来访问视图表

SELECT * FROM v_myView WHERE myID = 3982

若要删除视图表,则可以用DROP VIEW v_myView来删除。

3.索引

数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询更新数据库表中数据。

聚集索引

索引键值的逻辑顺序与索引所服务的表中相应行的物理顺序相同索引,被称为聚集索引,反之为非聚集索引,索引一般使用二叉树排序索引键值的,聚集索引的索引值是直接指向数据表对应元组的,而非聚集索引的索引值仍会指向下一个索引数据块,并不直接指向元组,因为还有一层索引进行重定向,所以非聚集索引可以拥有不同的键值排序而拥有多个不同的索引。而聚集索引因为与表的元组物理顺序一一对应,所以只有一种排序,即一个数据表只有一个聚集索引

B.非关系型数据库

一.基本介绍

NOSQL(Not Only SQL)是对不同于传统的关系数据库的数据库管理系统的统称。

允许部分数据使用SQL系统存储,而其他数据允许使用NOSQL系统存储。其数据存储可以不需要固定的表格模式以及中介数据(metadata),也经常会避免使用SQL的JOIN操作一般有水平可扩展性的特征。

二.发展历史

NOSQL一词最早出现于1998年,是Carlo Strozzi开发的一个轻量开源不提供SQL功能的关系数据库

2009年,Last.fm的Johan Oskarsson发起了一次关于分布式开源数据库的讨论,来自Rackspace的Eric Evans再次提出了NOSQL的概念,这时的NOSQL主要指非关系型、分布式、不提供ACID的数据库设计模式

2009年在亚特兰大举行的"no:sql(east)“讨论会是一个里程碑,其口号是"select fun, profit from real_world where relational=false;”。因此,对NOSQL最普遍的解释是“非关联型的”,强调键-值存储面向文档数据库的优点,而不是单纯的反对RDBMS。

基于2014年的收入,NOSQL市场领先企业是MarkLogic,MongoDB和Datastax[3]。基于2015年的人气排名,最受欢迎的NOSQL数据库是MongoDB,Apache CassandraRedis

三.特点

当代典型的关系数据库在一些数据敏感的应用中表现了糟糕的性能,例如为巨量文档创建索引高流量网站的网页服务,以及发送流式媒体关系型数据库的典型实现主要被调整用于执行规模小而读写频繁,或者大批量读而极少写访问的事务

NOSQL的结构通常提供弱一致性的保证,如最终一致性,或交易仅限于单个的数据项。不过,有些系统,提供完整的ACID保证在某些情况下,增加了补充中间件层(例如:CloudTPS)。有两个成熟的系统有提供快照隔离的列存储:像是Google基于过滤器系统的BigTable,和滑铁卢大学开发的HBase。这些系统,自主开发,使用类似的概念来实现多行(multi-row)分布式ACID交易的快照隔离(snapshot isolation)保证为基础列存储,无需额外的数据管理开销,中间件系统部署或维护,减少了中间件层。

少数NOSQL系统部署了分布式结构,通常使用分布式散列表(DHT)将数据以冗余方式保存在多台服务器上。依此,扩充系统时候添加服务器更容易,并且扩大了对服务器失效的承受能程度。

四.分类

1.文档存储

在这里插入图片描述

2.图数据库

在这里插入图片描述

3.键-值(key‐value)存储

在这里插入图片描述

五.主机式服务

1.Key/value硬盘存储

在这里插入图片描述

2.Key/value RAM存储

在这里插入图片描述

3.Key-value基于Paxos算法的存储

在这里插入图片描述

六.多数据库

在这里插入图片描述

七.时序型数据库

在这里插入图片描述

八.对象数据库

在这里插入图片描述

九.列存储

在这里插入图片描述

十.外部链接

  • NoSQL非关系数据库简介
  • Amazon数据库论文
  • 在互联网上拥有NoSQL相关链接最多的网站。
  • NoSQL数据库笔谈
  • Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs
  • Membase vs Neo4j comparison

后面博主会持续更新,喜欢的小伙伴可以关注或者点赞评论一键三连呦

但行好事莫问前程,下篇见~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuperBigData~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值