【PostgreSQL】PostgreSQL简史

news2024/9/24 15:25:57

博主介绍:✌全网粉丝20W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌

技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。

感兴趣的可以先关注收藏起来,在工作中、生活上等遇到相关问题都可以给我留言咨询,希望帮助更多的人。

PostgreSQL简史

    • 一、伯克利 POSTGRES 项目
    • 二、Postgres95
    • 三、PostgreSQL

对象关系数据库管理系统现在称为 PostgreSQL,它源自加州大学伯克利分校编写的 POSTGRES 包。经过数十年的发展,PostgreSQL 现在是最先进的开源数据库。

一、伯克利 POSTGRES 项目

POSTGRES项目由Michael Stonebraker教授领导,由国防高级研究计划局(DARPA)、陆军研究办公室(ARO)、美国国家科学基金会(NSF)和ESL, Inc.赞助。POSTGRES 的实施始于 1986 年。系统的初始概念出现在 [ston86] 中,初始数据模型的定义出现在 [rowe87] 中。当时的规则系统设计在[ston87a]中进行了描述。存储管理器的基本原理和架构在 [ston87b] 中进行了详细说明。

从那时起,POSTGRES 经历了几个主要版本。第一个“演示软件”系统于 1987 年投入使用,并在 1988 年的 ACM-SIGMOD 会议上展出。[版本 1(在 ston90a] 中描述)于 1989 年 6 月发布给一些外部用户。为了回应对第一个规则系统([ston89])的批评,规则系统被重新设计([ston90b]),第2版于1990年6月发布,其中包含新的规则系统。版本 3 出现在 1991 年,增加了对多个存储管理器的支持、改进的查询执行器和重写的规则系统。在大多数情况下,直到 Postgres95 的后续版本(见下文)都专注于可移植性和可靠性。

POSTGRES 已被用于实现许多不同的研究和生产应用程序。其中包括:财务数据分析系统、喷气发动机性能监测包、小行星跟踪数据库、医疗信息数据库和几个地理信息系统。POSTGRES也被几所大学用作教育工具。最后,Illustra Information Technologies(后来并入 Informix,现在归 IBM 所有)拿起了代码并将其商业化。1992 年底,POSTGRES 成为 Sequoia 2000 科学计算项目的主要数据管理器。

1993年,外部用户社区的规模几乎翻了一番。越来越明显的是,原型代码和支持的维护占用了大量时间,而这些时间本应用于数据库研究。为了减轻这种支持负担,Berkeley POSTGRES 项目以 4.2 版正式结束。

二、Postgres95

1994 年,Andrew Yu 和 Jolly Chen 在 POSTGRES 中添加了一个 SQL 语言解释器。Postgres95 随后以新名称发布到网络上,作为原始 POSTGRES Berkeley 代码的开源后代在世界上找到自己的方式。

Postgres95 代码完全是 ANSI C 代码,大小修剪了 25%。许多内部更改提高了性能和可维护性。与 POSTGRES 4.2 版相比,Postgres95 版本 1.0.x 在威斯康星基准测试中的运行速度提高了约 30-50%。除了错误修复外,以下是主要的增强功能:

  • 查询语言 PostQUEL 已替换为 SQL(在服务器中实现)。(接口库 libpq 以 PostQUEL 命名。在 PostgreSQL 之前不支持子查询(见下文),但可以在 Postgres95 中使用用户定义的 SQL 函数来模仿它们。重新实现了聚合功能。还添加了对查询子句的支持。GROUP BY
  • 为交互式 SQL 查询提供了一个新程序 (psql),它使用 GNU Readline。这在很大程度上取代了旧的监视器程序。
  • 支持基于 Tcl 的新前端库。示例 shell 提供了新的 Tcl 命令,用于将 Tcl 程序与 Postgres95 服务器连接起来。libpgtcl``pgtclsh
  • 对大型对象界面进行了大修。反转大型物体是存储大型物体的唯一机制。(反转文件系统已删除。
  • 删除了实例级规则系统。规则仍可用作重写规则。
  • 一个简短的教程介绍了常规的 SQL 功能以及 Postgres95 的功能,并与源代码一起分发
  • GNU make(而不是 BSD make)用于构建。此外,Postgres95 可以使用未修补的 GCC 进行编译(修复了 doubles 的数据对齐)。

三、PostgreSQL

到 1996 年,很明显“Postgres95”这个名字经不起时间的考验。我们选择了一个新名称 PostgreSQL,以反映原始 POSTGRES 与具有 SQL 功能的最新版本之间的关系。同时,我们将版本编号设置为从 6.0 开始,将数字放回最初由 Berkeley POSTGRES 项目开始的序列中。

许多人继续将 PostgreSQL 称为“Postgres”(现在很少使用大写字母),因为传统或因为它更容易发音。这种用法被广泛接受为昵称或别名。

Postgres95 开发过程中的重点是识别和理解服务器代码中存在的问题。在PostgreSQL中,重点已经转移到增强特性和功能上,尽管所有领域的工作仍在继续。

本文完结!


好了,今天分享到这里。希望你喜欢这次的探索之旅!不要忘记 “点赞” 和 “关注” 哦,我们下次见!🎈

本文完结!

祝各位大佬和小伙伴身体健康,万事如意,发财暴富,扫下方二维码与我一起交流!!!在这里插入图片描述

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

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

相关文章

Java SHA-256哈希算法

一、SHA-256算法简介 SHA-2(Secure Hash Algorithm 2),一种散列函数算法标准,由美国国家安全局研发,由美国国家标准与技术研究院(NIST)在2001年发布,属于SHA算法之一,是…

C++ std::lock_guard和 std::unique_lock

二者都是 C 标准库中用于管理互斥锁(mutex)的 RAII(Resource Acquisition Is Initialization)机制的类。这些类可以确保互斥锁在构造时被获取,在析构时被释放,从而避免死锁和资源泄漏问题。不过&#xff0c…

使用windows批量解压和布局ImageNet ISLVRC2012数据集

使用的系统是windows,找到的解压命令很多都linux系统中的,为了能在windows系统下使用,因此下载Git这个软件,在其中的Git Bash中使用以下命令,因为Git Bash集成了很多linux的命令,方便我们的使用。 ImageNe…

【博士每天一篇文献-算法】 PNN网络启发的神经网络结构搜索算法Progressive neural architecture search

阅读时间:2023-12-23 1 介绍 年份:2018 :Chenxi Liu,Google DeepMind研究科学家;Barret Zoph,OpenAI;Maxim Neumann,Goolge 会议:B区会议, Proceedings of the European conference on computer vision (ECCV). 引用…

【Android14 ShellTransitions】(七)Transition就绪

Transition.onTransactionReady的内容比较长,我们挑重点的部分逐段分析(跳过的地方并非不重要,而是我柿子挑软的捏)。 1 窗口绘制状态的流转以及显示SurfaceControl 注意我们这里的SurfaceControl特指的是WindowSurfaceControll…

Excel办公技巧:制作二级联动下拉菜单

分享制作二级联动下拉菜单的方法,即使数据有增删,菜单也能自动更新! 可以通过先定义名称,再结合数据验证,来做二级联动下拉菜单。 1. 准备数据 首先,我们需要准备好要进行二级联动下拉菜单的数据&#xff…

K8S 上部署 Emqx

文章目录 安装方式一:快速部署安装方式二:定制化部署1. 使用 Pod 直接部署 EMQX Broker2. 使用 Deoloyment 部署 Pod3. 使用 Services 公开 EMQX Broker Pod 服务4. 通过 kubernetes 自动集群 EMQX MQTT 服务器5. 修改 EMQX Broker 的配置6. 赋予 Pod 访…

共享自助台球厅系统,扫码开台,物联网开灯,智能计费

共享自助台球厅系统,扫码开台,物联网开灯,智能计费 含小程序,商家手机端和pc管理端 后端php 前端uniapp 纯开源 可定制 持续更新

常用的点云预处理算法

点云预处理是处理点云数据时的重要部分,其目的是提高点云数据的质量和处理效率。通过去除离群点、减少点云密度和增强特征,可以消除噪声、减少计算量、提高算法的准确性和鲁棒性,从而为后续的点云处理和分析步骤(如配准、分割和重…

实战打靶集锦-31-monitoring

文章目录 1. 主机发现2. 端口扫描3. 服务枚举4. 服务探查4.1 ssh服务4.2 smtp服务4.3 http/https服务 5. 系统提权5.1 枚举系统信息5.2 枚举passwd文件5.3 枚举定时任务5.4 linpeas提权 6. 获取flag 靶机地址:https://download.vulnhub.com/monitoring/Monitoring.o…

算法力扣刷题记录 四十九【112. 路径总和】和【113. 路径总和ii】

前言 二叉树篇继续。 记录 四十九【112. 路径总和】和【113. 路径总和ii】 一、【112. 路径总和】题目阅读 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 target…

VsCode远程ssh连接失败:Could not establish connection to XXX

一、问题描述 在VsCode中按下"F1",选择Remote-SSH:Connect to Host 选择一个已经配置好的SSH主机,比如我选择的是192.168.0.104: 结果提示:Could not establish connection to XXX 二、解决方法 观察VsCode的输出信息…

走进NoSql

一、引入 1.1什么是NoSql NoSQL(Not Only SQL)是一组非关系型数据库(或称为非SQL数据库)的统称,它们提供了与传统的关系型数据库不同的数据存储和检索方式。NoSQL数据库通常用于处理大量的、分布式的、非结构化或半结…

STM32使用Wifi连接阿里云

目录 1 实现功能 2 器件 3 AT指令 4 阿里云配置 4.1 打开阿里云 4.2 创建产品 4.3 添加设备 5 STM32配置 5.1 基础参数 5.2 功能定义 6 STM32代码 本文主要是记述一下,如何使用阿里云物联网平台,创建一个简单的远程控制小灯示例。 完整工程&a…

BurpSuit的intruder模块结果进行筛选和导出

文章目录 一、搭建的测试网站第一步 先抓去数据包,查看数据包第二步 可以控制返回信息一条一条的显示第三步 使用intrude模块进行遍历,每次只显示一条用户信息第四步 配置过滤规则第五步 查看结果显示第六步 进行数据导出第七步 查看导出的表格二、实际项目中使用免责声明一、…

PCIe驱动开发(3)— 驱动设备文件的创建与操作

PCIe驱动开发(3)— 驱动设备文件的创建与操作 一、前言 在 Linux 中一切皆为文件,驱动加载成功以后会在“/dev”目录下生成一个相应的文件,应用程序通过对这个名为“/dev/xxx” (xxx 是具体的驱动文件名字)的文件进行相应的操作即…

Azure Repos 仓库管理

从远端仓库克隆到本地 前提:本地要安装git,并且登录了账户 1.在要放这个远程仓库的路径下,打git 然后 git clone https://.. 如果要登录验证,那就验证下,点 generate git credentials,复制password 克隆完后,cd 到克隆的路径, 可以用 git branch -a //查看分…

Spring Cloud环境搭建

🎥 个人主页:Dikz12🔥个人专栏:Spring学习之路📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 1. 开发环境安装 1.1 安装JDK ​1.2 安装MySQL 2. 案列介绍 2.1 …

Linux 命令 —— top命令(查看进程资源占用)

文章目录 top 命令显示信息介绍top 命令使用 top 命令显示信息介绍 top 命令是 Linux/Unix 系统中常用的进程监控工具,可以实时动态显示系统中各个进程的资源占用情况,包括CPU、内存等。 进入 linux 系统,直接输入 top,回车&…

全网超详细Redis主从部署(附出现bug原因)

主从部署 整体架构图 需要再建两个CentOs7,过程重复单机部署 http://t.csdnimg.cn/zkpBE http://t.csdnimg.cn/lUU5gLinux环境下配置redis 查看自己ip地址命令 ifconfig 192.168.187.137 进入redis所在目录 cd /opt/software/redis cd redis-stable 进入配置文件 vim redi…