Álgebra relacional
Se espera que los sistemas de bases de datos relacionales estén equipados con un lenguaje de consulta que pueda ayudar a sus usuarios a consultar las instancias de la base de datos. Hay dos tipos de lenguajes de consulta: álgebra relacional y cálculo relacional.
Álgebra relacional
El álgebra relacional es un lenguaje de consulta procedimental, que toma instancias de relaciones como entrada y produce instancias de relaciones como salida. Utiliza operadores para realizar consultas. Un operador puede serunary o binary. Aceptan las relaciones como su entrada y producen las relaciones como su salida. El álgebra relacional se realiza de forma recursiva en una relación y los resultados intermedios también se consideran relaciones.
Las operaciones fundamentales del álgebra relacional son las siguientes:
- Select
- Project
- Union
- Establecer diferente
- producto cartesiano
- Rename
Discutiremos todas estas operaciones en las siguientes secciones.
Seleccionar operación (σ)
Selecciona tuplas que satisfacen el predicado dado de una relación.
Notation- σ p (r)
Dónde σ significa predicado de selección y rsignifica relación. p es una fórmula lógica preposicional que puede usar conectores comoand, or, y not. Estos términos pueden usar operadores relacionales como - =, ≠, ≥, <,>, ≤.
For example -
σsubject = "database"(Books)
Output - Selecciona tuplas de libros donde el tema es 'base de datos'.
σsubject = "database" and price = "450"(Books)
Output - Selecciona tuplas de libros donde el tema es 'base de datos' y 'precio' es 450.
σsubject = "database" and price = "450" or year > "2010"(Books)
Output - Selecciona tuplas de libros donde el tema es 'base de datos' y 'precio' es 450 o aquellos libros publicados después de 2010.
Operación del proyecto (∏)
Proyecta columna (s) que satisfacen un predicado dado.
Notación - ∏ A 1 , A 2 , A n (r)
Donde A 1 , A 2 , A n son nombres de atributos de relaciónr.
Las filas duplicadas se eliminan automáticamente, ya que la relación es un conjunto.
For example -
∏subject, author (Books)
Selecciona y proyecta columnas nombradas como tema y autor de la relación Libros.
Operación Unión (∪)
Realiza la unión binaria entre dos relaciones dadas y se define como:
r ∪ s = { t | t ∈ r or t ∈ s}
Notation - r U s
Dónde r y s son relaciones de base de datos o conjunto de resultados de relación (relación temporal).
Para que una operación sindical sea válida, se deben cumplir las siguientes condiciones:
- ry s debe tener el mismo número de atributos.
- Los dominios de atributos deben ser compatibles.
- Las tuplas duplicadas se eliminan automáticamente.
∏ author (Books) ∪ ∏ author (Articles)
Output - Proyecta los nombres de los autores que han escrito un libro, un artículo o ambos.
Establecer diferencia (-)
El resultado de la operación de diferencia de conjuntos son tuplas, que están presentes en una relación pero no en la segunda relación.
Notation - r - s
Encuentra todas las tuplas que están presentes en r pero no en s.
∏ author (Books) − ∏ author (Articles)
Output - Proporciona el nombre de los autores que han escrito libros pero no artículos.
Producto cartesiano (Χ)
Combina información de dos relaciones diferentes en una.
Notation - r Χ s
Dónde r y s son relaciones y su salida se definirá como -
r Χ s = {qt | q ∈ r y t ∈ s}
σauthor = 'tutorialspoint'(Books Χ Articles)
Output - Produce una relación, que muestra todos los libros y artículos escritos por tutorialspoint.
Cambiar el nombre de la operación (ρ)
Los resultados del álgebra relacional también son relaciones pero sin nombre. La operación de cambio de nombre nos permite cambiar el nombre de la relación de salida. La operación 'renombrar' se denota con letra griega pequeñarho ρ .
Notation- ρ x (E)
Donde el resultado de la expresión E se guarda con el nombre de x.
Las operaciones adicionales son:
- Establecer intersección
- Assignment
- Unión natural
Cálculo relacional
A diferencia del álgebra relacional, el cálculo relacional es un lenguaje de consulta no procedimental, es decir, dice qué hacer pero nunca explica cómo hacerlo.
El cálculo relacional existe en dos formas:
Cálculo relacional de tuplas (TRC)
Filtrar rangos de variables sobre tuplas
Notation- {T | Condición}
Devuelve todas las tuplas T que cumplen una condición.
For example -
{ T.name | Author(T) AND T.article = 'database' }
Output - Devuelve tuplas con 'nombre' del autor que ha escrito un artículo en 'base de datos'.
TRC se puede cuantificar. Podemos usar cuantificadores existenciales (∃) y universales (∀).
For example -
{ R| ∃T ∈ Authors(T.article='database' AND R.name=T.name)}
Output - La consulta anterior arrojará el mismo resultado que la anterior.
Cálculo relacional de dominio (DRC)
En DRC, la variable de filtrado usa el dominio de atributos en lugar de valores de tupla completos (como se hizo en TRC, mencionado anteriormente).
Notation -
{a 1 , a 2 , a 3 , ..., a n | P (un 1 , un 2 , un 3 , ..., un n )}
Donde a1, a2 son atributos y P representa fórmulas creadas por atributos internos.
For example -
{< article, page, subject > | ∈ TutorialsPoint ∧ subject = 'database'}
Output - Produce Artículo, Página y Asunto de la relación TutorialsPoint, donde el tema es la base de datos.
Al igual que TRC, DRC también se puede escribir utilizando cuantificadores existenciales y universales. DRC también involucra operadores relacionales.
El poder de expresión del cálculo de relaciones de tuplas y el cálculo de relaciones de dominios es equivalente al álgebra relacional.