You are on page 1of 43

Copyright 2007 Ramez Elmasri and Shamkant B.

Navathe

Slide 5- 1

UNIDAD I
Capitulo 5
El Modelo de Datos Relacional y
Restricciones de la Base de datos
relacional

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Esquema

Conceptos Modelo Relacional


Restricciones del Modelo Relacional y
esquemas de bases de datos relacionales
Actualizacin de Operaciones y Manejo de
Violaciones de restricciones

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 3

Conceptos de Modelo Relacional

El modelo relacional de datos se basa en el concepto de una relacin


La fortaleza del enfoque relacional para la gestin de datos
proviene del fundamento formal previsto por la teora de las
relaciones
Se revisaran los aspectos esenciales del modelo relacional formal en
este captulo
En la prctica, hay un modelo estndar basadas en SQL - esto se
describe en los captulos 8 y 9
Nota: Hay varias diferencias importantes entre el modelo formal y el
modelo de prctica, como veremos

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 4

Conceptos de Modelo Relacional

Una relacin es un concepto matemtico basado en las


ideas de los conjuntos
El modelo fue propuesto por primera vez por el Dr. EF
Codd del departamento de investigaciones de IBM en
1970 en el siguiente documento: "Un modelo relacional
para grandes bancos de datos compartidos,"
Communicaciones del ACM, junio de 1970
El referido documento causo una gran revolucin en el
mbito de la gestin de bases de datos y con este, el Dr.
Codd se gan el codiciado Premio Turing

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 5

Definiciones Informales

Informalmente, una relacin se parece a una tabla de


valores.
Una relacin generalmente contiene un conjunto de filas.
Los elementos de datos en cada fila representan ciertos
hechos que corresponden a una entidad del mundo real o
de la relacin
En el modelo formal, las filas se llaman tuplas
Cada columna tiene un encabezado de columna que da una
idea del significado de los elementos de datos de esa
columna
En el modelo formal, la cabecera de la columna se llama
un nombre de atributo (o slo atributo)

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 6

Ejemplo de una Relacion

ESTUDIANTE(Nombre, Dni, TlfParticular, Direccin, TlfTrabajo, Edad, Mnc)


Usando los tipos de datos de cada atributo, la definicin aparece escrita a veces como:
ESTUDIANTE(Nombre: cadena, Dni: cadena, TlfParticular: cadena, Direccin: cadena,
TlfTrabajo: cadena, Edad: entero, Mnc: real)

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 7

Definiciones Informales

Clave de una relacin:

Cada fila tiene un valor de un elemento de datos (o


conjunto de artculos) que identifica unvocamente
esa fila en la tabla
Llamada clave
En la tabla ESTUDIANTE, dni es la clave
A veces los id de fila o nmeros secuenciales se
asignan como claves para identificar las filas de una
tabla
Llamadas claves artificiales o sustitutas.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 8

Definiciones formales- Esquema

El esquema (o descripcin) de una Relacin:

Ejemplo:

Se denota por R (A1, A2, ..... An)


R es el nombre de la relacin
Los atributos de la relacin son: A1, A2, ..., un
CLIENTE (Cliente-id, nombre-cliente, direccin, telfono #)
CLIENTE es el nombre de la relacin
Definida por los cuatro atributos: Cliente-id, nombre Cliente, Direccin,
Telfono #

Cada atributo tiene un dominio o un conjunto de valores vlidos.

Por ejemplo, el dominio de Cliente-id es de 6 dgitos.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 9

Definiciones formales- tupla

Una tupla es un conjunto ordenado de valores (entre


corchetes angulares "<...> ')
Cada valor se deriva de un dominio apropiado.
Una fila de la relacin CLIENTE es una de 4-tuplas y estara
compuesto por cuatro valores, por ejemplo:

<632895 "," John Smith ", 101 Main St. Atlanta, GA 30332", "(404)
894-2000">
Una tupla (fila) en la relacin CLIENTE.
Una relacin es un conjunto de tales tuplas (filas)

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 10

Definiciones formales- Dominio

Un dominio tiene una definicin lgica:

Un dominio tambin tiene un tipo de datos o en un formato definido para ello.

Ejemplo: "USA_phone_numbers" son el conjunto de nmeros de telfono de 10


dgitos vlido en los EE.UU.

El USA_phone_numbers puede tener un formato: (ddd) ddd-dddd donde cada d


es un dgito decimal.
Fechas tienen formatos diferentes, como el ao, mes, fecha con formato dd-mmdd, o como dd mm aaaa, etc

El nombre del atributo designa el papel desempeado por un dominio en una


relacin:

Se utiliza para interpretar el significado de los elementos de datos


correspondientes a ese atributo
Ejemplo: El dominio de la fecha puede ser utilizado para definir dos atributos con
nombre "Factura vigente" y fecha de pago" con diferentes significados

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 11

Definiciones formales - Estado

El estado de la relacin es un subconjunto del producto


cartesiano de los dominios de sus atributos

Ejemplo: El atributo de nombre de Cliente es definido


sobre el dominio de las cadenas de caracteres de
longitud mxima 25

Cada dominio contiene el conjunto de todos los valores posibles


del atributo puede tomar.

dom (nombre-cliente) es de tipo varchar (25)

El papel que estas cadenas juegan en la relacin


CLIENTE es el dominio de nombre de un cliente.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 12

Definiciones formales- sumario

Formalmente,

Dado R (A1, A2, .........., An)


r (R) dom (A1) X dom (A2) X .... X dom (An)

R (A1, A2, ..., An) es el esquema de la relacin


R es el nombre de la relacin
A1, A2, ..., An son los atributos de la relacin
r (R): un estado especfico (o "valor" o "poblacin") de la relacin R
esto es un conjunto de tuplas (filas)

r(R) = {t1, t2, , tn} donde cada ti es una n-tupla


ti = <v1, v2, , vn> donde cada vj es elemento de dom (Aj)

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 13

Definiciones formales- ejemplo

Sea R (A1, A2) un esquema de relacin:

Donde dom (A1) = {0,1}

Y donde dom (A2) = {a,b,c}

Entonces: dom (A1) X dom (A2) todas las combinaciones posibles:

{<0,a> , <0,b> , <0,c>, <1,a>, <1,b>, <1,c> }


El estado r relacin (R) dom (A1) X dom (A2)
Por ejemplo: r (R) podra ser (<0, a>>, <0, b, <1, c>)

este es un estado posible (o "poblacin" o "extensin") r de la relacin R,


definida sobre A1 y A2.

Cuenta con tres tuplas dobles: <0, a>>, <0, b, <1, c>

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 14

Sumario de Definiciones
Terminos Informales

Terminos Formales

Tabla

Relacion

Cabecera de Columna

Atributo

Todos los valores


posibles de la columna

Dominio

Fila

Tupla

Definicion de Tabla

Esquema de la Relacion

Tabla Poblada

Estado de la Relacion

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 15

Ejemplo de Relacin ESTUDIANTE

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 16

Caracteristicas de las Relaciones

El Ordenando las tuplas en una relacin r (R):


Las tuplas no se considera que estn ordenada, a
pesar de que parecen estar en forma tabular.
El Ordenamiento de los atributos en una relacin de
esquema R (y de los valores dentro de cada tupla):
Tendremos en cuenta los atributos en R (A1, A2, ...,
An) y los valores de t = <v1, v2, ..., vn> ser ordenada.

(Sin embargo, una definicin alternativa ms general de


relacin no requiere este ordenamiento).

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 17

El mismo estado como en la figura anterior


(pero con orden diferente de tuplas)

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 18

Caracteristicas de las Relaciones

Los valores de una tupla:

Todos los valores se consideran de forma atmica (indivisible).

Cada valor de una tupla debe ser del dominio del atributo para esa
columna

Si la tupla t = <v1, v2, , vn> es una tupla (fila) en el estado de relacin r de R (A1, A2,
..., An)
Entonces cada vi debe ser un valor de dom (Ai)

Un valor nulo especial se utiliza para representar los valores que son
desconocidos o inaplicables a ciertas tuplas.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 19

Caracteristicas de las Relaciones

Notacin:

Nos referimos a valores de los componentes de una


tupla t por:
t [Ai] o t.Ai
Este es el valor del atributo vi Ai de la tupla t
Del mismo modo, t Au [, Av, ..., Aw] se refiere a la
subtupla de t que contiene los valores de los atributos
de Au, Av, ..., Aw, respectivamente, en t

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 20

Restricciones de Integridad en las Relaciones

Las restricciones son condiciones que deben tener a


todos los Estados relacin vlida.
Hay tres tipos principales de restricciones en el modelo
relacional:

Las restricciones de Clave


Las restricciones de integridad de Entidad
Las restricciones de integridad referencial

Otra restriccin implcita es la restriccin de dominio

Todos los valores de una tupla debe ser del dominio de su


atributo (o podra ser nulo, si se permite para ese atributo)

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 21

Restricciones de Clave

Superclave de R:

Es un conjunto de atributos de SK de R con la siguiente condicin:


No hay dos tuplas en cualquier relacin r estado vlido (R) que tengan el
mismo valor para el SK
Es decir, para cualquier tuplas diferentes t1 y t2 de r (R), t1[SK] t2[SK]
Esta condicin debe ser principal en cualquier estado vlido r (R)

Clave de R:

Una superclave es "mnima" para identificar una tupla

Es decir, una clave es una superclave K tal que la eliminacin de


cualquier atributo de los resultados de K en un conjunto de atributos que
no es una superclave (no posee la propiedad de unicidad de superclave)

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 22

Restricciones de Clave (continuacion)

Ejemplo: Consideremos el esquema de relacin COCHE:

COCHE (Estado, Reg. #, SerialNo, Marca, modelo, ao)


COCHE tiene dos claves:

Clave 1 = (Estado, Reg. #)


Clave 2 = ( SerialNo)

Ambos estn tambin superclaves de la COCHE


(SerialNo, Marca) es una superclave, pero no una tecla.
En general:
Cualquier clave puede ser una superclave (pero no al revs)

Cualquier conjunto de atributos que incluye una clave es una superclave

Una superclave mnima es tambin una clave

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 23

Restricciones de Clave (continuacion)

Si una relacin tiene varias claves candidatas, uno es elegido de


forma arbitraria a ser la clave principal.

Ejemplo: Consideremos el esquema de relacin COCHE:

Coche (Estado, Reg. #, SerialNo, Marca, modelo, ao)


Elegimos SerialNo como la clave principal

El valor de la clave principal se utiliza para identificar de forma nica


cada tupla en una relacin

Los atributos clave primaria estn subrayados.

Proporciona la identidad tupla

Tambin se utiliza para hacer referencia a la tupla de otra tupla

Regla general: Elegir como clave primaria ms pequea de las claves


candidatas (en trminos de tamao)
No siempre aplicable - la eleccin es a veces subjetiva

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 24

La tabla con dos claves candidatas


NumeroPermisoConducir se escogio como llave primaria

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 25

Esquema de Base de Datos Relacional

Esquema de bases de datos relacional :

Un conjunto S de los esquemas de relacin que pertenecen a la


misma base de datos.
S es el nombre del esquema de base de datos completa
S = (R1, R2, ..., Rn)
R1, R2, ..., Rn son los nombres de los esquemas de relacin
individual dentro de la base de datos S

La siguiente diapositiva muestra un esquema de base de


datos EMPRESA con 6 esquemas de relacin

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 26

Esquema de Base de Datos Empresa

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 27

Integridad de entidad

Entidad de Integridad:

La clave principal de cada uno de los atributos PK esquema de


relacin R en S no puede tener valores nulos en cualquier tupla
de r (R).

Esto se debe a los valores de clave primaria se utilizan para


identificar las tuplas individuales.
t[PK] nula para cualquier tupla t en r (R)
Si PK tiene varios atributos, los valores nulos no se permite en
ninguno de estos atributos

Nota: Otros atributos de R puede ser obligado a no permitir


valores nulos, a pesar de que no son miembros de la clave
principal.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 28

Integridad referencial

En una restriccin participan dos relaciones

Las restricciones anteriores implican una relacin


nica.

Se utiliza para especificar una relacin entre las


tuplas de dos relaciones:

La relacin referenciada y la relacin que hace


referencia.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 29

Integridad referencial

Las tuplas en la relacin referenciada R1 tienen


atributos FK (llamados atributos clave fornea) que
hacen referencia a la clave principal atributos PK de la
relacin R2 a la que se hace referencia.

Una tupla t1 en R1 se dice para hacer referencia a una tupla t2


en R2, si t1 [FK] = t2 [PK].

Una restriccin de integridad referencial se pueden


mostrar en un esquema de base de datos relacional
como un arco dirigido desde R1.FK a R2.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 30

Restriccin de Integridad Referencial


(o llave fornea)

Declaracin de la restriccin

El valor de la columna(o columnas) de clave fornea FK de la


relacin que hace referencia a la R1 puede ser:

(1) un valor existente de los valores de clave principal de un


correspondiente clave primaria PK en la relacin R2 a la que se
hace referencia, o
(2) un valor nulo.

En el caso de (2), el FK en R1 no debe ser una parte de


su propia clave principal.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 31

Mostrar el esquema de Base de


Datos relacional y sus restricciones

Cada esquema de relacin se puede mostrar como una


fila de nombres de atributos
El nombre de la relacin se escribe por encima de los
nombres de los atributos
El atributo de clave principal (o atributos) se subrayar
Una clave externa (integridad referencial) las
restricciones se muestran como un arco dirigido (flecha)
de los atributos clave fornea a la tabla referenciada
Puede tambin sealarse la clave primaria de la
relacin a la que se hace referencia para mayor
claridad
Diapositiva siguiente se muestra el diagrama del
esquema relacional de EMPRESA
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 32

Restricciones de Integridad Referencial para la Base de Datos


EMPRESA

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 33

Otros tipos de restricciones

Restricciones semnticas de Integridad:

basados en la semntica de las aplicaciones y no puede ser


expresado por el modelo en s mismo
Ejemplo: "al mximo. no. de horas por empleado en todos los
proyectos que l o ella trabaja es de 56 horas por semana

Un lenguaje de especificacin de restriccin puede ser


utilizado para expresar estas

SQL-99 permite a los factores disparadores(triggers)y las


afirmaciones (assertions) de expresar algunas de estas

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 34

Estados de Base de Datos Probladas

Cada relacin tendr muchas tuplas en su estado actual


relacin
El estado base de datos relacional es una unin de todos
los estados individuales de la relacin
Siempre que se cambia la base de datos, surge un nuevo
estado
Operaciones bsicas para el cambio de la base de datos:
INSERTAR una nueva tupla en una relacin
ELIMINAR una tupla de una relacin existente
MODIFICAR un atributo de una tupla existentes
La Diapositiva siguiente muestra un ejemplo del estado
de la base de datos EMPRESA
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 35

Estado
Poblado de
la Base de
Datos
EMPRESA

Slide 5- 36

Operaciones de Actualizar(Update) en
las Relaciones

INSERTAR una tupla.


ELIMINAR una tupla.
MODIFICAR una tupla.
Las restricciones de integridad no deben ser violadas por
las operaciones de actualizacin.
Varias operaciones de actualizacin tienen que estar
agrupadas.
Las actualizaciones se pueden propagar a causa de
otras actualizaciones de forma automtica. Esto puede
ser necesario para mantener las restricciones de
integridad.
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 37

Operaciones de Actualizar(Update) en
las Relaciones

En caso de violacin de integridad, las acciones se


pueden tomar varias:

Cancelar la operacin que hace que la violacin (RESTRINGIR o


la opcin RECHAZAR)
Realice la operacin, pero informar al usuario de la violacin
Las actualizaciones adicionales son disparadas(Trigger) por lo
que la violacin es corregida (opcin CASCADE, opcin SET
NULL)
Ejecutar una rutina de correccin de error especificado por el
usuario

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 38

Posibles violaciones por cada


operacin

INSERTAR(INSERT) puede violar una de las restricciones siguientes:

Restriccin de Dominio:
Si uno de los valores de los atributos proporcionados para la nueva
tupla no es del dominio atributo especificado.
Restriccin de clave:
Si el valor de un atributo clave en la nueva tupla ya existe en otra tupla
en la relacin.
La integridad referencial:
Si un valor de clave foranea en la nueva tupla es referenciada a un
valor de clave principal que no existe en la relacin a la que se hace
referencia.
Entidad de la integridad:
Si el valor de clave principal es nula en la nueva tupla.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 39

Posibles violaciones por cada


operacin

ELIMINAR(DELETE) slo puede violar la integridad referencial:

Si el valor de clave principal de la tupla se va a eliminar es referenciada


desde otras tuplas en la base de datos

Puede ser subsanada por varias acciones: RESTRICT, CASCADE, SET


NULL (vase el captulo 8 para ms detalles)

La opcin RESTRICT: rechazar la supresin


La opcin CASCADE: propagar el nuevo valor de clave principal en las claves
externas de la referencia a las tuplas
Las opciones SET NULL: conjunto las claves externas de la referencia a las tuplas
en NULL

Una de las opciones anteriores se debe especificar durante el diseo de


base de datos para cada restriccin de clave externa

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 40

Posibles violaciones por cada


operacin

ACTUALIZAR(UPDATE) puede violar las restricciones de dominio y


restriccin NOT NULL en un atributo que se modifique
Cualquiera de las otras limitaciones que tambin puede ser violada,
segn el atributo se actualiza:

Actualizacin de la clave principal (PK):


Similar a un DELETE seguido de una instruccin INSERT
Necesita especificar las opciones similares a DELETE
Actualizacin de una clave externa (FK):
Puede violar la integridad referencial
Actualizacin de un atributo comn (ni PK tampoco FK):
Puede, adems de violar las restricciones de dominio

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 41

Sumario

Presentado Conceptos Modelo Relacional.

Discusin de las Restricciones Modelo Relacional y esquemas de bases de


datos relacionales.

Definiciones.
Caractersticas de las relaciones.

Restricciones de dominio.
Las restricciones de Clave.
Integridad de Entidad .
La integridad referencial.

Se describi Operaciones relacionales de actualizacin y Tratamiento de los


Violaciones a restricciones.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 42

Ejercicios en Clase
Considere las siguientes relaciones para una base de datos que mantiene un registro de matriculacin en
los cursos y los libros adoptados para cada curso:

ESTUDIANTE (Carnet, nombre, Carrera, fnac)

CURSO (Nmero de curso, Nombrecurso, Departamento)


INSCRIPCION (Carnet, Nmero de curso, NumCiclo, Nota)
LIBRO_ADOPTADO (Nmero de curso, NumCiclo, ISBN)
TEXTO (ISBN, Titulo, editorial, autor)

CICLO (Numciclo, Fini, Ffin )

Dibuje un diagrama de esquema relacional especificando las claves foraneas de este esquema.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 5- 43

You might also like