【数据库】关系数据库与非关系数据库的优缺点汇总
1、关系数据库
1.1、什么是关系数据库?
- 关系型数据库是依据关系模型来创建的数据库。
- 所谓关系模型就是“一对一、一对多、多对多”等关系模型,关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。
- 关系型数据可以很好地存储一些关系模型的数据,比如学校老师和学生的数据(“多对多”),一本书对应多个作者(“一对多”),一本书对应一个出版日期(“一对一”)。
- 关系模型是我们生活中能经常遇见的模型,存储这类数据一般用关系型数据库。
- 关系模型包括数据结构(数据存储的问题,二维表)、操作指令集合(SQL语句)、完整性约束(表内数据约束、表与表之间的约束)。
1.2、关系数据库的代表
(1)Oracle :
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。
(2)SQL Server
美国Microsoft公司推出的一种关系型数据库系统。SQL Server是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。
(3)Sybase
基于客户/服务器体系结构的数据库。
一般的关系数据库都是基于主/从式的模型的。在主/从式的结构中,所有的应用都运行在一台机器上。用户只是通过终端发命令或简单地查看应用运行的结果。
而在客户/服务器结构中,应用被分在了多台机器上运行。一台机器是另一个系统的客户,或是另外一些机器的服务器。这些机器通过局域网或广域网联接起来。
(4)Access
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。
(5)DB2
DB2是IBM一种分布式数据库解决方案。
DB2就是IBM开发的一种大型关系型数据库平台。它支持多用户或应用程序在同一条SQL语句中查询不同database甚至不同DBMS中的数据
(6)MySQL
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。
(7)VFP
Visual FoxPro ,是Microsoft公司从Fox公司的FoxBase数据库软件经过数次改良,并且移植到Windows之后,得来的应用程序开发软件,主要用于开发数据管理与运算等方面的软件。VFP是Microsoft公司推出的最新可视化数据库管理系统平台,是功能特别强大的32位数据库管理系统。它提供了功能完备的工具、极其友好的用户界面、简单的数据存取方式、独一无二的跨平台技术,具有良好的兼容性、真正的可编译性和较强的安全性,是目前最快捷、最实用的数据库管理系统软件之一。
(8)FoxPro
FoxPro是一种功能强大的数据库,是当今最受欢迎的数据库管理软件之一.
FoxPro比FoxBASE在功能和性能上又有了很大的改进,主要是引入了窗口、按纽、列表框和文本框等控件,进一步提高了系统的开发能力。
1.3、优缺点
优点:
(1)数据之间有关系,进行数据的增删改查的时候是非常方便的
(2)关系型数据库是有事务操作的,保证数据的完整性和一致性。
缺点:
(1)因为数据和数据是有关系的,底层是运行了大量的算法
(2)大量算法会降低系统的效率,会降低性能
(3)面对海量数据的增删改查的时候会显的无能为力
(4)海量数据对数据进行维护变得非常的无力
2、非关系数据库
2.1、什么是非关系数据库?
- 非关系型数据库主要是基于“非关系模型”的数据库(由于关系型太大,所以一般用“非关系型”来表示其他类型的数据库)
- 非关系型模型比如有:
- 列模型:存储的数据是一列列的。关系型数据库以一行作为一个记录,列模型数据库以一列为一个记录。(这种模型,数据即索引,IO很快,主要是一些分布式数据库)
- 键值对模型:存储的数据是一个个“键值对”,比如name:liming,那么name这个键里面存的值就是liming
- 文档类模型:以一个个文档来存储数据,有点类似“键值对”。
2.2、 非关系数据库的分类
2.3、 常见的NoSQL数据库
(1)MongoDB:面向文档的数据库
MongoDB是个面向文档的数据库,使用JSON风格的数据格式。它非常适合于网站的数据存储、内容管理与缓存应用,并且通过配置可以实现复制与高可用性功能。
MongoDB具有很强的可伸缩性,性能表现优异。它使用C++编写,基于文档存储。此外,MongoDB还支持全文检索、跨WAN与LAN的高可用性、易于实现的复制、水平扩展、基于文档的丰富查询、
在数据处理与聚合等方面具有很强的灵活性。
(2)CouchDB:面向文档的数据库
这也是Apache软件基金会的一个项目,CouchDB是另一个面向文档的数据库,以JSON格式存储数据。它兼容于ACID,像MongoDB一样,CouchDB也可以用于存储网站的数据与内容,以及提供缓存等。
你可以通过JavaScript在CouchDB上运行MapReduce查询。此外,CouchDB还提供了一个非常方便的基于Web的管理控制台。它非常适合于Web应用。
(3)Redis:键值存储
这是个开源、高级的键值存储。由于在键中使用了hash、set、string、sorted set及list,因此Redis也称作数据结构服务器。这个系统可以帮助你执行原子操作,比如说增加hash中的值、集合的交集运算、字符串拼接、差集与并集等。Redis通过内存中的数据集实现了高性能。此外,该数据库还兼容于大多数编程语言。
(4)Riak
Riak是最为强大的分布式数据库之一,它提供了轻松且可预测的伸缩能力,向用户提供了快速测试、原型与应用部署能力,从而简化应用的开发过程。
(5)Cassandra:面向列的数据库
这是个Apache软件基金会的项目,Cassandra是个分布式数据库,支持分散的数据存储,可以实现容错以及无单点故障等。换句话说,“Cassandra非常适合于那些无法忍受数据丢失的应用”。
2.4、优缺点
优点:
(1)海量数据的增删改查是可以的
(2)海量数据的维护和处理非常轻松
缺点:
(1)数据和数据没有关系,他们之间就是单独存在的
(2)非关系数据库没有关系,没有强大的事务关系,没有保证数据的完整性和安全性
3、两种数据库对比
【数据库】关系数据库与非关系数据库的优缺点汇总相关推荐
- 【数据库学习】非关系数据库(NoSQL:“non-relational”)
1,概念 NoSQL,泛指非关系型的数据库. NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题. 关系数据库和非关系数据库区别: 数据库类型 定义 优点 缺 ...
- 关系数据库和非关系数据库
什么是数据库? 数据库顾名思义就是存放数据的仓库,用来存放数据和管理数据的一个"软件". DBMS(数据库管理系统) 数据库的管理软件,用来科学的管理数据.维护和获取 为什么要学习 ...
- php的关系数据库,php – 从关系数据库到非关系数据库的数据规范化的最佳实践...
我正在运行一个开始超越简单性能和Tunning的网站.这是一个PHP应用程序,MysqL作为后端.正确调整MysqL并优化代码. 问题是,我发现我可以使用某种非规范化来加快速度. 假设您有一个类似于e ...
- 关系数据库与非关系数据库的区别
当前主流的关系型数据库有Oracle.DB2.Microsoft SQL Server.Microsoft Access.MySQL等. 非关系型数据库有 NoSql.Cloudant. nosql和 ...
- NoSQL数据库探讨 - 为什么要用非关系数据库?
源地址:http://robbin.javaeye.com/blog/524977 随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速.而传 ...
- NoSQL数据库探讨之一 - 为什么要用非关系数据库?
随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速.而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2. ...
- NoSQL数据库探讨- 为什么要用非关系数据库?
随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速.而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2. ...
- 为什么要用非关系数据库?
随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速.而传统的关系数据库在应付 web2.0网站,特别是超大规模和高并发的SNS类型的web2 ...
- 常见的几个非关系型数据库(NoSQL)、非关系型和关系型的区别
目录 非关系型数据库的特点 -------------------------------. 1.关系型数据库 ------------------------------------ 2. 关系型 ...
最新文章
- winscp连接虚拟机Linux被拒绝的问题解决方案
- NSDictionary
- SQL终极优化(包括很多非索引方面的优化和原理)
- 二级Python 第三方库
- Debian8 Linux上安装SSH服务器并配置sshd_config文件启用root ssh登录
- 经验总结 | PyCharm 详细使用指南!
- Unity UGUI实现鼠标拖动图片
- 数据结构:列表(双向链表)的了解与示例
- java 获取服务器IP地址及MAC地址
- 让一让,神州泰岳要进化了
- pythonATM,购物车项目实战4-settings配置设置
- MySQL 学习四 SQL优化
- 十、决策树算法简介-泰坦尼克号乘客生存预测
- 从修身齐家治国平天下谈分布式系统中的限流与熔断
- 机器学习实战(七):Ensemble Learning and Random Forests
- 10款国外免费网站在线监控服务工具
- C语言基础入门48篇_18_使用循环移动游戏人物(屏幕符号运动、while(1){}进行实时响应,if(表达式){},switch(表达式){},windows的API及API进行自行封装使)
- hive 下一行时间减去上一行,多行时间减法
- iphone5g信号测试软件,不用担心信号了!iPhone12网速惊人,5G频段碾压华为
- JGI Phytozome 批量下载的几种方法
热门文章
- 关于保存数据时,提取数据特征的数量和样本数不匹配的原因
- 不要再使用MD5和SHA1加密密码了!
- 高薪聘请“软件测试”专业老师“在线修改测试人简历”、逆风下测试人的简历如何才能脱颖而出
- 离散数学考前复习:(二)数理逻辑
- 抓取个人支付宝微信爬虫账单
- 计算机只能存储数字化的信息,琪小妹说科学:信息数字化的计算机
- Debian学习笔记——shell
- 第17章- 5~8 钣金实体书架与刚体平台接触分析、材料弹塑性分析(网格控制、刚体接触设置,刚体只能作为接触的目标面、爆炸显示、载荷步设置、残余应力)
- 拼多多员工曝离职黑幕:要走可以,要离职证明,没有!
- 关于Java Web项目的技术点探讨