切换导航
首页
技术问答
编程语言
前端开发
移动开发
开发工具
程序设计
行业应用
CMS系统
服务器
频道导航
▸ PHP
▸ Java
▸ Java SE
▸ Python
▸ C#
▸ C&C++
▸ Ruby
▸ VB
▸ asp.Net
▸ Go
▸ Perl
▸ netty
▸ Django
▸ Delphi
▸ Jsp
▸ .NET Core
▸ Spring
▸ Flask
▸ Springboot
▸ SpringMVC
▸ Lua
▸ Laravel
▸ Mybatis
▸ Asp
▸ Groovy
▸ ThinkPHP
▸ Yii
▸ swoole
▸ HTML
▸ HTML5
▸ JavaScript
▸ CSS
▸ jQuery
▸ Bootstrap
▸ Angularjs
▸ TypeScript
▸ Vue
▸ Dojo
▸ Json
▸ Electron
▸ Node.js
▸ extjs
▸ Express
▸ XML
▸ ES6
▸ Ajax
▸ Flash
▸ Unity
▸ React
▸ Flex
▸ Ant Design
▸ Web前端
▸ 微信小程序
▸ 微信公众号
▸ iOS
▸ Android
▸ Swift
▸ Hybrid
▸ Cocos2d-x
▸ Flutter
▸ Xcode
▸ Silverlight
▸ cocoa
▸ Cordova
前端之家
Postgre SQL
PostgreSQL 发展史
PostgreSQL 发展史
2020-05-30
Postgre SQL
前端之家
前端之家
收集整理的这篇文章主要介绍了
PostgreSQL 发展史
,
前端之家
小编觉得挺不错的,现在分享给大家,也给大家做个参考。
前言: 这篇刊载在七月份 Daemon News 专栏的
文章
,详细述说了著名的
数据库
系统 Postgre
sql
的发展过程。众所皆知,
数据库
是一个庞大而复杂的软件 系统,Postgre
sql
克服重重困难,以『Open Source (开放式源
代码
)』模式发展成功的故事,有许\多经验值得我们学习。 本文 Postgre
sql
是最先进的 Open Source
数据库
服务器。它是属于『对象-关连』式的
数据库
管理系统 (ORDBMS),目前由一群来自互连网上的开发者 所维护。Postgre
sql
的前身叫做 Ingres,是于 1977 年至 1985 年间由著名的柏克莱大学所发展出来的。Ingres 的程序被 Relational Technologies/ Ingres公司拿去加以改良,并且成为最早成功打入商业市场的关连式
数据库
系统之一。(Ingres 公司后来被组合国际公司 Computer Associates 所并 购。)在此同时,柏克莱大学的Michael Stonebraker 教授带领一个研究小组发展一个对象关连式的
数据库
系统叫做 Postgres (1986-1994)。Postgres的 程序被 Illustra 公司拿去发展成一个商业化的产品。(Illustra 公司后来被 Informix 公司并购,程序则整合到 Informix的 Universal Server 去了。)两位柏 克莱的研究生,Jolly Chen 和 Andrew Yu,把 Postgres
加上
处理
sql
的
功能
并且易名为 Postgres95(1994-1995)。在他们离开柏克莱后,Jolley 仍然继 续维护 Postgres95,和一个活跃的
邮件
讨论区。 1996 年夏天,建立一个开放性源
代码
的
sql
数据库
服务器的呼声变得明确而且重要,也应该有一个组人马继续去发展它。在加拿大多伦多的 Marc G.Fournier 提供了一个安装
邮件
讨论区的主机位置和一个存放所有原始程序码目录的服务器。因此约 1000 个参与
邮件
讨论的人有了一个新家,另外 一个服务器也设定好,让一部份有登入帐号的人得以透过CVS 将修补程序放入源
代码
目录中。 Jolly Chen 说∶『这个计划需要用到少数人许多的时间,而不是花许\多人一点点的时间。』的确,以超过二十五万行 C 的程序码而言,我们知道他 的意思。发展初期,有四位主要的成员投入,Marc,来自加州Pasadena 的 Thomas Lockhart,来自俄罗斯 Krasnoyarsk 的 Vadim Mikheev,和我本人 (Bruce Momjian)。我们都各自有一份全职的差事,所以必须利用闲暇之馀来从事开发的工作。这显然是一个很大的挑战。 我们第一个目标是搜寻整个旧的
邮件
讨论区,找出曾经被张贴出来以修正某些问题的修补程序。当时的系统架构非常脆弱,而且难以了解。在开发 初期的前六个月中,我们深怕某个修补程序可能会毁了系统而我们无法将把它还原回来。许多人反应的问题简直让人抓破头皮,不只是为了想那里 出差错,而且还要思考这个系统到底是如何运作的。 我们继承的是一个很庞大的系统。一个典型的问题反应大概是这样的,『当我做这件事,整个系统都当住了。』我们有一大串类似的报告。很明确 地,一些组织化的工作极待建立。大多数的问题需要深入研究才能
解决
,而且许多问题是重复的,因此我们建立一个TODO 清单列出所有曾被反应 出有问题的
sql
查询
指令。这帮助我们确认问题,而且也让使用者知道已经有这些问题存在,以减少重复的问题被反应出来。我们有许多热心的 开发者,但是要清楚了解系统后端如何运作可要花上不少功夫。许\多开发者投入在系统外围的程序,像是语言接口或是
数据库
的工具等较容易上 手的东西。其它的开发者专注在某些有问题的
查询
指令上,以协助找出发生问题真正的地方。令人惊讶的是,许多问题只需要一行C 的程序码就解 决掉了。Postgres 是从学术单位发展而成,尚未经过真实世界中各式各样
查询
的考验。当时出现一些
增加
新
功能
的声音,但系统的不稳定性让我们 仍然决定着眼于
错误
的改正。 我们把名字从 Postgres95 换成 Postgre
sql
。念起来有点饶舌,但是它突显出系统可以处理
sql
的能力。我们也开始利用 sup 来散布原始程序码, 让使用者可以取得开发中最新的版本而不必每次下载整个套件。稍后我们转换成利用远端的CVS 来做这件事。 每三到五个月就会有一个版本推出。其中包含了二到三个月的开发时间,一个月的 beta 测试,一个正式版本的推出,以及接下来数个星期针对改 正重大
错误
的小改版。我们从未想过以更积极的排程来推出更多的版本。因为
数据库
服务器不像一般的文书处理软件或是游戏软件,在出问题时只 要重新启动即可。
数据库
系统是多人共享的模式,并且把使用者的资料都隐藏在系统内,所以我们必须很小心以确保每一个版本都非常稳定。 开发如此大规模和复杂的程序对新手而言十分困难。面对如此陡峭的学习曲线,我们在吸引开发者加入这个计划上遇到了挫折。尽管如此,我们和 善的气氛,和我们不断改善的稳定性和效能还是吸引到我们所需要的有经验的高手加入。 让我们的开发者具备协助发展 Postgre
sql
的基本认知被列为第一优先。我们写下一个 TODO 清单记录我们想完成工作的大纲,不过对于一个超过 二十五万行原始程序码的系统而言,任何一个TODO 清单上要做的事都算是一个大计划。我们了解到协助人们从何处着手对开发者的教育有莫大的 助益。我们有一个系统后端模块的流程图,并且简述每个模块的功用。还有一个给开发者看的常见问题集,描述Postgre
sql
开发者常有共同的疑 问。如此一来,开发者要上手快多了。 从柏克莱所承接而来的原始程序模块分的很清楚,但有些损坏,有些当初在柏克莱写程序的人采用了不当的
方法
来处理某些特定的工作。每个人写 程序的风格也南辕北辙。我们写了一个工具来把整个原始程序码重新格式化、缩排成统一的格式。我们也写了一个脚本程序以找出原始程序码中固 定会用到的函式,然后把从不曾被呼叫到的函式完全移除。这些动作在每次推出新版前都要做过。一个版本的检查清单提醒我们在每次换版该做些 什么事。 随着对程序的了解与日俱增,我们逐渐尝试更复杂的
修改
以及新
功能
的
增加
。重新设计那些结构不良的程序。我们迈向每一次新版都加入新功\能 的阶段而不再仅有针对问题做修正而己。我们改良系统以符合
sql
标准,例如加入 sub-select,改良 locking 机制,
增加
原本所遗漏一些
sql
的主 要
功能
。我们还提供商业式的电话服务给需要的人。 Usenet 新闻网络上的讨论群组开始将目光投向我们。在前一年,尽管我们总是迅速地回应使用者的顾虑,但许多人仍然建议改用 Postgre
sql
以外 的
数据库
。一年之后,许多人开始推荐Postgre
sql
给需要 transaction 的使用者,或是需要使用复杂的
查询
指令,商业等级的
sql
支持
,复准的资 料型别和要求系统可靠的使用者。唯有当速度是最优先考量时才会指名其它的
数据库
。这很明显地壮大了我们的声势。RedHat把 Postgre
sql
纳入 他们的套件中一同散布更让我们的使用群
快速
暴增。 现在每一新版本的推出都有大幅的改良。即将推出的 6.5 版是一个里程碑,表示开发团队终于可以完全掌控由柏克莱继承而来的原始程序。现在, 每一个程序模块都至少有一名开发团队的成员可以掌握。感谢这个人数和经验都不断
增加
的全球性开发团队,如今我们可以轻而易举地新增重要的
功能
。如同大多数开放性源
代码
的计划,我们不知道到底有多少人正在使用我们的软件,但是由我们不断
增加
的
功能
,系统的曝光率和
邮件
讨论区 的通信量可以清楚地的看出,Postgre
sql
将持续成长茁壮。
上一篇:开源软件有强大技术背景 源码开放就
下一篇:postgresql 数据同步
猜你在找的Postgre SQL相关文章
PosegreSQL基础回顾(第 4 章 SQL语法)
来源:http://www.postgres.cn/docs/11/ 4.1.1. 标识符和关键词 SQL标识符和关键...
作者:前端之家 时间:2020-11-21
PosegreSQL基础回顾(第 8 章 数据类型)
来源:http://www.postgres.cn/docs/11/ 8.1. 数字类型 数字类型由2、4或8字节的...
作者:前端之家 时间:2020-11-21
PosegreSQL基础回顾(第 5 章 数据定义)
来源:http://www.postgres.cn/docs/11/ 5.1. 表基础 SQL并不保证表中行的顺序。...
作者:前端之家 时间:2020-11-21
PosegreSQL基础回顾(第 6 章 数据操纵、第 7 章 查询)
来源:http://www.postgres.cn/docs/11/ 6.4. 从修改的行中返回数据 有时在修改行...
作者:前端之家 时间:2020-11-21
PosegreSQL基础回顾(第 13 章 并发控制)
来源:http://www.postgres.cn/docs/11/ 13.2.1. 读已提交隔离级别 读已提交是Po...
作者:前端之家 时间:2020-11-21
PostgreSQL安装和使用
青岛OJ系统用的关系型数据库是PostgreSQL,为此对PostgreSQL大致了解下。 今天的主要话题围...
作者:前端之家 时间:2020-11-01
PostgreSQL整体架构
作者:前端之家 时间:2020-08-07
为什么选择PostgreSQL而不是MySQL
David Bolton是一名独立开发者,他使用PostgreSQL和MySQL都已有超过十年的时间。近日,他撰...
作者:前端之家 时间:2020-08-07
为什么选择PostgreSQL而不是MySQL
David Bolton是一名独立开发者,他使用PostgreSQL和MySQL都已有超过十年的时间。近日,他撰...
作者:前端之家 时间:2020-08-07
专访唐成:从小工到专家,PostgreSQL的修炼之道
唐成,拥有十几年数据库、操作系统、存储领域的工作经验。目前任沃趣科技首席数据库架构师...
作者:前端之家 时间:2020-08-07
编程分类
MySQL
MsSQL
Oracle
Sqlite
Postgre SQL
Mariadb
MongoDB
NoSQL
HBase
JDBC
最新文章
• PosegreSQL基础回顾(第 4
• PosegreSQL基础回顾(第 8
• PosegreSQL基础回顾(第 5
• PosegreSQL基础回顾(第 6
• PosegreSQL基础回顾(第 13
• PosegreSQL基础回顾(第 9
• PostgreSQL安装和使用
• PostgreSQL整体架构
• 为什么选择PostgreSQL而不
• 为什么选择PostgreSQL而不
热门标签
更多 ►
undo日志
persistent-c
mysql-error-
postal-code
sql-match-al
mysql-5.6
mysql-8.0
database-tri
安装路径
系统错误
data_dir
丢失文件
主从同步
sql_mode
数据库目录
匿名用户
character_se
ID归零
数据库位置
查询表
重复字段
查询字段
截断日志
SUSPECT
7391
Remote Serve
Linked Serve
玄学问题
登录不上
开启远程访问