A database is simply a repository for data. By convention, database refers to the actual structure of data, while Data-Base Management System (or DBMS) refers to the software that oversees one or more databases and provides access to them.
The use of databases is ubiquitous in business, and many personal projects rely on databases of some kind. Almost all interactive Web sites rely on some sort of database, because of Security issues with a Web server writing to the file system directly.
Databases can be divided into categories based on the data model they use to store the actual data. The common models are:
- Object based
Most databases use the relational model and are usually referred to as RDBMS. Then there is also the object-relational type, which extends the relational module by allowing new data types to be defined by the user.
Query languages are used for retrieving data from a databases. But they usually do more then only query, they often also allow things like data definition and input.
The most commonly used is SQL, which was designed to query databases that use the relational model. But with the newer versions of the SQL standard (SQL3 a.k.a. SQL:1999) also added support for more object-oriented features. Most databases also allow the SQL language to be extended with help of some other programming language. There are specific language for SQL like Oracle's PL/SQL. But extending with common languages like Java,Perl,Python,C,etc. is also often supported by databases.
Other query languages include the XML based XQuery and XQL. HQL (Hibernate Query Language), QBE (Query by example), QBC (Query by Criteria) and many more.
OODBMS don't need a specific query language, because the objects are directly accessed as objects through some API in whatever programming language is used.
There are common database independent API around for accessing databases, the main advantage for using these is that the database can easily replaced with another one that supports the API. This API acts as a middle layer between a actual DBMS driver and the application.
The most used one is ODBC, another one specific to the Java programming language is JDBC.
- IBM DB2
- Sybase ASE
- Sybase Replication Server
- Sybase EAServer
- Sybase IQ
- Berkeley DB
Free or Open Source DBMS
- Apache Derby
Database Front Ends
- phpPgAdmin web-based administration and access for Postgresql (very good).
- PGAccess the original, TCL/TK GUI for postgresql.
- pgAdmin advanced GUI for multiple platforms.
- Navicat Commercial -- unknown????
- phpMyAdmin web-based administration and access for MySQL.
- mysql - commandline tool for mysql