Modelo Relacional
Se fundamenta en el uso de las relaciones, se originó en IBM con Edgar Frank Codd, y es una estructura en base a relaciones en forma de tabla compuesta por registros.
Relación: corresponde a una tabla de datos.
Esquema:
Película (Título, año, duración)
Tuplas: Filas o registro completo de algo, es prácticamente un elemento del conjunto.
Dominio: Restricciones que se les asigna a los campos (Tipo de dato, longitud, otras).
Notación:
Atributos → Ai
Relación R → R(A1, A2, A3, ..., An)
Dominio de Ai → dom(Ai)
Relación es un conjunto
- Por lo tanto, no está ordenado
- Notación para las tuplas
- t = <Mar Adentro, 2004, 125> ∈ Matrícula
- Notación para subconjunto de tupla
- t[año, duración] = <2004,125>
- Restricción de dominio
- En algunos casos
- NULL ∈ dom(A)
- En tal caso diremos que la relación acepta valores nulos.
Clave Primaria: Atributo o varios atributos que permiten identificar de manera única a un registro.
Claves Candidatas:
- La elección de una clave primaria es arbitraria (Depende del contexto, de los requerimientos, etc).
- Se escoge una que tenga pocos atributos
- Se escoge una que identifique de manera única a cada tupla
Restricciones de Claves
- Restricción de claves únicas
- K ⊆ claves (Relación)
- ∀ t1, t2 ∈ Relación, t1[K] ≠ t2[K]
- NULL |K| ∉ K
- Una clave puede ser
- Un atributo
- Varios atributos (clave compuesta)
- Incluso pueden ser todos los atributos.
Claves Foráneas:
Campo que me permite relacionar una tabla con otra. La clave foránea identifica una columna o grupo de columnas de una tabla, llamada tabla hija o referendo, que se refiere a una columna o grupo de columnas de otra tabla, llamada tabla maestra o referenciada.
Integridad Referencial:
Es una propiedad que va a garantizar que una entidad siempre tenga una relación con más entidades válidas existentes en la base de datos.
Esto genera que los datos siempre sean correctos sin datos perdidos, ni repeticiones que no son necesarias.
Mantener Integridad referencial:
- Al insertar
- Insertar clave foránea en la otra tabla
- Rechazar la inserción
- Al eliminar
- Eliminar tuplas que apuntan a esta tupla
- "Cascada" (si borro un registro, todo lo que tiene relación a este registro se borra).
- Actualizar valores en tuplas que apunten a esta tupla