PostgreSQL介绍与安装

news2024/11/15 11:35:39

一、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.coloradmin.cn/o/1883668.html

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

相关文章

JAVA医院绩效考核管理系统源码:系统优势、系统目的、系统原则 (自主研发 功能完善 可直接上项目)

JAVA医院绩效考核管理系统源码:系统优势、系统目的、系统原则 (自主研发 功能完善 可直接上项目) 医院绩效考核系统优势 1.实现科室负责人单独考核 对科室负责人可以进行单独考核、奖金发放。 2. 科室奖金支持发放到个人 支持奖金二次分配&…

同一个excel表格,为什么在有的电脑上会显示#NAME?

一、哪些情况会产生#NAME?的报错 1.公式名称拼写错误 比如求和函数SUM,如果写成SUN就会提示#NAME?报错。 2.公式中的文本值未添加双引号 如下图: VLOOKUP(丙,A:B,2,0) 公式的计算结果会返回错误值#NAME?,这是因为公式中文本…

GraphPad Prism生物医学数据分析软件下载安装 GraphPad Prism轻松绘制各种图表

Prism软件作为一款功能强大的生物医学数据分析与可视化工具,其绘图功能尤为突出。该软件不仅支持绘制基础的图表类型,如直观明了的柱状图、展示数据分布的散点图,以及描绘变化趋势的曲线图,更能应对复杂的数据呈现需求&#xff0c…

7-1作业

1.实验目的:完成字符收发 led.h #ifndef __GPIO_H__ #define __GPIO_H__#include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_uart.h"//RCC,GPIO,UART初始化 void init();//字符数据发送 void set_tt…

【2024 插件开发大赛】为 ONLYOFFICE 开发插件,赢取万元奖金!

我们发布了 2024 插件开发大赛:为 ONLYOFFICE 开发适合中国用户的插件,赢取税前5500 – 10000元的结项奖金与证书!阅读本文了解详情。 关于 ONLYOFFICE ONLYOFFICE 是一个国际开源项目,由领先的 IT 公司 Ascensio System SIA 开发…

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

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

算法基础入门 - 2.栈、队列、链表

文章目录 算法基础入门第二章 栈、队列、链表2.1 队列2.2 栈2.3 纸牌游戏2.4 链表如何建立链表?1.我们需要一个头指针(head)指向链表的初始。链表还没建立时头指针head为空2.建立第一个结点3.设置刚创建的这个结点的数据域(左半)和指针域(右半)4.设置头指针,头指针可方便…

构建高效的数字风控系统:应对现代网络威胁的策略与实践

文章目录 构建高效的数字风控系统:应对现代网络威胁的策略与实践1. 数字风控基本概念1.1 数字风控(数字化风控)1.2 数字风控的原理1.3 常见应用场景 2. 数字风控的必要性3. 构建高效的数字风控系统3.1 顶层设计与规划3.2 数据基础建设3.3 风险…

代码随想录第38天|动态规划

1049. 最后一块石头的重量 II 参考 备注: 当物体容量也等同于价值时, 01背包问题的含义则是利用好最大的背包容量sum/2, 使得结果尽可能的接近或者小于 sum/2 等价: 尽可能的平分成相同的两堆, 其差则为结果, 比如 (abc)-d, (ac)-(bd) , 最终的结果是一堆减去另外一堆的和, 问…

Nik Collection by DxO:摄影师的创意利器与调色宝典

在数码摄影的世界里,后期处理是摄影师们展现创意、调整细节、提升作品质量的重要步骤。而Nik Collection by DxO作为一款由DxO公司开发的强大照片编辑插件套件,为摄影师们提供了一套全面的、功能丰富的工具集,让他们的创意得以充分发挥。 Ni…

数据结构 - C/C++ - 栈

目录 结构特性 结构实现 结构容器 结构设计 顺序栈 链式栈 结构特性 栈(stack)是线性表的一种形式,限定仅在表的一端进行插入或者删除的操作。 栈顶 - 表中允许插入、删除的一端称为栈顶(top),栈顶位置是可以发生变化的。 插入 - 进栈、入栈、压栈…

10月开始,所有新来日本的外国人都必须加入公共年金体系!

为了吸引更多外国人来日本工作并为他们提供更好的养老保障,日本厚生劳动省最近宣布了一项新政策。 从今年10月开始,所有新来日本的外国人都必须加入公共年金体系。 虽然之前已经有这个要求,但还是有不少人没加入。 因此,日本年金机…

每日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…

Win11找不到组策略编辑器(gpedit.msc)解决

由于需要同时连接有线网络和无线网络,且重启后双网络都自动连接,因此需要配置组策略。 但是win11找不到组策略编辑器。 灵感来源:Win11找不到组策略编辑器(gpedit.msc)解决教程 - 知乎 (zhihu.com) 在Win11中&#…

基于隐马尔可夫模型的股票预测【HMM】

基于机器学习方法的股票预测系列文章目录 一、基于强化学习DQN的股票预测【股票交易】 二、基于CNN的股票预测方法【卷积神经网络】 三、基于隐马尔可夫模型的股票预测【HMM】 文章目录 基于机器学习方法的股票预测系列文章目录一、HMM模型简介(1)前向后…

Eclipse 2024最新版本分享

一、软件介绍 Eclipse是一个开源的、基于Java的可扩展开发平台,最初由IBM公司开发,后于2001年贡献给开源社区,并由Eclipse基金会负责管理和开发。 如果在官网上下载比较慢,可以试试从云盘中下载,解压即可使用。 二、下…

Flutter循序渐进==>数据结构(列表、映射和集合)和错误处理

导言 填鸭似的教育确实不行,我高中时学过集合,不知道有什么用,毫无兴趣,等到我学了一门编程语言后,才发现集合真的很有用;可以去重,可以看你有我没有的,可以看我有你没有的&#xf…

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

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

机器人控制系列教程之任务空间运动控制器搭建(2)

Simulink中的实例 推文《机器人控制系列教程之任务空间运动控制器搭建(1)》中,我们详细的讲解了Simulink中的taskSpaceMotionModel模块,实现的方式可以按照如下的步骤。 可以控制器模型替换为taskSpaceMotionModel模块后,该模块的输入分别为…

昇思MindSpore学习总结七——模型训练

1、模型训练 模型训练一般分为四个步骤: 构建数据集。定义神经网络模型。定义超参、损失函数及优化器。输入数据集进行训练与评估。 现在我们有了数据集和模型后,可以进行模型的训练与评估。 2、构建数据集 首先从数据集 Dataset加载代码&#xff0…