Modelo Relacional

32
MODELO RELACIONAL El modelo relacional organiza y representa los datos en forma de relaciones o tablas. El modelo relacional se divide en 3 partes, las cuales se ocupan de la ESTRUCTURA, INTEGRIDAD y MANIPULACIÓN de los datos, respectivamente. Cada una de ellas tienen su propios términos. Los más importantes términos en relación con la estructura son: Relación, tupla, atributo, cardinalidad, grado, clave primaria, dominio.

Transcript of Modelo Relacional

Page 1: Modelo Relacional

MODELO RELACIONAL

El modelo relacional organiza y representa los datos en forma

de relaciones o tablas.

El modelo relacional se divide en 3 partes, las cuales se ocupan

de la ESTRUCTURA, INTEGRIDAD y MANIPULACIÓN de

los datos, respectivamente. Cada una de ellas tienen su propios

términos.

Los más importantes términos en relación con la estructura

son:

Relación, tupla, atributo, cardinalidad, grado, clave primaria,

dominio.

Page 2: Modelo Relacional

MODELO RELACIONAL

TERMINOLOGÍA DE LA ESTRUCTURA DE DATOS

TERMINO FORMAL EQUIVALENTES INFORMALES

Relación Tabla

Tupla Fila o registro

Cardinalidad Número de filas

Atributo Columna o campo

Grado Número de columnas

Clave Identificador único

Dominio Fondo de valores legales

Page 3: Modelo Relacional
Page 4: Modelo Relacional

MODELO RELACIONAL

DEFINICIONES FORMALES

DOMINIO: conjunto de valores todos del mismo tipo. Los

tipos pueden ser integrados, definidos por el sistema como:

entero, real, carácter, booleano, etc. O tipos definidos por el

usuario.

El dominio proporciona un conjunto de valores y un conjunto

de operadores para operar sobre valores del mismo tipo.

Los dominios son fondos de valores, de los cuales se extraen

los valores reales que aparecen en los atributos.

Ej: El dominio de números de proveedor (S#) es el conjunto de

todos los números de proveedor posibles. El dominio de

Situaciones es el conjunto de todos los enteros mayores que

0 y menores que 100.

Page 5: Modelo Relacional

MODELO RELACIONAL

Cada atributo debe estar definido sobre un dominio adyacente,

y sólo uno, lo cual significa que los valores de ese atributo

deben proceder de ese dominio.

En cualquier momento será común encontrar en un dominio

determinado de valores que no aparecen de momento en

ninguno de los atributos correspondientes a ese dominio.

Los dominios restringen las operaciones de comparación y

asignaciones. El sistema sabrá que expresiones son válidas y

el tipo de resultado de cada una de estas expresiones.

Los dominios pueden estar o no almacenados de manera

explicita en la base de datos como conjuntos reales de

valores, pero en la mayor parte de los casos no será así.

Sin embargo, deberán al menos especificarse como parte de la

definición de la base de datos.

Page 6: Modelo Relacional

MODELO RELACIONAL

Ejemplo: una B. D. de proveedores y partes usando un SeudoSQL:

CREATE DOMAIN S# CHAR(5);

CREATE DOMAIN NOMBRE CHAR(20);

CREATE DOMAIN SITUACION SMALLINT;

CREATE DOMAIN CIUDAD CHAR(15);

...........................

CREATE TABLE S

(S# DOMAIN (S# ) NOT NULL,

SNOMBRE DOMAIN (NOMBRE) NOT NULL,

SITUACION DOMAIN (SITUACION) NOT NULL,

CIUDAD DOMAIN (CIUDAD) NOT NULL,

PRIMARY KEY (S#));

................................

Page 7: Modelo Relacional

MODELO RELACIONAL

En general es conveniente dar a los atributos nombres iguales a

los del dominio subyacente cuando sea posible, o incluir el

nombre de ese dominio como prefijo de su nombre.

Podríamos haber seguido otra convención y omitir del todo la

especificación del dominio subyacente en la definición de

cualquier atributo cuyo nombre sea igual al de ese dominio.

CREATE TABLE S

(S# NOT NULL,

SNOMBRE DOMAIN (NOMBRE) NOT NULL,

SITUACION NOT NULL,

CIUDAD NOT NULL,

PRIMARY KEY (S#));

Page 8: Modelo Relacional

MODELO RELACIONAL

En un sistema que maneje el concepto de dominios, se puede

consultar acerca de los dominios y no sólo acerca de los

atributos.

Ejemplo de restricción de comparaciones:

SELECT P.*, SP.* SELECT P.*, SP.*

FROM P, SP FROM P, SP

WHERE P.P# = SP.P#; WHERE P.PESO =

SP.CANT;

DOMINIOS COMPUESTOS: Es una combinación de

dominios simples (y/o compuestos). Los dominios simples

son dominios de valores escalares. Los valores escalares

representan la menor unidad semántica de información, en

el sentido que son ATÓMICOS; no poseen estructura interna

(no se pueden descomponer).

Page 9: Modelo Relacional

MODELO RELACIONAL

Ej: El dominio compuesto FECHA

CREATE DOMAIN DIA CHAR(2);

CREATE DOMAIN MES CHAR(2);

CREATE DOMAIN AÑO CHAR(4);

CREATE DOMAIN FECHA

(DIA DOMAIN (DIA),

MES DOMAIN (MES),

AÑO DOMAIN (AÑO));

Ej: CREATE TABLE EMPLEADO

( ...........

FECHA_INGRESO DOMAIN (FECHA),

............ );

Page 10: Modelo Relacional

MODELO RELACIONAL

Las operaciones relacionales deberán ser capaces de hacer

referencias al atributo definido sobre un dominio compuesto

en su totalidad y a sus componentes en forma individual

Ej: SELECT *

FROM EMPLEADO

WHERE EMPLEADO.FECHA_INGRESO >=

„01012007‟;

Ej: SELECT *

FROM EMPLEADO

WHERE

AÑO(EMPLEADO.FECHA_INGRESO) < „2007‟;

Page 11: Modelo Relacional

MODELO RELACIONAL

Estableciendo una analogía con los lenguajes de programación:

Un dominio es un tipo de datos y una variable sobre ese tipo

seria un atributo definido sobre ese dominio.

Un sistema relacional que maneje el concepto de dominios

debe permitir al usuario definir sus propios tipos de datos

más complejos como clases de objetos que incluyan su

estructura y las operaciones permisibles para esos objetos.

Page 12: Modelo Relacional

MODELO RELACIONAL

RELACIÓN: Una relación sobre un conjunto de dominios D1,

D2, ...., Dn (no necesariamente todos distintos) se compone

de dos partes: una cabecera y un cuerpo.

La cabecera está formada por un conjunto de n atributos, o en

términos más precisos pares de atributo-dominio

{(A1:D1), (A2:D2), ...., (An:Dn)}

El cuerpo está formado por un conjunto de m tuplas, el cual

varía con el tiempo. Cada tupla está formada por un

conjunto de pares atributo-valor

{(A1:v i1), (A2:vi2), ...., (An:vin )}

i=1,2,...., m, donde m es el número de tuplas del conjunto.

En cada una de las tuplas hay uno de estos pares atributo-valor

(Aj:v ij) para cada atributo Aj de la cabecera; v ij es un valor del

dominio único Dj asociado al atributo Aj

Page 13: Modelo Relacional

MODELO RELACIONAL

PROPIEDADES DE LAS RELACIONES

1. NO EXISTEN TUPLAS REPETIDAS: Dentro de una

relación no hay dos tuplas que sean idénticas, dado que las

tuplas de la relación se definen como elementos de un

conjunto, y los conjuntos por definición no contienen

elementos duplicados

Corolario: SIEMPRE EXISTE UNA CLAVE PRIMARIA.

2. LAS TUPLAS NO ESTÁN ORDENADAS (DE ARRIBA

HACIA ABAJO): Esto se deriva del hecho de que el

cuerpo de una relación es un conjunto matemático y los

elementos dentro del conjunto no guardan un orden.

Por tanto no existe el concepto de direccionamiento por

posición (Ej.: quinta tupla) y tampoco el concepto de

adyacencia (siguiente tupla).

Page 14: Modelo Relacional

MODELO RELACIONAL

PROPIEDADES DE LAS RELACIONES

3. LOS ATRIBUTOS NO ESTÁN ORDENADOS (DE

IZQUIERDA A DERECHA): Dentro de una relación dada,

los atributos no están ordenados. Esto se deriva del hecho

de que la cabecera de una relación (colección de atributos

de una relación) también es definido como un conjunto

4. TODOS LOS VALORES DE LOS ATRIBUTOS SON

ATÓMICOS: Esto es consecuencia del hecho de que todos

los dominios subyacentes son a su vez simples; si los

atributos son compuestos, estos no son sino una simple

concatenación de atributos simples.

Las relaciones no contienen grupos repetitivos. Una

relación que satisface esta condición se dice que esta

normalizada.

Page 15: Modelo Relacional

MODELO RELACIONAL

TIPOS DE RELACIONES

1. RELACIONES BASE (o relaciones reales): son aquellas

cuya importancia es tal que el diseñador de la base de datos

les ha dado un nombre y las hace parte directa de la base de

datos, son autónomas y sus datos están almacenados.

2. VISTAS (o relaciones virtuales): son relaciones derivadas,

con nombre, representadas dentro del sistema mediante su

definición en términos de otras relaciones con nombre; no

poseen datos propios, separados y distinguibles.

3. INSTANTÁNEAS (SNAPSHOT): son relaciones

derivadas con nombre como las vistas. Pero a diferencia de

las vistas, las instantáneas son reales. Tienen existencia

persistente.

Page 16: Modelo Relacional

MODELO RELACIONAL

TIPOS DE RELACIONES

4. RESULTADO DE CONSULTA: es la relación final

resultante de alguna consulta especificada. Puede o no

tener nombre. No tienen existencia persistente dentro de la

base de datos.

5. RESULTADO INTERMEDIO (SUBCONSULTA): es

una relación, casi siempre sin nombre, resultante de alguna

expresión relacional anidada dentro de alguna otra

expresión relacional más grande.

6. RELACIÓN TEMPORAL: relación con nombre que se

destruye automáticamente en algún momento apropiado

(por ejemplo al final de la sesión del usuario).

Page 17: Modelo Relacional

MODELO RELACIONAL

BASES DE DATOS RELACIONALES

Una base de datos relacional es una base de datos percibida por

el usuario como una colección de relaciones normalizadas

de diversos grados que varía con el tiempo.

Page 18: Modelo Relacional

MODELO RELACIONAL

REGLAS GENERALES DE INTEGRIDAD

RELACIONAL

Las reglas de integridad tienen como propósito informar al

SGBD de ciertas restricciones en el mundo real (Ej:

salario > 0 y < 20000) para que pueda impedir la

ocurrencia de tales configuraciones imposibles de

valores (Por ejemplo vigilar las operaciones de inserción

y actualización en la relación Empleado y rechazar

cualquier intento fuera del rango de Salario descrito).

Este tipo de reglas son ESPECÍFICAS, en cuanto que

se aplican a una base de datos especifica.

El modelo relacional incluye reglas de integridad

GENÉRICAS, en cuanto que se aplican a todas las bases

de datos.

Page 19: Modelo Relacional

MODELO RELACIONAL

Las reglas de integridad específicas y genéricas se aplican

a las relaciones base.

1. RESTRICCIÓN DE DOMINIO: El valor de cada

atributo debe ser atómico y debe provenir del dominio

subyacente.

2. RESTRICCIÓN DE CLAVE: En una relación base

siempre existe una clave primaria.

Superclave: atributo K de la relación base que

satisface la propiedad independiente del tiempo de

Unicidad: en cualquier instante, no existen dos tuplas

en la relación base con el mismo valor de K

Clave Candidata: atributo K de la relación base que

satisfacen las propiedades independientes del tiempo

de unicidad y minimalidad.

Page 20: Modelo Relacional

MODELO RELACIONAL

Minimalidad: Si K es compuesto, no será posible

eliminar ningún componente de K sin destruir la

propiedad de unicidad.

Clave primaria: es una clave candidata escogida como

clave primaria, la cual constituye el mecanismo de

direccionamiento básico a nivel de tuplas en un sistema

relacional (direccionamiento asociativo).

Las claves candidatas restantes se denominan claves

alternas.

Page 21: Modelo Relacional

MODELO RELACIONAL

Ejemplo: Dada la relación Empleado

Superclaves: CodEmp, CSS, DNI,

(CodEmp, NombreEmp), ..., etc

Claves Candidatas: CodEmp, CSS, DNI

Clave Primaria: CodEmp

Claves Alternas: CSS, DNI

Observaciones:

• La existencia de una clave candidata, no implica que no

exista otra clave candidata con menos componentes.

• Toda relación tiene por lo menos una clave candidata. En la

práctica las relaciones tienden a tener una y sólo una clave

candidata.

• Puesto que toda relación tiene por lo menos una clave

candidata, toda relación tendrá por fuerza una clave

primaria, sin excepción.

Page 22: Modelo Relacional

MODELO RELACIONAL

3. RESTRICCION DE INTEGRIDAD DE

ENTIDADES: Ningún componente de la clave

primaria de una relación base puede aceptar nulos.

Con nulos queremos decir información faltante por

alguna razón, por ejemplo si la propiedad no se aplica

o su valor se desconoce.

Las tuplas en las relaciones base corresponden a

entidades del mundo real. Por definición las entidades

son distinguibles, es decir se les puede identificar de

alguna manera. Las claves primarias realizan esta

función de identificación única en el modelo

relacional.

Page 23: Modelo Relacional

MODELO RELACIONAL

Observaciones:

• La restricción de integridad de entidades se aplica a las

relaciones base. Otras relaciones podrían tener una

clave primaria en la cual se permiten nulos como por

ejemplo en la relación resultado de una consulta.

• La restricción de integridad de entidades se aplica sólo

a las claves primarias. En las claves alternas se podrán

permitir nulos o no nulos.

Page 24: Modelo Relacional

MODELO RELACIONAL

CLAVES AJENAS (FORÁNEAS o EXTERNAS)

El atributo FK (quizás una combinación de atributos) de la

relación base R2 es una clave ajena s.s.s. satisface

estas dos propiedades independientes del tiempo:

1. Cada valor FK es nulo del todo o bien no nulo del

todo.

2. Existe una relación base R1 con clave primaria PK tal

que cada valor no nulo de FK es idéntico al valor de

PK en alguna tupla de R1

Page 25: Modelo Relacional

MODELO RELACIONAL

Un valor de clave ajena representa una REFERENCIA a la

tupla donde se encuentra el valor correspondiente de

clave primaria (la tupla referenciada o tupla objetivo).

La clave ajena es usada para indicar enlaces lógicos entre

relaciones.

La relación que contiene la clave ajena se conoce como

relación REFERENCIAL y la relación que contiene la

clave primaria correspondiente se denomina relación

REFERIDA (u OBJETIVO).

Ejemplo de diagrama referencial:

Estudiante Calificación Curso

Page 26: Modelo Relacional

MODELO RELACIONAL

Observaciones:

• Una clave ajena dada y la clave primaria

correspondiente deben definirse sobre el mismo

dominio subyacente.

• Una relación dada puede ser una relación referida

como una referencial

R3 R2 R1

• La clave ajena no necesita ser componente de la clave

primaria de la relación que la contiene

Ej: Empleado (CodEmp, ....... , CodDepto)

Departamento (CodDepto, .........)

Page 27: Modelo Relacional

MODELO RELACIONAL

• RUTA REFERENCIAL: Sean las relaciones Rn, Rn-1,

....., R2, R1 tales que existe una restricción referencial

de Rn a Rn-1, una restricción referencial de Rn-1 a

Rn-2, ......, y una restricción referencial de R2 a R1

Rn Rn-1 Rn-2 ..... R2 R1

• Las relaciones R1 y R2 en la definición de clave ajena

no son necesariamente distintas

Ej: Empleado (CodEmp, ....., CodEmpSupervisor, ....)

Las relaciones como Empleado se denominan

RELACIONES AUTORREFERENCIALES.

Page 28: Modelo Relacional

MODELO RELACIONAL

• Las relaciones autorreferenciales representan un caso

especial de ciclos referenciales.

Las relaciones Rn, Rn-1, ....., R2, R1 forman un ciclo

referencial si Rn incluye una clave ajena que hace

referencia a Rn-1, si Rn-1 hace referencia a Rn-2, ......,

y así sucesivamente, y por último si R1 incluye una

clave ajena que hace referencia de vuelta a Rn.

Por tanto, existe un ciclo referencial, si existe una ruta

referencial desde alguna relación Rn hasta ella misma.

Rn Rn-1 Rn-2..... R2 R1 Rn

Page 29: Modelo Relacional

MODELO RELACIONAL

• En ocasiones las claves ajenas deben aceptar nulos.

Ej: Empleado (CodEmp, ....., CodEmpSupervisor, .....)

Se permite nulos en la clave ajena CodEmpSupervisor.

• Las concordancias de clave ajena con clave primaria

representan ciertas INTERRELACIONES entre tuplas.

Pero también existen otras interrelaciones entre tuplas

pero cuyos atributos no son claves ajenas. Por ejemplo

la interrelación “cosituados” entre partes y

proveedores, representada mediante los atributos

Ciudad en ambas relaciones (Ciudad no es clave

ajena).

Page 30: Modelo Relacional

MODELO RELACIONAL

4. RESTRICCION DE INTEGRIDAD

REFERENCIAL

La base de datos no debe contener valores de clave

ajena sin concordancia.

Esto es, un valor no nulo de clave ajena debe tener un

valor concordante de la clave primaria en la relación

objetivo pertinente.

Esta restricción nos dice que si B hace referencia a A

entonces A debe existir.

Los conceptos de clave ajena e integridad referencial

se definen uno en términos del otro.

Page 31: Modelo Relacional

MODELO RELACIONAL

REGLAS PARA CLAVES AJENAS

Cualquier estado de la base de datos que no satisfaga una

regla de integridad será incorrecto por definición.

Para garantizar estados de la base de datos correctos, el

usuario (como el DBA) deberá poder especificar

cuales operaciones han de rechazarse y cuales han de

aceptarse y cuales operaciones de compensación

deberá realizar el sistema. Para cada clave ajena el

diseñador de la base de datos deberá especificar las

reglas particulares para claves ajenas: Las reglas de

nulos, eliminación y modificación.

Page 32: Modelo Relacional

MODELO RELACIONAL

REGLAS PARA CLAVES AJENAS

1. Reglas de nulos: Especificar si se van a permitir o no

nulos en una clave ajena (NULL o NOT NULL).

2. Reglas de Eliminación: Especificar una de las tres

alternativas de eliminación de una tupla objetivo:

Restringida, En Cascada, Anula o Default.

3. Reglas de Modificación: Especificar una de las tres

alternativas de Modificación de un valor de clave

primaria: Restringida, En Cascada, Anula o Default.