> For the complete documentation index, see [llms.txt](https://educacion.gitbook.io/programacion/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://educacion.gitbook.io/programacion/ud8-persistencia-en-bases-de-datos/bases-de-datos-relacionales.md).

# Bases de datos relacionales

<figure><img src="/files/IMwCJVRzYW3OGyYHjqbu" alt=""><figcaption></figcaption></figure>

As bases de datos relacionales son aquelas que empregan o modelo relacional. É un modelo definido por **Edgar F. Codd** en 1970 no seu artigo "A Relational Model of Data for Large Shared Data Banks". Revolucionou o manexo de datos ao propor unha estrutura matemática baseada na teoría de conxuntos.

### Elementos do modelo relacional <a href="#elementos-do-modelo-relacional" id="elementos-do-modelo-relacional"></a>

* **Relación (Táboa)**: Estrutura principal que almacena datos
* **Tupla (Fila/Rexistro)**: Cada elemento individual dunha relación
* **Atributo (Columna/Campo)**: Propiedade ou característica dunha relación
* **Dominio**: Conxunto de valores permitidos para un atributo
* **Clave Primaria (Primary Key)**: Identificador único de cada tupla
* **Clave Foránea (Foreign Key)**: Atributo que referencia a clave primaria doutra relación

### Características principais <a href="#caracteristicas-principais" id="caracteristicas-principais"></a>

* **Utilización de tablas:** Os datos almacénanse en táboas con filas e columnas. Cada fila representa unha elemento única de esa entidade, e cada columna representa un atributo ou unha característica desa entidade. Unha entidade representa a un conxunto de elementos que teñen caracteristicas e comportamento similar.
* **Relacións entre tablas:** As táboas están relacionadas entre si a través de claves primarias e claves foráneas, o que permite establecer conexións e consultas complexas entre os datos de diferentes táboas.
* **Integridade dos datos:** Existe unha serie de restriccions que permiten verificar a integridade dos datos. Destacamos:
  * **Restricións de clave primaria**
  * **Restricións de clave foránea**
  * **Restricións de dominio**
  * **Restricións de unicidade**
  * **Restricións de nulidade**
* **Propiedades ACID:** As transaccións nas bases de datos relacionais adoitan cumprir as propiedades ACID, que garanten a fiabilidade das operacións:
  * **Atomicidade:** unha transacción execútase completamente ou non se executa.
  * **Consistencia:** os datos manteñen un estado válido tras cada transacción.
  * **Illamento:** as transaccións non interfiren entre si.
  * **Durabilidade:** os cambios realizados persisten aínda que exista un fallo no sistema.
* **Linguaxe de consulta estructurada (SQL):** As bases de datos relacionais utilizan SQL como linguaxe estándar para definir, manipular e consultar datos. SQL permite realizar diversas operacións como inserción, actualización, eliminación e consulta de datos nas táboas


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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://educacion.gitbook.io/programacion/ud8-persistencia-en-bases-de-datos/bases-de-datos-relacionales.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.
