Sei sulla pagina 1di 4

Utilización del Algebra Relacional en las Bases de Datos

Alumno: Michel Jared Castro Bravo // Bloque: FC – SMVINF03A1T // Universidad San Ignacio de Loyola

Desde el surgimiento de los primeros computadores hasta los sistemas informáticos modernos se han
empleado fundamentos matemáticos en el modelamiento, diseño y desarrollo de los mismos. Un ejemplo claro
es la utilización de grafos para distintos tipos de estructuras de datos (arboles B, B+, B*, etc) o el procesamiento
de circuitos lógicos (secuenciales y no secuenciales) fundamentado en el álgebra Booleana. Al igual que este
último, existen casos en los que es necesario el empleo (o la creación) de un sistema de operaciones distinto al
álgebra convencional para brindar un soporte teórico a la solución de problemas en la vida real. Este es el caso
del Álgebra Relacional, en el cual se fundamentan los códigos de consulta en SQL/DML de la mayoría de bases
de datos relacionales, sin contar el empleo del cálculo relacional para las otras.

En este trabajo se explicará el uso del álgebra relacional en el lenguaje de Manipulación de bases de
datos relacionales, tomando en cuenta, previamente, las definiciones pertinentes.

1. ¿Qué es una base de datos (BD)?


Surgimiento de las Bases de datos:

Según C.J. Date, una base de datos es un conjunto de datos persistentes utilizado por los
sistemas de aplicación de una determinada empresa1, tomando por “datos persistentes” aquellos
que, una vez ingresados al sistema, solo pueden removerse por una solicitud explícita a la BD
(perduran en el sistema y no son efímeros). De manera panorámica, se puede afirmar que las BD son
sistemas de almacenamiento (o colección) de datos. Sin embargo, cabe resaltar la existencia de un
sistema previo a éstos: el Sistema de Archivos (SA), los cuales surgieron a raíz de la necesidad de
almacenamiento de información para su correspondiente reutilización2.

Tanto el SA como las BD tienen por objetivo la persistencia de datos. Sin embargo, en el SA se
presentaban diversos problemas con respecto a la consistencia de los datos: redundancia, alto costo
para la propagación de cambios, aislamiento de datos, etc. Las bases de datos surgieron por la
necesidad de solucionar las debilidades de los sistemas de archivos. Para esto, con el objetivo de
mantener la integridad de los datos, los Sistemas de Gestión de Bases de Datos (SGBD) deben
cumplir cuatro propiedades fundamentales:

- Atomicidad: Una transacción se ejecuta en su totalidad o no se ejecuta.


- Consistencia: Una transacción transforma un estado coherente de la BD en otro
igualmente coherente.
- Aislamiento: Las transacciones se comportan como si cada una fuese una única
transacción ejecutadas en el sistema. Están aisladas entre sí.
- Durabilidad: Luego de ser confirmada, una transacción persiste (deja un registro).

1
Date, C.J. (2001) Introducción a los sistemas de Bases de datos (p.10). Pearson: Mexico.
2
USIL (). Conceptos básicos de Bases de datos. Extraído de: Link no disponible.
Los SGBD comerciales más comunes suelen emplear BD basadas en el modelo de datos
relacional, el cual consiste en que los datos son visualizados en tablas y solamente en tablas
(llamadas formalmente “relaciones”).

Bases de datos Relacionales (BDR):

El almacenamiento de datos en las BDR está basado en la teoría de conjuntos, tomando a cada
tabla como un conjunto y cada registro (fila o tupla) como un elemento perteneciente a los mismos.
Para crear, manipular (introducir datos o modificar vistas) y controlar el acceso a dichas tablas se
emplea un lenguaje estándar denominado Structured Query Language (SQL, “Lenguaje Estructurado
de Consultas”)3, compuesto por 3 lenguajes para cada objetivo mencionado anteriormente:

- Data Definition Language (DDL): Utilizado para crear, eliminar y modificar tablas (incluyendo
las restricciones necesarias). Las tres sentencias básicas son: CREATE, ALTER y DROP.
- Data Manipulation Language (DML): Las sentencias en DML trabajan a nivel de datos y son
utilizadas para insertar, modificar, recuperar y eliminar los mismos. Sus tres sentencias
básicas son: INSERT, UPDATE, DELETE, SELECT.
- Data Control Language (DCL): Se utilizan sentencias DCL para modificar los permisos de
acceso y creación de elementos a un usuario o rol de la base de datos. Las sentencias
principales son: GRANT (otorga permisos), REVOKE (revoca permisos) y DENY (deniega la
herencia de permisos a una entidad de seguridad).

Las sentencias de recuperación de datos en DML se fundamentan en el álgebra relacional, una


herramienta que proporciona soporte teórico a las operaciones de consultas en SQL.

2. Algebra relacional:

El álgebra relacional es un lenguaje de consulta procedimental basado en la teoría de conjuntos


y creado por Codd en 1970 (posteriormente en 1972 se define el cálculo relacional de tuplas y
dominios, ambos basados en el cálculo de predicados). Consta de un conjunto de operaciones que
toman como entrada una o 2 relaciones (tablas) y retornan como resultado una nueva relación
(propiedad de cierre relacional4). Se compone por ocho operaciones atómicas, divididas en 2 grupos,
según su naturaleza:

- Operadores tradicionales: Unión, Intersección, Diferencia y Producto Cartesiano, extraídos


de la teoría de conjuntos y modificados ligeramente para trabajar con relaciones.
- Operadores especiales: Selección, Proyección, Concatenación (Join) y División, también
llamados operadores fundamentales (Silberschatz, 2002) o nativos.

3
Silberschatz, A (2002) Fundamentos de Bases de Datos. Mc Graw Hill: España.
4
Costal, D. El modelo relacional y el, Algebra Relacional. UOC. Recuperado de
https://books.google.com.pe/books?id=pEkTzCIYWaAC&printsec=frontcover&hl=es#v=onepage&q&f=false
Operadores del álgebra relacional:

1. Selección: Recibe como valor de entrada una relación (es un operador monario) y permite
restringir las tuplas (filas o registros) para la nueva relación. Se representa con el símbolo
sigma (“σ”). Su sintaxis es la siguiente: σcondición(tabla).
2. Proyección: Al igual que el operador selección, es un operador monario, con la diferencia de
que trabaja a nivel de campos o atributos. Se representa con el símbolo pi (“π”). Sintaxis:
πcampos(tabla).
3. Unión: Reúne los registros de dos tablas con el mismo número y tipo de atributos y los
muestra en una sola tabla. Actúa como la unión de conjuntos. Sintaxis: tabla1 ∪ tabla2.
4. Intersección: Retorna una relación con los registros comunes en 2 tablas distintas. Sintaxis:
tabla1 ∩ tabla2.
5. Diferencia: Retorna una relación con los elementos de una relación A que no pertenecen a la
relación B. Sintaxis: A – B
6. Producto cartesiano: Combina los elementos de 2 tablas distintas y las retorna en una nueva
relación. Sintaxis: A X B.
7. Concatenación natural: Combina información de dos tablas que comparten un atributo en
común5. Sintaxis: A * B.
8. División: Retorna una tabla con los valores de la tabla A cuyo campo X coincide con todos los
valores del campo X de la tabla B. En la práctica (DML) se compone por sentencias anidadas.
Sintaxis: A ÷ B.

3. Utilización del álgebra Relacional en las Bases de datos relacionales:

El álgebra relacional, como ya se mencionó anteriormente, proporciona un soporte teórico para


las consultas (operaciones con tablas) realizadas en SQL. Todas las sentencias DML poseen un
equivalente en Algebra relacional, de acuerdo a lo siguiente:

- SELECT es equivalente al operador proyección:


TABLA1(campo1,campo2,campo3) // R1 -> 𝜋 campo1,campo2(TABLA1)…
es equivalente a la sentencia: SELECT campo1, campo2 FROM tabla1

- WHERE es equivalente al operador selección:


R2 -> 𝜋campo1 ( 𝜎 campo1=102(TABLA1))
Es equivalente a la sentencia: SELECT campo1 FROM tabla1 WHERE campo1=102

- UNION  operador unión:


R3 -> 𝜋 (TABLA1 ∪ TABLA2)
Es equivalente a la sentencia: SELECT * FROM tabla1 UNION SELECT * FROM tabla2

5
Gomez, Martinez, Moreda, et. al. Bases de Datos 1. Dpto de lenguajes y sistemas informáticos. Universidad de Alicante.
- INTERSECT  operador intersección:
R4 -> 𝜋 (TABLA1 ∩ TABLA2)
Es equivalente a: SELECT * FROM tabla1 INTERSECT SELECT * FROM tabla2

- MINUS o NOT EXIST  operador diferencia


R5 -> 𝜋 (TABLA1 − TABLA2)
Es equivalente a: SELECT * FROM tabla1 MINUS SELECT * FROM tabla2
O: SELECT * FROM tabla1 WHERE NOT EXIST (SELECT * FROM tabla2)

- Selección de varias tablas en una cláusula FROM  Producto cartesiano:


R6 -> 𝜋 (TABLA1 × TABLA2)
Es equivalente a: SELECT * FROM tabla1, tabla2

- Producto Cartesian con igualdad de campos  Concatenación natural:

El producto cartesiano combina todos los elementos de la taba1 con todos los
elementos de la tabla2 sin discriminar campo en común. Si se desea que la sentencia actúe
como un JOIN NATURAL, se debe restringir la igualdad de campos:

SELECT * FROM tabla1, tabla2 WHERE tabla1.pk = tabla2.pk

- SELECT x FROM a WHERE NOT EXIST (SELECT * FROM b…)  División


TABLA2(campo1, campo2) // R7 -> 𝜋 (TABLA1 ÷ TABLA2)
Es equivalente a:
SELECT * FROM tabla1 t WHERE NOT EXIST(
SELECT * FROM tabla2 t2 WHERE NOT EXIST(
SELECT * FROM tabla1 t1 WHERE
t.pk = t1.pk AND t1.pk = t2.pk ))

Potrebbero piacerti anche