Algebra Relacional

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

Bases de datos relacionales

Roberto Hernando Velasco


(http://www.rhernando.net)

24 de abril de 2004

1. Introducción
A finales de los setenta Codd introdujo la teorı́a de las relaciones, proponiendo
un modelo de datos basado en relaciones o tablas. El modelo de datos relacional
tuvo un auge espectacular a finales de los setenta, y hoy en dı́a es uno de los modelos
más utilizados por los Sistemas Gestores de Bases de Datos.

2. Estructura del modelo de relación


El elemento básico del modelo relacional es la relación, que se representa me-
diante una tabla (véase la figura 1).

relación atributo 1 atributo 2 ... atributo n


xxxx xxxx ... xxxx
xxxx xxxx ... xxxx
xxxx xxxx ... xxxx

Figura 1: Representación de una relación en forma de tabla.

En ella podemos distinguir un conjunto de columnas, denominadas atributos,


que representan propiedades de la misma, y un conjunto de filas llamadas tuplas,
que son las ocurrencias de la relación. Cada uno de los atributos puede tomar valores
dentro de un rango determinado, que se denomina dominio.
El número de filas de una relación se llama cardinalidad, mientras que el número
de columnas es el grado.

2.1. Ejemplo de relación


En la figura 2 se tiene un ejemplo de relación. El nombre de la relación es
Empleados, y está compuesta por un subconjunto de tres elementos formados a
partir del producto cartesiano de tres conjuntos de atributos (nombre, apellido,
sueldo).

Nombre Apellido Sueldo


Juan Garcı́a 1200
Pedro Gutiérrez 1700
Marı́a López 2100

Figura 2: Relación Empleados

1
El dominio de los atributos nombre y apellido es el conjunto de todas las cadenas
alfanuméricas de determinada longitud, y el dominio del atributo sueldo son los
números positivos hasta cierta cantidad.
La cardinalidad de la relación empleados es tres, correspondiente al número de
filas de la tabla, y su grado es cuatro, igual al número de columnas.
Como queda claro en el ejemplo, en el modelo relacional la nomenclatura ma-
temática (relación, cardinalidad y atributos) y la propia de su representación gráfica
(tabla, filas y columnas) es intercambiable, por lo que se utilizan ambas indistinta-
mente.

2.2. Caracterı́sticas de las relaciones


Dentro de la representación de las relaciones como tablas se pueden hacer las
siguientes consideraciones:

No puede haber filas duplicadas. Todas las tuplas tienen que ser distintas.

El orden las filas es irrelevante.

El orden de los atributos no es significante.

No se admiten atributos multivaluados. Es decir, en cada celda de la tabla


sólo puede haber un valor.

2.3. Claves
Como hemos visto, en una tabla no puede haber dos filas iguales. Por ello, debe
haber uno o varios atributos que se puedan utilizar para distinguir unas tuplas de
otras. Cualquier atributo o conjunto mı́nimo (1 ) de atributos que sirva para este
propósito se denomina clave candidata.
A la clave candidata que se escoge para identificar las tuplas de una relación se
la denomina clave primaria. La elección de esta clave no es única, aunque se suele
utilizar la más corta por razones de eficiencia. El resto de claves candidatas que no
han sido elegidas como clave primaria reciben el nombre de claves alternativas.

3. Álgebra Relacional
El álgebra relacional nos dice cómo manipular las relaciones, mediante una serie
de operaciones. Matemáticamente el álgebra relacional es un álgebra completa, es
decir, por medio de ella se puede hacer cualquier acceso a la base de datos.

3.1. Operadores básicos


El álgebra relacional presenta cinco operadores básicos: unión, diferencia, pro-
ducto cartesiano, proyección y selección.
A partir de estos cinco operadores es posible definir todos los demás, como
pueden ser la intersección, el cociente y la unión natural.

1 Por conjunto mı́nimo se entiende aquel conjunto de atributos tal que si se elimina uno de ellos

el conjunto resultante deja de ser clave candidata.

2
3.1.1. Unión, ∪

La unión de dos relaciones R y S (R ∪ S) se define como el conjunto formado


por todas las tuplas de R más todas las tuplas de S.
Este operador sólo se puede aplicar a relaciones del mismo grado y con los
mismos atributos.
En la figura 3 tenemos un ejemplo de unión de dos relaciones.

Relación R ∪ S
Relación R Relación S
Código Provincia
Código Provincia Código Provincia 01 Álava
01 Álava 03 Alicante 02 Albacete
02 Albacete 04 Almerı́a 03 Alicante
04 Almerı́a

Figura 3: Ejemplo del operador unión

3.2. Diferencia, −
La diferencia de dos relaciones R y S (R−S) se define como el conjunto formado
por todas las tuplas de R que no están en S.
Este operador sólo se puede aplicar a relaciones del mismo grado y con los
mismos atributos.
Véase el ejemplo de la figura 4.

Relación R Relación S
Relación R − S
Código Provincia Código Provincia
Código Provincia
01 Álava 03 Alicante
02 Albacete
02 Albacete 01 Álava

Figura 4: Ejemplo del operador diferencia

3.3. Producto cartesiano, ×


El producto cartesiano de dos relaciones R y S (R × S), de grados m y n
respectivamente, se define como el conjunto formado por todas las posibles tuplas
de m + n elementos en las que los m primeros elementos son de R y los n restantes
pertenecen a S.
En la figura 5 se ve un ejemplo de producto cartesiano.

3.3.1. Proyección, π

Si X es un subconjunto de atributos de la relación R, se define la proyección de R


sobre X (πX (R)) como la relación formada por las columnas de R correspondientes
a los atributos de X.
En la figura 6 se tiene un ejemplo de proyección, siendo X = (provincia).

3
Relación R × S
Relación R Relación S
Código Provincia Cantidad
Código Provincia Cantidad 01 Álava 45
01 Álava 45 01 Álava 67
02 Albacete 67 02 Albacete 45
02 Albacete 67

Figura 5: Ejemplo del operador producto cartesiano

Relación R Relación πX (R)

Código Provincia Provincia


01 Álava Álava
02 Albacete Albacete

Figura 6: Ejemplo del operador proyección

3.3.2. Selección, σ
Si F es una fórmula compuesta por operadores lógicos, aritméticos y de compa-
ración, y sus operandos son los valores de los atributos de una relación R, entonces
la selección σF (R) es el conjunto de tuplas de la relación R que hacen verdadera la
condición establecida por la fórmula F .
En la figura 7 tenemos un ejemplo, donde F = (código = ’01’) OR (Provincia
> ’Alicante’)

Relación R
Relación σF (R)
Código Provincia
01 Álava Código Provincia
02 Albacete 01 Álava
03 Alicante 04 Almerı́a
04 Almerı́a

Figura 7: Ejemplo del operador selección

4. El lenguaje SQL
El SQL (Structured Query Language) es el lenguaje de manipulación de datos
relacionales más extendido, habiéndose convertido en un estándar de facto.
SQL permite realizar consultas utilizando los recursos del álgebra relacional
combinados con el cálculo relacional de tuplas.

4.1. Partes del lenguaje SQL


4.1.1. Lenguaje de Descripción de Datos, DDL (Data Description Lan-
guage)
Es el lenguaje utilizado para la creación y mantenimiento de la estructura de
la base de datos. Se utiliza para definir y modificar los esquemas de las relaciones,

4
crear o destruir ı́ndices y eliminar relaciones. Permite también la definición de vistas
y permisos de acceso para los usuarios.
Es el lenguaje que utiliza el administrador de la base de datos para realizar sus
tareas.

4.1.2. Lenguaje de Manipulación de Datos, DML (Data Manipulation


Language)
Incluye todas las instrucciones para realizar consultas a las bases de datos, in-
sertar, modificar o eliminar datos.
Es el que utilizan los usuarios finales en la fase de explotación de la base de
datos.

4.2. Definición de datos


4.2.1. Creación de tablas
Las tablas se crean con el comando CREATE TABLE, de la siguiente forma:

CREATE TABLE nombreTabla (


nombreColumna1 tipoColumna1,
nombreColumna2 tipoColumna2,
...
PRIMARY KEY (columnasClave)
)

4.2.2. Actualización de tablas


Después de crear las tablas se puede insertar, modificar o eliminar información
en las mismas, mediante los siguientes comandos:

INSERT INTO nombreTabla


[(listaColumnas)]
{VALUES (datos) | comandoSelección}

UPDATE nombreTabla
SET nombreColumna = expresión

DELETE FROM nombreTabla


WHERE condición

4.3. Consultas
4.3.1. El comando SELECT
Las consultas en SQL son posibles gracias al comando SELECT, que tiene la
siguiente estructura:

SELECT atributos
FROM relaciones
[WHERE condición]

En términos de álgebra relacional, el comando SELECT es equivalente a la


asociación de una selección, una proyección y un producto cartesiano. Los atributos
de la proyección se especifican en la cláusula SELECT; la cláusula FROM especifica
las relaciones de las que se han de tomar esos atributos; y la cláusula WHERE (que
es opcional) contiene una condición de selección.

También podría gustarte