<!--
$Header: /cvsroot/pgsql/doc/src/sgml/intro.sgml,v 1.15 2001/10/04 22:27:58 petere Exp $
-->

 <preface id="preface">
  <title>Preface</title>

  <sect1 id="intro-whatis">
   <title> What is <productname>PostgreSQL</productname>?</title>

   <para>
    <productname>PostgreSQL</productname> is an object-relational
    database management system (<acronym>ORDBMS</acronym>) based on
    <ulink url="http://s2k-ftp.CS.Berkeley.EDU:8000/postgres/postgres.html">
    <productname>POSTGRES, Version 4.2</productname></ulink>,
    developed at the University of California at Berkeley Computer
    Science Department.  The <productname>POSTGRES</productname>
    project, led by Professor Michael Stonebraker, was sponsored by
    the Defense Advanced Research Projects Agency
    (<acronym>DARPA</acronym>), the Army Research Office
    (<acronym>ARO</acronym>), the National Science Foundation
    (<acronym>NSF</acronym>), and ESL, Inc.
   </para>

   <para>
    <productname>PostgreSQL</productname> is an open-source descendant of
    this original Berkeley code.  It provides SQL92/SQL99 language support
    and other modern features.
   </para>

   <para>
    <productname>POSTGRES</productname> pioneered many of the
    object-relational concepts now becoming available in some commercial
    databases.
    Traditional   relational  database  management  systems
    (<acronym>RDBMS</acronym>) support a data model consisting of a collection
    of named relations, containing attributes of a specific
    type.  In current commercial  systems,  possible  types
    include  floating  point  numbers,  integers, character
    strings, money, and dates.  It is  commonly  recognized
    that  this model is inadequate for future data 
    processing applications.
    The relational  model  successfully  replaced  previous
    models  in  part  because  of its <quote>Spartan simplicity</quote>.
    However, as mentioned, this simplicity often makes  the
    implementation  of  certain applications very difficult.
    <productname>Postgres</productname> offers  substantial additional
    power  by  incorporating  the following additional
    concepts in such a way that  users  can  easily
    extend the system:

    <itemizedlist>
     <listitem>
      <simpara>inheritance</>
     </listitem>
     <listitem>
      <simpara>data types</>
     </listitem>
     <listitem>
      <simpara>functions</simpara>
     </listitem>
    </itemizedlist>
   </para>

   <para>
    Other features provide additional power and flexibility:

    <itemizedlist>
     <listitem>
      <simpara>constraints</simpara>
     </listitem>
     <listitem>
      <simpara>triggers</simpara>
     </listitem>
     <listitem>
      <simpara>rules</simpara>
     </listitem>
     <listitem>
      <simpara>transaction integrity</simpara>
     </listitem>
    </itemizedlist>
   </para>

   <para>
    These features put <productname>Postgres</productname> into the
    category of databases referred to as
    <firstterm>object-relational</firstterm>. Note that this is distinct
    from those referred to as <firstterm>object-oriented</firstterm>,
    which in general are not as well suited to supporting the
    traditional relational database languages.
    So, although <productname>Postgres</productname> has some
    object-oriented features, it is firmly in the relational database
    world. In fact, some commercial databases have recently
    incorporated features pioneered by <productname>Postgres</productname>.
   </para>

  </sect1>

   &history;
   &info;
   &notation;
   &problems;
   &y2k;

 </preface>

<!-- Keep this comment at the end of the file
Local variables:
mode:sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/lib/sgml/catalog")
sgml-local-ecat-files:nil
End:
-->
