]> begriffs open source - ai-pg/blob - full-docs/html/tutorial-arch.html
Include latest toc output
[ai-pg] / full-docs / html / tutorial-arch.html
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>1.2. Architectural Fundamentals</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="tutorial-install.html" title="1.1. Installation" /><link rel="next" href="tutorial-createdb.html" title="1.3. Creating a Database" /></head><body id="docContent" class="container-fluid col-10"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">1.2. Architectural Fundamentals</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="tutorial-install.html" title="1.1. Installation">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="tutorial-start.html" title="Chapter 1. Getting Started">Up</a></td><th width="60%" align="center">Chapter 1. Getting Started</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 18.0 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="tutorial-createdb.html" title="1.3. Creating a Database">Next</a></td></tr></table><hr /></div><div class="sect1" id="TUTORIAL-ARCH"><div class="titlepage"><div><div><h2 class="title" style="clear: both">1.2. Architectural Fundamentals <a href="#TUTORIAL-ARCH" class="id_link">#</a></h2></div></div></div><p>
3     Before we proceed, you should understand the basic
4     <span class="productname">PostgreSQL</span> system architecture.
5     Understanding how the parts of
6     <span class="productname">PostgreSQL</span> interact will make this
7     chapter somewhat clearer.
8    </p><p>
9     In database jargon, <span class="productname">PostgreSQL</span> uses a
10     client/server model.  A <span class="productname">PostgreSQL</span>
11     session consists of the following cooperating processes
12     (programs):
13
14     </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
15        A server process, which manages the database files, accepts
16        connections to the database from client applications, and
17        performs database actions on behalf of the clients.  The
18        database server program is called
19        <code class="filename">postgres</code>.
20        <a id="id-1.4.3.3.3.3.1.1.2" class="indexterm"></a>
21       </p></li><li class="listitem"><p>
22        The user's client (frontend) application that wants to perform
23        database operations.  Client applications can be very diverse
24        in nature:  a client could be a text-oriented tool, a graphical
25        application, a web server that accesses the database to
26        display web pages, or a specialized database maintenance tool.
27        Some client applications are supplied with the
28        <span class="productname">PostgreSQL</span> distribution; most are
29        developed by users.
30       </p></li></ul></div><p>
31    </p><p>
32     As is typical of client/server applications, the client and the
33     server can be on different hosts.  In that case they communicate
34     over a TCP/IP network connection.  You should keep this in mind,
35     because the files that can be accessed on a client machine might
36     not be accessible (or might only be accessible using a different
37     file name) on the database server machine.
38    </p><p>
39     The <span class="productname">PostgreSQL</span> server can handle
40     multiple concurrent connections from clients.  To achieve this it
41     starts (<span class="quote">“<span class="quote">forks</span>”</span>) a new process for each connection.
42     From that point on, the client and the new server process
43     communicate without intervention by the original
44     <code class="filename">postgres</code> process.  Thus, the
45     supervisor server process is always running, waiting for
46     client connections, whereas client and associated server processes
47     come and go.  (All of this is of course invisible to the user.  We
48     only mention it here for completeness.)
49    </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial-install.html" title="1.1. Installation">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="tutorial-start.html" title="Chapter 1. Getting Started">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="tutorial-createdb.html" title="1.3. Creating a Database">Next</a></td></tr><tr><td width="40%" align="left" valign="top">1.1. Installation </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 18.0 Documentation">Home</a></td><td width="40%" align="right" valign="top"> 1.3. Creating a Database</td></tr></table></div></body></html>