# Understanding the Relational Database Model

The relational database model was a huge leap forward from the [network database model](https://mariadb.com/docs/general-resources/database-theory/understanding-the-network-database-model). Instead of relying on a parent-child or owner-member relationship, the relational model allows any file to be related to any other by means of a common field. Suddenly, the complexity of the design was greatly reduced because changes could be made to the database schema without affecting the system's ability to access data. And because access was not by means of paths to and from files, but from a direct relationship between files, new relations between these files could easily be added.

In 1970, when E.F. Codd developed the model, it was thought to be impractical. The increased ease of use comes at a large performance penalty, and the hardware in those days was not able to implement the model. Since then, of course, hardware has taken huge strides to where today, even the simplest computers can run sophisticated relational database management systems.

Relational databases go hand-in-hand with the development of SQL. The simplicity of SQL - where even a novice can learn to perform basic queries in a short period of time - is a large part of the reason for the popularity of the relational model.

The two tables below relate to each other through the *product\_code* field. Any two tables can relate to each other simply by creating a field they have in common.

### Table 1

| Product\_code | Description       | Price |
| ------------- | ----------------- | ----- |
| A416          | Nails, box        | $0.14 |
| C923          | Drawing pins, box | $0.08 |

### Table 2

| Invoice\_code | Invoice\_line | Product\_code | Quantity |
| ------------- | ------------- | ------------- | -------- |
| 3804          | 1             | A416          | 10       |
| 3804          | 2             | C923          | 15       |

<sub>*This page is licensed: CC BY-SA / Gnu FDL*</sub>

{% @marketo/form formId="4316" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mariadb.com/docs/general-resources/database-theory/understanding-the-relational-database-model.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
