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连接的,但是太麻烦了,懒得弄了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/864360.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

倒装COB显示屏与传统SMD显示屏安装方式有哪些不同?

COB显示屏与传统SMD显示屏是商业显示领域中非常重要的两种载体,在前面的文章当中我们为大家阐述了倒装COB显示屏的技术特点,今天跟随COB显示屏厂家深圳市中品瑞科技一起来看看,COB显示屏的安装与传统LED显示屏的安装有哪些不同? 一…

数据结构之“刷链表题”

🌹个人主页🌹:喜欢草莓熊的bear 🌹专栏🌹:数据结构 目录 前言 一、相交链表 题目链接 大致思路 代码实现 二、环形链表1 题目链接 大致思路 代码实现 三、环形链表2 题目链接 大致思路 代码实…

爬虫逆向实战(41)-某巢登陆(AES、MD5、RSA、滑块验证码)

一、数据接口分析 主页地址:某巢 1、抓包 通过抓包可以发现在登录时,网站首先请求captcha/querySlideImage/来获取滑块验证码的图片,然后请求captcha/checkCode/接口来验证滑块验证码。滑块验证码校验成功后,请求noshiro/getPu…

论坛万能粘贴手(可将任意文件转为文本)

该软件可将任意文件转为文本。 还原为原文件的方法:将得到的文本粘贴到记事本,另存为UUE格式,再用压缩软件如winrar解压即可得到原文件。建议用于小软件。 下载地址:https://download.csdn.net/download/wgxds/89505015 使用演示…

Kafka 位移

Consumer位移管理机制 将Consumer的位移数据作为一条条普通的Kafka消息,提交到__consumer_offsets中。可以这么说,__consumer_offsets的主要作用是保存Kafka消费者的位移信息。使用Kafka主题来保存位移。 消息格式 位移主题就是普通的Kafka主题。也是…

HCIE实验这样玩太高级了吧?实现FRR+BFD+OSPF与BGP的联动

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 晚上好,我的网工朋友。 今天搞个HCIE实验玩玩,上回分享了个张总讲解的防火墙配置实验思路,后来还特地搞了个视…

GPT-4o文科成绩超一本线,理科为何表现不佳?

目录 01 评测榜单 02 实际效果 什么?许多大模型的文科成绩竟然超过了一本线,还是在竞争激烈的河南省? 没错,最近有一项大模型“高考大摸底”评测引起了广泛关注。 河南高考文科今年的一本线是521分,根据这项评测&…

【TB作品】打地鼠游戏,ATMEGA16单片机,Proteus仿真 打地鼠游戏

11个按键LCD1602显示器9个灯蜂鸣器打地鼠小游戏就是九个灯泡,对应九个按键,灯泡有红黄蓝,每间隔一会儿就会亮一个灯,代表地鼠冒出来,按一下按键让灯泡灭掉代表打地鼠,红的三分,黄的两分&#xf…

一句话介绍什么是AI智能体?

什么是AI智能体? 一句话说就是利用各种AI的功能的api组合,完成你想要的结果。 例如你希望完成一个关于主题为啤酒主题的小红书文案图片,那么它就可以完成 前面几个步骤类似automa的组件,最后生成一个结果。

IT专业入门——高考假期预习指南,我来做你的引路人

目录 认识IT知识体系 什么是计算机 按规模、速度和功能分类 按照其工作模式分类 硬件 操作系统 编程语言 对学习语言的一点建议 对于学python的一点看法 网络 数据结构与算法 数据库 Web开发 Web前端 Web后端 基础预习指南 技术路线学习一览 学习资源推荐 刷…

开放式耳机哪个品牌最好?2024精选5款热门品牌,新手必看的开放式耳机指南!

最近想买开放式耳机,但面对众多品牌和型号,真的太难挑选了?别担心,作为耳机发烧友和测评专家,我为大家带来了几款热门开放式耳机的横向对比。从6个方面告诉大家怎么样去挑选开放式耳机,并且推荐了几款我觉得…

深度学习 --- stanford cs231学习笔记八(训练神经网络之dropout)

6,dropout 6,1 线性分类器中的正则化 在线性分类器中,我们提到过正则化,其目的就是为了防止过度拟合。例如,当我们要用一条curve去拟合一些散点的数据时,常常是不希望训练出来的curve过所有的点&#xff0c…

<电力行业> - 《第1课:电力行业的五大四小》

1 什么是电力行业的五大四小? 我们常说的电力行业的五大四小,指的是电力行业有实力的公司,分为:较强梯队的五大集团、较弱梯队的四小豪门。 五个实力雄厚的集团,分别是: 中国华能集团公司中国大唐集团公…

文件操作~

目录 1.为什么使用文件? 2.什么是文件? 2.1 程序文件 2.2 数据文件 2.3 文件名 3.⼆进制文件和文本文件? 4.文件的打开和关闭 4.1 流和标准流 4.1.1 流 4.1.2 标准流 4.2 文件指针 4.3 ⽂件的打开和关闭 5.文件的顺序读写 5.1 …

QT+winodow 代码适配调试总结(二)

已经好多年了, linux环境下不同版本的QT程序开发和部署,突然需要适配window环境程序调试,一堆大坑,还真是一个艰巨的任务,可是kpi下的任务计划,开始吧!! 1、首先我们自定义的动态库…

【PYTORCH,TENSORFLOW环境配置,安装,自用代码】

conda -V(查看版本,这步不要也罢) conda create -n test python3.7(创建环境) conda activate test(激活) conda env list(查看自己的环境) nvidia-smi(查…

以太网电缆专家手册:掌握RJ45连接器压接的艺术与科学

在这个日新月异的数字时代,正确的连接方式至关重要,而RJ45连接器正是实现这一点的关键工具之一。无论您是在家中布置办公网络,还是在公司部署复杂的IT基础架构,或是进行任何需要设备间高效数据传输的活动,掌握如何正确…

【深度学习】调整加/减模型用于体育运动评估

摘要 一种基于因果关系的创新模型,名为调整加/减模型,用于精准量化个人在团队运动中的贡献。该模型基于明确的因果逻辑,将个体运动员的价值定义为:在假设情景下,用一名价值为零的球员替换该球员后,预期比赛…

获取onnx模型输入输出结构信息的3种方式:ONNX、onnxruntime、netron

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

每日Attention学习7——Frequency-Perception Module

模块出处 [link] [code] [ACM MM 23] Frequency Perception Network for Camouflaged Object Detection 模块名称 Frequency-Perception Module (FPM) 模块作用 获取频域信息,更好识别伪装对象 模块结构 模块代码 import torch import torch.nn as nn import to…