Everybody who's familiar with the Internet and new media will occasionally use the word 'database' when describing websites, applications and services. We seem to have developed an intuitive understanding of what databases are - heaps of data that we can use to store data to, and retrieve information from. This understanding is probably a result of the ubiquity of databases - in today's world, we're constantly exposed to information processing applications, and most of them use some kind of database to store and retrieve data. Whether we order a book on Amazon or book seats in the Opera â€“ chances are that we're relying on the power of databases.
The exact mechanisms of how a particular database works depend on the context and specific requirements of an application.
In the context of computer science, a database refers to a structured collection of data and the distinction is made between a database an a database management system (DBMS). A database management system is software which will maintain a database and allow for various operations on the contained data (storage, retrieval, combining data sets, etc.). A database management system controls one or several databases. There are many database management systems available on the market, including PostgreSQL(open source), MySQL (open source) and Oracle (targeted towards professional users).
Databases and DMBS have evolved over time as computer science developed a better understanding of how to efficiently structure data. There are different approaches to this problem. Relational databases are the most widely used type of database. In relational databases data is stored in interconnected tables. Other approaches include object oriented, networked databases and document oriented databases.
Database management systems typically enforce rules to provide consistency and ensure the integrity of data. They are also heavily optimized to be good at processing data, which is why they help save time and money in most software development projects, as recreating the functionality provided by a typical database system is most often unfeasible.
Databases are so common and important in today's computing world, that there are many job openings for database administrators, a job title usually denoting somebody whose main task is the design and maintenance of databases.
In everyday language, a database often refers to a computer software system (desktop application or web application) which is primarily concerned with storing and retrieving data. More often than not, these applications are built on top of database management systems. Examples of such databases include library databases, stock keeping systems, flight reservation systems, online booking systems. In other cases (blog software, content management systems) we don't think of the applications as databases, although the function of these software applications heavily relies on databases. This is probably due to the fact that the latter category of system hides the data better and provides a sophisticated presentation layer, whereas the former category shows the individual data items directly (i.e. stock objects).
Many other computer systems use a database internally for the storage of data even though their main purpose is not the storage and retrieval of data. A vector graphics drawing application, for example, might use a database internally to save settings.