postgresql/doc/src/sgml/intro.sgml
Tom Lane a99c42f291 Support automatically-updatable views.
This patch makes "simple" views automatically updatable, without the need
to create either INSTEAD OF triggers or INSTEAD rules.  "Simple" views
are those classified as updatable according to SQL-92 rules.  The rewriter
transforms INSERT/UPDATE/DELETE commands on such views directly into an
equivalent command on the underlying table, which will generally have
noticeably better performance than is possible with either triggers or
user-written rules.  A view that has INSTEAD OF triggers or INSTEAD rules
continues to operate the same as before.

For the moment, security_barrier views are not considered simple.
Also, we do not support WITH CHECK OPTION.  These features may be
added in future.

Dean Rasheed, reviewed by Amit Kapila
2012-12-08 18:26:21 -05:00

162 lines
4.5 KiB
Plaintext

<!-- doc/src/sgml/intro.sgml -->
<preface id="preface">
<title>Preface</title>
<para>
This book is the official documentation of
<productname>PostgreSQL</productname>. It has been written by the
<productname>PostgreSQL</productname> developers and other
volunteers in parallel to the development of the
<productname>PostgreSQL</productname> software. It describes all
the functionality that the current version of
<productname>PostgreSQL</productname> officially supports.
</para>
<para>
To make the large amount of information about
<productname>PostgreSQL</productname> manageable, this book has been
organized in several parts. Each part is targeted at a different
class of users, or at users in different stages of their
<productname>PostgreSQL</productname> experience:
<itemizedlist>
<listitem>
<para>
<xref linkend="tutorial"> is an informal introduction for new users.
</para>
</listitem>
<listitem>
<para>
<xref linkend="sql"> documents the <acronym>SQL</acronym> query
language environment, including data types and functions, as well
as user-level performance tuning. Every
<productname>PostgreSQL</> user should read this.
</para>
</listitem>
<listitem>
<para>
<xref linkend="admin"> describes the installation and
administration of the server. Everyone who runs a
<productname>PostgreSQL</productname> server, be it for private
use or for others, should read this part.
</para>
</listitem>
<listitem>
<para>
<xref linkend="client-interfaces"> describes the programming
interfaces for <productname>PostgreSQL</productname> client
programs.
</para>
</listitem>
<listitem>
<para>
<xref linkend="server-programming"> contains information for
advanced users about the extensibility capabilities of the
server. Topics include user-defined data types and
functions.
</para>
</listitem>
<listitem>
<para>
<xref linkend="reference"> contains reference information about
SQL commands, client and server programs. This part supports
the other parts with structured information sorted by command or
program.
</para>
</listitem>
<listitem>
<para>
<xref linkend="internals"> contains assorted information that might be of
use to <productname>PostgreSQL</> developers.
</para>
</listitem>
</itemizedlist>
</para>
<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://db.cs.berkeley.edu/postgres.html">
<productname>POSTGRES, Version 4.2</productname></ulink>,
developed at the University of California at Berkeley Computer Science
Department. POSTGRES pioneered many concepts that only became
available in some commercial database systems much later.
</para>
<para>
<productname>PostgreSQL</productname> is an open-source descendant
of this original Berkeley code. It supports a large part of the SQL
standard and offers many modern features:
<itemizedlist spacing="compact">
<listitem>
<simpara>complex queries</simpara>
</listitem>
<listitem>
<simpara>foreign keys</simpara>
</listitem>
<listitem>
<simpara>triggers</simpara>
</listitem>
<listitem>
<simpara>updatable views</simpara>
</listitem>
<listitem>
<simpara>transactional integrity</simpara>
</listitem>
<listitem>
<simpara>multiversion concurrency control</simpara>
</listitem>
</itemizedlist>
Also, <productname>PostgreSQL</productname> can be extended by the
user in many ways, for example by adding new
<itemizedlist spacing="compact">
<listitem>
<simpara>data types</simpara>
</listitem>
<listitem>
<simpara>functions</simpara>
</listitem>
<listitem>
<simpara>operators</simpara>
</listitem>
<listitem>
<simpara>aggregate functions</simpara>
</listitem>
<listitem>
<simpara>index methods</simpara>
</listitem>
<listitem>
<simpara>procedural languages</simpara>
</listitem>
</itemizedlist>
</para>
<para>
And because of the liberal license,
<productname>PostgreSQL</productname> can be used, modified, and
distributed by anyone free of charge for any purpose, be it
private, commercial, or academic.
</para>
</sect1>
&history;
&notation;
&info;
&problems;
</preface>