What is PostgreSQL?

Databases
Oleksandr Vykhor
17-06-2020 23:05:00


PostgreSQL is a DBMS that uses a relational model for its databases and supports the standard SQL query language.

PostgreSQL provides a wide range of capabilities, is quite reliable, and has good performance characteristics. It runs on almost all UNIX platforms, including UNIX-like systems such as FreeBSD and Linux. It can be used on Windows NT Server and Windows 2000 Server, and even Microsoft workstation systems like ME are suitable for development. Additionally, PostgreSQL is freely distributed and has open-source code.

PostgreSQL stands out favorably from many other DBMSs. It has almost all the features found in other databases (commercial or open-source), as well as some additional ones.

Here is a list of PostgreSQL's functional capabilities (as presented in frequently asked questions about PostgreSQL):

  • Transactions
  • Nested queries
  • Views
  • Referential integrity - foreign keys
  • Advanced locking mechanisms
  • User-defined types
  • Inheritance
  • Rules
  • Version compatibility checks

Since version 6.5, PostgreSQL has been a highly stable system, and each subsequent version undergoes regression testing to ensure stability. PostgreSQL 7.x is closer than ever to full SQL92 compliance, and the previous row size limitation has been removed.

During its operation, PostgreSQL has proven to be a trustworthy DBMS. Each version is thoroughly tested, with beta versions undergoing at least a month of testing. Thanks to a large user community and open-source availability, bugs are fixed very quickly.

The performance of this DBMS also improves with each version, and recent certifications show that, under certain conditions, it is comparable to commercial products. Some systems with fewer features may outperform PostgreSQL in terms of speed, but at the cost of reduced functionality. For simpler applications, a flat-file database may suffice.

PostgreSQL Architecture

One of PostgreSQL's strengths is its architecture. Like many commercial DBMSs, PostgreSQL operates in a client-server environment, offering numerous advantages for both users and developers.

The core of PostgreSQL is the database server process, which runs on a single server. (This DBMS has not yet implemented high-availability technology like some other enterprise-level commercial systems that distribute the load across multiple servers for additional scalability and resilience.)

Applications access the database through the database process. Client programs cannot access data directly, even if they run on the same computer as the database server.

This separation of clients and servers enables distributed systems. Clients can be separated from the server via a network, allowing developers to build client applications in a user-friendly environment. For example, the database can run on UNIX, while client applications operate on Microsoft Windows.

Multiple clients connect to the server over a network. PostgreSQL uses the TCP/IP protocol, whether in a local network or the Internet. Each client connects to the main database server process, which spawns a new server process dedicated to handling that client's data access requests.

Because data manipulation is handled on the server, the DBMS does not have to manage multiple clients accessing a shared server directory, ensuring data integrity even with a large number of concurrent users.

Client applications connect to the database using the PostgreSQL-specific protocol. However, client-side software can be installed to provide a standard interface for working with applications, such as ODBC or JDBC. The availability of an ODBC driver allows PostgreSQL to be used as a database for many existing applications, including Microsoft Office products like Excel and Access. 

The client-server architecture enables task distribution. The server machine is well-suited for storing and managing access to large volumes of data and can serve as a reliable repository. Complex graphical applications can be developed for clients. Alternatively, a web-based interface can be created to provide access to data via a standard web browser, eliminating the need for additional client software.

Source:

oracle-patches.com


Назад