# data[].attributes.body
Esta describe el aspecto de la manipulación de datos.

# data[].attributes.body
Es nuestro primer lenguaje de consulta.

# data[].attributes.body
Se compone de varios puntos, en este momento veremos dos:

# data[].attributes.body
• Una relación de la base de datos
• Una relación constante

# data[].attributes.body
Una relación constante se escribe listando sus tuplas entre llaves ({}), por ejemplo {(C-101,Centro,500) (C- 215, Becerril, 700)}.

# data[].attributes.body
Las expresiones generales del álgebra relacional se construyen a partir de subexpresiones menores. Sean E1 y E2 expresiones de álgebra relacional.

# data[].attributes.body
Todas las siguientes son expresiones del álgebra relacional:

E1 ∪ E2
E1 – E2
E1 × E2

# data[].attributes.body
Debemos de saber que las operaciones fundamentales del álgebra relacional tienen una relación con la base de datos.

# data[].attributes.body
Las operaciones fundamentales del álgebra relacional son suﬁcientes para expresar cualquier consulta del álgebra relacional.

# data[].attributes.body
Sin embargo, si uno se limita únicamente a las operaciones fundamentales, algunas con- sultas habituales resultan de expresión intrincada.

# data[].attributes.body
Las operaciones del algebra relacional son selección, proyección, unión, diferencia de conjuntos, producto cartesiano y renombramiento.

# data[].attributes.body
Es un conjunto de operaciones que describen paso a paso cómo computar una respuesta sobre las relaciones.

# data[].attributes.body
Describe el aspecto de la manipulación de datos.

# data[].attributes.body
Estas operaciones de usan como una representación intermedia de una consulta a una base de datos.

# data[].attributes.body
Debido a sus propiedades algebraicas, sirven para obtener una versión más optimizada y eficiente de dicha consulta.

# data[].attributes.body
En la selección, debemos de utilizar la letra griega sigma minúscula para denotar la selección.

# data[].attributes.body
La proyección es una operación unitaria que devuelve una relación de argumentos; dado que las relaciones son conjuntos, se eliminan todas las filas duplicadas; la proyección se denota por la letra griega mayúscula pi.

# data[].attributes.body
La unión nos permite unir dos consultas, cuando no puedo obtener la información solo de una.

# data[].attributes.body
En este apartado se deﬁne la forma en que las diferentes operaciones del álgebra relacional tratan los valores nulos y las complicaciones que surgen cuando los valores nulos participan en las operaciones aritméticas o en
las comparaciones.

# data[].attributes.body
Las operaciones y las comparaciones con valores nulos se deberían evitar siempre que sea posible.

# data[].attributes.body
Dado que el valor especial nulo indica «valor desconocido o no existente»,
cualquier operación aritmética (como +, –, * y /)  que incluya valores nulos debe devolver un valor nulo.

# data[].attributes.body
De manera similar, cualquier comparación (como <, <=, >, >= y ≠) que incluya un valor nulo se evalúa al valor  especial desconocido; no se puede decir si el resultado de la comparación es cierto o falso, así que se dice que el resultado es el nuevo valor lógico desconocido.