From c8cfb0cea88fec22f5aa0582fe846b46baf77eb1 Mon Sep 17 00:00:00 2001 From: Thomas G. Lockhart Date: Sun, 1 Mar 1998 08:16:16 +0000 Subject: SGML source for new documentation. --- doc/src/sgml/intro.sgml | 482 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 482 insertions(+) create mode 100644 doc/src/sgml/intro.sgml (limited to 'doc/src/sgml/intro.sgml') diff --git a/doc/src/sgml/intro.sgml b/doc/src/sgml/intro.sgml new file mode 100644 index 00000000000..09a6ad3b02b --- /dev/null +++ b/doc/src/sgml/intro.sgml @@ -0,0 +1,482 @@ + +Introduction + + + This document is the user manual for the + PostgreSQL + database management system, originally developed at the University + of California at Berkeley. PostgreSQL is based on + + Postgres release 4.2. +The Postgres project, + led by Professor Michael Stonebraker, has been sponsored by the + Defense Advanced Research Projects Agency (DARPA), the + Army Research Office (ARO), the National Science + Foundation (NSF), and ESL, Inc. + + + + What is <ProductName>Postgres</ProductName>? + + + Traditional relational database management systems + (DBMSs) 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 "Spartan simplicity". + However, as mentioned, this simplicity often makes the + implementation of certain applications very difficult. + Postgres offers substantial additional + power by incorporating the following four additional + basic concepts in such a way that users can easily + extend the system: + + +classes +inheritance +types +functions + + + + +Other features provide additional power and flexibility: + + +constraints +triggers +rules +transaction integrity + + + + +These features put Postgres into the category of databases +referred to as object-relational. Note that this is distinct +from those referred to as object-oriented, which in general +are not as well suited to supporting the traditional relational database languages. +So, although Postgres has some object-oriented features, +it is firmly in the relational database world. In fact, some commercial databases +have recently incorporated features pioneered by Postgres. + + + + +A Short History of <ProductName>Postgres</ProductName> + + +The Berkeley <ProductName>Postgres</ProductName> Project + + + Implementation of the Postgres DBMS began in 1986. The + initial concepts for the system were presented in + +[STON86] + and the definition of the initial data model + appeared in + +[ROWE87]. +The design of the rule system at + that time was described in + +[STON87a]. +The rationale + and architecture of the storage manager were detailed in + +[STON87b]. + + + + Postgres has undergone several major releases since + then. The first "demoware" system became operational + in 1987 and was shown at the 1988 ACM-SIGMOD + Conference. We released Version 1, described in + +[STON90a], + to a few external users in June 1989. In response to a + critique of the first rule system + +([STON89]), +the rule + system was redesigned + +([STON90b]) +and Version 2 was + released in June 1990 with the new rule system. + Version 3 appeared in 1991 and added support for multiple + storage managers, an improved query executor, and a + rewritten rewrite rule system. For the most part, + releases since then have focused on portability and + reliability. + + + + Postgres has been used to implement many different + research and production applications. These include: a + financial data analysis system, a jet engine + performance monitoring package, an asteroid tracking + database, a medical information database, and several + geographic information systems. Postgres has also been + used as an educational tool at several universities. + Finally, Illustra Information Technologies picked up + the code and commercialized it. + Postgres became the primary data manager for the + Sequoia 2000 + scientific computing project in late 1992. + Furthermore, the size of the external user community + nearly doubled during 1993. It became increasingly + obvious that maintenance of the prototype code and + support was taking up large amounts of time that should + have been devoted to database research. In an effort + to reduce this support burden, the project officially + ended with Version 4.2. + + + + +<ProductName>Postgres95</ProductName> + + +In 1994, +Andrew Yu +and +Jolly Chen +added a SQL language interpreter to Postgres, and the code was subsequently released to +the Web to find its own way in the world. Postgres95 was a public-domain, open source descendant +of this original Berkeley code. + + + + Postgres95 is a derivative of the last official release + of Postgres (version 4.2). The code is now completely + ANSI C and the code size has been trimmed by 25%. There + are a lot of internal changes that improve performance + and code maintainability. Postgres95 v1.0.x runs about 30-50% + faster on the Wisconsin Benchmark compared to v4.2. + Apart from bug fixes, these are the major enhancements: + + + + + The query language Postquel has been replaced with + SQL (implemented in the server). We do not yet support + subqueries (which can be imitated with user defined + SQL functions). Aggregates have been + re-implemented. We also added support for ``GROUP BY''. + The libpq interface is still available for C + programs. + + + + + In addition to the monitor program, we provide a new + program (psql) which supports GNU readline. + + + + + We added a new front-end library, libpgtcl, that + supports Tcl-based clients. A sample shell, + pgtclsh, provides new Tcl commands to interface tcl + programs with the Postgres95 backend. + + + + + The large object interface has been overhauled. We + kept Inversion large objects as the only mechanism + for storing large objects. (This is not to be + confused with the Inversion file system which has been + removed.) + + + + + The instance-level rule system has been removed. + Rules are still available as rewrite rules. + + + + + A short tutorial introducing regular SQL features as + well as those of ours is distributed with the source + code. + + + + + GNU make (instead of BSD make) is used for the + build. Also, Postgres95 can be compiled with an + unpatched gcc (data alignment of doubles has been + fixed). + + + + + + + +<ProductName>PostgreSQL</ProductName> + + +By 1996, it became clear that the name Postgres95 would not stand +the test of time. A new name, PostgreSQL, was chosen to reflect the +relationship between original Postgres and the more recent +versions with SQL capability. At the same time, the version numbering +was reset to start at 6.0, putting the numbers back into the sequence originally begun by +the Postgres Project. + + +The emphasis on development for the v1.0.x releases of Postgres95 +was on stabilizing the backend code. +With the v6.x series of PostgreSQL, the emphasis has shifted from +identifying and understanding existing problems in the backend to augmenting features and capabilities, although +work continues in all areas. + + +Major enhancements include: + + + + +Important backend features, including subselects, defaults, constraints, and triggers, have been implemented. + + + + +Additional SQL92-compliant language features have been added, + including primary keys, quoted identifiers, literal string type coersion, type casting, + and binary and hexadecimal integer input. + + + + +Built-in types have been improved, including new wide-range date/time types and additional geometric type support. + + + + +Overall backend code speed has been increased by approximately 20%, and backend startup speed has decreased 80%. + + + + + + + +About This Release + + + From now on, We will use Postgres to mean PostgreSQL. + + + PostgreSQL is available without cost. This manual + describes version 6.3 of PostgreSQL. + + +Check the Administrator's Guide for a list of currently supported machines. In general, +PostgreSQL is portable to any Unix/Posix-compatible system +with full libc library support. + + + + +Resources + + +This manual set is organized into several parts: + + + +Tutorial + + +An introduction for new users. Does not cover advanced features. + + + + + +User's Guide + + +General information for users, including available commands and data types. + + + + + +Programmer's Guide + + +Advanced information for application programmers. Topics include +type and function extensibility, library interfaces, and application design issues. + + + + + +Administrator's Guide + + +Installation and management information. List of supported machines. + + + + + +Developer's Guide + + +Information for Postgres developers. This is intended +for those who are contributing to the Postgres +project; application development information should appear in the Programmer's Guide. + + + + + +Reference Manual + + +Detailed reference information on command syntax. +At the moment, this manual is very sparse, but eventually should contain +information similar to that in the man pages. + + + + + + +In addition to this manual set, there are other resources to help you with +Postgres installation and use: + + + +man pages + + +The man pages have general information on command syntax. + + + + + +FAQs + + +The Frequently Asked Questions (FAQ) documents address both general issues +and some platform-specific issues. + + + + + +READMEs + + +README files are available for some contributed packages. + + + + + +Web Site + + +The Postgres web site has some information +not appearing in the distribution. There is a mhonarc catalog of mailing list traffic +which is a rich resource for many topics. + + + + + +Mailing Lists + + +The Postgres Questions +mailing list is a good place to have user questions answered. Other mailing lists are available; consult +the web page for details. + + + + + +Yourself! + + +Postgres is an open source product. As such, it depends on the user community for +ongoing support. As you begin to use Postgres, you will rely on others +for help, either through the documentation or through the mailing lists. Consider contributing your +knowledge back. If you learn something which is not in the documentation, write it up and contribute it. +If you add features to the code, contribute it. Even those without a lot of experience can provide +corrections and minor changes in the documentation, and that is a good way to start. +The Postgres Documentation +mailing list is the place to get going. + + + + + + + + +Copyrights and Trademarks + + +PostgreSQL is copyright (C) 1996-8 by the PostgreSQL Global Development Group, +and is distributed under the terms of the Berkeley license. + + +Postgres95 is copyright (C) 1994-5 by the Regents of the University of California. +Permission to use, copy, modify, and distribute this software and its documentation +for any purpose, without fee, and without a written agreement is hereby granted, +provided that the above copyright notice and this paragraph and the following two +paragraphs appear in all copies. + + +In no event shall the University of California be liable to +any party for direct, indirect, special, incidental, or consequential +damages, including lost profits, arising out of the use of this +software and its documentation, even if the University of California +has been advised of the possibility of such damage. + + +The University of California specifically disclaims any +warranties, including, but not limited to, the implied warranties +of merchantability and fitness for a particular purpose. +The software provided hereunder is on an "as-is" basis, and +the University of California has no obligations to provide +maintainance, support, updates, enhancements, or modifications. + + + +UNIX is a trademark of X/Open, Ltd. Sun4, SPARC, SunOS +and Solaris are trademarks of Sun Microsystems, Inc. DEC, +DECstation, Alpha AXP and ULTRIX are trademarks of Digital +Equipment Corp. PA-RISC and HP-UX are trademarks of +Hewlett-Packard Co. OSF/1 is a trademark of the Open +Software Foundation. + + + -- cgit v1.2.3