[comp.databases] Postgres

robe@wmt.UUCP (Rob van den Berg) (04/18/88)

Can someone give me references regarding POSTGRES, an object oriented
extension ( alternative? ) of INGRES. Please respond by E-mail. 
I will summarize to the net.

	Rob van den Berg.


--------------------------------------------------------------------
Rob van den Berg			USENET: robe@wmt.uucp
Westmount Technology BV			tel: +31 15 569224 (Office)
Poortweg 4, 2612 PA Delft		     +31 10 4552841 (Home)
the Netherlands
--------------------------------------------------------------------
-- 
Rob van den Berg			tel: +31 15 569224
WestMount Technology B.V.		email: robe@wmt
Poortweg 4
2612 PA Delft, the Netherlands

ananth@mandrill.CWRU.Edu (ananth srinivasan) (04/29/88)

Does anyone know if there is a version of POSTGRES that is
available and can be purchased? What hardware environments
does it run on? Details would be appreciated. Anyone from
RTI out there?? Please e-mail your replies.

larry@postgres.uucp (Larry Rowe) (05/03/88)

In article <2458@mandrill.CWRU.Edu> ananth@mandrill.CWRU.Edu (ananth srinivasan) writes:
>Does anyone know if there is a version of POSTGRES that is
>available and can be purchased? What hardware environments
>does it run on? Details would be appreciated. Anyone from
>RTI out there?? Please e-mail your replies.

Postgres is a reseach prototype system being developed at the University
of California at Berkeley by Mike Stonebraker and I.  We have not distributed
it to anyone outside of our research groups yet.  We hope to distribute version
1.0 (a limited function, slow, and probably buggy system) to a small group
of alpha test sites (approx. 15) sometime this summer.  As we complete more
of the system and it becomes more stable we plan to distribute it more
widely.  I want to emphasize that this is a research prototype developed
at U.C. Berkeley.  It will be a public domain system that we distribute
(source included) to anyone who wants it.  RTI and other database vendors
are free to pick the code up and do with it what they want.  but, please
don't expect much any time soon.  Postgres is currently in about the same
state University Ingres was in late 1975.  It took 3 years to finally
round out that system.
	larry rowe

fyl@ssc.UUCP (Phil Hughes) (12/21/89)

I hate to seem uninformed but what is POSTGRES?
-- 
Phil Hughes, SSC, Inc. P.O. Box 55549, Seattle, WA 98155  (206)FOR-UNIX
     uunet!pilchuck!ssc!fyl or attmail!ssc!fyl            (206)527-3385

steve@violet.berkeley.edu (Steve Goldfield) (12/22/89)

In article <331@ssc.UUCP> fyl@ssc.UUCP (Phil Hughes) writes:
#>I hate to seem uninformed but what is POSTGRES?
#>-- 
#>Phil Hughes, SSC, Inc. P.O. Box 55549, Seattle, WA 98155  (206)FOR-UNIX

I don't work on POSTGRES and hopefully someone who does will
respond to these questions, but until then, I'll post a bit of
the way they describe it in the research summary published by
the EECS department here at Berkeley. PLEASE DON'T SEND ME
EMAIL ASKING ME QUESTIONS ABOUT POSTGRES. I post this information
to give you some idea of what POSTGRES is about; you'll have to
get further details from those who designed and built it.

"In 1985, the INGRES
project embarked on the design and implementation of a new
database management system called POSTGRES (for "after INGRES")
and a new application development environment called PICASSO to
provide support for these applications." The principal objectives
of POSTGRES (the PI is Prof. M. R. Stonebraker), which is
described as a "next-generation database management system," are:

"(1) Simplify crash recovery code and provide access to
out-of-date data by keeping old data in the database rather than
in a separate long-term audit trail;

(2) Construct an implementation for the multiple, closely coupled
processors that will be prevalent on next-generation
workstations;

(3) Provide efficient support for versions;

(4) Provide support for extensible data types and extendable
indices;

(5) Support procedures as 'first-class' objects;

(6) Support triggers and inference."

More detailed project descriptions discuss a query optimizer,
which takes advantage of rapid increases in available main memory
and of parallel, shared-memory, multiprocessor computers; rule
management

Steve Goldfield
Industrial Liaison Program
College of Engineering, UC Berkeley

samuels@community-chest.uucp (Michael Samuels) (02/16/90)

Does anyone have any references and/or information on extended
relational DBMSs, such as POSTGRES.  I'm interested in the
advantages/disadvantages of this approach to DB mgmt. vs.
object-oriented DBMSs.  Thanks.
Michael Samuels 			The MITRE Corporation
samuels@community-chest.mitre.org	Mailstop Z676
(703) 883-7828 				7525 Colshire Drive
FAX: (703) 883-5519			McLean, VA 22102    

kemnitz@postgres.uucp (Greg Kemnitz) (09/12/90)

                  What Is Postgres?

In this brief discussion, I will try to clarify what Postgres is and what
it is not.  First, a quick summary:

Postgres is a database research project under Prof. Michael Stonebraker
at U. C. Berkeley.  To facilitate research efforts, a software test-bed was
created which is the "Postgres" software.  The major purpose of this
software is to provide a platform and a basis for the testing of
implementations of new ideas in database research.  Several graduate
students, as well as undergraduate programmers and staff, have been working on
the implementation of the Postgres software.  After this paragraph, all
references to "Postgres" refer to the software itself.

What Postgres Is:

o  It is relational.  One of the major goals of Postgres is to show that
   an essentially relational DBMS can be extended to handle complex objects,
   rules, and be highly extensible.  Postgres is both relational and is an
   OODB.

o  Postgres is highly extensible, allowing user-defined operators, user-defined
   types, and user-defined functions.

o  Numerous other features which are beyond the scope of this discussion.
   For more detailed info, have a look at the tech reports which are available
   via anonymous FTP (see below).

What Postgres is Not:

o  It is not an extension of University Ingres.  No effort has been made
   to be compatible with University Ingres, and very little code is common.
   Questions about University Ingres should be posted to comp.databases.

o  It is not an attempt to create an industrial-strength public domain
   competitor to commercial DBMS offerings.  We are not GNU.  The Postgres
   group will support users as time permits, but user support is a secondary
   goal.

o  It is not a distributed database and there is no plan by our group at
   this time to make it distributed.

o  It does not use SQL.

Getting Postgres:

Postgres 2.0 (the current release) runs on SunOS 4.0.3 on Sparcstations (NOT
SunOS 4.1), all SunOS on Sun 3's, on DECstation 3100's, and on Sequent Symmetry
machines.  It is available for anonymous FTP from postgres.berkeley.edu
in the file

pub/postgres-v2r0.tar.Z

The installation instructions are in the file

pub/postgres-setup.me

Tech reports (which are also included in the tar file) are in the file

pub/postgres-papers.tar.Z

-----------------------------------------------------------------------
Greg Kemnitz                  |      "I ran out of the room - I
Postgres Chief Programmer     |      didn't want to be killed by a pile
kemnitz@postgres.berkeley.edu |      of ULTRIX manuals" :-)
                              |
                              |      --A friend at DEC Palo Alto in the Quake

sakkinen@tukki.jyu.fi (Markku Sakkinen) (09/14/90)

In article <27728@pasteur.Berkeley.EDU> kemnitz@postgres.berkeley.edu (Greg Kemnitz) writes:
> ...
>What Postgres Is:
>
>o  It is relational.  One of the major goals of Postgres is to show that
>   an essentially relational DBMS can be extended to handle complex objects,
>   rules, and be highly extensible.  Postgres is both relational and is an
>   OODB.

One could say that Postgres is _almost_ relational and _almost_ an OODB,
but not fully either.

Why not really relational: In a relational database, tuples must be
accessible _only_ on the basis of their attribute values.
Postgres adds immutable tuple identifiers that are visible to the user.

Why not really object-oriented: One of the most important requirements
of OO systems in general and OODB's in particular is strong object
identity. The tuple identifiers of Postgres fall short because they
are unique only within a relation (perhaps they can also be reused?).

This is not to deny that Postgres is a highly interesting system.
I have just suggested to a student to do her Master's thesis on it.

Markku Sakkinen
Department of Computer Science and Information Systems
University of Jyvaskyla (a's with umlauts)
Seminaarinkatu 15
SF-40100 Jyvaskyla (umlauts again)
Finland
          SAKKINEN@FINJYU.bitnet (alternative network address)

mao@eden (Mike Olson) (09/14/90)

In <1990Sep14.065746.5711@tukki.jyu.fi>, sakkinen@jytko.jyu.fi (Markku
Sakkinen) writes

> One could say that Postgres is _almost_ relational and _almost_ an OODB,
> but not fully either.
>
> ...
>
> Why not really object-oriented: One of the most important requirements
> of OO systems in general and OODB's in particular is strong object
> identity. The tuple identifiers of Postgres fall short because they
> are unique only within a relation (perhaps they can also be reused?).

if you have observed this behavior in the system, you have observed a
bug.  the intent of oid's (the name we use for tuple identifiers) is
that they be unique within a database, not just a relation.

we are aware that v2.0 (the most-recently released version of the system)
can exhibit the behavior you've described not just across relations, but
also within relations.  the problem was that oid's were a function of
time, rather than some something deterministic.  the problems with this
approach are too gory to go into.

in any case, the oid allocation code now manages oids in the same way
that transaction ids are allocated.  we have a distinguished system
relation subject to locking and access controls so that uniqueness is
guaranteed.  a side effect of this design is that no oid is ever reused
within a database.

i don't know when this code will be going out; send me email if you're
interested, or contact the postgres@postgres mailing list.

> This is not to deny that Postgres is a highly interesting system.
> I have just suggested to a student to do her Master's thesis on it.

great!  we have a few of those here, as you might imagine.  we are
interested in any research results she might get from the system.

					mike olson
					postgres research group
					uc berkeley
					mao@postgres.berkeley.edu

davidm@uunet.UU.NET (David S. Masterson) (09/17/90)

In article <1990Sep14.065746.5711@tukki.jyu.fi> sakkinen@tukki.jyu.fi 
(Markku Sakkinen) writes:

   One could say that Postgres is _almost_ relational and _almost_ an OODB,
   but not fully either.

   Why not really relational: In a relational database, tuples must be
   accessible _only_ on the basis of their attribute values.  Postgres adds
   immutable tuple identifiers that are visible to the user.

Hmmm, doesn't the immutable tuple identifier agree with Codd/Date's RM/T
database model with system generated primary keys?  Might not an tupleID be
considered just another attribute value?

   Why not really object-oriented: One of the most important requirements
   of OO systems in general and OODB's in particular is strong object
   identity. The tuple identifiers of Postgres fall short because they are
   unique only within a relation (perhaps they can also be reused?).

What is Postgres' definition of an object instance?  Does it correspond to a
tuple?  (I haven't seen Postgres, yet).
--
====================================================================
David Masterson					Consilium, Inc.
uunet!cimshop!davidm				Mtn. View, CA  94043
====================================================================
"If someone thinks they know what I said, then I didn't say it!"

davidm@uunet.UU.NET (David S. Masterson) (09/17/90)

In article <27803@pasteur.Berkeley.EDU> mao@eden (Mike Olson) writes:

   in any case, the oid allocation code now manages oids in the same way
   that transaction ids are allocated.  we have a distinguished system
   relation subject to locking and access controls so that uniqueness is
   guaranteed.  a side effect of this design is that no oid is ever reused
   within a database.

In that case, how many OIDs (and, I guess, transaction IDs) will be available
to a new database?

--
====================================================================
David Masterson					Consilium, Inc.
uunet!cimshop!davidm				Mtn. View, CA  94043
====================================================================
"If someone thinks they know what I said, then I didn't say it!"

mao@eden (Mike Olson) (09/18/90)

in <CIMSHOP!DAVIDM.90Sep16215617@uunet.UU.NET>, cimshop!davidm@uunet.UU.NET
(David S. Masterson) writes (re: postgres' use of persistent oids):

> Hmmm, doesn't the immutable tuple identifier agree with Codd/Date's RM/T
> database model with system generated primary keys?  Might not an tupleID be
> considered just another attribute value?

we just consider it another attribute value, and it can be treated as such
in user queries.  the only problem in guaranteeing uniqueness is if you
copy data out of one db and into another.  in that case, you have to map
the old oids somehow, to avoid collisions in the new db.  any dependencies
on oids as external keys in the user's schema is likely to break in this
case.  we ignore this problem for the time being, but if anyone has any
really great ideas, we'd be happy to listen to them.

> What is Postgres' definition of an object instance?  Does it correspond to a
> tuple?  (I haven't seen Postgres, yet).

postgres is able to treat tuples as objects, and in fact implements
inheritance on relations, so tuples are the natural candidate for objects
in any user schema.  however, since we support user-defined data types
as attributes in a relation, the user is free to create arbitrarily complex
object implementations.
					mike olson
					postgres research group
					uc berkeley
					mao@postgres.berkeley.edu

mao@eden (Mike Olson) (09/18/90)

In <CIMSHOP!DAVIDM.90Sep16220527@uunet.UU.NET>, cimshop!davidm@uunet.UU.NET
(David S. Masterson) writes (re: postgres object identifiers)

> how many OIDs (and, I guess, transaction IDs) will be available
> to a new database?

object id's are longs -- you get 2^32 - 1 of them on all architectures
on which postgres currently runs.  32767 of these are reserved for sytem
use.

transaction id's are 5-byte quantities, so you get 2^40 - 1 of them.

note, however, that these are implementation details, and can be changed
without breaking any other part of the system.  a commercial implementation
would probably choose to increase the number of available object identifiers.

					mike olson
					postgres research group
					uc berkeley
					mao@postgres.berkeley.edu

davidm@uunet.UU.NET (David S. Masterson) (09/19/90)

In article <27910@pasteur.Berkeley.EDU> mao@eden (Mike Olson) writes:

   In <CIMSHOP!DAVIDM.90Sep16215617@uunet.UU.NET>, [I] write:

   > Hmmm, doesn't the immutable tuple identifier agree with Codd/Date's RM/T
   > database model with system generated primary keys?  Might not an tupleID
   > be considered just another attribute value?

   we just consider it another attribute value, and it can be treated as such
   in user queries.  the only problem in guaranteeing uniqueness is if you
   copy data out of one db and into another.  in that case, you have to map
   the old oids somehow, to avoid collisions in the new db.  any dependencies
   on oids as external keys in the user's schema is likely to break in this
   case.  we ignore this problem for the time being, but if anyone has any
   really great ideas, we'd be happy to listen to them.

Would key constraints (either in the old database or the new database) provide
the information you're looking for on avoiding key collision?  Does Postgres
implement constraints?  What I mean is that if an attribute has a primary key
constraint, then it is a candidate for a new set of OIDs on read-in.  Also, if
an attribute has a foreign key constraint, then it should map to the new
values on the referred-to key.

   > What is Postgres' definition of an object instance?  Does it correspond
   > to a tuple?  (I haven't seen Postgres, yet).

   postgres is able to treat tuples as objects, and in fact implements
   inheritance on relations, so tuples are the natural candidate for objects
   in any user schema.  however, since we support user-defined data types as
   attributes in a relation, the user is free to create arbitrarily complex
   object implementations.

Is a user-defined data type considered an object?  If so, does it have to map
to a relation?  If not, is there a formal mapping between what an object is
and what a tuple is?  between an object and an attribute?

--
====================================================================
David Masterson					Consilium, Inc.
uunet!cimshop!davidm				Mtn. View, CA  94043
====================================================================
"If someone thinks they know what I said, then I didn't say it!"

sd9500@swpyr2.sbc.com (Steven K. Dieringer) (05/13/91)

 Has anyone ported Postgres to the NeXT yet?

 Thanks in advance.

 Steve

rodney@tyrell.stgt.sub.org (Rodney Volz) (05/19/91)

In article <79@swpyr2.sbc.com> sd9500@swpyr2.sbc.com (Steven K. Dieringer) writes:
>
> Has anyone ported Postgres to the NeXT yet?
>
> Thanks in advance.
>
> Steve


Has anyone managed to compile it under 386ix?

Pls. send me mail.

-Rodney
-- 
                     Rodney Volz - 7000 Stuttgart 1 - FRG
 ============> ...uunet!mcsun!unido!gtc!aragon!tyrell!rodney <=============
  rodney@tyrell.gtc.de * rodney@delos.stgt.sub.org * rodney@mcshh.hanse.de 
  \_____________ May your children and mine live in peace. ______________/