1. MODELOS LÓGICOS : Modelo
Relacional
Clase 8
Gloria Lucía Giraldo Gómez
Universidad Nacional de Colombia
glgiraldog@unalmed.edu.co
Bloque M8A - 313
2. Antecedentes
Edgar Codd, 1970:
Artículo: “A Relational Model of Data for
Large Shared Data Banks”
Basado en teoría de conjuntos
Gran avance respecto a los modelos de red y
jerárquico (que son difíciles de administrar,
de ejecución compleja,, con carencia de
independencia estructural, etc.)
Evita el uso de punteros
Operaciones sobre conjuntos de datos
3. Representación
Datos en tablas bidimensionales.
Se basa en el concepto de relación
Informalmente en el modelo relacional:
relación = tabla
Se apoya en el álgebra y el cálculo de
relaciones
Generó los RDBMS (SGBD Relacionales)
4. Ventajas
Separación clara del nivel lógico y el
físico
Sencillo y fácil de modificar
Operadores con gran poder de
manipulación de datos
Fundamentación teórica sólida
Compatibilidad y estandarización
Confiabilidad y estabilidad
5. Ventajas
Garantía de Independencia de los
datos
Es empleado por numerosos sistemas
comerciales y conectividad
garantizada con los lenguajes de
programación estándar (Java, C++,
VBasic etc.)
Se consigue fácilmente apoyo técnico
6. Desventajas
No incluye comportamiento de los datos a diferencia
del objetual y objeto relacional por ejemplo
No se puede representar conocimiento en forma de
reglas ¿Cómo cuáles?
No se puede manejar herencia*
Descompone los elementos de interés en varias
tablas**
Presenta dificultades para el manejo de datos no
atómicos (confrontar con los atributos grupales y
multivaluados del modelo semántico)
* Aunque la herencia puede ser simulada de forma incómoda
** Esto implica la recomposición del elemento
7. Elementos del Modelo
Relacional
ATRIBUTOS
Nombre de la
RELACION PELICULA
TITULO AÑO DURACION
La guerra de las galaxias 1997 120
El señor de los anillos 2001 180
TUPLAS
Mar adentro 2004 90
El viaje de Chihiro 2001 120
El DOMINIO del atributo TITULO = TEXTO Dominio de AÑO y
DURACION = ENTEROS
8. Elementos del Modelo
Relacional: RELACION = TABLA
Concepto abstracto de estructura bidimensional: filas y
columnas
Se pueden definir por comprensión y por extensión:
Ej. por comprensión: R={x|x (identificación, nombre,
teléfono) es estudiante de la Universidad Nacional de
Colombia}
Por extensión implica que hay que listar uno por uno los
elementos de la relación
Una relación es un conjunto de filas, entonces por
definición éstas no tienen orden
En una relación no hay filas (tuplas) repetidas
Las columnas de una relación tienen un nombre único
dentro de la tabla y no tienen orden
Cada celda es atómica o UNIVALUADA
La relación es el único elemento utilizado para representar
tanto entidades como asociaciones entre ellas.
9. Notación para RELACIÓN
El esquema de una relación R se denota
R(A1,A2, …An) donde R es el nombre de la
relación y A1,A2, …An son los atributos de R
Ejemplo:
EMPLEADO(cédula,nombre,dirección,salario)
10. Elementos del modelo relacional:
TUPLA
Un conjunto de tuplas es una relación
Cada instancia o fila o registro de una
relación es una tupla
Una tupla puede representar tanto
instancias de entidades como instancias de
“asociaciones” (modelo conceptual)
Número de tuplas: cardinalidad o extensión
de la relación
11. Notación para tuplas
t = <La guerra de las galaxias, 1997, 120>∈ Película
Para un subconjunto de tuplas:
t[titulo,año] = <La guerra de las galaxias,1997>
12. Elementos del modelo relacional:
ATRIBUTO
Cada campo o columna de una
relación es un atributo
El número de atributos se denomina
grado o aridad de la relación
El conjunto de atributos forman la
cabecera de la relación
Cada atributo está valuado o basado
sobre un único dominio Ver
siguiente
13. Elementos del modelo relacional:
DOMINIO
Es el conjunto de los posibles valores que
puede tomar un atributo
No es más que un tipo de datos. Ej:
Booleano, Entero, cadena de caracteres,
etc.
Puede servir para valuar a varios atributos
Se puede restringir para velar por la
integridad de la base de datos
14. Notación para DOMINIO
• Dominio: el dominio del atributo A se denota dom(A)
• Restricción del dominio: t[A] = <x> x ∈ dom(A)
Ej: en algunos casos NULL ∈ dom(A), lo cual significa que
el atributo A acepta valores nulos
• Una definición formal de relación:
R(A1, A2, …An) ⊆ ( dom(A1) x dom(A2) x … dom(An) )
R es el subconjunto del producto cartesiano de los
dominios de A1, A2, …, An
R(A1, A2, …An) ⊆ ( dom(A1) x dom(A2) x … dom(An) )
Relación es Subconjunto de todas las posibles combinaciones
15. CLAVES
Clave candidata:
Atributo o atributos que identifican de
manera única una tupla dada
¿Por qué toda relación tiene al menos
una clave candidata?
Deben cumplir unicidad y minimalidad
(irreducibilidad)
16. EJEMPLO
Claves candidatas … ¿ candidatas a qué? … a ser
claves primarias
Automóvil
Un automóvil puede identificarse por el número de
matrícula o por el número del motor
17. CLAVES : Clave primaria
Elegida a partir de las claves candidatas de la
relación.
Las demás quedan como claves alternativas o
secundarias (si las hay)
Es el equivalente al identificador único del Modelo
Entidad/Asociación (#) o al ID único del modelo
semántico
Regla de integridad de las
claves primarias
“Ningún componente de la clave primaria
acepta nulos”. ¿Qué es un
nulo?
18. CLAVES: Clave Foránea o Ajena o
Externa
Atributo (puede ser compuesto) de
una relación R1 que es clave primaria
en una relación R2 (R1 y R2 no
necesariamente diferentes)
Especifica de forma explícita la forma
en que dos tablas se relacionan
Mecanismo para asegurar la
integridad
19. Regla de integridad referencial
“Ningún componente de una clave foránea
puede contener valores que no están
presentes en la clave primaria (alternativa)
a la que referencia”
¿Puede una clave foránea admitir nulos?
¿Cómo es el dominio de una clave foránea
frente al dominio de la clave primaria a la
que referencia?
20. Guardar la integridad referencial
¿Qué pasa si la referencia(“Padre”) de una
clave foránea intenta ser borrada?
Posibles cursos de acción:
- Cascada
- Restringido
- Nulificación
- Programada
La misma pregunta en el caso de
actualización del padre…
21. Otros tipos de Claves
Superclave
Natural
Inteligente o Semántica
Artificial o Subrogada
Solapadas
¡¡¡ INVESTIGA !!!
Respuesta: porque las tuplas son irrepetibles, por lo tanto necesitan un identificador único que seria la clave primaria. Unicidad: debe ser única Minimalidad (irreductibilidad) ser mínima , en el sentido de que en su composición no intervengan más que los atributos estrictamente requeridos para identificar las tuplas de forma única.
Respuesta: una clave foránea si puede admitir nulos Respuesta: es el mismo dominio.
BORRADO CASCADA : Especifica que si se intenta eliminar una fila con una clave a la que hacen referencia claves externas de filas existentes en otras tablas, todas las filas que contienen dichas claves externas también se eliminan. RESTRINGIDO: No lo permite. NULIFICACION: Especifica que si se intenta eliminar una fila con una clave a la que hacen referencia las claves externas de las filas existentes de otras tablas, todos los valores que conforman la clave externa de las filas a las que se hace referencia se establecen en NULL. Todas las columnas de clave externa de la tabla de destino deben aceptar valores NULL para que esta restricción se ejecute. PROGRAMADA o predeterminados : Especifica que si se intenta eliminar una fila con una clave a la que hacen referencia las claves externas de las filas existentes de otras tablas, todos los valores que conforman la clave externa de las filas a las que se hace referencia se establecen como predeterminados. Todas las columnas de clave externa de la tabla de destino deben tener una definición predeterminada para que esta restricción se ejecute. Si una columna acepta valores NULL y no se ha establecido ningún valor predeterminado explícito, NULL se convierte en el valor predeterminado implícito de la columna. Todos los valores distintos de NULL que se establecen debido a ON DELETE SET DEFAULT deben tener unos valores correspondientes en la tabla principal para mantener la validez de la restricción de la clave externa. ACTUALIZACION CASCADA: Especifica que si se intenta actualizar un valor de clave de una fila a cuyo valor de clave hacen referencia claves externas de filas existentes en otras tablas, también se actualizan todos los valores que conforman la clave externa al nuevo valor especificado para la clave. NULIFICACION: Especifica que si se intenta actualizar una fila con una clave a la que hacen referencia las claves externas de las filas existentes de otras tablas, todos los valores que conforman la clave externa de las filas a las que se hace referencia se establecen en NULL. Todas las columnas de clave externa de la tabla de destino deben aceptar valores NULL para que esta restricción se ejecute.