Java Persistence/What is a database?
A database program is an executable that stores and retrieves data. There are many types of databases: flat-file, hierarchical, relational, object-relational, object-oriented, xml, and others. The original databases programs were mainly proprietary and non-standardized.
Relational databases were the first databases to achieve great success and standardization. Relational databases are characterized by the SQL (structured query language) standard to query and modify the database, their client/server architecture, and relational table storage structure. Relational databases achieved great success because their standardization allowed many different vendors such as Oracle, IBM, and Sybase to produce interoperable products giving users the flexibility to switch their vendor and avoid vendor lock-in to a proprietary solution. Their client/server architecture allows the client programming language to be decoupled from the server, allowing the database server to support interface APIs into multiple different programming languages and clients.
Although relational databases are relatively old technology, they still dominate the industry. There have been many attempts to replace the relational model, first with object-oriented databases, then with object-relational databases, and finally with XML databases, but none of the new database models achieved much success and relational databases remain the overwhelmingly dominant database model.