Relational Database
Overview
A relational database is a type of database that organizes data into one or more tables (or "relations") of rows and columns, with a unique key identifying each row. Rows in a table can be linked to rows in other tables by adding a column for the unique key of the linked row. The tables are connected by these relationships, which give the database its name.
History
The concept of a relational database was first proposed by Edgar F. Codd at IBM's San Jose Research Laboratory in 1970. Codd's view of what qualifies as a relational database system is summarized in Codd's 12 rules.
Structure
A relational database consists of a collection of tables, each having a unique primary key. The data in a table is organized into rows, or records, and columns, or fields. Each table usually contains data about a particular type of entity, such as employees or products.
Relational Model
The relational model is a theoretical foundation of relational databases. It is a mathematical model defined in terms of predicate logic and set theory, and defines a table as an n-ary relation.
Keys
A key is a field, or combination of fields, in a table that is used to establish and enforce relationships between the tables. There are several types of keys in a relational database: primary keys, foreign keys, and candidate keys.
Normalization
Normalization is the process of organizing data in a database to avoid duplication and redundancy, and to improve data integrity. It involves decomposing a table into less redundant tables without losing information, and then linking these new tables through foreign keys.
SQL
SQL (Structured Query Language) is a programming language used to manage and manipulate relational databases. It is a standard language for interacting with a relational database and is used for tasks such as querying data, updating data, and managing databases.
Transactions
A transaction is a sequence of one or more SQL operations that are executed as a single unit of work. Transactions provide an "all-or-nothing" proposition, stating that the work of a transaction will either be fully completed or not happen at all.
Concurrency Control
Concurrency control is a method used to ensure that transactions are executed in a system in a way that preserves the consistency of the database. It is essential in multi-user database systems.
Indexing
Indexing is a data structure technique to improve the speed of data retrieval operations on a database table. It provides swift access to rows in a table by providing the database with a pointer to the data in a table where the key is stored.
ACID Properties
ACID (Atomicity, Consistency, Isolation, Durability) is a set of properties that guarantee that database transactions are processed reliably.
Distributed Databases
A distributed database is a database in which storage devices are not all attached to a common processor. It may be stored in multiple computers located in the same physical location, or dispersed over a network of interconnected computers.
Relational Database Management System (RDBMS)
A RDBMS is the software system that allows users to define, create, maintain and control access to the relational database. Examples of RDBMS include MySQL, Oracle, and Microsoft SQL Server.