关系型数据库与非关系型数据库概论【PostgreSQL】

Part1.什么是PostgreSQL

PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS)。

PostgreSQL 的 Slogan 是 "世界上最先进的开源关系型数据库"。

它支持标准 SQL 以及各种高级特性,如事务处理、外键、触发器、视图和多版本并发控制(MVCC)。PostgreSQL 的设计目标是提供高性能和可靠性,使其成为处理大规模数据和复杂查询的理想选择。

Part2.什么是关系型数据库

一、简介:

关系型数据库(Relational Database,简称 RDB)是一种以关系(即表格)为基础的数据库,它采用了关系代数等数学概念和方法来处理数据。关系型数据库最早由 E.F. Codd 在 1970 年提出,其核心思想是将数据存储在由多个表格组成的关系中,每个表格包含多行数据和多个列(即属性),每个属性只有一种数据类型。

二、关系型数据库的存储方式

传统的关系型数据库采用表格的储存方式,数据以行和列的方式进行存储,要读取和查询都十分方便。

三、关系型数据库的优点

        关系型数据库最大的优点就是数据结构清晰、易于理解、容易维护,能够确保数据的一致性和完整性。另外,关系型数据库还支持 SQL(Structured Query Language)语言,这是一种用于查询和操作数据库的标准语言,几乎所有的关系型数据库都支持 SQL。

优点:
1. 数据结构清晰:关系型数据库采用了表格形式来存储数据,每个表格都有固定的列和行,这种结构非常清晰易懂。同时,表格之间的关系也很清晰,通过外键可以将不同的表格关联起来,这样可以更好地管理和维护数据。
2. 支持 SQL:SQL 是一种标准的查询和操作关系型数据库的语言,几乎所有的关系型数据库都支持 SQL。SQL 语言简单易学,用户可以通过 SQL 查询语句来访问和操作数据库,而不需要编写复杂的程序代码。
3. 数据一致性和完整性:关系型数据库支持事务和约束,可以确保数据的一致性和完整性。在关系型数据库中,用户可以定义各种约束,比如主键、外键、唯一性约束、非空约束等,这些约束可以防止数据的重复和损坏,确保数据的完整性。
4. 可扩展性:由于关系型数据库采用了模块化和分层结构,因此可以很容易地进行扩展。用户可以添加新的表格、列或索引,也可以对已有的表格或列进行修改和删除,而不会影响到整个系统的稳定性。
缺点:
1. 性能问题:由于关系型数据库采用了表格形式来存储数据,因此在处理大量数据时会变得较慢。此外,关系型数据库还需要维护各种约束和索引,这也会影响数据库的性能。
2. 不适合大规模数据:关系型数据库主要是针对结构化数据而设计,对于非结构化数据或大规模数据处理不太方便。在处理大规模数据时,关系型数据库需要进行分表、分区等操作,这会增加系统的复杂度和维护成本。
3. 不适合分布式环境:关系型数据库在分布式环境下的表现不佳,由于需要维护事务的一致性和完整性,因此在分布式环境下会出现性能和可扩展性问题。

四、关系型数据库的应用

关系型数据库被广泛应用于企业信息管理、金融系统、人力资源管理、学术研究等领域。常见的关系型数据库包括 MySQL、Oracle、Microsoft SQL Server、PostgreSQL 和 SQLite 等。

五、常用关系型数据库

MySQL、MariaDB(MySQL的代替品)、

Percona Server(MySQL的代替品·)、PostgreSQL、Microsoft Access、Google Fusion Tables、SQLite、DB2、FileMaker、Oracle、SQL Server、INFORMIX、Sybase、dBASE、Clipper、FoxPro、foshub。

由于几乎所有的数据库管理系统都配备了一个开放式数据库连接(ODBC)驱动程序,令各个数据库之间得以互相集成。


 

Part3.什么是非关系型数据库

NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSql数据库在特定的场景下可以发挥出难以想象的高效率和高性能,它是作为对传统关系型数据库的一个有效的补充。

一、非关系型数据库种类

1. 键值存储数据库(key-value)

键值数据库就类似传统语言中使用的哈希表。可以通过key来添加、查询或者删除数据库,因为使用key主键访问,所以会获得很高的性能及扩展性。键值数据库主要使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署、高并发。

2. 列存储(Column-oriented)数据库

列存储数据库将数据存储在列族中,一个列族存储经常被一起查询的相关数据,比如人类,我们经常会查询某个人的姓名和年龄,而不是薪资。这种情况下姓名和年龄会被放到一个列族中,薪资会被放到另一个列族中。

3. 面向文档(Document-Oriented)数据库

文档存储是基于键值对存储的,其结构较之于键值对存储更为复杂,可以说在键值对的基础上更深入了一步。文档存储是假定一个特定文档的结构可以使用一种特定的模式来说明,它的出现较之于其他的NoSQL数据库类型来说是最自然的,因为设计这种方式的最初的目的就是用来存储日常文档的,并且这种方式支持对于那些通常已经聚合的数据进行复杂的查询和计算。

4. 图形数据库(Graph Database)

存储关于图形、网络的信息,例如社会关系、路线图、交通链接。示例:Neo4j,AllegroGraph。

二、常用非关系型数据库

非关系型数据库(NoSQL)

redis、MongoDB、Memcache、HBase、BigTable、Cassandra、CouchDB、Neo4J

redis: (非关系型数据库----键值数据库)
MongoDB:(非关系型数据库----文档数据库)
HBase:(非关系型数据库----列存储数据库)
Neo4J : (非关系型数据库----图形数据库)

Part4.非关系型数据库和关系型数据库的区别

关系型数据库:

关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织

优点:

1、易于维护:都是使用表结构,格式一致;

2、使用方便:SQL语言通用,可用于复杂查询;

3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。

缺点:

1、读写性能比较差,尤其是海量数据的高效率读写;

2、固定的表结构,灵活度稍欠;

3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。


非关系型数据库

非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。

优点:

1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。

2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;

3、高扩展性;

4、成本低:nosql数据库部署简单,基本都是开源软件。

缺点:

1、不提供sql支持,学习和使用成本较高;

2、无事务处理;

3、数据结构相对复杂,复杂查询方面稍欠。

非关系型数据库的分类和比较:

1、key-value型 (针对高性能并发读写场景)

2、文档型 (针对海量数据访问场景)

3、列式数据库

4、图形数据库

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值