Você está na página 1de 40

Objetivos Comprender los principios estructurales del modelo de datos relacional formal Entender los conceptos integridad de entidad

ad 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 problemtica asociada a la modificacin de datos a travs de vistas Conocer los lenguajes formales lgebra relacional y clculo relacional de tuplas, as como el lenguaje relacional estndar SQL-92
Tema 2. Modelo relacional de datos

Contenidos 2.1 Presentacin y orgenes del modelo relacional 2.2 Estructura de datos relacional 2.3 Caractersticas generales de integridad de datos

Tema 2. Modelo relacional de datos

Bibliografa
[EN 2002] Elmasri, R.; Navathe, S.B.: Fundamentos de Sistemas de Bases de Datos. 3 Edicin. Addison-Wesley. (Cap. 7, 8 y 9) [EN 1997] Elmasri, R.; Navathe, S.B.: Sistemas de bases de datos. Conceptos fundamentales. 2 Edicin. Addison-Wesley Iberoamericana. (Cap. 6 y 7)
[D 2001] [SKS 1998] ... Date, C.J.: Introduccin a los sistemas de bases de datos. 7 Edicin. Prentice-Hall. (Cap. 3 al 9) Korth, H; Silberschatz, A., Sudarshan, S.: Fundamentos de bases de datos. 3 Edicin. McGraw-Hill. (Cap. 3 y 4)

Tema 2. Modelo relacional de datos

Introducido por Codd, 1970

Es un Modelo de Datos Lgico - de Representacin (basado en registros)


El modelo ms usado en las aplicaciones comerciales de procesamiento de datos convencional Dividido en 3 partes:
1. Estructura de Datos 2. Integridad de Datos (caractersticas generales) 3. Manipulacin de Datos
Tema 2. Modelo relacional de datos

2.2 Estructura de datos relacional


Base de Datos = Conjunto de Relaciones Relacin
Estructura de datos fundamental del modelo Tiene un nombre y representa una entidad genrica Conjunto de tuplas
Cada tupla representa una entidad concreta

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 Teora matemtica


Analoga entre Relacin (concepto matemtico) y Tabla Teora de Conjuntos y Lgica de Predicados de 1er orden Slida Base Formal
Tema 2. Modelo relacional de datos

2.2 Estructura de datos relacional


La relacin PELICULA
dominios
Ttulos
--- ----- ---

Gneros
Ciencia-ficcin, Drama,Thriller, Comedia...

Aos
2002, 1997, 1999, 2001, 1994, 1972...

Pases
Italia,Argentina, Espaa, EEUU, Francia,Japn..

Nombres
--- ----- ---

Tiempo
--- ----- ---

ttulo

director

gnero

rodaje nacionalidad duracin

Amores Perros cardinalidad The Matrix Torrente Nos miran

A. Gonzlez S. Segura N. Lpez

Drama Comedia Policiaco

2000 1997 2001

Mxico EEUU Espaa Espaa

145 138 110 118


tuplas

A. Wachowsky Ciencia-ficcin 1999

Amelie
Los lunes al sol

J. P. Jeunet
F. Len

Comedia
Drama
atributos

2001
2002

Francia
Espaa

122
117

grado
Tema 2. Modelo relacional de datos

2.2 Estructura de datos relacional


Trminos bsicos
Modelo Relacional
Formal Relacin Tupla
Si la tupla t est en la relacin R, entonces tR Debe tener un nombre nico dentro de cada relacin n de tuplas en una relacin

Procesamiento de Ficheros SQL-92 Tabla Fila


cabecera de

Fichero Registro concreto


Nombre de

Atributo Cardinalidad Grado


Dominio

Columna
=

Campo de registro

n atributos en una relacin


coleccin de valores permitidos para ciertos atributos

=
=

Tema 2. Modelo relacional de datos

2.2 Estructura de datos relacional


Definiciones formales: DOMINIO
Conjunto de valores atmicos del mismo tipo, donde toman su valor los atributos
La definicin de dominios forma parte de la definicin 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 ningn atributo

{valores de A} Dominio(A) Comparaciones Restringidas a Dominio


La comparacin de dos atributos slo tiene sentido si ambos toman valores del mismo dominio Si el SGBD soporta dominios, podr detectar este tipo de errores
Tema 2. Modelo relacional de datos

2.2 Estructura de datos relacional


Definiciones formales: RELACIN (1)
Una relacin R, sobre conjunto de dominios D1, D2 ... Dn se compone de dos partes: Esquema o Cabecera
Conjunto de pares Atributo:Dominio

{ (A1:D1), (A2:D2) ... (An:Dn) } Cada Aj tiene asociado slo un Dj Los Di no tienen por qu ser distintos entre s Estado, Cuerpo o Instancia
Conjunto de tuplas que contiene en un instante concreto tupla = conjunto de pares Atributo:Valor

{ { (A1:vi1), (A2:vi2) ... (An:vin) } }, donde

i=1..m

Tema 2. Modelo relacional de datos

2.2 Estructura de datos relacional


Definiciones formales: RELACIN (2)
Un esquema de relacin:

PELICULA (titulo:Titulos, duracion:Tiempo, director:Nombres, estreno:Fechas)


Un estado de la relacin:

{ { (titulo:Torrente), (duracion:110), (director:S.Segura), (estreno:1997) } { (titulo:The Matrix), (duracion:138), (director:A.Wachowski), (estreno:1999) } ... } El estado de una relacin es variable en el tiempo nuevas tuplas, modificacin o borrado de existentes El esquema no suele variar costoso: reescritura de miles de tuplas valores de nuevos atributos para tuplas ya existentes? Suele incluir un conjunto de Reglas de Integridad (se ver)
Tema 2. Modelo relacional de datos

2.2 Estructura de datos relacional


Definiciones formales: RELACIN (3)
Propiedades de una Relacin
1. No existen tuplas repetidas 2. Las tuplas no estn ordenadas 3. Los atributos no estn ordenados estado = conjunto matemtico de tuplas

esquema = conjunto de pares Atributo:Dominio


4. Los valores de atributos son Atmicos dominio = conjunto de valores atmicos

Interseccin fila/columna = un solo valor (no lista de valores)


Si R cumple esta propiedad, R est en 1FN

Tema 2. Modelo relacional de datos

2.2 Estructura de datos relacional


Definiciones formales: RELACIN (4)
FORMAS NORMALES
R est en <determinada> FN si

cumple <cierto> conjunto de condiciones o restricciones


necesarias para estar bien diseada de acuerdo con el modelo relacional de datos.

Toda relacin ha de estar en 1FN (estructura de datos simple)

Tema 2. Modelo relacional de datos

2.2 Estructura de datos relacional


Definiciones formales: RELACIN (5)
Relacin vs. Tabla Relacin: Representacin abstracta de un elemento de datos Tabla: Representacin concreta de tal elemento abstracto
Ventajas

Representacin muy sencilla (tabla) del elemento abstracto bsico (relacin) del Modelo Relacional
Fcil de utilizar, entender, razonar... Inconveniente

Aparente orden entre filas y entre columnas de la tabla

Tema 2. Modelo relacional de datos

2.2 Estructura de datos relacional


Definiciones formales: BD RELACIONAL
de diversos grados (n de atributos) que varan con el tiempo (n de tuplas, estado)
(1)

Percibida por usuarios como una coleccin de relaciones

Las relaciones (tablas) son la estructura lgica de la BD Niveles externo y conceptual ANSI/X3/SPARC Toda BDR cumple el Principio de Informacin: Todo contenido de informacin de la BD est representado de una y slo una forma: como valores explcitos dentro de posiciones de columnas dentro de filas dentro de tablas

Conexin lgica entre Relaciones (vnculo o interrelacin)


Representada mediante valores No existen punteros (visibles al usuario)

Tema 2. Modelo relacional de datos

2.2 Estructura de datos relacional


Definiciones formales: BD RELACIONAL
En una BDR distinguimos... Esquema de base de datos
Descripcin de la base de datos Conjunto de esquemas de relacin
PELICULA ( titulo:Ttulos, director:Nombres, gnero:Gneros, rodaje:Aos, nacionalidad:Pases, duracin:Tiempo ) ACTOR ( nombre:Nombres, nombreArtistico: Nombres, agente:Nombres, cache:Dinero ) DIRECTOR ( nombre:Nombres, nacionalidad:Pases, operaPrima:Ttulos ) ... (2)

Estado o instancia de base de datos

Visin del contenido de la base de datos en cierto instante Conjunto de estados de relacin
Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Todo estado de BD refleja la realidad
es un modelo de una porcin del mundo real (minimundo)

Algunas configuraciones de valores NO tienen SENTIDO


pues no representan ningn estado posible del minimundo

2 personas distintas con el mismo DNI Un empleado sin NSS Un alumno con -29 aos Una pelcula sin director Definicin de la BD (esquema) necesita incluir

REGLAS DE INTEGRIDAD

Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Reglas de integridad
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: Forman parte de la base de datos Se cumplen para cualquier estado de la BD No varan con el tiempo Son especficas de cada BD particular, pero el Modelo Relacional incluye... caractersticas generales de integridad importantes y necesarias en toda BD Claves Candidatas y Primarias Tema 2. Modelo relacional de datos Claves Ajenas (o forneas o externas)

2.3 Caractersticas generales de integridad de datos


Superclave y Clave de una relacin
Sea R una relacin R(A1:D1 , A2:D2 ,... An:Dn )

Una superclave de R es un subconjunto SK de atributos tal que cumple la restriccin de Unicidad:


No existen dos tuplas distintas con la misma combinacin de valores para SK Una clave de R es una superclave tal que cumple la restriccin de Irreductibilidad: Ningn subconjunto de CK cumple la r. Unicidad Clave Simple (1 atributo) o Compuesta (varios atributos) Cada clave es una restriccin de integridad
Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Superclave y Clave: Ejemplos
Claves como restriccin de integridad
CLIENTE (codCliente, nombre, ciudad, telefono,...) Qu implicaciones tiene establecer como clave... a) CK = {codCliente, ciudad} b) CK = {codCliente} ?

Varias claves en una relacin


Relacin para registrar las visitas de pacientes a sus mdicos de familia. Un mismo paciente puede visitar a su mdico varias veces en un mismo da VISITAMEDICA (nssPaciente, historial, fecha, hora, numVisita, medico, observ) Claves (VISITAMEDICA)={ {nssPaciente, numVisita}, {nssPaciente, fecha, hora}, {historial, numVisita}, {historial, fecha, hora} }

Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Clave Candidata, Primaria y Alternativa
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} Claves Alternativas (EMPLEADO) = { {dni}, {nombre, fechaNac} }
Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Clave Ajena (Externa o Fornea)
Conjunto de atributos FK de una relacin R2, tal que:
1. Existe otra relacin R1 con clave primaria PK , y 2. Cada valor de FK en R2 es idntico al de PK en alguna tupla de R1

Conjunto de atributos de una relacin que hace referencia a la clave primaria de otra relacin (o la misma)
PELICULA (ttulo, gnero, duracin, director, ...) DIRECTOR (nombre, nacionalidad, ...) EMPLEADO (codEmp, nombre, jefe, nss, ...) LIBRO (ttulo, isbn, autor, editorial, edicin, ao, ...) ESCRITOR (dni, nombre, ...) ARTICULO (ttulo, tema, autor, revista, pgina, ...)
Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Clave Ajena (Externa o Fornea)
(2)

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, direccin, ...) HISTORIAL (nss, especialidad, fechaApert, ...) VISITA (nss, especialidad, numVisita, fecha, ...)

Clave Ajena Simple o Compuesta


El uso de Claves Ajenas facilita...
Eliminacin de la Redundancia: Integridad entre ficheros Mecanismo del Modelo Relacional de datos para establecer VNCULOS ENTRE RELACIONES
Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Clave Ajena (Externa o Fornea)
Cada cliente slo puede tener una cuenta a su nombre. Una cuenta puede tener ms de un cliente como titular.
CLIENTE nombre
Garca, A direccin Gran Va, 6
(3)

CUENTA nmero saldo ...


200 35000

505
821 ... ciudad Murcia cuenta 200

40000
50000

Vnculo ClienteCuenta

Lpez, B
Azorn, C Prez, C ...

Ronda Norte, 3
Plaza Mayor, 2

Murcia
Valencia

821
505 505

Paseo Nuevo, 9 Valencia

Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Clave Ajena (Externa o Fornea)
(4)

Restriccin de Integridad Referencial Todo valor de una FK debe coincidir con un valor en la correspondiente PK
La BD no debe contener claves ajenas sin correspondencia:

Si una tupla en una relacin hace referencia a otra relacin, debe referirse a una tupla existente en esa relacin
ARTICULO FK ESCRITOR

Puede existir algn valor de PK al que NO haga referencia ningn valor de la FK


ESCRITOR que no haya escrito artculos: ninguna tupla de ARTICULO har referencia a la tupla correspondiente a dicho escritor
Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Clave Ajena (Externa o Fornea)
Diagrama Referencial
Expresin de la existencia de Claves Ajenas
(y 5)

Camino Referencial
LIBRO ESCRITOR ARTICULO ttulo isbn autor editorial ... dni nombre ... editorial ttulo tema autor revista pg ... EMPL codEmp ... dep DEPTO codDep ... dire EDITORIAL nombre direccin ...

Ciclo Referencial

Camino que empieza y acaba en la misma relacin Caso especial: Autorreferencia EMPLEADO codEmp ... jefe
Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Mantenimiento de la Integridad Referencial
Las operaciones que no satisfacen violan la Integridad Referencial, dejan la BD en un estado incorrecto
Ejemplo de un Hotel: Qu pasara si se eliminara la tupla (501, D, ...) en HABITACIN? Y si se eliminara la tupla (100, D, ...)? Y si se anotara la ocupacin de la habitacin 900?
OCUPACIN codClie habit ... HABITACIN numHabit tipo ...

CLI04 CLI02

100 420

115 420 100 304 405


Tema 2. Modelo relacional de datos

I I D D I D

CLI05
CLI10

115
100

501

2.3 Caractersticas generales de integridad de datos


Mantenimiento de la Integridad Referencial
Cmo evita el SGBD esos estados incorrectos?
El SGBD puede...
Rechazar toda operacin que pueda provocar un estado ilegal, o Aceptar (y ejecutar) tales operaciones, pero
(2)

realizar acciones que restauren la integridad de los datos

Diseador de la BD puede especificar al SGBD


Acciones de Mantenimiento de la Integridad Referencial para que la BD SIEMPRE alcance un estado final legal
Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Mantenimiento de la Integridad Referencial
(3)

R2 R1 Operacin: Eliminar una tupla t de R1 que es referenciada por otras de R2 Ejemplo: Eliminar la tupla (100, D, ...) de HABITACIN Acciones posibles:
1. Rechazar la operacin (accin por defecto) Slo permite borrar t si ninguna otra tupla hace referencia a t 2. Cascada. Propagar la eliminacin 1 Borrar todas las tuplas de R2 que referencian a t 2 Eliminar t 3. Establecer nulos (* se ver despus *)
Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Mantenimiento de la Integridad Referencial
(4)

R2 R1 Operacin: Modificar el valor de una FK a un valor no existente en la PK de R1 Ejemplo: Modificar (CLI02, 420,...) a (CLI02, 900,...) en OCUPACIN Accin:
1. Rechazar la operacin (SIEMPRE)

Intento de violacin de la restriccin de Integridad Referencial

Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Mantenimiento de la Integridad Referencial
(5)

Operacin: 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 HABITACIN Acciones posibles:
1. Rechazar la operacin (accin por defecto) Slo permite modificar la PK de t si ninguna tupla referencia a t 2. Cascada. Propagar la modificacin - 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 despus *)
Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Mantenimiento de la Integridad Referencial
(6)

R2 R1 Operacin: Insercin de una tupla t en R2 cuyo valor de FK no se corresponde con ningn valor de la PK en ninguna tupla de R1 Ejemplo: Insertar una tupla (CLI03, 555, ...) en OCUPACIN Acciones posibles:
- Rechazar la operacin (SIEMPRE)

Intento de violacin de la restriccin de Integridad Referencial


Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Mantenimiento de la Integridad Referencial
(y 7)

Encadenamiento de eliminaciones (anlogo para Modificacin) R3 R2 R1 R2 R1, Accin de Eliminacin en Cascada


R3 R2, Accin de Eliminacin X - Eliminar una tupla de R1 eliminar tuplas de R2 que la referencian - Pero existen tuplas en R3 que referencian esas tuplas de R2... cmo afecta la Accin de Eliminacin X en esta operacin? Si X = en CASCADA, no-problemo! eliminar esas tuplas de R3 Si X = RECHAZAR La operacin completa fallar

Las operaciones de actualizacin en una BD son siempre atmicas: se realiza TODO o NADA
PROFESOR REA DEPARTAMENTO ASIGNATURA TITULACIN UNIVERSIDAD
Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Nulos
En el mundo real existe...
informacin perdida fechaNacimiento desconocida ausencia de informacin tiene telfono? 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 informacin


Tema 2. Modelo relacional de datos

No hay dos nulos iguales (num_telefono NULL edad NULL)

2.3 Caractersticas generales de integridad de datos


Implicaciones de los nulos en la integridad
Nulo y Claves Primarias Restriccin de Integridad de Entidad: Ningn atributo componente de una clave primaria puede contener nulo
EMPLEADO (codEmp, nss, nombre, telefono, depto, jefe...) Qu pasara si codEmp pudiera contener NULO?

Nulo y Claves Ajenas El Modelo Relacional permite nulo como valor de clave ajena
depto = null empleados no asignados a ningn departamento jefe = null empleados sin jefe
Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Implicaciones de los nulos en la integridad
Hemos de extender la definicin de clave ajena
Sea R2 una relacin. FK es una clave ajena en R2 si es un subconjunto de sus atributos tal que: 1. Existe otra relacin R1 con clave primaria PK y 2. En todo momento, cada valor de FK en R2 a) es NULO, o b) es idntico a un valor de PK en alguna tupla de R1
(2)

Restriccin de Integridad Referencial La Base de Datos no debe contener valores no nulos de clave ajena sin correspondencia
Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Implicaciones de los nulos en la integridad
(3)

Hay que extender algunas acciones de mantenimiento de la Integridad Referencial: R2 R1 Operacin: Eliminar una tupla t de R1 que es referenciada por otras de R2 Acciones posibles:
1. Rechazar la operacin (accin por defecto) 2. Cascada. Propagar la eliminacin
3. Establecer nulos Slo 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
Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Implicaciones de los nulos en la integridad
(y 4)

R2 R1 Operacin: Modificar el valor de la PK de una tupla t de R1 que es referenciada por otras tuplas de R2 Acciones posibles:
1. Rechazar la operacin (accin por defecto) 2. Cascada. Propagar la modificacin

3. Establecer nulos
Slo 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

Tema 2. Modelo relacional de datos

2.3 Caractersticas generales de integridad de datos


Resumiendo, el SGBD se encarga de...
Comprobar las claves candidatas (primaria y alternativas): No existen dos tuplas distintas con igual valor para una clave Definicin de BD : indicar los Atributos Componentes de las Claves Candidatas Comprobar la restriccin de Integridad de entidad Ningn atributo componente de una clave primaria contiene nulo Definicin de BD : indicar los Atributos Componentes de la Clave Primaria Comprobar la restriccin 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 relacin referenciada Definicin de BD : indicar los Atributos Componentes de las Claves Ajenas ... y mantenerla frente operaciones que puedan violar la integridad Definicin de BD : indicar Acciones de Mantenimiento de la Integridad Referencial
Tema 2. Modelo relacional de datos

Dominio
CODPEL CODGUI CODDIR CODDIS CODACT CODAGE SEXOS TEXTO PORCENT DINERO NIF TITULOS GENEROS PAISES AOS FECHAS NOMBRES APELLIDOS DOMICILIOS TELEFONOS TIPO_PAPEL

Definicin del Dominio


enteros(3) enteros(3) enteros(3) enteros(2) enteros(4) enteros(2) { M, F } cadena caracteres variable (500) enteros (2) enteros(9) cadena caracteres fija (12) cadena caracteres variable (120) {comedia,drama,terror,suspense,accion,romantica,gore,pulp,roadmovie} {espaa,francia,gran_bretaa,eeuu,australia,alemania,la_india,argentina} AO FECHA cadena caracteres variable (35) cadena caracteres variable (80) cadena caracteres variable (50) cadena caracteres variable (15) {protagonista, secundario, reparto, figuracion}
Tema 2. Modelo relacional de datos

Você também pode gostar