Modelo Relacional
-
Upload
carlos-alfredo-finquin-pejerrey -
Category
Documents
-
view
107 -
download
0
Transcript of 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.
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
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.
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.
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#));
................................
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#));
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).
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),
............ );
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‟;
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.
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
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).
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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
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
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, .........)
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.
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
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).
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.
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.
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.