Clase 04 Base de Datos Relacionales

40
1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal Entender los conceptos integridad de entidad e integridad referencial, y apreciar su importancia Entender los significados e implicaciones del concepto nulo en el modelo relacional Comprender el concepto vista relacional, y la problemática asociada a la modificación de datos a través de vistas Conocer los lenguajes formales álgebra relacional y cálculo relacional de tuplas, así como el lenguaje relacional estándar SQL-92

description

base de datos relacionales

Transcript of Clase 04 Base de Datos Relacionales

EL MODELO RELACIONAL DE DATOS2. Modelo relacional de datos
Objetivos
Comprender los principios estructurales del modelo de datos relacional formal
Entender los conceptos integridad de entidad e integridad referencial, y apreciar su importancia
Entender los significados e implicaciones del concepto nulo en el modelo relacional
Comprender el concepto vista relacional, y la problemática asociada a la modificación de datos a través de vistas
Conocer los lenguajes formales álgebra relacional y cálculo relacional de tuplas, así como el lenguaje relacional estándar SQL-92
Tema 2. Modelo relacional de datos
*
2. Modelo relacional de datos
Contenidos
2.2 Estructura de datos relacional
2.3 Características generales de integridad de datos
2.4 Manipulación de datos: lenguajes relacionales
2.4.1 Álgebra relacional
2.4.3 SQL-92
*
2. Modelo relacional de datos
Bibliografía
[EN 2002] Elmasri, R.; Navathe, S.B.: Fundamentos de Sistemas de Bases de Datos. 3ª Edición. Addison-Wesley. (Cap. 7, 8 y 9)
[EN 1997] Elmasri, R.; Navathe, S.B.: Sistemas de bases de datos. Conceptos fundamentales. 2ª Edición. Addison-Wesley Iberoamericana. (Cap. 6 y 7)
[D 2001] Date, C.J.: Introducción a los sistemas de bases de datos. 7ª Edición. Prentice-Hall. (Cap. 3 al 9)
...
*
Introducido por Codd, 1970
(basado en registros)
El modelo más usado en las aplicaciones comerciales de procesamiento de datos convencional
Dividido en 3 partes:
1. Estructura de Datos
3. Manipulación de Datos
*
Relación
Tiene un nombre y representa una entidad genérica
Conjunto de tuplas
Compuesta de atributos con nombre (y dominio)
Cada atributo representa un atributo de la entidad
Representada mediante una tabla con filas y columnas
Modelo basado en Teoría matemática
Analogía entre “Relación” (concepto matemático) y “Tabla”
Teoría de Conjuntos y Lógica de Predicados de 1er orden
Sólida Base Formal
Tema 2. Modelo relacional de datos
*
2.2 Estructura de datos relacional
La relación PELICULA
Italia,Argentina, España, EEUU, Francia,Japón..
*
Términos básicos
Modelo Relacional
Formal
SQL-92
Relación
Tabla
Fichero
Tupla
Si la tupla t está en la relación R, entonces tR
Fila
cabecera de Columna
Cardinalidad
=
=
=
*
Tema 2. Modelo relacional de datos
Conjunto de valores atómicos del mismo tipo, donde toman su valor los atributos
La definición de dominios forma parte de la definición de la BD
Cada atributo definido sobre un ÚNICO dominio OBLIGATORIO
Si A, B representan un mismo concepto, A y B con mismo dominio
Dominio D puede contener valores no tomados por ningún atributo
{valores de A} Dominio(A)
Comparaciones Restringidas a Dominio
La comparación de dos atributos sólo tiene sentido si ambos toman valores del mismo dominio
Si el SGBD soporta dominios, podrá detectar este tipo de errores
Definiciones formales: DOMINIO
Tema 2. Modelo relacional de datos
Un dominio es un conjunto de valores escalares
Un Escalar es:
Menor unidad semántica de información: valor de un dato individual
Valor Atómico (desde pto. de vista del modelo)
*
Una relación R, sobre conjunto de dominios D1, D2 ... Dn
se compone de dos partes:
Esquema o Cabecera
Los Di no tienen por qué ser distintos entre sí
Estado, Cuerpo o Instancia
tupla = conjunto de pares Atributo:Valor
{ { (A1:vi1), (A2:vi2) ... (An:vin) } }, donde i=1..m
Definiciones formales: RELACIÓN (1)
Tema 2. Modelo relacional de datos
*
Un esquema de relación:
{ { (titulo:Torrente), (duracion:110), (director:S.Segura), (estreno:1997) }
... }
El estado de una relación es variable en el tiempo
nuevas tuplas, modificación o borrado de existentes
El esquema no suele variar
costoso:
· ¿valores de nuevos atributos para tuplas ya existentes?
Suele incluir un conjunto de Reglas de Integridad (se verá)
Definiciones formales: RELACIÓN (2)
Tema 2. Modelo relacional de datos
Cardinalidad m (cambia con el tiempo)
Grado n (no suele variar)
*
Propiedades de una Relación
2. Las tuplas no están ordenadas
3. Los atributos no están ordenados
esquema = conjunto de pares Atributo:Dominio
4. Los valores de atributos son Atómicos
dominio = conjunto de valores atómicos
Intersección fila/columna = un solo valor (no lista de valores)
Si R cumple esta propiedad, R está en 1FN
estado = conjunto matemático de tuplas
Definiciones formales: RELACIÓN (3)
Tema 2. Modelo relacional de datos
*
FORMAS NORMALES
cumple <cierto> conjunto de condiciones o restricciones
necesarias para estar bien diseñada
de acuerdo con el modelo relacional de datos.
Toda relación ha de estar en 1FN (estructura de datos simple)
Definiciones formales: RELACIÓN (4)
Tema 2. Modelo relacional de datos
*
Relación vs. Tabla
Tabla: Representación concreta de tal elemento abstracto
Ventajas
Representación muy sencilla (tabla) del elemento abstracto básico (relación) del Modelo Relacional
Fácil de utilizar, entender, razonar...
Inconveniente
Aparente orden entre filas y entre columnas de la tabla
Definiciones formales: RELACIÓN (5)
Tema 2. Modelo relacional de datos
Relación es un concepto matemático (Codd lo era).
En matemáticas, una relación entre los valores de dos conjuntos D1 y D2 es un subconjunto de su producto cartesiano: D1 X D2.
En el modelo relacional, una Relación es un subconjunto del producto cartesiano entre los dominios de los atributos. Es decir, esos conjuntos D1, D2 ... Dn corresponden a los dominios de los atributos a1, a2... an de la relación R.
La tabla...
Las filas están ordenadas de arriba abajo
Los atributos están ordenados de izquierda a derecha
*
Percibida por usuarios como una colección de relaciones
de diversos grados (nº de atributos)
que varían con el tiempo (nº de tuplas, estado)
Las relaciones (tablas) son la estructura lógica de la BD
Niveles externo y conceptual ANSI/X3/SPARC
Toda BDR cumple el Principio de Información:
Todo contenido de información de la BD está representado
de una y sólo una forma: como valores explícitos
dentro de posiciones de columnas dentro de filas dentro de tablas
Conexión lógica entre Relaciones (vínculo o interrelación)
Representada mediante valores
Definiciones formales: BD RELACIONAL (1)
2.2 Estructura de datos relacional
Tema 2. Modelo relacional de datos
El usuario percibe la base de datos en forma de tablas (relaciones), que son la estructura lógica en un sistema relacional, no la estructura física.
En un SBD relacional, los niveles conceptual y externo (ANSI/SPARC) serán relacionales (estructura lógica), no así el nivel interno.
*
En una BDR distinguimos...
Descripción de la base de datos
Conjunto de esquemas de relación
PELICULA ( titulo:Títulos, director:Nombres, género:Géneros,
Estado o instancia de base de datos
Visión del contenido de la base de datos en cierto instante
Conjunto de estados de relación
Definiciones formales: BD RELACIONAL (2)
2.2 Estructura de datos relacional
Tema 2. Modelo relacional de datos
*
Todo estado de BD refleja la realidad
es un modelo de una porción del mundo real (minimundo)
Algunas configuraciones de valores NO tienen SENTIDO
pues no representan ningún estado posible del minimundo
2 personas distintas con el mismo DNI
Un empleado sin NSS
Una película sin director
REGLAS DE INTEGRIDAD
*
Claves Candidatas y Primarias
Informan al SGBD de restricciones del mundo real
Así, el SGBD evita configuraciones de datos imposibles
Aumentan la capacidad expresiva del modelo relacional
Cumplen que:
Se cumplen para cualquier estado de la BD
No varían con el tiempo
Son específicas de cada BD particular, pero el
Modelo Relacional incluye...
2.3 Características generales de
*
Sea R una relación R(A1:D1 , A2:D2 ,... An:Dn )
Una superclave de R es un subconjunto SK de atributos tal que cumple la restricción de Unicidad:
No existen dos tuplas distintas con la misma
combinación de valores para SK
Una clave de R es una superclave tal que cumple la restricción de Irreductibilidad:
Ningún subconjunto de CK cumple la r. Unicidad
Clave Simple (1 atributo) o Compuesta (varios atributos)
Cada clave es una restricción de integridad
2.3 Características generales de
Superclave y Clave de una relación
Tema 2. Modelo relacional de datos
Una superclave es un conjunto de atributos que identifican de forma unívoca cada tupla en la relación.
El conjunto de todos los atributos es una superclave.
Una clave es una restricción de integridad y, por tanto:
Forma parte del esquema de la base de datos
*
Claves como restricción de integridad
CLIENTE (codCliente, nombre, ciudad, telefono,...)
¿Qué implicaciones tiene establecer como clave...
a) CK = {codCliente, ciudad}
Varias claves en una relación
«Relación para registrar las visitas de pacientes a sus médicos de familia. Un mismo paciente puede visitar a su médico varias veces en un mismo día»
VISITAMEDICA (nssPaciente, historial, fecha, hora, numVisita, medico, observ)
Claves (VISITAMEDICA)={ {nssPaciente, numVisita}, {nssPaciente, fecha, hora},
{historial, numVisita}, {historial, fecha, hora} }
2.3 Características generales de
Tema 2. Modelo relacional de datos
*
Si R tiene varias claves Claves Candidatas
Claves (ACTOR) = { {nombre}, {nombreArtistico} }
Claves (EMPLEADO) = { {dni}, {nombre, fechaNac}, {nss} }
La Clave Primaria (Primary Key, PK ) es la clave candidata elegida para identificar las tuplas de R
Clave Primaria (ACTOR) = {nombreArtistico}
Clave Primaria (EMPLEADO) = {nss}
Las Claves Alternativas (Alternative Keys, AK) son el resto de claves candidatas
Claves Alternativas (ACTOR) = {nombre}
2.3 Características generales de
Tema 2. Modelo relacional de datos
Las claves proporcionan el mecanismo básico de direccionamiento en el nivel de tuplas.
*
Conjunto de atributos FK de una relación R2, tal que:
1. Existe otra relación R1 con clave primaria PK , y
2. Cada valor de FK en R2 es idéntico al de PK en alguna tupla de R1
Conjunto de atributos de una relación que hace referencia a la clave primaria de otra relación (o la misma)
PELICULA (título, género, duración, director, ...)
DIRECTOR (nombre, nacionalidad, ...)
LIBRO (título, isbn, autor, editorial, edición, año, ...)
ESCRITOR (dni, nombre, ...)
2.3 Características generales de
Tema 2. Modelo relacional de datos
*
Tema 2. Modelo relacional de datos
Cada componente de una FK debe estar definido sobre el mismo dominio que el correspondiente atributo de la PK a la que referencia
PACIENTE (nss, nombre, dirección, ...)
HISTORIAL (nss, especialidad, fechaApert, ...)
El uso de Claves Ajenas facilita...
Eliminación de la Redundancia: Integridad entre ficheros
Mecanismo del Modelo Relacional de datos para establecer VÍNCULOS ENTRE RELACIONES
2.3 Características generales de
*
CLIENTE
CUENTA
Cada cliente sólo puede tener una cuenta a su nombre.
Una cuenta puede tener más de un cliente como titular.
Vínculo Cliente-Cuenta
*
Restricción de Integridad Referencial
La BD no debe contener claves ajenas sin correspondencia:
Si una tupla en una relación hace referencia a otra relación, debe referirse a una tupla existente en esa relación
Puede existir algún valor de PK al que NO haga referencia
ningún valor de la FK
ESCRITOR que no haya escrito artículos: ninguna tupla de ARTICULO hará referencia a la tupla correspondiente a dicho escritor
2.3 Características generales de
ESCRITOR
ARTICULO
FK
*
Diagrama Referencial
Camino Referencial
Ciclo Referencial
Caso especial: Autorreferencia
Tema 2. Modelo relacional de datos
*
Tema 2. Modelo relacional de datos
Las operaciones que no satisfacen –violan– la Integridad Referencial, dejan la BD en un estado incorrecto
Ejemplo de un Hotel:
¿Qué pasaría si se eliminara la tupla (501, D, ...) en HABITACIÓN?
¿Y si se eliminara la tupla (100, D, ...)?
¿Y si se anotara la ocupación de la habitación 900?
2.3 Características generales de
OCUPACIÓN
codClie
habit
*
¿Cómo evita el SGBD esos estados incorrectos?
El SGBD puede...
Rechazar toda operación que pueda provocar un estado ilegal, o
Aceptar (y ejecutar) tales operaciones, pero
realizar acciones que restauren la integridad de los datos
Diseñador de la BD puede especificar al SGBD
Acciones de Mantenimiento
para que la BD SIEMPRE alcance un estado final legal
2.3 Características generales de
*
R2 R1
Operación: Eliminar una tupla t de R1 que es referenciada por otras de R2
Ejemplo: Eliminar la tupla (100, D, ...) de HABITACIÓN
Acciones posibles:
1. Rechazar la operación (acción por defecto)
Sólo permite borrar t si ninguna otra tupla hace referencia a t
2. Cascada. Propagar la eliminación
1º Borrar todas las tuplas de R2 que referencian a t
2º Eliminar t
2.3 Características generales de
*
R2 R1
Operación: Modificar el valor de una FK a un valor no existente en la PK de R1
Ejemplo: Modificar (CLI02, 420,...) a (CLI02, 900,...) en OCUPACIÓN
Acción:
Intento de violación de la restricción de Integridad Referencial
2.3 Características generales de
*
Tema 2. Modelo relacional de datos
Operación: Modificar el valor de la PK de una tupla t de R1 que es referenciada por otras tuplas de R2
Ejemplo: Modificar la tupla (100, D,...) a (130, D,...) en HABITACIÓN
Acciones posibles:
1. Rechazar la operación (acción por defecto)
Sólo permite modificar la PK de t si ninguna tupla referencia a t
2. Cascada. Propagar la modificación
- Toda tupla de R2 que referencia a t seguirá haciendolo:
modificar su valor de FK al nuevo valor de la PK de t
- Modificar el valor de la clave primaria de t
3. Establecer nulos – (* se verá después *)
2.3 Características generales de
*
R2 R1
Operación: Inserción de una tupla t en R2 cuyo valor de FK no se corresponde con ningún valor de la PK en ninguna tupla de R1
Ejemplo: Insertar una tupla (CLI03, 555, ...) en OCUPACIÓN
Acciones posibles:
2.3 Características generales de
*
R2 R1, Acción de Eliminación en Cascada
R3 R2, Acción de Eliminación X
- Eliminar una tupla de R1 eliminar tuplas de R2 que la referencian
- Pero existen tuplas en R3 que referencian esas tuplas de R2...
¿cómo afecta la Acción de Eliminación X en esta operación?
Si X = en CASCADA, no-problemo! eliminar esas tuplas de R3
Si X = RECHAZAR La operación completa fallará
Las operaciones de actualización en una BD son siempre atómicas: se realiza “TODO o NADA”
PROFESOR ÁREA DEPARTAMENTO
ASIGNATURA TITULACIÓN UNIVERSIDAD
R3 R2 R1
Tema 2. Modelo relacional de datos
Eliminación provocada por borrado en R1 Eliminación directa de tuplas de R2
Un ejemplo:
AREA (nombre, departamento, num_profesores...)
DEPARTAMENTO (nombre, sede, director)
En el mundo real existe...
información perdida fechaNacimiento desconocida
valores no aplicables a ciertos atributos fechJubilac a empleado activo
Para representar estas situaciones en los sistemas de BD se utiliza el NULO (null)
Si una tupla tiene un atributo que contiene un nulo,
significa que el valor real de tal atributo es desconocido
Es posible especificar si un atributo puede o no contener nulo
nulo no es un valor en sí mismo,
sino un indicador de ausencia de información
No hay dos nulos iguales (num_telefono NULL edad NULL)
2.3 Características generales de
*
Nulo y Claves Primarias
EMPLEADO (codEmp, nss, nombre, telefono, depto, jefe...)
¿Qué pasaría si codEmp pudiera contener NULO?
Nulo y Claves Ajenas
depto = null empleados no asignados a ningún departamento
jefe = null empleados sin jefe
2.3 Características generales de
Tema 2. Modelo relacional de datos
*
Hemos de extender la definición de clave ajena
Sea R2 una relación. FK es una clave ajena en R2 si es un subconjunto de sus atributos tal que:
1. Existe otra relación R1 con clave primaria PK y
2. En todo momento, cada valor de FK en R2
a) es NULO, o
b) es idéntico a un valor de PK en alguna tupla de R1
Restricción de Integridad Referencial
La Base de Datos no debe contener valores no nulos
de clave ajena sin correspondencia
2.3 Características generales de
Tema 2. Modelo relacional de datos
*
Tema 2. Modelo relacional de datos
Hay que extender algunas acciones de mantenimiento de la Integridad Referencial: R2 R1
Operación: Eliminar una tupla t de R1 que es referenciada por otras de R2
Acciones posibles:
2. Cascada. Propagar la eliminación
3. Establecer nulos
Sólo si la FK de R2 permite NULO
- Toda tupla de R2 que referencia a t pasa a contener NULL en FK
- Eliminar la tupla t
2.3 Características generales de
Tema 2. Modelo relacional de datos
*
R2 R1
Operación: Modificar el valor de la PK de una tupla t de R1 que es referenciada por otras tuplas de R2
Acciones posibles:
2. Cascada. Propagar la modificación
3. Establecer nulos
Sólo si la FK de R2 permite NULO
- Toda tupla de R2 que referencia a t pasa a contener NULL en FK
- Modificar el valor de la PK de t
2.3 Características generales de
Tema 2. Modelo relacional de datos
*
Comprobar las claves candidatas (primaria y alternativas):
No existen dos tuplas distintas con igual valor para una clave
Definición de BD : indicar los Atributos Componentes de las Claves Candidatas
Comprobar la restricción de Integridad de entidad
Ningún atributo componente de una clave primaria contiene nulo
Definición de BD : indicar los Atributos Componentes de la Clave Primaria
Comprobar la restricción de Integridad Referencial...
El valor de la clave ajena en cualquier tupla, o es nulo, o coincide con un valor de clave primaria de alguna tupla en la relación referenciada
Definición de BD : indicar los Atributos Componentes de las Claves Ajenas
... y mantenerla frente operaciones que puedan violar la integridad
Definición de BD : indicar Acciones de Mantenimiento de la Integridad Referencial
2.3 Características generales de
*
Dominio Definición del Dominio
PORCENT enteros (2)
GENEROS {comedia,drama,terror,suspense,accion,romantica,gore,pulp,roadmovie}
PAISES {españa,francia,gran_bretaña,eeuu,australia,alemania,la_india,argentina}
AÑOS AÑO
FECHAS FECHA
Tema 2. Modelo relacional de datos
*
Esquema “PRODUCTORA”
DIREC_FOTOG (codDF:CODDIR, nombre:NOMBRES, apellidos:APELLIDOS, nacionalidad:PAISES, fechaNacim:FECHA, ultTrabajo:CODPEL)
nomAutorPpal:NOMBRES, fechaFin:FECHA, fechaEntrega:FECHA)
Tema 2. Modelo relacional de datos