Está en la página 1de 23

Bases de datos relacionales

El modelo relacional
Introducción
• Fue propuesto en 1970
por Edgar Frank Codd en
el artículo “A Relational
Model of Data for Large
Shared Data Banks”.
• Se trata de un modelo
lógico que establece una
estructura concreta sobre
los datos.
• Está basado en el
concepto matemático de
Relación
Reglas de Codd
• Regla 0: Todo relacional
• Regla 1: De la información
• Regla 2: Del acceso garantizado
• Regla 3: Tratamiento sistemático de valores nulos
• Regla 4: Catálogo basado en el modelo relacional
• Regla 5: Del sublenguaje de datos completo
• Regla 6: De actualización de vistas
• Regla 7: Inserción, actualización y borrado de alto nivel
• Regla 8: Independencia física de datos
• Regla 9: Independencia lógica de datos
• Regla 10: Independencia de integridad
Concepto de Relación

Una relación es un subconjunto del producto


cartesiano de una lista de dominios
Ejemplo de relación
Dominio
• Conjunto finito de valores que puede tomar un
atributo
• Por ejemplo:
Colores = {“Rojo”, “Amarillo”, “Azul”,…}
Países = {“España”, “Portugal”, “Brasil”, “China”,…}
Números enteros positivos = {0, 1, 2, 3, 4, 5, ….}
• Se pueden definir:
– Indicando la definición exacta de sus posibles valores.
– Se indican algunos valores y se sobreentiende el resto.
Producto cartesiano X
• Todos con todos
• Dominios:
– Color de Pelo = {“Rubio”, “Moreno”,….}
– Sexo = {“Femenino”, “Masculino”}
• Producto cartesiano: Color de pelo Sexo
Rubio Femenino
Color de Pelo X Sexo
Rubio Masculino
Moreno Femenino
Moreno Masculino
Castaño Femenino
Castaño Masculino
Subconjunto
Color de pelo Sexo
Rubio Femenino Color de pelo Sexo
Rubio Masculino Rubio Femenino
Moreno Femenino Moreno Femenino
Moreno Masculino Moreno Masculino
Castaño Femenino Castaño Femenino
Castaño Masculino

PRODUCTO CARTESIANO RELACIÓN


Características de las relaciones
• Cada relación tiene un nombre y éste es distinto del
nombre de todas las demás.
• Los valores de los atributos son atómicos: en cada
tupla, cada atributo toma un solo valor y además este
debe pertenecer al dominio previamente establecido.
• No hay dos atributos que se llamen igual en la misma
relación.
• Tanto los atributos (columnas) como las tuplas (filas) se
pueden considerar en cualquier secuencia sin afectar ni
al contenido ni al significado semántico.
• No se admiten tuplas duplicadas. Cada tupla es única
Tipos de relaciones
• Relaciones persistentes:
– Bases: las “tablas” que almacenan los datos.
– Vistas: Sólo almacenan una definición de consulta,
resultado de la cual se produce una tabla virtual cuyos
datos proceden de las tablas bases u otras vistas.
– Instantáneas: Son un tipo de vista que almacenan los
resultados de la consulta que muestran en una tabla, y se
actualiza de forma periódica respecto de la tabla origen. Se
conocen también como “Vistas materializadas”
• Relaciones temporales: tablas que se eliminan
automaticamente por el sistema. Las utiliza el sistema
como almacén intermedio de los datos.
Intensión y extensión de las relaciones
• La intensión hace referencia a la estructura
estática de la relación. No varía con el tiempo.
• La extensión hace referencia al conjunto de
tuplas que forman parte de la relación en un
momento determinado. Por lo tanto, varía con
el tiempo.
Claves
• Si no se admiten tuplas duplicadas es necesario que exista
al menos un atributo (o un conjunto de ellos) cuyo valor no
se repita en ninguna de las tuplas de la relación. A este
conjunto de atributos que identifica de forma unívoca y
mínima a cada tupla se conoce como clave candidata.
• Si en la relación hubiese varias claves candidatas,
elegiremos una de ellas para que haga la función de clave
primaria, mientras que las no elegidas se conocen como
claves alternativas.
• Finalmente definimos clave foránea, ajena o externa como
aquel atributo (o conjunto de atributos) cuyos valores han
de coincidir con los de la clave primaria de alguna otra
relación (aunque también puede ser de la misma). Las
claves ajenas representan relaciones entre los datos.
Concepto de clave ajena
Nulos
• La regla 3 de Codd indica que debemos disponer
de un valor que represente la información
desconocida o no aplicable.
• Como los nulos se usan continuamente debemos
disponer de reglas para saber cómo tratarlo en
operaciones lógicas:
– Verdadero AND null = null
– Falso AND null = Falso
– Verdadero OR null = Verdadero
– Falso OR null = Falso
– NOT null = null
Restricciones
• Son condiciones de obligado cumplimiento
por las tuplas de la base de datos:
– Inherentes: vienen impuestas por el propio
modelo relacional (ya las hemos visto
anteriormente)
– Semánticas: incorporadas por el usuario (vamos a
estudiarlas a continuación)
Restricciones de integridad
• Para conseguir la integridad de los datos
disponemos de los siguientes tipos de
restricciones:
– Integridad de entidad
– Integridad de dominio
– Integridad referencial
Integridad de entidad
• La integridad de entidad define una fila como
entidad única para una tabla determinada. La
integridad de entidad fuerza la integridad de
la columna o columnas de los identificadores
o la clave principal de una tabla (mediante
índices, restricciones UNIQUE o restricciones
PRIMARY KEY).
Integridad de dominio
• Comprueba que los datos cumplen el dominio elegido para
la columna.
• Conlleva la necesidad de indicar si existe obligatoriedad
(not null), es decir, si el nulo es o no un valor posible en el
dominio.
• Formas de restringir:
– Tipos de datos
– Formato
– Reglas de validación CHECK (una relación) o ASERCIONES (entre
campos de distintas relaciones)
– Disparadores: para hacer cumplir determinadas restricciones
semánticas que no podemos hacerlo de otra forma.
Integridad referencial
• Asegura que un valor que aparece en una
relación (tabla) para un conjunto de atributos
determinado, aparezca también en otra
relación para un cierto conjunto de atributos.
• Garantiza que los valores clave sean
coherentes en las distintas relaciones (tablas)
Reglas de las claves ajenas
• Para toda clave ajena debemos contestarnos a estas
preguntas:
– Regla de los nulos: ¿Tiene sentido que la clave ajena acepte
nulos?
– Regla de borrado: ¿Qué ocurre si se intenta borrar la tupla
referenciada por la clave ajena?
• Prohibir la operación (No action / restrict)
• Borrado en cascada (cascade)
• Poner clave foránea a nulo (SET NULL)
• Usar un valor por defecto (SET DEFAULT)
– Regla de modificación: ¿Qué ocurre si se intenta modificar el
valor de la clave primaria de la tupla referenciada por la clave
ajena?
• Idem regla de borrado

VOLVER A EJEMPLO
Esquema de bases de datos
• Un esquema es la definición de las relaciones
que conforman una base de datos.
• El esquema constará de:
– Nombre de la relación
– Nombre de los atributos
– Dominio de los atributos
• Además deberemos indicar todas las
restricciones que podamos (grafo relacional)
Representación del esquema
(no estándar)
• Atributo subrayado: clave primaria
• Atributo con doble subrayado: clave
alternativa
• Atributo con asterisco: clave foránea
• Ejemplo:
Empleado(dni, NSS, nombre, apellidos,
departamento*)

También podría gustarte