• We did not send an email asking for donations - please read this post.

Databases: Introduction



Databases are important since numerous applications require and use some type of database. There are a variety of databases, and each one has its advantages and disadvantages. Some databases are designed for a particular set of needs and uses. Gaining a basic understanding of the various database types can help users, developers, and administrators make the best choice when selecting a database to use.

A Database Management System (DBMS) is software that provides an interface for applications, users, and the database itself to access the data that is in the database. Examples of DBMSes include MySQL, MongoDB, SQLite, and PostgreSQL. Both of them are applications that interface with the database while the database itself is a file or collection of files that cannot execute and contain an organized collection of data.

"Querying" is the process of accessing, manipulating, removing, etc. of data in a database. A "query-language" is a computer language that is used to query a database. The DBMS interprets the query-language. Some web-applications use a "RDF query language" to query the RDF (Resource Description Framework) information found in HTML5 web-pages.

Database Models
Hierarchical-databases organize data in an hierarchical form (like XML).

Relational databases organize data using the "relational model", which uses tables, columns, and rows. A DBMS that uses the "relational model" is called a Relational Database Management System (RDBMS). Most RDBMSes use the Structured Query Language (SQL) to query data. SQL is an advanced and popular query language with many features.

Object database are object-oriented rather than being table-oriented (like Relational databases). A DBMS using this database type is called an Object-Oriented Database Management Systems (OODBMSs). Such databases may use the Object Query Language (OQL) for data queries.

Some other types of databases (by organization model) are listed below. There are many other database models that may be subtypes or hybrids of other models.
  • Column database
  • Document database
  • Graph database
  • Key-value database
  • Navigational database
  • Network database

Database Formats
Many database formats exist. They differ by how they store data and the schema language they use.

NOTE: A schema language is a computer language that organizes data (such as XML)

Deductive-databases use logic programming (like Datalog) with a relational database. This type of database can conclude additional facts using the stored data and rules. Such databases are useful for artificial intelligence.

Document-oriented-databases organize data using a semi-structured model. This is a special subtype of NoSQL-databases.

A Hypertext-database is an HTML file. HTML files are like XML-databases, but Hypertext-databases provide web-pages and store information about the displayed data.

JSON (JavaScript Object Notation) databases contain serialized data and are sometimes used as an alternative to XML-databases.

A NoSQL-database organizes data in a non-tabular form, thus making NoSQL not like SQL. NoSQL-databases may organize data using one of many models such as column, document, graph, key-value, or multiple models. NoSQL-databases are easier to manage and use than some other databases.

A SQL-database is a relational databases that uses the "relational model" to organize data. SQL-databases use the Structured Query Language (SQL) for querying the structured data. Such data is organized into tables (relations or base-relvars), columns (attributes or fields), and rows (tuples or records). All rows/tuples in a table must have the same columns/attributes. A single SQL-database may contain multiple tables. Each piece of data in an SQL-database is assigned a data-type (such as "integer", "string", "datetime", etc.). SQL-databases are faster than other databases, but are considered to be harder to maintain and use.

Temporal-databases use the "temporal data model" to organize data involving time. Such databases are usually relational databases. Some DBMSes that support temporal databases include PostgreSQL, TimeDB, MarkLogic, and Oracle Workspace Manager. The query language "SQL:2011" (the version of SQL released in 2011) supports temporal-databases.

An XML-database is a database that uses XML code. Therefore, the database is hierarchical database that uses markup tags. XQuery and XPath are examples of two popular query-languages that can be used to query an XML-database. XSLT (Extensible Stylesheet Language Transformations) can be used to style or change the appearance of XML data. Database admins can use XSLT to restructure data that was queried (such as generating a new database containing data organized in a particular fashion).

YAML-databases use the YAML language and are data serializations. These databases are typically used as configuration files or storing small amounts of data because YAML is slow to process.

Further Reading


  • slide.jpg
    27.9 KB · Views: 8,817



I'm a fan of MariaDB although Mongo can be an interesting No-SQL alternative.
$100 Digital Ocean Credit
Get a free VM to test out Linux!

Linux.org Hosting Donations
Consider making a donation

Members online