Databases
A database is an organized collection of digital data stored in software known as a database management system (DBMS). Databases are generally designed as server applications. It means they wait for a client to connect to them and request an action to be performed.
Data in a DBMS is stored in a specifically structured format and managed using a specialized high-level language. There are two types of databases popularly used, classified according to the approach they use to structure the data: Relational Databases and NoSQL Databases. Both database models have their relevance and must be used as appropriate based on the nature of the application and its data.
Database languages have the following categories of commands:
- Data Definition Language (DDL): This includes commands to define and create the structure of the database.
- Data Manipulation Language (DML): This includes commands to manage the data in the database, including commands to Create, Read, Update, and Delete data, often referred to as CRUD operations.
- Data Control Language (DCL): This includes commands for managing access rights, permissions, and other controls of the database system.
- Transaction Control Language (TCL): This manages transactions within a database. Transactions are a powerful feature of database management systems. When one request for writing data is in progress, no other request for writing data to that table is allowed so that the data is not overwritten. If multiple database tables are updated for data consistently, transaction control ensures that either all tables are updated or none of them, so there is no data inconsistency.
While the primary function of a database is to store and manage data, they are also capable of being programmed to execute instructions on the data. All of the instructions that can be programmed in the processing layer can equally well be programmed into the database directly. It is an architectural decision left to the application designer and developer.
There are many database server applications available, and all of them follow the same design principles and use the same high-level programming language. Some of the more popular relational databases include Oracle, Microsoft SQL, and MySQL, and popular NoSQL databases includes MongoDB and AWS DynamoDB, a database as a cloud service.