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:
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:
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.
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:
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.
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:
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:
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.