Integridad de Las Bases de Datos,Normalizacion de BD y Algebra Relacional
-
Author
hector-jafet-puello -
Category
Documents
-
view
22 -
download
2
Embed Size (px)
Transcript of Integridad de Las Bases de Datos,Normalizacion de BD y Algebra Relacional

Integridad de las Bases de Datos
La integridad en una base de datos es la corrección y exactitud de la información contenida. Además de
conservar la seguridad en un sistema de bases de datos que permite el acceso a múltiples usuarios en
tiempos paralelos.
Condiciones de la Integridad
Las condiciones que garantizan la integridad de los datos pueden ser de dos tipos:
1. Las restricciones de integridad de usuario: son condiciones específicas de una base de datos
concreta; son las que se deben cumplir en una base de datos articular con unos usuarios concretos,
pero que no son necesariamente relevantes en otra Base de Datos.
2. Las reglas de integridad de modelo: son condiciones propias de un modelo de datos, y se deben
cumplir en toda base de datos que siga dicho modelo.
Los SGBD deben proporcionar la forma de definir las restricciones de integridad de usuario de una base de
datos y una vez definida, debe velar por su cumplimiento. Las reglas de integridad del modelo, en cambio, no
se deben definir para cada base de datos concreta, porque se consideran preestablecidas para todas las base
de datos de un modelo. Un SGBD de un modelo determinado debe velar por el cumplimiento de las reglas de
integridad preestablecidas por su modelo.
Reglas de Integridad
Regla de integridad de unicidad de la clave primaria
La regla de integridad de unicidad está relacionada con la definición de clave primaria que establece que toda
clave primaria que se elija para una relación no debe tener valores repetidos por lo que el conjunto de
atributos CP es la clave primaria de una relación R, entonces la extensión de R no puede tener en ningún
momento dos tuplas con la misma combinación de valores para los atributos de CP.
Regla de integridad de entidad de la clave primaria
La regla de integridad de entidad de la clave primaria dispone que los atributos de la clave primaria de una
relación no pueden tener valores nulos. Esta regla es necesaria para que los valores de las claves primarias
puedan identificar las tuplas individuales de las relaciones. Si las claves primarias tuviesen valores nulos, es
posible que algunas tuplas no se pudieran distinguir. Un SGBD relacional tendrá que garantizar el
cumplimiento de esta regla de integridad en todas las inserciones y en todas las modificaciones que afecten a
atributos que pertenecen a la clave primaria de la relación.
Regla de integridad referencial
La regla de integridad referencial está relacionada con el concepto de clave foránea, lo que determina que
todos los valores que toma una clave foránea deben ser valores nulos o valores que existen en la clave
primaria que referencia. La necesidad de esta regla es debido a que las claves foráneas tienen por objetivo

establecer una conexión con la clave primaria que referencian. Si un valor de una clave foránea no estuviese
presente.
Restricción
La restricción en caso de borrado, consiste en no permitir borrar una tupla si tiene una clave primaria
referenciada por alguna clave foránea y la restricción en caso de modificación consiste en no permitir
modificar ningún atributo de la clave primaria de una tupla si tiene una clave primaria referenciada por alguna
clave foránea.
Actualización en cascada
La actualización en cascada consiste en permitir la operación de actualización de la tupla, y en efectuar
operaciones compensatorias que propaguen en cascada la actualización a las tuplas que la referenciaban; se
actúa de este modo para mantener la integridad referencial. La actualización en cascada en caso de borrado
consiste en permitir el borrado de una tupla t que tiene una clave primaria referenciada, y borrar también todas
las tuplas que referencian t y la actualización en cascada en caso de modificación consiste en permitir la
modificación de atributos de la clave primaria de una tupla t que tiene una clave primaria referenciada, y
modificar del mismo modo todas las tuplas que referencian t.
Anulación
La anulación consiste en permitir la operación de actualización de la tupla y en efectuar operaciones
compensatorias que pongan valores nulos a los atributos de la clave foránea de las tuplas que la referencian;
esta acción se lleva a cabo para mantener la integridad referencial. Los SGBD relacionales permiten
establecer que un determinado atributo de una relación no admite valores nulos, sólo se puede aplicar la
política de anulación si los atributos de la clave foránea sí los admiten. Más concretamente, la anulación en
caso de borrado consiste en permitir el borrado de una tupla t que tiene una clave referenciada y, además,
modificar todas las tuplas que referencian t, de modo que los atributos de la clave foránea correspondiente
tomen valores nulos y la anulación en caso de modificación consiste en permitir la modificación de atributos de
la clave primaria de una tupla t que tiene una clave referenciada y, además, modificar todas las tuplas que
referencian t, de modo que los atributos de la clave foránea correspondiente tomen valores nulos.
Regla de integridad de dominio
La regla de integridad de dominio está relacionada con la noción de dominio. Esta regla establece dos
condiciones.
La primera condición consiste en que un valor no nulo de un atributo Ai debe pertenecer al dominio del
atributo Ai; es decir, debe pertenecer a dominio(Ai). Esta condición implica que todos los valores no nulos
que contiene la base de datos para un determinado atributo deben ser del dominio declarado para dicho
atributo.
La segunda condición sirve para establecer que los operadores que pueden aplicarse sobre los valores
dependen de los dominios de estos valores; es decir, un operador determinado sólo se puede aplicar
sobre valores que tengan dominios que le sean adecuados.

Integridad de datosEl término integridad de datos se refiere a la corrección y complementación de los datos en una base
de datos. Cuando los contenidos se modifican con sentencias INSERT, DELETE o UPDATE, la
integridad de los datos almacenados puede perderse de muchas maneras diferentes. Pueden añadirse
datos no válidos a la base de datos, tales como un pedido que especifica un producto no existente.
Pueden modificarse datos existentes tomando un valor incorrecto, como por ejemplo si se reasigna un
vendedor a una oficina no existente. Los cambios en la base de datos pueden perderse debido a un
error del sistema o a un fallo en el suministro de energía. Los cambios pueden ser aplicados
parcialmente, como por ejemplo si se añade un pedido de un producto sin ajustar la cantidad disponible
para vender.
Una de las funciones importantes de un DBMS relacional es preservar la integridad de sus datos
almacenados en la mayor medida posible.
Tipos de restricciones de integridad
Datos Requeridos: establece que una columna tenga un valor no NULL. Se define efectuando la
declaración de una columna es NOT NULL cuando la tabla que contiene las columnas se crea por
primera vez, como parte de la sentencia CREATE TABLE.
Chequeo de Validez: cuando se crea una tabla cada columna tiene un tipo de datos y el DBMS
asegura que solamente los datos del tipo especificado sean ingresados en la tabla.
Integridad de entidad: establece que la clave primaria de una tabla debe tener un valor único para
cada fila de la tabla; si no, la base de datos perderá su integridad. Se especifica en la sentencia
CREATE TABLE. El DBMS comprueba automáticamente la unicidad del valor de la clave primaria
con cada sentencia INSERT Y UPDATE. Un intento de insertar o actualizar una fila con un valor de
la clave primaria ya existente fallará.
Integridad referencial: asegura la integridad entre las llaves foráneas y primarias (relaciones
padre/hijo). Existen cuatro actualizaciones de la base de datos que pueden corromper la integridad
referencial:
La inserción de una fila hijo se produce cuando no coincide la llave foránea con la llave primaria
del padre.
La actualización en la llave foránea de la fila hijo, donde se produce una actualización en la
clave ajena de la fila hijo con una sentencia UPDATE y la misma no coincide con ninguna llave
primaria.

La supresión de una fila padre, con la que, si una fila padre -que tiene uno o más hijos- se
suprime, las filas hijos quedarán huérfanas.
La actualización de la llave primaria de una fila padre, donde si en una fila padre, que tiene uno
o más hijos se actualiza su llave primaria, las filas hijos quedarán huérfanas.
El proceso de normalización de una base de datos
Consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo E-R (entidad-relación) al modelo relacional.
Objetivo de la normalización
Las bases de datos relacionales se normalizan para:
Evitar la redundancia de los datos.
Evitar problemas de actualización de los datos en las tablas.
Proteger la integridad de los datos.
En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una
tabla bidimensional sea considerada como una relación tiene cumplir con algunas
restricciones:
Cada columna debe tener su nombre único.
No puede haber dos filas iguales. No se permiten los duplicados.
Todos los datos en una columna deben ser del mismo tipo.
Terminología equivalente
relación = tabla o archivo
tupla = registro, fila o renglón
atributo = campo o columna
base de datos = banco de datos
dependencia multivaluada = dependencia multivalor
clave = llave
clave primaria = superclave
clave ajena = clave extranjera o clave foránea
RDBMS = del inglés Relational Data Base Manager System que significa, Sistema Gestor de Base de
Datos Relacionales

Dependencia funcional Una dependencia funcional son conexiones entre uno o más atributos. Por ejemplo si
conocemos el valor de FechaDeNacimiento podemos conocer el valor de Edad.
Las dependencias funcionales se escriben utilizando una flecha, de la siguiente manera:
FechaDeNacimiento->Edad
Aquí a FechaDeNacimiento se le conoce como un determinante. Se puede leer de dos
formas FechaDeNacimiento determina a Edad o Edad es funcionalmente dependiente
de FechaDeNacimiento. De la normalización (lógica) a la implementación (física o real) puede ser sugerible
tener éstas dependencias funcionales para lograr mayor eficiencia en las tablas.
Dependencia funcional transitiva Supongamos que los estudiantes solo pueden estar matriculados en un
solo curso y supongamos que los profesores solo pueden dar un curso. ID_Estudiante -> Curso_Tomando
Curso_Tomando -> Profesor_Asignado ID_Estudiante -> Curso_Tomando -> Profesor_Asignado
Entonces tenemos que ID_Estudiante determina a Curso_Tomando y el Curso_Tomando determina
a Profesor_Asignado, indirectamente podemos saber a través del ID_estudiante el Profesor_Asignado.
Entonces tenemos una dependencia transitiva.
Claves
Clave ajena
Cuando se tienen dos tablas o más, una clave ajena es aquella columna de una tabla que hace referencia a
una clave primaria de otra tabla.
También existe el caso de Relaciones Autoreferenciales. Sucede cuando en la misma relación se tiene una
clave ajena que hace referencia a la clave primeria de la misma relación. Por otro lado las claves ajenas
pueden tomar valores nulos.
Regla de Integridad Referencial
La base de datos no debe conter valores de clave ajena sin concordancia. Así como los valores de clave
primaria representan identificadores de entidades, las claves ajenas representan referencia a entidades.
La regla dice: Si B hace referencia a A entonces A debe existir. Surgen los siguientes dos puntos:
La integridad referencial exige concordancia en las claves ajenas, con las claves primerias, no con la
claves alternativas.
Los conceptos de clave ajena e integridad referencial se definen uno en termino del otro.
Clave candidata
Por lo general la forma más eficiente y segura para escoger o hacer la clave primaria es poniendo un número
y aumentando éste a medida que se van añadiendo filas, pero si de casualidad se diera el caso de que

existan varias claves candidatas de las cuales se deba escoger la clave primaria, esta elección se hace
utilizando el sentido común.
Claves alternativas
Son aquellas claves candidatas que no han sido elegidas.
Clave simple
Es una clave que esta compuesta solo de un atributo.
Clave compuesta
Es una clave que esta compuesta por más de un atributo.
Formas Normales
Las primeras tres formas normales son suficientes para cubrir las necesidades de la mayoría de las bases de
datos. El creador de estas 3 primeras formas normales (o reglas) fue Edgar F. Codd, éste introdujo la
normalización en un artículo llamado A Relational Model of Data for Large Shared Data Banks.
Primera Forma Normal (1FN)
Sea α un conjunto de atributo perteneciente (Є) a la relación R, en donde R está en la Primera Forma Normal
si todos los atibutos α[n] son atómicos, es decir no pueden seguir dividiéndose. Por ejemplo:
La Relación:
cursos: nombre, código, vacantes, horario, bibliografía
Queda después de aplicar la Forma Normal 1 de la siguiente manera:
cursos1: nombre, código, vacantes horario1: código, día, módulo bibliografia1: código, nombre, autor
Segunda Forma Normal (2FN)
Dependencia completa. Esta en 2FN si esta en 1FN y si sus atributos no principales dependen de forma
completa de la clave principal.
Tercera Forma Normal (3FN)
Está en segunda forma normal y todo atributo no primo es implicado por la clave primaria en una secuencia
no transitiva.Se eliminan las dependencias transitivas.
Forma normal de Boyce-Codd (FNBC)

Una tabla está en FNBC sí y sólo sí las únicas dependencias funcionales elementales son aquellas en las que
la clave primaria determinan un atributo.
Cuarta Forma Normal (4FN)
Está en forma normal de Boyce-Codd y se eliminan las dependencias multivaluadas y se generan todas las
relaciones externas con otras tablas u otras bases de datos.
Quinta Forma Normal (5FN)
Está en cuarta forma normal y toda dependencia-join viene implicada por claves candidatas.
Reglas de Codd
Codd se dio de cuenta que existían bases de datos en el mercado las cuales decían ser relacionales, pero lo
único que hacían era guardar la información en las tablas, sin estas tablas estar literalmente normalizadas;
entonces éste publicó 12 reglas que un verdadero sistema relacional debería de tener, en la práctica algunas
de ellas son difíciles de realizar.Un sistema podrá considerarse "más relacional" cuanto más siga estas reglas.
Regla No. 1 - La Regla de la información
Toda la información en un RDBMS está explícitamente representada de una sola manera por valores en una
tabla. Cualquier cosa que no exista en una tabla no existe del todo.
Toda la información, incluyendo nombres de tablas, nombres de vistas, nombres de columnas, y los datos de
las columnas deben estar almacenados en tablas dentro de las bases de datos. Las tablas que contienen tal
información constituyen el Diccionario de Datos.
Regla No. 2 - La regla del acceso garantizado
Cada ítem de datos debe ser lógicamente accesible al ejecutar una búsqueda que combine el nombre de la
tabla, su clave primaria, y el nombre de la columna.
Esto significa que dado un nombre de tabla, dado el valor de la clave primaria, y dado el nombre de la
columna requerida, deberá encontrarse uno y solamente un valor. Por esta razón la definición de claves
primarias para todas las tablas es prácticamente obligatoria.
Regla No. 3 - Tratamiento sistemático de los valores nulos
La información inaplicable o faltante puede ser representada a través de valores nulos.
Un RDBMS (Sistema Gestor de Bases de Datos Relacionales) debe ser capaz de soportar el uso de valores
nulos en el lugar de columnas cuyos valores sean desconocidos o inaplicables.
Regla No. 4 - La regla de la descripción de la base de datos

La descripción de la base de datos es almacenada de la misma manera que los datos ordinarios, esto es, en
tablas y columnas, y debe ser accesible a los usuarios autorizados.
La información de tablas, vistas, permisos de acceso de usuarios autorizados, etc, debe ser almacenada
exactamente de la misma manera: En tablas. Estas tablas deben ser accesibles igual que todas las tablas, a
través de sentencias de SQL.
Regla No. 5 - La regla del sub-lenguaje Integral
Debe haber al menos un lenguaje que sea integral para soportar la definición de datos, manipulación de
datos, definición de vistas, restricciones de integridad, y control de autorizaciones y transacciones.
Esto significa que debe haber por lo menos un lenguaje con una sintaxis bien definida que pueda ser usado
para administrar completamente la base de datos.
Regla No. 6 - La regla de la actualización de vistas
Todas las vistas que son teóricamente actualizables, deben ser actualizables por el sistema mismo.
La mayoría de las RDBMS permiten actualizar vistas simples, pero deshabilitan los intentos de actualizar
vistas complejas.
Regla No. 7 - La regla de insertar y actualizar
La capacidad de manejar una base de datos con operandos simples aplica no solo para la recuperación o
consulta de datos, sino también para la inserción, actualización y borrado de datos.
Esto significa que las cláusulas SELECT, UPDATE, DELETE e INSERT deben estar disponibles y operables
sobre los registros, independientemente del tipo de relaciones y restricciones que haya entre las tablas.
Regla No. 8 - La regla de independencia física
El acceso de usuarios a la base de datos a través de terminales o programas de aplicación, debe permanecer
consistente lógicamente cuando quiera que haya cambios en los datos almacenados, o sean cambiados los
métodos de acceso a los datos.
El comportamiento de los programas de aplicación y de la actividad de usuarios vía terminales debería ser
predecible basados en la definición lógica de la base de datos, y éste comportamiento debería permanecer
inalterado, independientemente de los cambios en la definición física de ésta.
Regla No. 9 - La regla de independencia lógica
Los programas de aplicación y las actividades de acceso por terminal deben permanecer lógicamente
inalteradas cuando quiera que se hagan cambios (según los permisos asignados) en las tablas de la base de
datos.

La independencia lógica de los datos especifica que los programas de aplicación y las actividades de terminal
deben ser independientes de la estructura lógica, por lo tanto los cambios en la estructura lógica no deben
alterar o modificar estos programas de aplicación.
Regla No. 10 - La regla de la independencia de la integridad
Todas las restricciones de integridad deben ser definibles en los datos, y almacenables en el catalogo, no en
el programa de aplicación.
Las reglas de integridad son:
Ningún componente de una clave primaria puede tener valores en blanco o nulos. (esta es la norma
básica de integridad).
Para cada valor de clave foránea deberá existir un valor de clave primaria concordante. La combinación
de estas reglas aseguran que haya Integridad referencial.
Regla No. 11 - La regla de la distribución
El sistema debe poseer un lenguaje de datos que pueda soportar que la base de datos esté distribuida
físicamente en distintos lugares sin que esto afecte o altere a los programas de aplicación.
El soporte para bases de datos distribuidas significa que una colección arbitraria de relaciones, bases de
datos corriendo en una mezcla de distintas máquinas y distintos sistemas operativos y que este conectada por
una variedad de redes, pueda funcionar como si estuviera disponible como una única base de datos en una
sola máquina.
Regla No. 12 - Regla de la no-subversión
Si el sistema tiene lenguajes de bajo nivel, estos lenguajes de ninguna manera pueden ser usados para violar
la integridad de las reglas y restricciones expresadas en un lenguaje de alto nivel (como SQL).
Algunos productos solamente construyen una interfaz relacional para sus bases de datos No relacionales, lo
que hace posible la subversión (violación) de las restricciones de integridad. Esto no debe ser permitido.
Algebra relacionalEs un método que consiste básicamente en crear o construir nuevas relaciones a partir de relaciones existentes.
Existen 2 tipos de operadores algebraicos:
Operadores básicos o primitivos.
Operadores no básicos o derivados.
Operadores básicos o primitivos.
Se clasifican en:

1. Proyección (π).
2. Selección (σ).
3. Unión (U).
4. Diferencia (-).
5. Producto cartesiano (X).
Proyección.
Este operador permite extraer columnas de una relación y de esta manera crea un subconjunto de atributos de la relación, además elimina las filas duplicadas.
Ejemplo
PERSONA
CODIGO NOMBRE EDAD TELEFONO CIUDAD
1 PEDRO 24 3182405 QUITO
2 SONIA 15 3234534 QUITO
3 ERIK 18 4102405 GUAYAQUIL
4 ANDREA 27 4089129 GUAYAQUIL
π NOMBRE, CUIDAD (PERSONA)
NOMBRE CUIDAD
PEDRO QUITO
SONIA QUITO
ERIK GUAYAQUIL

ANDREA GUAYAQUIL
Selección.
Este operador permite seleccionar un subconjunto de filas o registros de una relación y de acuerdo a la condición planteada los registros serán seleccionados para formar parte de un nuevo subconjunto.
Ejemplo
PERSONA
CODIGO NOMBRE EDAD TELEFONO CIUDAD
1 PEDRO 24 3182405 QUITO
2 SONIA 15 3234534 QUITO
3 ERIK 18 4102405 GUAYAQUIL
4 ANDREA 27 4089129 GUAYAQUIL
σ CODIGO>2 (PERSONA)
CODIGO NOMBRE EDAD TELEFONO CIUDAD
3 ERIK 18 4102405 GUAYAQUIL
4 ANDREA 27 4089129 GUAYAQUIL
Unión.

La unión de 2 relaciones R y S es otra relación la cual va a tener los registros de R en S o en ambas, además se eliminan los registros duplicados.
En esta relación R y S deben ser compatibles es decir que deben estar definidas sobre el mismo conjunto de atributos.
Ejemplo
EMPLEADO
CÓDIGO NOMBRE SUELDO
1 KEVIN 550
2 EDUARDO 300
3 JESSICA 240
4 NANCY 430
JEFE
CÓDIGO NOMBRE SUELDO
5 PEDRO 800
2 EDUARDO 300
6 ADRIAN 1000
4 NANCY 430
8 JUAN 180

EMPLEADO U JEFE
CÓDIGO NOMBRE SUELDO
1 KEVIN 550
2 EDUARDO 300
3 JESSICA 240
4 NANCY 430
5 PEDRO 800
6 ADRIAN 1000
8 JUAN 180
Diferencia.
La diferencia de 2 relaciones R y S es otra relación la cual va a tener los registros que están en R pero no están en S.
En esta relación R y S deben ser compatibles.
Ejemplo
EMPLEADO
CÓDIGO NOMBRE SUELDO
1 KEVIN 550
2 EDUARDO 300

3 JESSICA 240
4 NANCY 430
JEFE
CÓDIGO NOMBRE SUELDO
5 PEDRO 800
2 EDUARDO 300
6 ADRIAN 1000
4 NANCY 430
8 JUAN 180
EMPLEADO – JEFE
CODIGO NOMBRE SUELDO
1 KEVIN 550
3 JESSICA 240
JEFE – EMPLEADO

CODIGO NOMBRE SUELDO
5 PEDRO 800
6 ADRIAN 1000
8 JUAN 180
Producto cartesiano.
Es una relación que consiste en la concatenación de cada una de las filas de la relación R con cada una de las filas de la relación S.
Ejemplo
PROVINCIA
CÓDIGO NOMBRE POBLACION
5 PICHINCHA 800
2 AZUAY 300
6 GUAYAS 1000
4 COTOPAXI 430
CIUDAD
CÓDIGO CIUDAD
C1 QUITO

C2 CUENCA
C3 GUAYAQUIL
PROVINCIA X CIUDAD
CÓDIGO NOMBRE POBLACION CODIGO CIUDAD
5 PICHINCHA 800 C1 QUITO
5 PICHINCHA 800 C2 CUENCA
5 PICHINCHA 800 C3 GUAYAQUIL
2 AZUAY 300 C1 QUITO
2 AZUAY 300 C2 CUENCA
2 AZUAY 300 C3 GUAYAQUIL
6 GUAYAS 1000 C1 QUITO
6 GUAYAS 1000 C2 CUENCA
6 GUAYAS 1000 C3 GUAYAQUIL
4 COTOPAXI 430 C1 QUITO

4 COTOPAXI 430 C2 CUENCA
4 COTOPAXI 430 C3 GUAYAQUIL
Operadores no básicos o derivados.
Se clasifican en:
1. Intersección (∩).
2. Unión natural ().
3. División (/).
Intersección.
Es una relación que contiene el conjunto de todas las filas que están tanto en la relación R como en S.
R y S deben ser compatibles.
Ejemplo
EMPLEADO
CODIGO NOMBRE SUELDO
1 KEVIN 550
2 EDUARDO 300
3 JESSICA 240
4 NANCY 430
JEFE
CODIGO NOMBRE SUELDO

5 PEDRO 800
2 EDUARDO 300
6 ADRIAN 1000
4 NANCY 430
8 JUAN 180
EMPLEADO – JEFE
CODIGO NOMBRE SUELDO
2 EDUARDO 300
4 NANCY 430
Unión natural.
El resultado es una relación con los atributos de ambas relaciones y se obtiene combinando vas filas de ambas relaciones que tengan el mismo valor en los atributos comunes.
El join se lo usa entre los atributos comunes de las entidades o tablas que poseen la clave primaria de una tabla foránea correspondiente de otra entidad.
Ejemplo
PROVINCIA
CODIGO NOMBRE POBLACION CODIGO_CIUDAD
5 PICHINCHA 800 1

2 AZUAY 300 3
6 GUAYAS 1000 3
4 COTOPAXI 430 1
CIUDAD
CODIGO_CIUDAD CIUDAD
1 QUITO
2 CUENCA
3 GUAYAQUIL
CÓDIGO
NOMBRE POBLACION
CODIGO_CIUDAD
CODIGO_CIUDAD
CIUDAD
5 PICHINCHA
800 1 1 QUITO
5 PICHINCHA
800 1 2 CUENCA
5 PICHINCHA
800 1 3 GUAYAQUIL
2 AZUAY 300 3 1 QUITO

2 AZUAY 300 3 2 CUENCA
2 AZUAY 300 3 3 GUAYAQUIL
6 GUAYAS 1000 3 1 QUITO
6 GUAYAS 1000 3 2 CUENCA
6 GUAYAS 1000 3 3 GUAYAQUIL
4 COTOPAXI 430 1 1 QUITO
4 COTOPAXI 430 1 2 CUENCA
4 COTOPAXI 430 1 3 GUAYAQUIL
RESULTADO
CODIGO
NOMBRE POBLACION
CODIGO_CIUDAD
CODIGO_CIUDAD
CIUDAD
5 PICHINCHA
800 1 1 QUITO
2 AZUAY 300 3 3 GUAYAQUIL

6 GUAYAS 1000 3 3 GUAYAQUIL
4 COTOPAXI 430 1 1 QUITO
Outer Join.
Es una variante del join en la que se intenta mantener toda va información de los operandos, incluso para aquellas que no encajan o entran en juego en el Join, se rellena con nulos las filas que no tienen correspondencia en el Join.
Existen 3 variantes:
1. Left.
2. Right
3. Full
Left
Se tiene en cuenta todas las filas del primer operando.
Right
Se tiene en cuenta todas las filas del segundo operando.
Full
Se tiene en cuenta todas las filas de ambos operandos.
División.
Define una relación sobre el conjunto de atributos C, incluido en la relación R, y que contiene el conjunto de valores de S, que en las filas de R están combinadas con cada una de las filas de S.
R
A B C D
1 2 3 5
4 3 5 9

3 2 8 1
1 2 2 7
1 3 2 7
S
C D
3 5
2 7
R / S
A B
1 2