Está en la página 1de 12

APUNTES DEL MDULO PROFESIONAL: SISTEMAS GESTORES DE BASES DE DATOS (4) Pgina 1 de 12

8. EL MODELO RELACIONAL - Continuacin (2):



TRANSFORMACIN DE UN DIAGRAMA ENTIDAD-RELACIN A UN ESQUEMA RELACIONAL:

Una vez obtenido el esquema conceptual mediante un diagrama E-R, puede definirse el modelo lgico de datos mediante
un esquema relacional.

1 - Las reglas bsicas para transformar un diagrama E-R a un esquema relacional son:

1. Toda entidad se transforma en una tabla.
2. Todo atributo de la entidad se transforma en columna de la tabla.
3. La clave primaria de la entidad se transforma en la clave primaria de la tabla.


Proveedor
IdProveedor
Nombre
Telfono
NIFCIF
El esquema relacional sera:
PROVEEDORES (IdProveedor, NIFCIF,Nombre, Telfono)
Por supuesto, quedaran por
especificar los dominios de
los campos.

4. Toda relacin N:M se transforma en una tabla, que tendr como claves ajenas las claves primarias de las
entidades que asocia. Y podr tener como clave primaria la concatenacin de los atributos clave de las
entidades que asocia si es posible, si no, se utilizan junto con uno o varios atributos de la relacin o se le
agrega un campo identificador nuevo como clave primaria.


Proveedor Artculo Suministra
N:M
IdProveedor
IdArtculo
Nombre
Telfono
Descripcin
Precio
Stock
NIFCIF
Ejemplo: Cada proveedor suministra varios artculos, y cada artculo puede ser suministrado por distintos proveedores.
(1,N) (1,M)
El esquema relacional sera:
PROVEEDORES (IdProveedor, NIFCIF,Nombre, Telfono).
ARTCULOS (IdArtculo, Descripcin, Precio, Stock).
SUMINISTROS (IdSuministro, IdProveedor, IdArtculo, Fecha, Unidades).

En este caso, se crea la tabla nueva con los atributos de la relacin y las
claves primarias de las entidades como claves ajenas. Como no puede
usarse como clave primaria de SUMINISTROS la concatenacin de IdProveedor
e IdArtculo, pues en dicha tabla pueden aparecer suministros del mismo artculo
por el mismo proveedor. Quedara por establecer los dominios de los campos.
Fecha
El diagrama referencial (para especificar y comentar
las claves ajenas) del esquema relacional sera:

IdProveedor
SUMINISTROS PROVEEDORES:
Proveedor titular del suministro.

IdArtculo
SUMINISTROS ARTCULOS:
Artculo suministrado en el suministro.
Unidades

APUNTES DEL MDULO PROFESIONAL: SISTEMAS GESTORES DE BASES DE DATOS (4) Pgina 2 de 12

5. Para las relaciones 1:N existen 2 soluciones:

5.1. Propagar la clave, es decir, se propagan la clave primaria de la entidad con cardinalidad mxima 1 y los
atributos de la propia relacin a la entidad cuya cardinalidad mxima es N. Se suele realizar cuando:

La cardinalidad de la entidad cuya cardinalidad mxima es 1 es (1,1), es decir, es obligatoria.

5.2. Transformar la relacin en una tabla (exactamente igual a como ocurre con las relaciones N:M). Se
puede realizar cuando ocurren algunos de estos casos:

La cardinalidad de la entidad cuya cardinalidad mxima es 1 es (0,1), es decir, es opcional.
Se prev que se convertir en una relacin N:M.
La relacin tiene atributos propios.



Departamento Empleado Pertenece
(1,1) (0,N)
IdDepartamento
IdEmpleado
Nombre
Telfono
Nombre
Puesto
Salario
1:N
Diagrama Entidad-Relacin de las relaciones entre departamentos y empleados de una empresa. A cada
departamento le pertenecen 0 o ms empleados (N). Cada empleado pertenece a un departamento y slo a uno.
El esquema relacional sera:
DEPARTAMENTOS (IdDepartamento, Nombre, Telfono).
EMPLEADOS (IdEmpleado, IdDepartamento, Nombre, Puesto,
Salario).

En este caso, al tener Departamento cardinalidad (1,1), se propaga su
clave primaria a la tabla EMPLEADOS como clave ajena.

Quedara por establecer los dominios de los campos.
El diagrama referencial (para especificar y comentar las claves
ajenas) del esquema relacional sera:

IdDepartamento
EMPLEADOS DEPARTAMENTOS:
Departamento al que pertenece el empleado.
6. Para las relaciones 1:1 se tienen en cuenta las cardinalidades de las entidades que participan en la relacin.

6.1. Unir ambas entidades en una tabla, cuando ambas entidades tienen cardinalidad (1,1). Se escoge
como clave primaria de la tabla a una cualquiera de las dos claves primarias de las entidades.
6.2. Propagar la clave, cuando una entidad tiene cardinalidad (1,1) y la otra (0,1). Se propaga la clave
primaria de la entidad con cardinalidad (1,1) a la tabla resultante de la entidad con cardinalidad (0,1)
convirtindose en clave ajena.
6.3. Transformar la relacin en una tabla, cuando ambas entidades tienen cardinalidad (0,1). Se transforma
la relacin en una tabla independiente, tal y como se haca cuando la relacin era N:M.


APUNTES DEL MDULO PROFESIONAL: SISTEMAS GESTORES DE BASES DE DATOS (4) Pgina 3 de 12



2 - Transformacin de otros elementos del modelo E-R:

1. Relaciones reflexivas: Son las relaciones binarias en las que nicamente participa un tipo de entidad.
Pueden encontrarse los siguientes casos:

1.1. Si la relacin es 1:1, no se crea una segunda tabla, si no que en la tabla resultante se agregar 2 veces
el mismo atributo, como clave primaria y como clave ajena a ella misma.
1.2. Si la relacin es 1:N, hay que ver 2 casos:
1.2.1. Si la entidad tiene cardinalidad (1,N) se procede como en el caso de relaciones 1:1.
1.2.2. Si la entidad no es obligatoria, es decir, tiene cardinalidad (0,N), se crea una nueva tabla cuya
clave ser la de la entidad del lado muchos, y adems se propaga la clave a la nueva tabla como
clave ajena.
1.3. Si la relacin es N:M, se trata igual que en las relaciones binarias. La tabla resultante de la relacin
contendr 2 veces la clave primaria de la entidad del lado muchos, ms los atributos de la relacin si los
hubiera. La clave de esta nueva tabla ser la combinacin de las 2.


Pieza
Componerse
N:M
CdPieza
(1,N)
Nombre
Tamao
Descripcin
(1,M)
Piezas: Una pieza se compone
de muchas piezas, que a su vez
estn compuestas de otras
piezas. Es decir, una pieza se
compone de una o varias
piezas ms pequeas. Una
pieza forma parte de una o
varias piezas ms grandes.
El esquema relacional sera:
PIEZAS (CdPieza, Descripcin, Tamao, Nombre).
COMPONENTES (CdPieza, CdPiezaComponente).

En este caso, se crea la tabla COMPONENTES que tiene como clave
primaria la concatenacin de la clave primaria de la tabla PIEZAS
(identificando la pieza compuesta), ms el campo
CdPiezaComponente tambin (identificando la pieza de la que se
compone la pieza compuesta). Adems son ambas claves ajenas.
El diagrama referencial (para especificar y comentar las claves
ajenas) del esquema relacional sera:

CdPieza
PIEZAS COMPONENTES: Cdigo de la
pieza deseada que se quiere fabricar a partir de otras.

CdPiezaComponente
PIEZAS COMPONENTES: Cdigo de la
pieza menor que hace falta para fabricar la pieza deseada.
Curso Tutor
1:1
Cada curso tiene un nico tutor, y cada tutor lo es nicamente de un curso.
Tiene
NombreCurso
Aula
DNITutor
DptoTutor NombreTutor
(1,1)
(1,1)
El esquema relacional sera:
CURSOSYTUTORES (NombreCurso, Aula, DNITutor, NombreTutor, DptoTutor).

En este caso, al tener ambas entidades cardinalidad (1,1), se funden las 2 entidades en una sola tabla, y se toma como clave
primaria a cualquiera de las claves de las entidades, en este caso, se eligi la clave NombreCurso.

Quedara por establecer los dominios de los campos.
APUNTES DEL MDULO PROFESIONAL: SISTEMAS GESTORES DE BASES DE DATOS (4) Pgina 4 de 12



Empleado
Dirige
1:N
CdEmpleado
(0,N)
Nombre
Telfono
Direccin
(0,1)
Empleados y empleados jefes: Un empleado puede dirigir a muchos empleados si es el jefe, o a ninguno si no es el jefe. Un empleado es
dirigido por un jefe, o por ninguno si l mismo es el jefe.
El esquema relacional sera:
EMPLEADOS (CdEmpleado, Direccin, Telfono, Nombre).
DIRECTORES (CdEmpleado, CdDirector)

En este caso, se crea la tabla DIRECTORES que tiene a la vez como
clave primaria y ajena la misma que la de la tabla EMPLEADOS,
identificando al empleado al que se hace referencia; y adems, tiene el
mismo campo como clave ajena que indica qu otro empleado es su
director.
El diagrama referencial (para especificar y comentar las claves
ajenas) del esquema relacional sera:

CdEmpleado
DIRECTORES EMPLEADOS: Cdigo
del empleado especificado al que se le asignar un director.

CdDirector
DIRECTORES EMPLEADOS: Cdigo
del director del empleado especificado.
2. Generalizaciones o especializaciones: Las diferentes opciones para la transformacin de jerarquas del
modelo E-R al modelo relacional son:

2.1. Integrar todas las entidades en una nica tabla absorbiendo los subtipos: Se crea una tabla que
contiene todos los atributos del supertipo, todos los de los subtipos, y el atributo discriminatorio para
distinguir a qu subtipo pertenece cada registro de la tabla. Esta regla puede aplicarse a cualquier tipo de
jerarqua, es muy simple de realizar, pero genera demasiados valores nulos en los atributos opcionales
propios de cada subtipo.

2.2. Eliminacin del supertipo en jerarquas totales y exclusivas: Transfiriendo los atributos del supertipo
a cada uno de los subtipos, crendose una tabla por cada subtipo, el supertipo no tendr tabla, y se
elimina el atributo que distingue entre subtipos. Se crea redundancia en la informacin pues los atributos
del supertipo se repiten en cada uno de los subtipos. El nmero de relaciones aumenta, pues las
relaciones del supertipo pasan a cada uno de los subtipos.

2.3. Insertar una relacin 1:1 entre el supertipo y los subtipos: Los atributos se mantienen y cada subtipo
se identificar con una clave ajena referenciando a la clave primaria del supertipo. El supertipo mantendr
una relacin 1:1 con cada subtipo.

Ejemplo de los Profesores y los centros especializados en pblicos y privados:

Hay profesores que imparten clases en 2 tipos de centros educativos: pblicos y privados.
Un profesor puede impartir clase en varios centros, ya sean pblicos o privados.
La asignatura ser un atributo de la relacin entre el profesor y el centro donde imparte.
Los centros educativos slo pueden ser pblicos o privados.
Un centro pblico no puede ser privado a la vez, ni a la inversa.
Los atributos especficos para los centros pblicos son: el presupuesto y los servicios; y para los privados son:
la organizacin y la cuota.



APUNTES DEL MDULO PROFESIONAL: SISTEMAS GESTORES DE BASES DE DATOS (4) Pgina 5 de 12


SOLUCIN: (Aparecen en negrita las principales diferencias entre los distintos mtodos, subrayados los
campos pertenecientes a la clave primaria, y en cursiva los campos que son clave ajena; no se especificarn los
diagramas referenciales ni los dominios de los campos).

1. Integrar todas las entidades en una nica tabla absorbiendo los subtipos:

PROFESORES(IdProfesor,Nombre,Direccin,Telfono,Especialidad).
CENTROS(IdCentro,Nombre,Direccin,NmeroAlumnos,TipoCentro,Servicios,Presupuesto,Organizacin,Cuota).
IMPARTICIONES(IdProfesor,IdCentro,Asignatura).

2. Eliminacin del supertipo en jerarquas totales y exclusivas:

PROFESORES(IdProfesor,Nombre,Direccin,Telfono,Especialidad).
PBLICOS(IdCentro,Nombre,Direccin,NmeroAlumnos,Servicios,Presupuesto).
PRIVADOS(IdCentro,Nombre,Direccin,NmeroAlumnos,Organizacin,Cuota).
IMPARTICIONES_PBLICOS(IdProfesor,IdCentro,Asignatura).
IMPARTICIONES_PRIVADOS(IdProfesor,IdCentro,Asignatura).

3. Insertar una relacin 1:1 entre el supertipo y los subtipos:

PROFESORES(IdProfesor,Nombre,Direccin,Telfono,Especialidad).
CENTROS(IdCentro,Nombre,Direccin,NmeroAlumnos,TipoCentro).
PBLICOS(IdCentro,Servicios,Presupuesto).
PRIVADOS(IdCentro,Organizacin,Cuota).
IMPARTICIONES(IdProfesor,IdCentro,Asignatura).


3. Relaciones N-arias (ternarias, cuaternarias, etc.): En este tipo de relaciones se asocian 3 ms entidades.
Se pasan todas las entidades a tablas tal cual. La relacin tambin se convierte a una tabla, que va a contener
sus atributos ms las claves primarias de todas las entidades que asocia como claves ajenas. Hay 2 casos:
3.1. Si la relacin es N:N:N, es decir, todas las entidades participan con cardinalidad mxima N, la clave de la
tabla resultante de la relacin es la unin de las claves ajenas que referencian a las entidades que asocia.
3.2. Si la relacin es 1:N:N, es decir, una sola entidad participa con cardinalidad mxima 1, la clave de la tabla
resultante de la relacin es la unin de las claves ajenas que referencian a las entidades que asocia
Centro
IdCentro
Nombre
Direccin
NmeroAlumnos
TipoCentro
Asignatura
Pblico Privado
(0,1)
(0,1)
Presupuesto Servicios
Organizacin Cuota
Profesor Imparte
IdProfesor Nombre
N:M
Especialidad
Direccin
(1,N) (1,M)
(1,1)
Telfono
APUNTES DEL MDULO PROFESIONAL: SISTEMAS GESTORES DE BASES DE DATOS (4) Pgina 6 de 12
excepto la de la entidad que participa con cardinalidad mxima 1, que queda como un atributo ms y
como clave ajena, pero no formar parte de la clave primaria de dicha tabla resultante de la relacin.

Vendedores de coches (empleados, clientes y coches):

En una tienda de coches, un empleado vende coches a sus clientes.
En cada venta, un nico empleado puede vender varios coches a varios clientes.
En una operacin de venta hay que tener en cuenta la forma de pago y la fecha de venta.



El resultado en el modelo relacional (siendo una relacin ternaria del tipo 1:N:N) es:

EMPLEADOS(CdEmpleado,Nombre,Puesto,Telfono).
COCHES(CdCoche,Descripcin,Marca,Modelo,Matrcula).
CLIENTES(CdCliente,Nombre,Telfono).
VENTAS(CdCoche,CdCliente,CdEmpleado,FormaPago,FechaVenta).


NORMALIZACIN DE ESQUEMAS RELACIONALES:

El proceso de normalizacin de una base de datos consiste en aplicar una serie de reglas a las relaciones obtenidas
tras el paso del modelo E-R (entidad-relacin) al modelo relacional que elimine las dependencias no deseadas
entre los atributos.

Las bases de datos relacionales se normalizan para:

1. Evitar la redundancia de los datos.
2. Evitar problemas de actualizacin (tras insertar, modificar o borrar) de los datos en las tablas.
3. Proteger la integridad de los datos.

La normalizacin se lleva a cabo en una serie de pasos, llamados formas normales, que van reconstruyendo las tablas
hacindolas ms robustas y menos vulnerables a las anomalas que pudiesen surgir tras una actualizacin.

Dependencia funcional: Una dependencia funcional es una relacin o conexin entre uno o ms atributos de la
misma tabla. 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

Empleado Coche
Vende
1:N:N
CdEmpleado
(1,N) (1,1)
CdCoche
Nombre
Puesto
Descripcin
Marca
Modelo
Telfono
Matrcula
Cliente
CdCliente
Nombre
(1,N)
Telfono
FormaPago
FechaVenta
APUNTES DEL MDULO PROFESIONAL: SISTEMAS GESTORES DE BASES DE DATOS (4) Pgina 7 de 12

Aqu al atributo FechaDeNacimiento se le conoce como un determinante, pues para cada valor de FechaDeNacimiento
hay un valor nico valor de Edad asociado. Se puede leer de dos formas: FechaDeNacimiento determina a Edad o Edad
es funcionalmente dependiente de FechaDeNacimiento. Se dice que Edad es completamente dependiente de
FechaDeNacimiento si depende funcionalmente de ese atributo y no depende de ningn otro de la tabla.

Dependencia funcional transitiva: Supongamos, por ejemplo, que en una relacin los estudiantes solo pueden estar
matriculados en un solo curso y supongamos que los profesores solo pueden dar un curso.

ID_Estudiante Curso
Curso Profesor_Asignado
ID_Estudiante Curso Profesor_Asignado (Dependencia funcional transitiva)

Entonces tenemos que ID_Estudiante determina a Curso y el Curso determina a Profesor_Asignado; indirectamente
podemos saber a travs del ID_estudiante el Profesor_Asignado. Entonces tenemos una dependencia transitiva.

De la normalizacin (lgica) a la implementacin (fsica o real) puede ser sugerible tener en cuenta stas dependencias
funcionales para lograr mayor eficiencia en las tablas construidas.


Formas Normales: Las tres primeras formas normales son suficientes para cubrir las necesidades de la mayora
de las bases de datos, las dems son opcionales. El creador de estas 3 primeras formas normales (o reglas) fue Edgar F.
Codd, ste introdujo la normalizacin en un artculo llamado A Relational Model of Data for Large Shared Data Banks
Communications of the ACM, Vol. 13, No. 6, June 1970, pp. 377-387.


Primera Forma Normal (1FN): Se eliminan los grupos repetitivos. Los atributos han de ser atmicos, es decir, cada
atributo de la tabla toma un nico valor del dominio correspondiente. Grficamente las celdas de la tabla
contienen solo un valor, en cada uno de los atributos slo se puede incluir un dato, aunque sea compuesto, pero
no se puede incluir una lista de datos. Se trata de que cada atributo guarde la menor cantidad de informacin
posible.

Para eliminar los grupos repetitivos puede ponerse cada a uno de ellos en una tabla aparte, esa nueva
tabla hereda la clave primaria de la relacin en la que se encontraban.


Segunda Forma Normal (2FN): Dependencia completa. Una tabla est en 2FN si y slo si est en 1FN y si sus
atributos no principales (que no pertenecen a la clave primaria) dependen de forma completa de la clave
primaria (de todos los atributos de la clave primaria). Se aplica en tablas con claves primarias compuestas por
varios atributos, por tanto, toda tabla que tenga como clave primaria slo un atributo est en 2FN si ya lo estaba en
1FN.

Teniendo la tabla T(A, B, C, D), si C depende funcionalmente slo de A (A C) y D depende
funcionalmente de A y B (A,B D) entonces debe dividirse la tabla en 2 tablas: T1 (A, C) y T2 (A, B, D).
As se eliminaron las dependencias parciales de la clave primaria en la tabla T. T1 y T2 ya estn en
2FN, pues los atributos que no forman parte de la clave primaria dependen de todos los atributos que la
componen.


Tercera Forma Normal (3FN): Se eliminan las dependencias transitivas. Una tabla est en 3FN si y slo si est
en 2FN y todo atributo que no est en la clave primaria no depende transitivamente de la clave primaria.

APUNTES DEL MDULO PROFESIONAL: SISTEMAS GESTORES DE BASES DE DATOS (4) Pgina 8 de 12

El valor de esta columna debe depender directamente de la clave. Todos los valores de una tabla deben
identificarse nicamente por la clave directamente, y no por un campo intermedio no principal de la
tabla que a su vez depende funcionalmente de la clave principal (dependencia transitiva).

Teniendo la tabla T(A,B,C,D), si A B, A C, y C D, vemos que D no depende de forma directa de la
clave primaria simple A, pero si depende transitivamente de ella a travs del campo C. La tabla debe
descomponerse en 2 tablas: T1(A,B,C) y T2(C,D). As se eliminaron las dependencias transitivas en
las tablas.


Las formas normales opcionales son: Forma normal de Boyce-Codd (FNBC), Cuarta Forma Normal (4FN) y Quinta
Forma Normal (5FN).


Ejemplo: Pasar a tercera forma normal la siguiente tabla basada en el modelo relacional:

RELACIN EMPLEADOS
IdEmpleado Telfono Cdigo Postal Localidad Cargo Dpto
1 957894511
642889978
41013 Sevilla Administrativo Administracin
2 910022354
910022355
609415004
28005 Madrid Informtica Tcnico
3 956448877 11005 Cdiz Auxiliar Administrativo Administracin

Para que est en 1FN hay que eliminar los grupos repetitivos, es decir, que en cada celda de la tabla hay un
nico valor y no varios, como se observa en el campo Telfono.

As que sacaremos el campo con valores mltiples en cada celda de la tabla, separando los valores en distintas
filas en otra tabla, que tendr como clave primaria compuesta la clave primaria de la tabla original ms el atributo
con valores mltiples.

RELACIN EMPLEADOS
IdEmpleado Cdigo Postal Localidad Cargo Dpto
1 41013 Sevilla Administrativo Administracin
2 28005 Madrid Informtico Tcnico
1 11005 Cdiz Auxiliar Administrativo Administracin

RELACIN TELFONOS
IdEmpleado Telfono Cargo
1 957894511 Administrativo
1 642889978 Administrativo
2 910022354 Informtico
2 910022355 Informtico
2 609415004 Informtico
1 956448877 Auxiliar Administrativo

Ya est en 1FN. Para pasar el resultado a 2FN, como ya est en 1FN, todos los campos de la tabla que no
formen parte de la clave primaria deben depender de todos los atributos de la clave primaria a la vez, y no
slo de unos pocos de la clave primaria pero no de otros.

APUNTES DEL MDULO PROFESIONAL: SISTEMAS GESTORES DE BASES DE DATOS (4) Pgina 9 de 12

Los campos Localidad y Cdigo Postal dependen a la vez de Nombre y de Cargo, en cambio el campo Dpto si
depende exclusivamente de Cargo y no de Nombre. Por tanto se han detectado dependencias funcionales
parciales, pues algunos atributos dependen de algunos campos de la clave primaria pero no de todos. La relacin
TELFONOS ya est en 2FN al no tener atributos que no pertenezcan a la clave primaria, pero la relacin
EMPLEADOS deber dividirse para evitar las dependencias funcionales parciales:

RELACIN CARGOS RELACIN EMPLEADOS
Cargo Dpto IdEmpleado Cdigo Postal Localidad Cargo
Administrativo Administracin 1 41013 Sevilla Administrativo
Informtico Tcnico 2 28005 Madrid Informtico
Auxiliar Administrativo Administracin

1 11005 Cdiz Auxiliar Administrativo

RELACIN TELFONOS
IdEmpleado Telfono Cargo
1 957894511 Administrativo
1 642889978 Administrativo
2 910022354 Informtica
2 910022355 Informtica
2 609415004 Informtica
1 956448877 Auxiliar Administrativo

Ya est en 2FN. Para pasar el resultado a 3FN, como ya est en 2FN, todos los campos de la tabla que no
formen parte de la clave primaria deben depender directamente de todos los atributos de la clave
primaria al completo, y no de otros atributos que a su vez dependan de la clave primaria.

Vemos que en la relacin EMPLEADOS, el campo Localidad depende realmente del Cdigo Postal, que a su vez
depende de la clave primaria, por tanto, se da una dependencia funcional transitiva, y esto obligar a dividir
la tabla:

RELACIN CARGOS
Cargo Dpto
Administrativo Administracin
Informtico Tcnico
Auxiliar Administrativo Administracin

RELACIN EMPLEADOS RELACIN CDIGOSPOSTALES
IdEmpleado Cdigo Postal Cargo Cdigo Postal Localidad
1 41013 Administrativo 41013 Sevilla
2 28005 Informtico 28005 Madrid
1 11005 Auxiliar Administrativo

11005 Cdiz

RELACIN TELFONOS
IdEmpleado Telfono Cargo
1 957894511 Administrativo
1 642889978 Administrativo
2 910022354 Informtica
2 910022355 Informtica
2 609415004 Informtica
1 956448877 Auxiliar Administrativo


APUNTES DEL MDULO PROFESIONAL: SISTEMAS GESTORES DE BASES DE DATOS (4) Pgina 10 de 12

OPERACIONES BSICAS SOBRE TABLAS:

Estas operaciones estn basadas en el lgebra Relacional. Los operandos son tablas y el resultado es otra tabla.

Seleccin Unarias (un operando)
Proyeccin
Unin
Diferencia
Operaciones bsicas sobre tablas
Binarias (dos operandos)
Producto Cartesiano
Interseccin
Cociente
Operaciones derivadas (binarias
que necesitan las operaciones
bsicas) Combinacin (o join)

Seleccin: Esta operacin obtiene una nueva tabla con el subconjunto de filas de la tabla que cumplen una condicin, y
con todas sus columnas. Se utilizan condiciones y operadores booleanos (lgicos) para expresar criterios.
Cd_Dpto=3(EMPLEADOS): Seleccionar las filas de la tabla EMPLEADOS cuyo campo Cd_Dpto sea 3.

Pueden emplearse los operadores de comparacin: =, <, >, , y , y los operadores booleanos Y (^), O (
v
) y NO.

Proyeccin: Esta operacin obtiene una nueva tabla con un subconjunto de columnas especificado de la tabla pero con
todas sus filas. Las filas duplicadas slo aparecen una vez.
Cd_Dpto,Nombre,Telfono(EMPLEADOS): Seleccionar las columnas Cd_Dpto, Nombre y Telfono de la tabla
EMPLEADOS, con todas sus filas, teniendo en cuenta que las filas duplicadas slo aparecern una vez en la tabla
resultante.

Ejemplo: Si quisisemos obtener una tabla con las columnas Cd_Dpto, Nombre y Telfono de la tabla
EMPLEADOS, pero nicamente de los empleados del departamento 3, donde las filas duplicadas slo aparecern
una vez en la tabla resultante haramos:
Cd_Dpto,Nombre,Telfono( Cd_Dpto=3(EMPLEADOS) )

Unin: Dos tablas se pueden unir si tienen el mismo nmero de columnas y dominios compatibles. El resultado es otra
tabla con las filas de ambas tablas. Las filas repetidas aparecen slo una vez.
EMPLEADOS CLIENTES: El resultado es otra tabla con los clientes y empleados juntos, sin filas duplicadas.

Relacin EMPLEADOS Relacin CLIENTES
EMPLEADOS U CLIENTES
Id Nombre Id Nombre Id Nombre
1 Luis 1 Rosa 1 Luis
2 Ana 2 Ana 2 Ana




1 Rosa

Diferencia: Si 2 tablas tienen el mismo nmero de columnas con dominios compatibles, la diferencia es otra tabla con las
filas de la primera tabla que no estn en la segunda.
EMPLEADOS - CLIENTES: El resultado es otra tabla con los empleados que no son clientes.

EMPLEADOS - CLIENTES
Id Nombre
APUNTES DEL MDULO PROFESIONAL: SISTEMAS GESTORES DE BASES DE DATOS (4) Pgina 11 de 12

1 Luis


Producto cartesiano: Se puede realizar entre 2 tablas con distinto nmero de columnas, y el resultado es otra tabla que
contendr la suma de las columnas de ambas tablas y el conjunto formado por todas las filas de ambas tablas, por
tanto, no pueden existir columnas con el mismo nombre. Las primeras filas de la tabla resultante correspondern a la
primera fila de la primera tabla con todas las de la segunda tabla (habr una por cada fila de la segunda tabla), despus la
segunda fila de la primera tabla de nuevo con todas las de la segunda tabla, y as hasta llegar a las filas correspondientes
a la ltima fila de la primera tabla con todas las de la segunda tabla.
EMPLEADOS TELFONOS: El resultado es otra tabla con las columnas de ambas tablas y todas sus filas,
siempre que no tengan columnas con el mismo nombre.

Relacin EMPLEADOS Relacin TELFONOS
EMPLEADOS X TELFONOS
IdEmple Nombre IdEm Telfono IdEmple Nombre IdEm Telfono
1 Luis 1 951234567 1 Luis 1 951234567
2 Ana 2 609123123 1 Luis 2 609123123
2 Ana 1 951234567



2 Ana 2 609123123

Interseccin: Es una operacin derivada de la diferencia, por tanto deben tener ambas tablas igual nmero de columnas y
dominios compatibles. El resultado es otra tabla con las filas de la primera tabla que aparecen en la segunda.
EMPLEADOS CLIENTES: El resultado es otra tabla con los empleados que son clientes.

EMPLEADOS CLIENTES
Id Nombre
2 Ana
EMPLEADOS CLIENTES = EMPLEADOS (EMPLEADOS CLIENTES)

Cociente: Si tenemos 2 tablas donde la primera tabla tiene ms columnas que la segunda, ambas tienen en comn
algunas columnas, y la segunda tiene al menos una fila, el cociente es otra tabla con los atributos de la primera tabla que
no tiene la segunda y las filas sern las de la primera tabla que contienen todos los valores de los de la segunda.

IMPRESORAS : TIPOS: El resultado es otra tabla con las impresoras que se comercializan en todos esos tipos.

Relacin IMPRESORAS Relacin TIPOS
IMPRESORAS : TIPOS
Marca Tipo Tipo Marca
Epson Inyeccin Inyeccin HP
HP Inyeccin Lser
Canon Lser
Lexmark Lser
Epson Sublimacin
HP Lser




IMPRESORAS : TIPOS = Marca(IMPRESORAS) - Marca( (TIPOS x Marca (IMPRESORAS) ) IMPRESORAS)

Combinacin o join: El resultado es otra tabla que contiene el producto cartesiano de las 2 tablas, pero nicamente
con las filas que cumplen una determinada condicin.
APUNTES DEL MDULO PROFESIONAL: SISTEMAS GESTORES DE BASES DE DATOS (4) Pgina 12 de 12


(EMPLEADOS * TELFONOS) IdEmple=IdEm: El resultado es otra tabla con el producto cartesiano de todos los
empleados con todos los telfonos menos las filas en las que los campos IdEmple e IdEm no sean iguales, por tanto,
muestra los telfonos de cada empleado.

(EMPLEADOS * TELFONOS) IdEmple=IdEm
IdEmple Nombre IdEm Telfono
1 Luis 1 951234567
2 Ana 2 609123123

(EMPLEADOS * TELFONOS) IdEmple=IdEm = IdEmple=IdEm (EMPLEADOS X TELFONOS)



Ejemplo:

1. Telfono,Nombre ( Actividad=Carpintera
( Actividad,Telfono,Nombre(CLIENTES) U Actividad,Telfono,Nombre(PROVEEDORES)))
Mostrara los telfonos y nombres de las Carpinteras con las que trabajamos, tanto clientes como proveedores.

CUIDADO: Una respuesta no vlida sera:

Telfono,Nombre ( Actividad=Carpintera (CLIENTES) U Actividad=Carpintera (PROVEEDORES))

No es correcta porque supone que la tabla CLIENTES tiene las mismas columnas (nmero y dominios)
que la tabla PROVEEDORES (condicin necesaria para realizar una unin entre ellas), y casi seguro que no ser
as. Como norma general lo mejor es primero seleccionar las columnas que nos interesan para asegurar la
igualdad entre columnas y despus operar con ellas.

No obstante, en el caso de que supisemos previamente que tienen las mismas columnas s que valdra.


2. Cmo mostraras los ALUMNOS aprobados y sus NOTAS si estn en distintas tablas relacionadas a travs de la
clave principal IdAlumno en ALUMNOS y la clave fornea IdAlum en NOTAS? Nos interesan el campo Nombre de
ALUMNOS y el campo Nota de NOTAS.

Nombre,Nota ( (ALUMNOS * NOTAS) IdAlumno=IdAlum ^ Nota5)

Es decir, mostrar nicamente las columnas Nombre y Nota de la combinacin de las tablas ALUMNOS y
NOTAS donde IdAlumno=IdAlum y Nota5.

También podría gustarte