PostgreSQL
Our solutions often rely on PostgreSQL for data storage and manipulation. KoMnA decided on this database software because it provides the most suitable combination of 5 important features: capability, stability, extensibility, scalability and connectivity.
PostgreSQL is a powerful open source database management system (DBMS), competing with well-known commercial products, such as Oracle, IBM DB2 or Microsoft SQL Server. It has been in active development for over 20 years and runs on all popular platforms, including AIX, BSD, HP-UX, IRIX, Linux, Mac OS X, Solaris, True64 and Windows.
Capability
Currently, PostgreSQL is the most feature complete open-source relational database management system:
Fully ACID compliant.
Adheres to the ANSI-SQL 92 and ANSI-SQL 99 standards (probably the most compatible of all existing SQL implementations).
Supports MVCC with complete transaction isolation.
Allows for unlimited database size and unlimited number of records in a table.
Fully supports foreign keys, joins, views, triggers and stored procedures in several programming languages.
Supports subqueries, even within FROM statements.
Indexing algorithms include B-trees, R-trees, hash functions and GIST.
Supports point-in-time recovery, schemes (tablespaces), asynchronous replication, nested transactions and archiving with no downtime (hot backups).
Supports access to the system catalogue through information schema.
Stability
PostgreSQL is known for exceptional reliability, resulting from high-quality code originally written for UNIX systems. The server has been actively used in production environments for over 20 years, with many databases serving thousands of users and terabytes of data.
KoMnA has been using PostgreSQL since 2004 to host data for a great majority of our products and solutions. We've never encountered a bug of any significance (or even a documentation error) and we've never experienced any service failures or data loss.
PostgreSQL is well-designed and provides high availability, including hot backups (i.e. making backups without stopping the server) and upgrades with only a few seconds of service interruption.
Overall, server administration is relatively simple and can be fully automated using shell scripts. Since GUI tools are not a requirement, emergency server management can be easily handled with a mobile phone or through slow communication lines.
Extensibility
PostgreSQL supports stored procedures (i.e. database functions) written in several programming languages , including C, C++, Java, Perl, PL/pgSQL, Python, Ruby, Tcl, and more. These can be used to further extend database functionality.
KoMnA mainly uses the Python and PL/pgSQL languages, the latter being very similar to Oracle's PL/SQL. We also developed several low-level C functions to help with, among others:
User authentication, activities tracking, and extensive logging.
Communication with external systems.
Text sorting and filtering for a custom language (e.g. Slovenian), which is several times faster than the standard Unicode support.
Scalability
PostgreSQL is an open source project and its code is available under a very liberal BSD type licence. This allows us to use the server in our own products or deploy any number of databases for any number of users with no licensing costs or restrictions.
The license also gives us access to the source code, which helps with software development and is crucial for its long-term maintenance. The result is a modern, secure, and always up-to-date database without scalability or over-deployment concerns, saving time and money for us as well as our clients.
Connectivity
Connectivity is one of the most significant advantages of PostgreSQL over commercial databases. There are hundreds of projects that developed a wide variety of tools to work with the database, including libraries that can be used to create clients in different programming environments such as Ada, Basic, C, C++, C#, Delphi, Java, JDBC, Lisp, .NET, ODBC, PHP, Pascal, Perl, Python, Ruby, Scheme, Qt and others.
This makes PostgreSQL databases accessible from everywhere, regardless of the computer platforms used. Data exchange between information systems is thus greatly simplified, and so are future upgrades and improvements, either by KoMnA or other vendors.