关系型数据库和非关系型数据库_自己的经典总结

自己遇到的问题:
1、非关系型数据库可以作为分布式数据库,那么问题来了,关系型数据库难道就不可以吗?(分布式架构系统了解一下)
2、java为关系型数据库提供的有JDBC的这样一个规范操作,那么java是否有为非关系型数据库有对应的规范?

(mysql,OceanBase(开源),Oracle的之间比较的根据)
数据库的根本区别是:
1、存储格式是否灵活
2、存储容量是否够用
3、高并发下的读写,数据库的性能是否能跟的上

分布式是啥?
1.分布式系统一定是由多个节点组成的系统。 其中,节点指的是计算机服务器,而且这些节点一般不是孤立的,而是互通的。
2.这些连通的节点上部署了我们的节点,并且相互的操作会有协同。

JDBC(Java Database Connectivity)是java提供面向关系型数据库的一个规范
一、关系型数据库
1、常见的关系型数据库有Oracle、MySQL,SqlServer,Microsoft Access,DB2等,在众多的这些数据库中,除了MySQL外其他都是收费的。但是MySQL后来被Oracle收购了。
2、 关系型数据库中的一系列二维的行和列组成表,方便用户理解。
所有的关系型数据库厂商采用有统一的标准语言SQL(即结构化查询语言),SQL支持CRUD(增,删,改,查)的操作。
3、关系型数据库强调ACID规则
(即:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability))

事务是由一组SQL语句组成的逻辑处理单元,ACID就是事务的四大属性!

4、被业界称为“LAMP“或“LNMP”组合
Linux作为操作系统,Apache 或Nginx作为 Web 服务器,MySQL 作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“或“LNMP”组合。

.脚本语言(JavaScript,VBscript等)介于HTML和C,C++,Java,C#等编程语言之间。
在Window环境下,CMD也算是一种脚本语言,在Linux环境下,我们最基础的操作也算是一种脚本语言。

SQL发展历史
在1970年代初,由IBM公司San Jose,California研究实验室的埃德加·科德发表将数据组成表格的应用原则(Codd’s Relational Algebra)。1974年,同一实验室的D.D.Chamberlin和R.F. Boyce对Codd’s Relational Algebra在研制关系数据库管理系统System R中,研制出一套规范语言-SEQUEL(Structured English QUEry Language),并在1976年11月的IBM Journal of R&D上公布新版本的SQL(叫SEQUEL/2)。1980年改名为SQL。
1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS数据库系统中也实现了SQL。
1986年10月,美国ANSI采用SQL作为关系数据库管理系统的标准语言(ANSI X3. 135-1986), 后为国际标准化组织(ISO)采纳为国际标准。

二、非关系型数据库
1、常见的非关系型数据库有MongoDB、Redis、Membase(新)
2、作用是可以作为分布式数据库

MongoDB是一个基于分布式文件存储 [1] 的数据库。由C++语言编写。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

关系型数据库的优点
1、支持SQL,学习成本低,不过每个关系型数据库有自己的方言;
2、有事务的ACID属性
3、可用于一个表以及多个表之间非常复杂的查询。
4、易于维护:都是使用表结构,格式一致;

关系型数据库的缺点
1、高并发读写时,传统的关系型数据库的硬盘I/O流是一个瓶颈。(可以采用读写分离,缓存,详细查看以下链接https://www.cnblogs.com/donlyluik/p/database_split.html)
2、固定的表结构,灵活度稍欠;

非关系型数据库的优点
1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快:nosql可以使用硬盘或者<<随机存储器>>作为载体,而关系型数据库只能使用硬盘;
3、高扩展性;
4、成本低:nosql数据库部署简单,基本都是开源软件。

非关系型数据库的缺点
1、没有事务的ACID属性
2、数据结构相对复杂,复杂查询方面稍欠。
3、不提供sql支持,学习和使用成本较高;

非关系型数据库的分类:
1、文档型
2、key-value型
3、列式数据库
4、图形数据库

发布了59 篇原创文章 · 获赞 1 · 访问量 757

猜你喜欢

转载自blog.csdn.net/weixin_43983411/article/details/103057932
今日推荐