PostgreSQL中的对象

Luk*_*don 6 sql database postgresql object

PostgreSQL是第一个在关系系统中引入对象的数据库(序列化)......这就是我所知道的对象和PostgreSQL.我一直在做一些研究,但坦率地说没有找到任何好的东西.有没有关于它的好文章/书籍?

int*_*tgr 11

我不确定你在"在关系系统中引入对象"是什么意思.PostgreSQL确实有自定义类型,但这些类似于OOP.

AFAIK PostgreSQL有时被称为"对象关系数据库"的唯一原因是它支持表继承.但是,继承的主要用例实际上是表分区 ; 性能限制意味着它对于实现"对象继承"并不是非常有用(即将发布的PostgreSQL 9.1版本将消除其中的一些限制).

底线:这里没什么可看的,PostgreSQL只是另一个关系数据库.


Mar*_*wis 8

Postgres 7文档的前言解释了为什么他们认为自己具有开创性的对象关系概念(在Postgres 8及更高版本中,这已被重新定义/重新构建/删除).该历史文件提供了更多的细节.


小智 6

历史文件讲述了这个故事,但我很惊讶地看到很多评论家提到了面向对象编程,它完全是一个单独的主题.

Postgres从加州大学伯克利分校开始,作为一个突破性的研究项目,由Michael Stonebraker领导,他曾在那里领导Ingres开发项目.

对象关系数据库的典型示例涉及非表格数据的存储和检索,例如图像,音频,媒体等.Stonebreaker抛弃了"数据爆炸",特别是在二进制大对象领域,如图像,等,并意识到传统的RDBMS不能胜任任务.

用于描述"愿景"的示例之一是需要根据数据本身的属性搜索图像数据库,查看日落图片,而不仅仅是元数据(带有"日落"字符串的名称,标签等) ).该概念暗示了革命性索引方法的发展,例如,基于主色谱(日落趋向于红色,橙色)或其他属性,取决于数据类型.这些想法在Illustra产品中商业化,后者是Postgres原始团队工作的直接后裔.

实际上,大多数ORDBMS功能都是从Postgres代码库中删除的,这已成为我们今天所知的PostgreSQL.从这个意义上讲,结论是正确的.甚至PostgreSQL缺少原始Postgres的ORDBMS方面.

那么,Oracle中的对象?还没有.RDBMS中的OOP?根本不是同一个话题.