【PostgreSQL】PostgreSQL简史
博主介绍:✌全网粉丝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中,重点已经转移到增强特性和功能上,尽管所有领域的工作仍在继续。
本文完结!
好了,今天分享到这里。希望你喜欢这次的探索之旅!不要忘记 “点赞” 和 “关注” 哦,我们下次见!🎈
本文完结!
祝各位大佬和小伙伴身体健康,万事如意,发财暴富,扫下方二维码与我一起交流!!!
相关文章:
【PostgreSQL】PostgreSQL简史
博主介绍:✌全网粉丝20W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
Linux的热插拔UDEV机制和守护进程
目录 一、Linux的热插拔UDEV机制 二、守护进程 2.1 守护进程概念和基本特点: 2.2 显示进程信息: 2.3 守护进程和后台进程的区别: 2.4 创建守护进程的步骤和守护进程的特征: 2.4.1 创建守护进程的步骤: 2.4.2 守…...
laravel框架基础通识-新手
常用目录及其解析 routes 该目录为路由目录 一般根据api uri可以反向查找对应路由及其controller,目录下的文件名一般和url的第一级对应为了规范,然后根据根据里面具体分组和别名对应拼接对应路由url,后面对应的则是controller,…...
c++ extern 关键字
C中的extern关键字和跨语言互操作 变量的声明与定义 extern关键字用于声明在另一个翻译单元(文件)中定义的变量或函数。通过extern关键字,可以在多个文件中访问全局变量或函数。 变量声明示例 文件:main.cpp #include <io…...
Meta KDD Cup 2024 CRAG: Comphrehensive RAG Benchmark参赛指南(写了一半跑去改大论文了所以没正式参赛)
诸神缄默不语-个人CSDN博文目录 因为比赛过程正好和我毕业答辩的时间段高度重合,所以我……最后其实还是相当于没有成功参赛。 呃反正现在已经咕咕咕了,就把当时写了一半(一小半)的参赛指南发一下吧。 官网:AIcrowd …...
系统架构设计师教程 第3章 信息系统基础知识-3.7 企业资源规划(ERP)-解读
系统架构设计师教程 第3章 信息系统基础知识-3.7 企业资源规划(ERP) 3.7.1 企业资源规划的概念3.7.2 企业资源规划的结构3.7.2.1 生产预测3.7.2.2 销售管理(计划)3.7.2.3 经营计划(生产计划大纲)3.7.2.4 …...
windows实现自动化按键
1.选择目标窗口 获取窗口句柄 void KeyPresser::selectWindow() {SetWinEventHook(EVENT_SYSTEM_FOREGROUND, EVENT_SYSTEM_FOREGROUND, NULL, WinEventProc, 0, 0, WINEVENT_OUTOFCONTEXT);selectedWindowLabel->setText("请点击目标窗口..."); }void CALLBACK …...
阿里云 https证书部署
一.申请证书 二.查看状态 查看状态,已签发是完成了申请证书 三.部署 我在nginx服务器上部署 具体操作链接:阿里云文档 修改前 修改后 四.重启ngnix 五.验证是否成功 在浏览器输入域名查看...
DX-10A信号继电器 柜内安装,板前接线 约瑟JOSEF
DX-10型闪光信号继电器型号: DX-10A闪光信号继电器; DX-10B闪光信号继电器; DX-10C闪光信号继电器; 用途 DX-10 闪光继电器用于电力系统断路器的位置信号灯不对应闪光,该继电器是为了适应当前推广使用发光二极管节能指示灯而…...
芯片光刻后的晶片多层组合构成的吗
是的,芯片(尤其是集成电路芯片)确实是通过光刻后的晶片多层组合构成的。在芯片制造过程中,光刻是一个至关重要的步骤,用于在硅片(或称为晶片)上刻画出精确的电路图案。然而,一个完整…...
OpenGL-ES 学习(7) ---- VBO EBO 和 VAO
目录 VBO(Vertex Buffer Object)EBO(Element Buffer Object)VAO(Vertex Array Object) VBO(Vertex Buffer Object) EBO(Element Buffer Object) VBO(Vertex Buffer Object) 实际是指顶点缓冲器对象 在 opengl-es 2.0 的编程中,用于绘制图元的顶点数据是从 CPU 传…...
github如何实现和gitlab的同步
要实现 GitHub 和 GitLab 之间的同步,你可以使用以下几种方法。这里介绍两种常用的方法:使用 GitLab CI/CD 和使用镜像仓库。 方法1:使用 GitLab CI/CD 通过 GitLab CI/CD,可以在每次推送到 GitLab 时自动同步到 GitHub。以下是…...
内网隧道——隧道技术基础
文章目录 一、正向连接与反向连接1.1 正向连接1.2 反向连接 二、端口转发三、端口映射四、端口复用五、代理和隧道的区别六、常见隧道穿透分类 环境: kali:192.168.92.6,MSF v6.3.25 win7:192.168.92.7 一、正向连接与反向连接 1…...
NAS新品“翻车”后,绿联科技要上市了
在消费电子市场回暖的东风中,又一消费电子知名企业登陆A股。 近日,深圳市绿联科技股份有限公司(下称“绿联科技”)开启申购,将在创业板上市。本次上市,绿联科技的发行价为21.21元/股,发行数量为…...
kafka-client如何打印连接日志
在Kafka客户端中打印连接日志,通常涉及配置日志框架来捕获和输出Kafka客户端在建立连接过程中的相关信息。由于Kafka客户端使用SLF4J(Simple Logging Facade for Java)作为日志门面,实际的日志实现(如Log4j2、Logback等…...
1、springboot3 vue3开发平台-后端-项目构建
文章目录 1. 创建项目1.1 前置环境条件1.2 项目创建 2. 模块配置2.1 父工程配置概述2.2 配置启动模块2.3 父工程相关依赖管理 1. 创建项目 1.1 前置环境条件 idea2023, jdk17 1.2 项目创建 创建父工程并删除不需要的文件目录: 右键父工程依次创建其他模块 最…...
修改了mybatis的xml中的sql不重启服务器如何动态加载更新
目录 一、背景 二、注意 三、代码 四、使用示例 五、其他参考博客 一、背景 开发一个报表功能,好几百行sql,每次修改完想自测下都要重启服务器,启动一次服务器就要3分钟,重启10次就要半小时,耗不起时间呀。于是在…...
Intel和AMD用户再等等!微软确认Win11 24H2年底前登陆
微软近日确认,Windows 11 24H2版本将于2024年底前正式登陆使用英特尔和AMD处理器的PC。 根据微软介绍,Windows 11 24H2将作为传统功能更新,将在今年晚些时候提供给所有设备。 此前,微软已向搭载骁龙X Plus和X Elite系列处理器的Co…...
Web开发:图片九宫格与非九宫格动态切换效果(HTML、CSS、JavaScript)
目录 一、业务需求 二、实现思路 三、实现过程 1、基础页面 2、图片大小调整 3、图片位置调整 4、鼠标控制切换 5、添加过渡 四、完整代码 一、业务需求 默认显示基础图片; 当鼠标移入,使用九宫格效果展示图片; 当鼠标离开&#…...
价格较低,功能最强?OpenAI 推出 GPT-4o mini,一个更小、更便宜的人工智能模型
OpenAI美东时间周四推出“GPT-4o mini”,入局“小而精”AI模型竞争,称这款新模型是“功能最强、成本偏低的模型”,计划今后整合图像、视频、音频到这个模型中。 OpenAI表示,GPT-4o mini 相较于 OpenAI 目前最先进的 AI 模型更加便…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...
从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
