PostgreSQL介绍与安装

一、PostgreSQL数据库介绍

1、什么是数据库?

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。

我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。

所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

ORDBMS(对象关系数据库系统)是面向对象技术与传统的关系数据库相结合的产物,查询处理是 ORDBMS 的重要组成部分,它的性能优劣将直接影响到DBMS 的性能。

ORDBMS在原来关系数据库的基础上,增加了一些新的特性。

RDBMS 是关系数据库管理系统,是建立实体之间的联系,最后得到的是关系表。

OODBMS 面向对象数据库管理系统,将所有实体都看成对象,并将这些对象类进行封装,对象之间的通信通过消息 OODBMS 对象关系数据库在实质上还是关系数据库 。

PostgreSQL是一个功能强大的开源关系型数据库管理系统(RDBMS),它具有良好的可扩展性、稳定性和安全性。

2、ORDBMS 术语

在我们开始学习 PostgreSQL 数据库前,让我们先了解下 ORDBMS 的一些术语:

  • 数据库: 数据库是一些关联表的集合。
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  • 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
  • **行:**一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  • **外键:**外键用于关联两个表。
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • **索引:**使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

3、PostgreSQL 特征

  • 函数:通过函数,可以在数据库服务器端执行指令程序。

  • 索引:用户可以自定义索引方法,或使用内置的 B 树,哈希表与 GiST 索引。

  • 触发器:触发器是由SQL语句查询所触发的事件。如:一个INSERT语句可能触发一个检查数据完整性的触发器。触发器通常由INSERT或UPDATE语句触发。

  • **多版本并发控制:**PostgreSQL使用多版本并发控制(MVCC,Multiversion concurrency control)系统进行并发控制,该系统向每个用户提供了一个数据库的"快照",用户在事务内所作的每个修改,对于其他的用户都不可见,直到该事务成功提交。

  • 规则:规则(RULE)允许一个查询能被重写,通常用来实现对视图(VIEW)的操作,如插入(INSERT)、更新(UPDATE)、删除(DELETE)。

  • 数据类型:包括文本、任意精度的数值数组、JSON 数据、枚举类型、XML 数据

    等。

  • 全文检索:通过 Tsearch2 或 OpenFTS,8.3版本中内嵌 Tsearch2。

  • NoSQL:JSON,JSONB,XML,HStore 原生支持,至 NoSQL 数据库的外部数据包装器。

  • 数据仓库:能平滑迁移至同属 PostgreSQL 生态的 GreenPlum,DeepGreen,HAWK 等,使用 FDW 进行 ETL。

4、PostgreSQL 特点

  • 开源性:PostgreSQL是开源软件,可以免费获取和使用。
  • 关系型数据库:支持关系型数据模型,使用SQL语言进行数据操作。
  • 可扩展性:支持丰富的扩展功能和插件,可以满足各种复杂的数据处理需求。
  • 事务支持:具有强大的事务处理能力,支持ACID(原子性、一致性、隔离性、持久性)属性,确保数据的完整性和一致性。
  • 多版本并发控制(MVCC):支持多个事务同时对同一数据进行读写操作,提高并发访问性能。
  • 复杂查询:支持复杂的查询操作,包括联合查询、子查询、聚合函数等。
  • 完整的数据类型支持:支持丰富的数据类型,包括基本数据类型、数组、JSON等。
  • 安全性:提供丰富的安全特性,包括访问控制、SSL支持、数据加密等。
  • 可定制性:提供丰富的可定制选项和配置参数,可以根据具体需求进行灵活配置。

二、PosetgreSQL与其他数据比较

PostgreSQL、MySQL和Oracle是三种常见的关系型数据库管理系统(RDBMS),它们在一些方面有着相似之处,但在很多方面也存在着显著的差异。以下是它们之间的比较:

1、开源性和许可证

  • PostgreSQL是一种开源数据库,采用的是PostgreSQL许可证,允许用户自由使用、修改和分发。
  • MySQL也是开源的,采用的是GNU通用公共许可证(GPL),但也有商业许可证版本由Oracle提供。
  • Oracle是一种闭源的商业数据库,需要购买许可证才能使用。

2、数据完整性和约束

  • PostgreSQL在这方面非常严格,支持多种约束、外键、触发器和存储过程,可以确保数据的完整性和一致性。
  • MySQL在默认情况下对数据完整性的支持较弱,但可以通过设置来实现一定程度的约束。
  • Oracle提供了强大的数据完整性支持,包括复杂的约束和触发器。

3、功能和扩展性

  • PostgreSQL在功能和扩展性方面非常强大,支持复杂的数据类型(如数组、JSON、XML)、全文搜索、地理空间数据和自定义扩展。PostgreSQL还支持主从复制、流复制、逻辑复制等方式实现数据备份和高可用性。可以通过内置的或第三方的工具实现集群部署和自动故障转移。
  • MySQL在功能方面较为简化,但在处理简单的事务时性能较好。它支持存储过程、触发器和视图,但功能相对较少。
  • Oracle在功能和扩展性方面也非常强大,支持复杂的企业级应用需求,包括高级分析、数据挖掘和大规模数据处理。

4、性能和扩展性

  • 在大型企业级应用中,Oracle通常提供了出色的性能和扩展性,但也伴随着高昂的成本。
  • PostgreSQL在处理复杂查询和高并发时表现优异,对于读写均衡的应用具有良好的性能。
  • MySQL在处理简单查询和读密集型应用时表现良好,但在复杂查询和高并发情况下性能可能有所下降。

5、存储引擎和事务管理

  • PostgreSQL使用MVCC(多版本并发控制)来实现事务隔离,支持多种存储引擎。
  • MySQL拥有多种存储引擎,如InnoDB、MyISAM等,可以根据需求选择合适的引擎。
  • Oracle拥有自己的存储引擎和事务管理机制,提供了高度可靠的事务处理和数据保护。

6、适用场景

  • PostgreSQL适用于需要高度可定制性和复杂查询的应用,如大型企业应用和数据仓库。
  • MySQL适用于需要快速读取和简单事务处理的应用,如Web应用和小型企业应用。
  • Oracle适用于大型企业级应用,如金融系统和电信系统等对性能和可用性要求较高的应用。

三、PosetgreSQL下载与安装

1、下载与安装

  • 官网

    • https://www.postgresql.org/
  • 下载地址

    • Windows 上安装 PostgreSQ,在这里我们使用 EnterpriseDB 来下载安装,EnterpriseDB 是全球唯一一家提供基于 PostgreSQL 企业级产品与服务的厂商。
    • https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
  • 一路下一步(中间有个设置密码的要记住咯),但是记得最后一步有个选项不要勾选,如下图

在这里插入图片描述

2、连接服务器

(1)pgAdmin4连接

下载完会发现多了很多东西,首先我们先打开pgAdmin4。

在这里插入图片描述

打开看到有个Server下面会有个PostgreSQL 16,双击,会弹出验证密码的输入框,输入之前安装设置的密码即可,连接成功就是下面的界面。

在这里插入图片描述

(2)SQL Shell连接

现在打开上面的SQL Shell,按照下面输入即可,口令就是你安装设置的密码。

在这里插入图片描述

(3)Navicat连接

上面两种都是PostgreSQL自带的,通过Navicat连接的话,最好是17版本及以上(因为我之前16版本连接失败了),首先在连接里面选择PostgreSQL。

在这里插入图片描述

输入连接名称,用户名默认就是postgres,密码就是安装时候设置的,然后就是测试连接,出现连接成功就可以直接连接了。

在这里插入图片描述

连接成功

在这里插入图片描述

其实还有一种cmd连接的,但是太麻烦了,懒得弄了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值