Database

A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality (for example, the availability of rooms in hotels), in a way that supports processes requiring this information (for example, finding a hotel with vacancies). The term "database" refers both to the way its users view it, and to the logical and physical materialization of its data, content, in files, computer memory, and computer data storage. This definition is very general, and is independent of the technology used. However, not every collection of data is a database; the term database implies that the data is managed to some level of quality (measured in terms of accuracy, availability, usability, and resilience) and this in turn often implies the use of a general-purpose Database management system (DBMS). A general-purpose DBMS is typically a complex software system that meets many usage requirements, and the databases that it maintains are often large and complex.

The term database is correctly applied to the data and data structures, and not to the DBMS which is a software system used to manage the data. The structure of a database is generally too complex to be handled without its DBMS, and any attempt to do otherwise is very likely to result in database corruption. DBMSs are packaged as computer software products: well-known products include the Oracle DBMS, Access and SQL Server from Microsoft, DB2 from IBM and the Open source DBMS MySQL. Each such DBMS product currently supports many thousands of databases all over the world. The stored data in a database is not generally portable across different DBMS, but can inter-operate to some degree (while each DBMS type controls a database of its own database type) using standards like SQL and ODBC. A successful general-purpose DBMS is designed in such a way that it can satisfy as many different applications and application designers as possible. A DBMS also needs to provide effective run-time execution to properly support (e.g., in terms of performance, availability, and security) as many end-users (the database's application users) as needed. Sometimes the combination of a database and its respective DBMS is referred to as a Database system (DBS).

A database is typically organized according to general Data models that have evolved since the late 1960s. Notable are the Relational model (all the DBMS types listed above support databases based on this model), the Entity-relationship model (ERM; primarily utilized to design databases), and the Object model (which has more expressive power than the relational, but is more complicated and less commonly used). Some recent database products use XML as their data model. A single database may be viewed for convenience within different data models that are mapped between each other (e.g., mapping between ERM and RM is very common in the database design process, and supported by many database design tools, often within the DBMS itself). Many DBMSs support one data model only, externalized to database developers, but some allow different data models to be used and combined.

The design and maintenance of a complex database requires specialist skills: the staff performing this function are referred to as database application programmers (different from the DBMS developers/programers) and database administrators, and their task is supported by tools provided either as part of the DBMS or as free-standing (stand-alone) software products. These tools include specialized Database languages including Data Description Languages, Data Manipulation Languages, and Query Languages. These can be seen as special-purpose programming languages, tailored specifically to manipulate databases; sometimes they are provided as extensions of existing programming languages, with added special database commands. Database languages are generally specific to one data model, and in many cases they are specific to one DBMS type. The most widely supported standard database language is SQL, which has been developed for the relational model and combines the roles of Data Description Language, Data manipulation language, and a Query language.

A way to classify databases involves the type of their contents, for example: bibliographic, document-text, statistical, multimedia objects, etc. Another way is by their application area, for example: Accounting, Music compositions, Banking, Manufacturing, Insurance, etc.

Important Databases on the MUX

 * The Underbase