Está en la página 1de 8

El Modelo de Datos Relacional y las restricciones de una base de datos relacional

Conceptos del modelo relacional

Una relacion se parece a una tabla de valores o a un fichero plano de registros.


En una relación pensada como una tabla de valores, cada fila representa una colección de valores relacionados.
En el modelo relacional, cada fila de la tabla representa un hecho que se corresponde con una relación o entidad
real. El nombre de la tabla y de las columna, se utiliza para ayudar a interpretar el significado de cada uno de los
valores de las filas. Por ejemplo,

ALUMNO
CodSys Nombre Fecha -nac Año Carrera

100200 /Pedro Claros 20-08-1994 4 Ing.Sistemas

120450 Ana Valencia 23-04-1995 1 Ing. Informática

la tabla se llama ALUMNO, cada fila representa la información de un alumno. Los nombres de columna
(CodSys,Nombre, Fecha-nac, Año, Carrera) especifican como interpretar los valores de cada fila en función de la
columna en la que están. Todos los datos de una columna son del mismo tipo de dato.
Una fila recibe el nombre de tupla, una cabecera de columna es un atributo .

El tipo de dato que describe los valores que pueden aparecer en cada columna está representado por un dominio
de posibles valores.

Dominios, Atributos, tuplas y relaciones

Un dominio es un conjunto de valores atómicos, quiere decir que cada valor de un dominio es indivisible.
Una forma habitual de especificar un dominio es indicar un tipo de dato y darle un nombre que ayude en la
interpretación de sus valores. Ej.

• NúmerosTelefonosFijos. El conjunto de los 11 dígitos que componen los números de teléfono en Bolivia.

• DocumentoNacionaldeidentidad. El conjunto de CI válidos en Bolivia

• NotasMateria. Notas de los alumnos en las materias, comprendido entre 1 y 100.

• EdadAlumnos . Las posibles edades comprendida entre 16 y 40.

• NombresDepartamentosAcademicos. El conjunto de nombres de los departamentos académicos de una


Universidad: Sistemas e Informática, Química, Física, etc.

Definiciones lógicas de dominios. Se especifica un tipo de dato o formato. Para teléfonos por ddd d ddddddd ,
11 caracteres donde cada uno es dígito numérico.

El tipo datos para EdadAlumnos es un número enteroentre 16 y 40, mientras que para
NombresDepartamentosAcademicos, es el conjunto de todas las cadenas de caracteres que representen los
nombres de departamento válidos en la UMSS. Un dominio cuenta con un nombre, un tipo de dato y un formato.

El esquema de relación R,definido por R(A1, A2,…An,), un nombre de relación R y una lista de atributos A1,
A2, … , An. Cada Ai, 1<i<n , es el nombre de un papel jugado por algún dominio en el esquema de relación R.
Se especifica el dominio de A1, como dom(A1). Un esquema de relación se utiliza para describir una relación.
El grado n, es el número de atributos.

ALUMNO(CodSys,Nombre, Fecha-nac,Año, Carrera)


Dom ( CodSys), dom(Nombre) = Nombres, ; dom(Carreras) = Las carreras de la UMSS

ALUMNO
CodSys Nombre Fecha -nac Año Carrera

100200 Pedro Claros 20-08-1994 4 Ing.Sistemas

120450 Ana Valencia 23-04-1995 1 Ing. Informática

Una relación (o estado de relación) r del esquema R(A1, A2,… , A,,), también especificado por r(R), es un
conjunto de n-tuplas r = {t1, t2, …, tm}. Cada tupla es una lista ordenada de valores t = <v1, v2…vn>, donde vi,
1< i < n, es un valor de dom(Ai,) o un valor especial nulo .
Intension se denomina al esquema R y extensión,al estado r(R) .

La relación ALUMNO se corresponde con el esquema del mismo nombre recién especificado. Cada tupla de la
relación representa a un ALUMNO en particular.

La relación se presenta como una tabla en la que cada tupla aparece como una fila y cada atributo como un
encabezamiento de columna que orienta la interpretación que se da a cada uno de los valores.

La anterior definición de relación puede ser enunciada formalmente: Una relación (o estado de relación) r(R) es
una relación matemática sobre los dominios dom(A1), dom(A2), … dom(An) ,es un subconjunto del producto
cartesiano de los dominios que definen R:

r(R) subconjunto del (dom(A1) X dom(A2) X ... X dom(A.,))

El producto cartesiano especifica todas las posibles combinaciones de valores de los dominios subyacentes.
Por tanto, si especificamos el número total de valores, o cardinalidad, de un dominio D el número total de tuplas
del producto cartesiano es:

Idom(A1)IXIdom(A2)I X ... X Idom(An,)I

representa el número total de posibles instancias, o tuplas, que pueden existir en r(R). De todas estas posibles
combinaciones, un estado de relación en un momento dado (el estado de relación actual) sólo refleja las tuplas
válidas que representan un estado particular del mundo real.

El esquema R es relativamente estático y no cambia salvo en circunstancias excepcionales .


Es posible que varios tengan el mismo dominio. Los atributos indican diferentes papeles, o interpretaciones, para
el dominio.

Características de las relaciones

La definición anterior de relación implica ciertas características que la hace diferente de un fichero o una tabla.

a) Un conjunto de tuplas. matemáticamente, los elementos de un conjunto no guardan orden entre ellos; por
tanto, las tuplas en una relación tampoco la tienen.

b) Orden de los valores dentro de una tupla. Una n-tupla es una lista ordenada de valores, por lo que el
orden de valores dentro de una de ellas es importante. Sin embargo, a nivel lógico, el orden de los atributos
y sus valores no es tan importante mientras se mantenga la correspondencia entre ellos.

Valores y nulos en las tuplas. Cada valor en una tupla es un valor atómico, no es divisible. No están
permitidos los atributos compuestos y multivalorados, estos se representan en relaciones separadas, los
compuestos se representan por sus atributos simples .
Los valores nulos, pueden tener varios significados, como lo de valor desconocido, valor existente pero no
disponible , no aplicable a esta tupla.

Durante el diseño de una base de datos es preferible evitar los valores NULL tanto como sea posible.

Interpretación (significado) de una relación. El esquema de relación puede interpretarse como una
declaración o un tipo de aserción. Por ejemplo, el esquema de la relación ALUMNO afirma que, en general, una
entidad alumno tiene un CodSys, Nombre, Fecha de nac, Año, Carrera

Cada tupla de la relación puede ser interpretada entonces como un hecho o una instancia particular de la
aserción. Por ejemplo, la primera tupla de ALUMNO afirma el hecho de que hay un ALUMNO con los valores de
sus atributos propios.

Las relaciones pueden representar hechos sobre entidades, o sobre relacionamientos de la misma forma.

GRUPO
Numgrupo Siglamat Semestre Año Profesor

1 INF125 I 2017 J. Montaño

2 INF125 I 2017 V. Veizaga

5 INF235 II 2017 L. Blanco

8 MAT100 II 2017 J. Pérez

KARDEX
CodSys Numgrupo Nota

100200 2 58

100200 8 47

120450 5 70

Notación del modelo relacional

• Un esquema de relación R de grado n se designa como R(A l, A2, ... , An).


• Las letras Q, R, S especifican nombres de relación.
• Las letras q, r, s especifican estados de relación.
• En general, el nombre de una relación como ALUMNO indica también el conjunto real de tuplas de
la misma (el estado actual de la relación) mientras que ESTUDIANTE(Nombre, Dni, ... ) se refiere sólo a
su esquema.

• Un atributo A puede cualificarse con el nombre de relación R al cual pertenece usando la notación de
punto, R.A por ejemplo, ALUMNO.Nombre o ALUMNO.Carrera. Esto es así porque dos atribu-
tos en relaciones diferentes pueden usar el mismo nombre. Sin embargo, todos los nombres de atribu-
to en una relación particular deben ser distintos.

Restricciones relacionales y esquemas de bases de datos relacionales

Restricciones de dominio

Las restricciones de dominio especifican que dentro de cada tupla, el valor de un atributo A debe ser un valor
atómico del dominio dom(A. Los tipos de datos asociados a ellos suelen incluir valores numéricos estándar para
datos enteros (como entero corto, entero o entero largo) y reales (de coma flotante de simple y doble precisión).
También están disponibles tipos de datos para el almacenamiento de caracteres, valores lógicos, cadenas de
longitud fija y variable, fechas, horas y moneda.

Restricciones de clave

Una relación está definida como un conjunto de tuplas. Por definición, todos los elementos de un conjunto son
distintos; por tanto, todas las tuplas en una relación también deben serlo. Esto significa que dos tuplas no pueden
tener la misma combinación de valores para todos sus atributos. Existen otros subconjuntos de atributos de una
relación R con !a propiedad de que dos tuplas en cualquier relación r de R no deben tener la misma combinación
de valores para estos atributos. Vamos a designar uno de estos subconjuntos de atributos de SK; para dos tuplas
cualesquiera distintas t1 y t2 en una relación r de R, tenemos la restricción:

t1[SK] ≠ t2[SK]

Cualquier conjunto de atributos SK recibe el nombre de superclave del esquema de relación R, especifica una
restricción por la que dos tuplas distintas en cualquier estado r de R no pueden tener el mismo valor para SK.

Cada relación tiene, al menos, una superclave predeterminada: el conjunto de todos sus atributos, pero puede
contar con atributos redundantes, por lo que un concepto más importante es el de clave. Una clave K de un
esquema de relación R es una superclave de R con la propiedad adicional que eliminando cualquier atributo A
de K deja un conjunto de atributos K que ya no es una superclave de R. Por tanto, una clave satisface dos
restricciones:

Dos tuplas diferentes en cualquier estado de la relación no pueden tener valores idénticos para (todos)
los atributos de la clave.

Es una superclave mínima, es decir, una superclave de la cual no podemos eliminar ningún atributo y seguiremos
teniendo almacenada la restricción de exclusividad de la condición 1.

La primera condición se aplica tanto a las claves como a las superclaves, mientras que la segunda sólo a las
claves. Por ejemplo, considere la relación

Cualquier conjunto de atributos que incluya el Codsys es una superclave. Sin embargo, la superclave {Codsys,
Ciden,Nombre, Fecha-nac, Año} no es una clave de Alumno porque la eliminación del Nombre, la Fecha-
nac y Año, o todas, del conjunto aun no deja una superclave

El valor de un atributo clave puede usarse para identificar de forma única cada tupla en la relación Observe que
un conjunto de atributos que constituyen una clave son una propiedad del esquema de relación; es una restricción
que debe mantenerse en cada estado de relación válido del esquema. Una clave está determinada por el
significado de los atributos, y la propiedad es fija en el tiempo

En general, un esquema de relación puede contar con más de una clave. En este caso, cada una de ellas reci-
be el nombre de clave candidata.

Usamos la convención de que los atributos que forman la clave principal de un esquema de relación están
subrayados.
Cuando una relación cuenta con varias claves candidatas, la elección de una de ellas como clave principal
es algo arbitrario; sin embargo, es preferible elegir una que tenga un solo atributo, o un pequeño número de
ellos.
ALUMNO
CodSys Ciden Nombre Fecha -nac Año Carrera

100200 30062 Pedro Claros 20-08-1999 4 Ing. Sistemas

120450 45678 Ana Valencia 23-04-1998 1 Ing. Informática


KARDEX
CodSys Numgrupo Nota

100200 2 58

100200 8 47

120450 5 70

Restriccion de entidad

Las restricción de integridad de entidad , quiere decir que el valor de la clave no puede ser nulo, ya que la clave
se emplea para identificar tuplas individuales en una relación.

Las restricciones de clave y las de integridad de entidad se especifican en relaciones individuales.

integridad referencial y claves externas

Lar restriccion de integridad referencial (RIR) especificada entre dos relaciones y se utiliza para mantener la
consistencia entre las tuplas de dos relaciones. La RIR dice que una tupla de una relación que hace referencia
a otra relación debe hacer referencia a una tupla existente de esa relación

Para expresar formalmente la RIR, se debe definir el concepto de una clave externa, CE, (Foreign Key, FK).
Las condiciones de una CE, especifican una RIR entre dos esquemas de relación R1 y R2.

Un conjunto de atributos CE en una relación R1 es una clave externa de R1 que referencia a la relación R2 si
satisface las siguientes reglas:

1. Los atributos de la CE tienen el mismo dominio, o dominios, que los atributos de clave primaria , CP, de
R2; se dice que los atributos CE referencian o hacen referencia a la relación R2.

2. Un valor de CP en una tupla r1 del estado actual r1(R1) aparece como valor de CP en alguna tupla r2
del estado actual r2(R2) o es nulo. En el primer caso, tenemos que t1[CE] = t2[CP] y se dice que la tupla t1
referencia a la tupla t2

Para identificar las RIR se debe conocer el papel que juega cada conjunto de atributos en los distintos esquemas
de relación de la base de datos. Las RIR se originan a partir de las relaciones entre las entidades representadas
por los esquemas de relación.

Una CE puede hacer referencia a su propia relación, relacionamientos recursivos.


Diagrama de las RIR: se dibuja un arco que va desde cada CE a la relación que referencia, la punta de la
flecha debe apuntar a la CP de la relación referenciada.
Actualizaciones, transacciones y violación de una restricción

Las operaciones del modelo relacional pueden clasificarse en recuperaciones y actualizaciones básicas: inserción,
eliminación y modificación. Al aplicarse estas operaciones deberán respetarse las RI especificadas en el esquema
de la base de datos.

Inserción de tuplas

Esta operación puede violar cualquiera de las cuatro restricciones definidas


Ejemplos:
• Operación. Insert <'Cecilia', 'S', 'García', NULL, '04-05-1975', 'Misericordia, 23 ', M, 28000, NULL, 4> into
EMPLEADO.

Insercion que viola la restricción de integridad de entidad (NULL para la clave principal NSS)
por lo que es rechazada.

• Insert <'Alicia', 'J', 'Celaya', '999887777', '05-04-1960', 'Cercado, 38', M, 28000,


'987654321 ', 4> into EMPLEADO.
Viola la restricción de clave porque ya existe otra tupla con la misma clave primaria
por lo que es rechazada.

• Insert <'Cecilia', 'S', 'García', '677678989', '04­05­1960', 'Misericordia, 23', M, 28000,


'987654321 ', 7> into EMPLEADO.
Viola la RIR en ND de EMPLEADO porque no existe ningún DEPARTAMENTO cuyo Numerod= 7.
• Insert <'Cecilia', 'S', 'García', '677678989', '04-05-1960', 'Misericordia, 23', M, 28000, NULL,
4> into EMPLEADO.
Resultado. Esta inserción satisface todas las restricciones, por lo que es aceptada.

Si una inserción viola una o más restricciones, la opción predeterminada es rechazada.


Seria útil que el DBMS explicara el motivo de dicho rechazo.

Eliminación de tuplas

Delete (eliminar) sólo viola la integridad referencial en caso de que la tupla a eliminar esté referenciada por las
CE de otras tuplas de la base de datos. Para especificar un borrado, una condición en los atributos de la relación
es la que selecciona la tupla (o tuplas) a eliminar. Aquí tiene algunos ejemplos:
• Eliminar la tupla TRABAJA_EN cuyo NSSE = '999887777' y NP = 10.
Se acepta, eliminándose sólo una tupla.

• Eliminar la tupla EMPLEADO cuyo NSSE = '999887777'.


No se acepta porque existen tuplas en TRABAJA_EN que hacen referencia a ella. Por tanto, si se elimina la
tupla en EMPLEADO, se producirán violaciones de la integridad referencial.

• Eliminar la tupla EMPLEADO cuyo NSSE = '333445555'.


Provocará incluso más violaciones de integridad referencial, ya que la tupla implicada está referenciada desde
las relaciones EMPLEADO, DEPARTAMENTO, TRABAJA_EN y DEPENDIENRE.

Son varias las posibilidades si una eliminación provoca una violación. El primero consiste en rechazar el borrado.
El segundo intenta propagar el borrado eliminando las tuplas que hacen referencia a la que estamos intentado
borrar, eliminación en cascada Por ejemplo, en la segunda operación, el SGBD podría borrar automáticamente
las tuplas de TRABAJA_EN cuyo NSSE= '999887777'. Una tercera posibilidad es modificar los valores del atributo
referenciado que provocan la violación;

Actualización o modificación de valores

Se puede cambiar valores de uno o más atributos de una tupla/s de una relación R. Para seleccionar la
información a modificar es necesario indicar una condición en los atributos de la relación. He aquí algunos
ejemplos:

 Actualizar el salario de la tupla EMPLEADO cuyo NSS = '999887777' a 28000.


Resultado. Aceptable.

 Actualizar el NSS de la tupla EMPLEADO con Dni = '999887777' a 1.


Resultado. Aceptable.

 Actualizar el ND de la tupla EMPLEADO con NSS = '999887777' a 7.


Resultado. Inaceptable porque viola ,la integridad referencial.

También podría gustarte