In software engineering, databases are systems that store, modify, and access collections of information electronically.
Databases can store a variety of data types including strings, numeric data, booleans, dates and times, and files of various extensions.
A database management system (DBMS) is software designed to manage a database. Database management systems allow developers to communicate with a database, via code or a graphical user interface, to perform database operations and administrative actions such as user management.
Tabular form refers to a database structure that stores data as a collection of tables with each table consisting of several rows and columns.
Relational databases organize data into individual tables via rows and columns. Each column represents an attribute of the data stored and each row is an individual record of the data. Many relational databases use Structured Query Language (SQL) to store and retrieve data, and as such are often referred to as SQL databases.
Relational databases represent data in terms of its relationship to other data. These types of databases organize data into tables and establish relationships between them. The most common types of relationships between tables are: “one-to-one”, “one-to-many”, and “many-to-many”.
Let’s use books to illustrate examples of database relationships:
A database schema is a blueprint that outlines how a database’s data will be structured and organized. It is always a good idea to have a database schema in place before actually inserting data.
Relational databases typically follow predefined schemas. Developers outline the tables and their associated relationships before inserting any data.
Two considerable disadvantages of working with relational databases are:
Non-relational, or NoSQL, databases is an umbrella term that refers to any database that does not follow the relational model provided by traditional database management systems.
The image above depicts a document database that stores data in JSON format.
Considerable advantages of NoSQL databases are:
Due to their flexible, unstructured nature, NoSQL databases can make accuracy a challenge to maintain.
A NoSQL database is a type of database which uses different data models than the traditional relational model used with SQL.
A key-value NoSQL database uses individual records consisting of:
The data is assigned to a name when stored.
A document-based NoSQL database stores objects which contain data in standard encodings such as JSON, YAML, or XML.
A graph-based NoSQL database connects many data objects (nodes) together through relationships (edges).
This type of database combines the querying of relational databases with NoSQL flexibility and scalability.
A column-oriented NoSQL database groups data into columns instead of using the rows of a traditional database.
The columns can consist of different sizes and stored data types.