Building a Database on Linux - Linux Database Options
If you are simply looking for an personal database to catalog your book collection or create sales reports for your small business, OpenOffice BASE will work perfectly for you. Similar to Microsoft Access, it integrates seamlessly with the OpenOffice suite of products and has a graphical interface so you don’t have to be an SQL wizard to use it.
BASE has support for MySQL, Adabas D, MS Access and PostgreSQL as well as JDBC and ODBC standard drivers so it will connect to just about any database. Therefore, you can use it for a graphical front end for any larger relational database making it a great solution for any corporate environment.
PostgreSQL is an Enterprise ready object-relational database management system (ORDBMS) used by many companies including Yahoo! and Skype. Completely open source and cross platform, it is a viable alternative to the Oracle database. PostgreSQL is designed for high volume environments and as such is highly extendable and customizable. Like Oracle, PostgreSQL has it’s own scripting language (PL/pgSQL) and support for most of the other scripting languages and compiled languages including C, C++ and Java.
PostgreSQL supports many data types natively including text and composite arrays, XML and IPv4 and IPv6 addresses, and binary large objects (blobs). It also supports user defined data objects such as Domains, Functions and Indexes. Other features include Multi-Version Concurrency Control (MVCC), online backups, point in time recovery and asynchronous replication.
In the past, PostgreSQL was considered to be difficult to configure, slow to respond and not very user friendly. However, with latest versions, those issues have, in the large part, been resolved. The documentation is excellent, and there is community support through mailing lists and IRC. Commercial support is available through third party vendors.
MySQL is probably best known as the “M” in LAMP (Linux-Apache-MySQL-Perl, PHP, or Python). Like PostgreSQL, it is an open source ORDBMS used by companies such as Google, Flickr, and Facebook. Its codebase is currently copyrighted to MySQL AB a subsidiary of Sun Microsystems. It is currently offered in two flavors - the community version which is free and the enterprise version which is not free but comes with a support package.
As the database application in LAMP, it is used extensively in web development for storing data and logging users. Although MySQL does not have it’s own scripting language, it does have support for all other major scripting and compiled languages. Features of MySQL include support for a most of the ANSI SQL 99 standard and its extensions, clustering, stored procedures, 4G stored data and strong data protection.
One of the main disadvantages of MySQL is that it’s support for extremely large databases is limited. Its maximum table size is 16 TB compared to PostgreSQL’s 32TB size. However, for a web application, that should not be an issue.
As with everything Linux-related, you have a wide variety of choices when it comes to database selection and each solution has it’s pros and cons. If you are looking for a small, personal database there is OpenOffice BASE. If you are looking for an enterprise solution and you will need huge tables, online backups and MVCC, choose PostgreSQL. If you are creating a web application with a database backend, go with MySQL.