What is a Relational Database?
A relational database is a type of database. It uses a structure that allows us to identify and access data in relation to another piece of data in the database. Often, data in a relational database is organized into tables.
It stores and provides access to data points that are related to one another.
How Relational Databases Are Structured
The relational model means that the logical data structures—the data tables, views, and indexes—are separate from the physical storage structures. This separation means that database administrators can manage physical data storage without affecting access to that data as a logical structure. For example, renaming a database file does not rename the tables stored within it.
The distinction between logical and physical also applies to database operations, which are clearly defined actions that enable applications to manipulate the data and structures of the database. Logical operations allow an application to specify the content it needs, and physical operations determine how that data should be accessed and then carries out the task.
To ensure that data is always accurate and accessible, relational databases follow certain integrity rules. For example, an integrity rule can specify that duplicate rows are not allowed in a table in order to eliminate the potential for erroneous information entering the database.

The Relational Model
In the early years of databases, every application stored data in its own unique structure. When developers wanted to build applications to use that data, they had to know a lot about the particular data structure to find the data they needed. These data structures were inefficient, hard to maintain, and hard to optimize for delivering good application performance. The relational database model was designed to solve the problem of multiple arbitrary data structures.
The relational model provided a standard way of representing and querying data that could be used by any application. From the beginning, developers recognized that the chief strength of the relational database model was in its use of tables, which were an intuitive, efficient, and flexible way to store and access structured information.
Over time, another strength of the relational model emerged as developers began to use structured query language (SQL) to write and query data in a database. For many years, SQL has been widely used as the language for database queries. Based on relational algebra, SQL provides an internally consistent mathematical language that makes it easier to improve the performance of all database queries. In comparison, other approaches must define individual queries.
A relational model can be represented as a table of rows and columns. A relational database has following major components:
1. Table
2. Record or Tuple
3. Field or Column name or Attribute
4. Domain
5. Instance
6. Schema
7. Keys
1. Table
A table is a collection of data represented in rows and columns. Each table has a name in database. For example, the following table “STUDENT” stores the information of students in database.
Table: STUDENT
Student_Id | Student_Name | Student_Addr | Student_Age |
101 | Chaitanya | Dayal Bagh, Agra | 27 |
102 | Ajeet | Delhi | 26 |
103 | Rahul | Gurgaon | 24 |
104 | Shubham | Chennai | 25 |
2. Record or Tuple
Each row of a table is known as record. It is also known as tuple. For example, the following row is a record that we have taken from the above table.
3. Field or Column name or Attribute
The above table “STUDENT” has four fields (or attributes): Student_Id, Student_Name, Student_Addr & Student_Age.
4. Domain
A domain is a set of permitted values for an attribute in table. For example, a domain of month-of-year can accept January, February,…December as values, a domain of dates can accept all possible valid dates etc. We specify domain of attribute while creating a table.
An attribute cannot accept values that are outside of their domains. For example, In the above table “STUDENT”, the Student_Id field has integer domain so that field cannot accept values that are not integers for example, Student_Id cannot has values like, “First”, 10.11 etc.
5. Instance and Schema
I have already covered instance and schema in a separate guide, you can refer the guide here.
6. Keys
This is our next topic, I have covered the keys in detail in separate tutorials. You can refer the keys index here.