数据库基础之NoSQL与RDBMS
NoSQL(Not Only SQL)
NoSQL非关系型数据库,用于超大规模数据存储。
1、代表着不仅仅是SQL
2、 没有声明型查询语言
3、没有预定义模式
4、键-值对存储,列存储,文档存储,图形数据库
5、最终一致性,而非ACID属性
6、非结构化和不可预知的数据
7、CAP定理
8、高性能,高可用性和可伸缩性
优点:高可扩展性;分布式计算;低成本;架构的灵活性,半结构化数据;没有复杂的关系
缺点:没有标准化;有限的查询功能;最终一致是不直观的程序
NoSQL数据库分类
列存储:Hbase、Cassandra、Hypertable
文档存储:MongoDB、CouchDB
key-value存储:Tokyo Cabinet/Tyrant 、Berkeley DB 、MemcacheDB、 Redis
图形存储:Neo4J、FlockDB
对象存储:db4o、Versant
xml数据库:Berkeley DB XML 、 BaseX
RDBMS
RDBMS关系型数据库
1、高度组织化结构化数据
2、结构化查询语句(SQL)
3、数据和关系都存储在单独的表中
4、数据操纵语言,数据定义语言
5、严格的一致性
6、基础事务
ACID (Atomicity+Consistency+Isolation+Durability)
1、A(Atomicity)原子性
事务里所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,要么一个操作失败,整个事务就失败
2、C(Consistency)一致性
数据要一直处于一致状态,事务的运行不会改变数据库原本的一致性约束
3、i(Isolation)独立性
事务之间不会互相影响
4、D(Durability)持久性
一旦事务提交后,他所做的修改将会永久保存 在数据库上
CAP定理(CAP theorem)
CAP定理,也称为布鲁尔定理,指出对于一个分布式计算系统来说,不可能同时满足以下三点:
1、一致性(Consistency)(所有节点在同一时间具有相同的数据)
2、可用性(Availability)(保证每个请求不管成功或者失败都有响应)
3、分隔容忍(Partition tolerance)(系统中任意信息的丢失或失败不会影响系统的继续运行)
核心:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个
根据CAP原理分类NoSQL数据库
1、CA-单点集群,满足一致性,可用性的系统,通常在可扩展性上不强大
2、CP-满足一致性,分区容忍性的系统,通常性能不是特别高
3、AP-满足可用性,分区容忍性的系统,通常可能对一致性要求低一些
BASE
BASE(Basically Available,Soft-state,Eventually Consistent),是NoSQL数据库通常对可用性及一致性的弱要求原则
Basically Available - 基本可用
Soft-state - 软状态/柔性事务。“Soft-state”无连接,"Hard-state" 面向连接
Eventually Consistency - 最终一致性
分布式系统
分布式系统:由多台计算机和通信的软件组件通过计算机网络连接(本地网络和广域网)组成。分布式系统具有高度的内聚性和透明性
分布式计算
优点:
1、可靠性(容错):一台服务器的系统崩溃并不影响到其余的服务器
2、可扩展性:可以根据需求增加更多的机器
3、资源共享
4、灵活性:易于安装,实施,调试
5、更快的速度
6、开放系统
7、更高的性能
缺点:
1、故障排除:故障排除及问题诊断
2、软件:更少的软件支持是分布式计算系统的主要缺点
3、网络:网络基础设施的问题,如:传输问题,高负载,信息丢失等
4、安全性
数据库基础之NoSQL与RDBMS相关推荐
- MYSQL----(2) 数据库基础知识
数据库 1 定义 数据库,可以简单的解释为:高效的存储和处理数据的介质(主要分为磁盘和内存两种). 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存 ...
- Linux Mysql 数据库基础
目录 Linux Mysql 数据库基础 一.数据库 数据库简介 数据库的分类 数据库的发展史 数据库系统发展阶段 DBMS 数据库管理系统 数据库管理系统的优点 数据库管理系统的基本功能 数据库系统 ...
- Web阶段--Oracle数据库基础知识点
Web阶段–Oracle数据库基础知识点 一.数据库 1.定义 是一个数据存储管理的软件,全称rdbms(关系数据库管理系统),简称数据库(db) 2.为什么需要应用数据库? 1.现有文本文件存放数据 ...
- MySQ快速基础篇_MySQL数据库基础
MySQ快速基础篇_MySQL数据库基础 文章目录 MySQ快速基础篇_MySQL数据库基础 MySQL数据库基础 学习目录 学习目标 一.数据库概述 1.数据库介绍 2.数据库分类 ☆ 关系型数据库 ...
- 数据库知识【第1期】-- 数据库基础
数据库知识[第1期]-- 数据库基础 本篇是数据库系列的第1篇,数据库分为关系型数据库和非关系型数据库,今天我们先开始梳理数据库的基础部分. 1.数据管理发展阶段 数据库简单理解就是数据管理的仓库.而 ...
- Mysql数据库基础入门教程
Mysql数据库基础入门教程 课程链接:https://www.bilibili.com/video/BV1Qb411x7Yc?p=1 2022/1/22start 一.数据库简介 1.什么是数据库? ...
- mysql数据库参考文献2018_2018-4-25mysql数据库基础
2018-4-25mysql数据库基础 新建 模板 小书匠 1. 数据库分类 RDBMS:关系数据库管理系统 非结构化和半结构化的数据:NoSQL(Not only SQL) 2. mysql简介 1 ...
- 数据库基础笔记(MySQL)1 —— 基础概念
(写算法题目把自己心态搞崩了,休息两天顺便把之前学的数据库手写笔记记录在网上方便查阅,因为只是自己学的时候做的笔记,如果有错误欢迎大家指正,过两天再重回算法的怀抱哈哈) 如何下载配置 这个感觉视频讲的 ...
- Oracle数据库基础入门《二》Oracle内存结构
Oracle数据库基础入门<二>Oracle内存结构 Oracle 的内存由系统全局区(System Global Area,简称 SGA)和程序全局区(Program Global Ar ...
最新文章
- openwrt下让telnetl与ssh(dropbear)共存
- case when判断大于某值_Python 代码判断逻辑太复杂?这里有几条最佳实践和技巧...
- G2 2.0 更灵活、更强大、更完备的可视化引擎!
- VS2010附加进程调试DLL时断点无法断下的解决方法
- sql游标以及异常处理
- 阿里云 云服务器ECS(CentOS 8.0 64位) 安装 MySQL 数据库
- 【生活资讯】5款好用的生活学习类APP
- 封装的三级联动及应用
- curlopt_ssl_verifypeer后https还是验证不过_为什么 HTTPS 需要 7 次握手和 9 倍时延
- mysql查询当天数据(上周、本月、上个月、距离当前现在6个月的数据)
- R2: 相关系数、复相关系数及半偏相关系数之间的联系
- 服务器游戏协议,游戏服务器tcp协议
- 作为一个面试官如何准备一场面试
- 近几年Linux TCP相关的漏洞被夸大了
- HUAWEI华为MateBook13 2020锐龙版R5集显16G+512GB(HNL-WFQ9)原装出厂系统恢复原厂系统
- ANSYS Electronic各类
- WhatsApp是啥软件?WhatsApp是什么意思?
- Ubuntu18.04 安装Proverif 和Syther_tool
- editplus java语法_用Editplus开发Java
- TOFEL Speaking 托福口语 —— 模板