<!--
$Header: /home/postgres/cvs_root/pgsql-r-v7.2/doc/src/sgml/intro.sgml,v 1.1.1.1 2002/02/07 17:50:03 bpalmer 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, this simplicity makes  the
    implementation  of  certain applications very difficult.
    <productname>PostgreSQL</productname> offers  substantial additional
    power  by  incorporating  the following additional
    concepts in such a way that  users  can  easily
    extend the system:

    <itemizedlist spacing="compact">
     <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 spacing="compact">
     <listitem>
      <simpara>constraints</simpara>
     </listitem>
     <listitem>
      <simpara>triggers</simpara>
     </listitem>
     <listitem>
      <simpara>rules</simpara>
     </listitem>
     <listitem>
      <simpara>transactional integrity</simpara>
     </listitem>
    </itemizedlist>
   </para>

   <para>
    These features put <productname>PostgreSQL</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
    traditional relational database languages.
    So, although <productname>PostgreSQL</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>PostgreSQL</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:
-->
