关系型数据库与非关系型数据库
Posted 软件测试呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关系型数据库与非关系型数据库相关的知识,希望对你有一定的参考价值。
关系型数据库与非关系型数据库
1.关系型数据库
关系型数据库是一个结构化的数据库,采用了关系模型来组织数据的数据库。关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
什么是结构化数据?
结构化数据指的是由二维表结构来逻辑表达和实现的数据,严格遵循数据格式与长度规范,也称作为行数据,特点为:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的
例如:
关系型数据库完美契合结构化数据的特点,关系型数据库也是结构化数据最主要的存储与管理引擎。
关系型数据库的优点:
1.便于理解:二维表构造非常贴近逻辑,关系模型相对网状、层次等其他模型来说更容易理解
2.使用方便:通用的SQL语言使得操作关系型数据库非常方便
3.易于维护:全部由表结构组成,文件格式一致
4.数据稳定:数据持久化到磁盘,没有丢失数据风险
关系型数据库的缺点:
1.对于海量信息的查询效率教低,读写能力较差
2.网站高并发读写需求对于传统关系型数据库来说,硬盘I/O是一个很大的瓶颈
3.灵活度欠佳:为了保证数据库的ACID特性,必须尽量按照其要求的范式进行设计,关系型数据库中的表都是存储一个格式化的数据结构。
常用的关系型数据库
Oracle:是世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能,作为一个关系数据库,它是一个完备关系的产品,作为分布式数据库它实现了分布式处理功能。
Microsoft SQL Server,Mysql,PostgreSQL,DB2,
MySQL:mysql 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,使得很多公司都采用 MySQL 数据库以降低成本。
Microsoft SQL Server:SQL Server 是一个关系数据库管理系统,是一个全面的数据库平台,使用集成的商业智能BI工具提供了企业级的数据管理。
DB2:DB2数据库核心又称作db2公共服务器,采用多进程多线索体系结构,可以运行于多种操作系统之上,并分别根据相应平台环境作了调整和优化,以便能够达到较好的性能。
Microsoft Access:是由微软发布的关系数据库管理系统,微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。
PostgreSQL:PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS),在灵活的BSD许可证下发行。PostgreSQL 的 Slogan 是 “世界上最先进的开源关系型数据库”。
2.非关系型数据库(NoSQL)
所谓非关系型数据库,其实是相对于关系型数据库而言的,通常用于存储那些类型不固定的,也没有什么规律的数据。它严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。企业每天都产生大量的数据,非关系型数据库的应用非常广泛,应用场景也非常多,例如:办公文档、文本、图片、html、各类报表、视频音频等。
非关系型数据库的优点:
1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛 2、性能优:nosql是根据键值对的,不用历经sql层的分析,因此 性能非常高。 3、扩展性高:基于键值对,数据之间耦合度极低,因此容易水平扩展。 4、成本低:nosql数据库部署简单,基本都是开源软件
非关系型数据库的缺点:
1、不提供sql支持,学习和使用成本较高 2、无事务处理机制 3、数据结构相对复杂,复杂查询不容易实现
常用的非关系型数据库:
Redis:Redis是一个键值存储。此外,它是最著名的键值存储。Redis支持一些c++、php、Ruby、Python、Perl、Scala等等。Redis是用C语言编写的。此外,它是根据BSD授权的。
MongoDB:MongoDB是最著名的NoSQL数据库。它是一个面向文档的开源数据库。MongoDB是一个可伸缩和可访问的数据库。它在c++中。MongoDB同样可以用作文件系统。在MongoDB中,javascript可以作为查询语言使用。通过使用sharding MongoDB水平伸缩。它在流行的JavaScript框架中非常有用。
HBase:HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。
Neo4j:Neo4j被称为原生图数据库,因为它有效地实现了属性图模型,一直到存储层。这意味着数据完全按照白板的方式存储,数据库使用指针导航和遍历图。Neo4j有数据库的社区版和企业版。企业版包括Community Edition必须提供的所有功能,以及额外的企业需求,如备份、集群和故障转移功能。
Elasticsearch:Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。
关系型数据库和非关系型数据库二者各有优劣,取长补短,在合适的场景下选择合适的存储引擎才是正确的做法。
最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!
这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……
如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。
点击文末小卡片领取 |
敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。
自学推荐B站视频:
零基础转行软件测试:自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!
自动化测试进阶:已上岸华为,涨薪20K,2022最适合自学的python自动化测试教程,自己花16800买的,无偿分享
以上是关于关系型数据库与非关系型数据库的主要内容,如果未能解决你的问题,请参考以下文章