~ubuntu-branches/ubuntu/oneiric/postgresql-9.1/oneiric-security

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2011-05-11 10:41:53 UTC
  • Revision ID: james.westby@ubuntu.com-20110511104153-psbh2o58553fv1m0
Tags: upstream-9.1~beta1
ImportĀ upstreamĀ versionĀ 9.1~beta1

Show diffs side-by-side

added added

removed removed

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