~vcs-imports/mammoth-replicator/trunk

« back to all changes in this revision

Viewing changes to doc/src/sgml/history.sgml

  • Committer: alvherre
  • Date: 2005-12-16 21:24:52 UTC
  • Revision ID: svn-v4:db760fc0-0f08-0410-9d63-cc6633f64896:trunk:1
Initial import of the REL8_0_3 sources from the Pgsql CVS repository.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!--
 
2
$PostgreSQL: pgsql/doc/src/sgml/history.sgml,v 1.24 2005-01-08 01:44:05 tgl Exp $
 
3
-->
 
4
 
 
5
<sect1 id="history">
 
6
 <title>A Brief History of <productname>PostgreSQL</productname></title>
 
7
 
 
8
 <indexterm zone="history">
 
9
  <primary>history</primary>
 
10
  <secondary>of PostgreSQL</secondary>
 
11
 </indexterm>
 
12
 
 
13
 <para>
 
14
  The object-relational database management system now known as
 
15
  <productname>PostgreSQL</productname> is derived from the
 
16
  <productname>POSTGRES</productname> package written at the
 
17
  University of California at Berkeley.  With over a decade of
 
18
  development behind it, <productname>PostgreSQL</productname> is now
 
19
  the most advanced open-source database available anywhere.
 
20
 </para>
 
21
 
 
22
 <sect2 id="history-berkeley">
 
23
  <title>The Berkeley <productname>POSTGRES</productname> Project</title>
 
24
 
 
25
  <indexterm zone="history-berkeley">
 
26
   <primary>POSTGRES</primary>
 
27
  </indexterm>
 
28
 
 
29
  <para>
 
30
   The <productname>POSTGRES</productname> project, led by Professor
 
31
   Michael Stonebraker, was sponsored by the Defense Advanced Research
 
32
   Projects Agency (<acronym>DARPA</acronym>), the Army Research
 
33
   Office (<acronym>ARO</acronym>), the National Science Foundation
 
34
   (<acronym>NSF</acronym>), and ESL, Inc.  The implementation of
 
35
   <productname>POSTGRES</productname> began in 1986.  The initial
 
36
   concepts for the system were presented in <xref linkend="STON86">
 
37
   and the definition of the initial data model appeared in <xref
 
38
   linkend="ROWE87">.  The design of the rule system at that time was
 
39
   described in <xref linkend="STON87a">.  The rationale and
 
40
   architecture of the storage manager were detailed in <xref
 
41
   linkend="STON87b">.
 
42
  </para>
 
43
 
 
44
  <para>
 
45
   <productname>POSTGRES</productname> has undergone several major
 
46
   releases since then.  The first <quote>demoware</quote> system
 
47
   became operational in 1987 and was shown at the 1988
 
48
   <acronym>ACM-SIGMOD</acronym> Conference.  Version 1, described in
 
49
   <xref linkend="STON90a">, was released to a few external users in
 
50
   June 1989.  In response to a critique of the first rule system
 
51
   (<xref linkend="STON89">), the rule system was redesigned (<xref
 
52
   linkend="STON90b">) and Version 2 was released in June 1990 with
 
53
   the new rule system.  Version 3 appeared in 1991 and added support
 
54
   for multiple storage managers, an improved query executor, and a
 
55
   rewritten rule system.  For the most part, subsequent releases
 
56
   until <productname>Postgres95</productname> (see below) focused on
 
57
   portability and reliability.
 
58
  </para>
 
59
 
 
60
  <para>
 
61
   <productname>POSTGRES</productname> has been used to implement many
 
62
   different research and production applications.  These include: a
 
63
   financial data analysis system, a jet engine performance monitoring
 
64
   package, an asteroid tracking database, a medical information
 
65
   database, and several geographic information systems.
 
66
   <productname>POSTGRES</productname> has also been used as an
 
67
   educational tool at several universities.  Finally, Illustra
 
68
   Information Technologies (later merged into <ulink
 
69
   url="http://www.informix.com/"><productname>Informix</productname></ulink>,
 
70
   which is now owned by <ulink
 
71
   url="http://www.ibm.com/">IBM</ulink>.)  picked up the code and
 
72
   commercialized it.  In late 1992,
 
73
   <productname>POSTGRES</productname> became the primary data manager
 
74
   for the <ulink
 
75
   url="http://meteora.ucsd.edu/s2k/s2k_home.html">Sequoia
 
76
   2000</ulink> scientific computing project.
 
77
  </para>
 
78
 
 
79
  <para>
 
80
   The size of the external user community nearly doubled during 1993.
 
81
   It became increasingly obvious that maintenance of the prototype
 
82
   code and support was taking up large amounts of time that should
 
83
   have been devoted to database research.  In an effort to reduce
 
84
   this support burden, the Berkeley
 
85
   <productname>POSTGRES</productname> project officially ended with
 
86
   Version 4.2.
 
87
  </para>
 
88
 </sect2>
 
89
 
 
90
 <sect2 id="history-postgres95">
 
91
  <title><productname>Postgres95</productname></title>
 
92
 
 
93
  <indexterm zone="history-postgres95">
 
94
   <primary>Postgres95</primary>
 
95
  </indexterm>
 
96
 
 
97
  <para>
 
98
   In 1994, Andrew Yu and Jolly Chen added a SQL language interpreter
 
99
   to <productname>POSTGRES</productname>.  Under a new name,
 
100
   <productname>Postgres95</productname> was subsequently released to
 
101
   the web to find its own way in the world as an open-source
 
102
   descendant of the original <productname>POSTGRES</productname>
 
103
   Berkeley code.
 
104
  </para>
 
105
 
 
106
  <para>
 
107
   <productname>Postgres95</productname> code was completely ANSI C
 
108
   and trimmed in size by 25%. Many internal changes improved
 
109
   performance and
 
110
   maintainability. <productname>Postgres95</productname> release
 
111
   1.0.x ran about 30-50% faster on the Wisconsin Benchmark compared
 
112
   to <productname>POSTGRES</productname>, Version 4.2.  Apart from
 
113
   bug fixes, the following were the major enhancements:
 
114
 
 
115
   <itemizedlist>
 
116
    <listitem>
 
117
     <para>
 
118
      The query language PostQUEL was replaced with
 
119
      <acronym>SQL</acronym> (implemented in the server).  Subqueries
 
120
      were not supported until <productname>PostgreSQL</productname>
 
121
      (see below), but they could be imitated in
 
122
      <productname>Postgres95</productname> with user-defined
 
123
      <acronym>SQL</acronym> functions. Aggregate functions were
 
124
      re-implemented.  Support for the <literal>GROUP BY</literal>
 
125
      query clause was also added.
 
126
     </para>
 
127
    </listitem>
 
128
 
 
129
    <listitem>
 
130
     <para>
 
131
      A new program
 
132
      (<application>psql</application>) was provided for interactive
 
133
      SQL queries, which used <acronym>GNU</acronym>
 
134
      <application>Readline</application>.  This largely superseded
 
135
      the old <application>monitor</> program.
 
136
     </para>
 
137
    </listitem>
 
138
 
 
139
    <listitem>
 
140
     <para>
 
141
      A new front-end library, <filename>libpgtcl</filename>,
 
142
      supported <acronym>Tcl</acronym>-based clients.  A sample shell,
 
143
      <command>pgtclsh</command>, provided new Tcl commands to
 
144
      interface <application>Tcl</application> programs with the
 
145
      <productname>Postgres95</productname> server.
 
146
     </para>
 
147
    </listitem>
 
148
 
 
149
    <listitem>
 
150
     <para>
 
151
      The large-object interface was overhauled. The inversion large
 
152
      objects were the only mechanism for storing large objects.  (The
 
153
      inversion file system was removed.)
 
154
     </para>
 
155
    </listitem>
 
156
 
 
157
    <listitem>
 
158
     <para>
 
159
      The instance-level rule system was removed.  Rules were still
 
160
      available as rewrite rules.
 
161
     </para>
 
162
    </listitem>
 
163
 
 
164
    <listitem>
 
165
     <para>
 
166
      A short tutorial introducing regular <acronym>SQL</acronym>
 
167
      features as well as those of
 
168
      <productname>Postgres95</productname> was distributed with the
 
169
      source code
 
170
     </para>
 
171
    </listitem>
 
172
 
 
173
    <listitem>
 
174
     <para>
 
175
      <acronym>GNU</acronym> make (instead of <acronym>BSD</acronym>
 
176
      make) was used for the build.  Also,
 
177
      <productname>Postgres95</productname> could be compiled with an
 
178
      unpatched <productname>GCC</productname> (data alignment of
 
179
      doubles was fixed).
 
180
     </para>
 
181
    </listitem>
 
182
   </itemizedlist>
 
183
  </para>
 
184
 </sect2>
 
185
 
 
186
 <sect2>
 
187
  <title><productname>PostgreSQL</productname></title>
 
188
 
 
189
  <para>
 
190
   By 1996, it became clear that the name <quote>Postgres95</quote>
 
191
   would not stand the test of time. We chose a new name,
 
192
   <productname>PostgreSQL</productname>, to reflect the relationship
 
193
   between the original <productname>POSTGRES</productname> and the
 
194
   more recent versions with <acronym>SQL</acronym> capability.  At
 
195
   the same time, we set the version numbering to start at 6.0,
 
196
   putting the numbers back into the sequence originally begun by the
 
197
   Berkeley <productname>POSTGRES</productname> project.
 
198
  </para>
 
199
 
 
200
  <para>
 
201
   The emphasis during development of
 
202
   <productname>Postgres95</productname> was on identifying and
 
203
   understanding existing problems in the server code.  With
 
204
   <productname>PostgreSQL</productname>, the emphasis has shifted to
 
205
   augmenting features and capabilities, although work continues in
 
206
   all areas.
 
207
  </para>
 
208
 
 
209
  <para>
 
210
   Details about what has happened in <productname>PostgreSQL</> since
 
211
   then can be found in <xref linkend="release">.
 
212
  </para>
 
213
 </sect2>
 
214
</sect1>