el modelo relacional - campusvirtual.univalle.edu.co · ... bases de datos i 3/48 el modelo...
Post on 20-Sep-2018
251 Views
Preview:
TRANSCRIPT
16/08/2014
1
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 1/48
El Modelo Relacional
1970: Edgar F. Codd “A Relational Model of Data For large Shared Data Bank”
El Modelo Relacional basa en relaciones lógicas entre datos
Lenguajes: Álgebra Relacional y Cálculo Relac. que son la base de los lenguajes de SMBD.
El Modelo Relacional cuenta con una sólida base teórica
En el enfoque relacional los datos se organizan en tablas –llamadas relaciones
Una relación es una tabla de dos dimensiones, tiene un número fijo de columnas o atributos (esquema o intensión) y un número variable de filas o tuplas (extensión).
PARA MÁS INFORMACIÓN... [Fer97] Fernández, Mauricio, El Modelaje de lasBases de Datos. Universidad del Valle. 1997.
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 2/48
El Modelo Relacional
1970: Edgar F. Codd “A Relational Model of Data For large Shared Data Bank”
16/08/2014
2
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 3/48
El Modelo Relacional
1412Jefe Servicios464000P. Marín3231
3231Mensajero262000J Barros3001
1520Electricista615500C. Cortés1311
1412Electricista711750H. Rivas1520
3231Plomero300000R. García2920
Gerente2137500C. Nuñez1412
1412Ing. Sistemas1025000M. Franco1235
idenSupervcargopagoBasiconombreidentidad
Empleado
37350000Ing. Sistemas
38150000Mensajero
35159000Electricista
40240000Jefe de servicios
35150000Plomero
horasSemanabonificcargo
Cargo
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 4/48
El Modelo RelacionalAsignación
1208/04/20034353001
811/05/20035151311
1515/10/20034351520
1808/12/20034603231
2217/10/20035152920
1010/01/20033121412
510/10/20033121235
duracionFechaInicioproyectoNroIdentidad
Construccion
112.000.000.000CarreteraBuga-Neiva460
5419.500.000ParqueaderoNororiente515
24.598.000.000ResidencialSur435
632.000.000OficinasCentro312
estratocostotipoubicaciónproyectoNro
16/08/2014
3
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 5/48
El Modelo Relacional
Asignacion Construccion
Diagrama Entidad Relación
Empleado CargolaboraEn
tiene
maneja
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 6/48
NOTACION RELACIONAL: El nombre de la relación, seguido de los nombres de los
atributos.
LLAVE: Conjunto mínimo de atributos que determina funcionalmente cada uno de los otros atributos en la tupla.
Las llaves pueden ser simples o compuestas.
LLAVE CANDIDATA:
Notación Relacional:Empleado (identidad, nombre, pagoBasico, cargo, identSuperv)
Asignacion (identidad, proyectoNro, fechaInicio, tiempoDuración)
Construccion (proyectoNro, ubicación, tipo, costo, estrato)
Cargo (cargo, bonificación, horasSemana)
LLAVE FORANEA:
El Modelo Relacional
16/08/2014
4
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 7/48
La llave foránea no necesita tener los mismos nombres que tiene la llave primaria a la cual corresponde.
La información de la llave foránea es importante en la definición
del esquema relacional:
Empleado (identidad, nombre, pagoBasico, cargo, identSuperv)
Llave foránea: cargo REFERENCIA cargo en tabla Cargo
Asignacion (identidad, proyectoNro, fechaInicio, tiempoDuración)
Llave foránea: identidad REFERENCIA identidad en tabla Empleado
Llave foránea: identidad REFERENCIA identidad en tabla Construccion
Construccion (proyectoNro, ubicación, tipo, costo, estrato)
Cargo (cargo, bonificación, horasSemana)
Esquema de la Base de datos Relacional: listado que muestra
los nombres de las relaciones, los nombres de los atributos y las
llaves foráneas
El Modelo Relacional
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 8/48
Transformación de Entidades Y Atributos
Sea la entidad tipo Persona, con los atributosdocIdentidad, nombre, y fechNacto
Persona es un objeto abstracto (entidad tipo) perodocIdentidad, nombre, y fechNacto son atributosléxicos. Por lo que tales atributos serán campos en larelación.
La transformación en forma relacional será:
Persona (docIdentidad, nombre, fechNacto )
Se asume que el atributo docIdentidad identifica deforma única la persona, por ello es la llave.
Transformación de un modelo E-R a un Modelo Relacional
16/08/2014
5
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 9/48
Transformación de una
Relación
La relación tieneCuenta es 1:1.Supongamos los atributos NroCliente (paraCliente) y NroCta (para Cuenta). Paramostrar la conexión entre las dosrelaciones, podemos adicionar el atributosNroCliente a Cuenta. Entonces tendremoslas relaciones:
Cliente(NroCliente,...)
Cuenta(NroCta, NroCliente,...)
Llave Foránea: NroCliente REFERENCIANroCliente en tabla Cliente.
Transformación de un Modelo E-R a un Modelo Relacional
tieneCuenta
Cliente
Cuenta
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 10/48
Transformación de una Relación
La relación tieneCuenta es 1:N.Supongamos los atributos NroCliente (paraCliente) y NroCta (para Cuenta). Para mostrarla conexión entre las dos relaciones,podemos adicionar el atributos NroCliente aCuenta. Entonces tendremos las relaciones:
Cliente(NroCliente,...)
Cuenta(NroCta, NroCliente,...)
Llave Foránea: NroCliente REFERENCIANroCliente en Cliente.
Transformación de un Modelo E-R a un Modelo Relacional
tieneCuenta
Cliente
Cuenta
16/08/2014
6
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 11/48
En este caso la relación Cursa es N:M.
Se asume que un estudiante puede cursaruna o varias materias y que una materiapuede ser cursada o no por variosestudiantes:
Materia (codMateria, ... )
Estudiante (codEstud, ... )
Cursa (codEstud, codMateria, ...)
Llaves foráneas:
codEstud REFERENCIA codEstud en tablaEstudiante
codMateria REFERENCIA codMateria entabla Materia
Transformación de un Modelo E-R a un Modelo Relacional
Materia
Estudiante
cursa
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 12/48
Transformación de Especializaciones
La entidad tipo PERSONA es fácilmente
transformada:
Persona (docIdentidad, nombre, fechNacto )
PersonaCasada es un subconjunto de
Persona y hereda todos sus atributos, y tiene
sus atributos propios. Por tanto se deriva la
siguiente relación:
PersonaCasada (docIdentidad, direccion,
conyuge)
Llave foránea: docIdentid referencia
docIdentid en tabla Persona
Transformación de un Modelo E-R a un Modelo Relacional
Persona
PersonaCasada
nombre
fechNactodocIdentidad
Conyugedirección
16/08/2014
7
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 13/48
El número de atributos en la relación: grado de la relación. Ejemplo: relación Empleado tiene grado....?
Usuario no tiene que recordar el orden de los atributos en la relación.
Dos atributos no pueden tener el mismo nombre.
Las filas en la relación se llaman tuplas.
No hay un orden predefinido para las tuplas.
No hay dos tuplas con valores idénticos.
DOMINIO: Conjunto de todos los posibles valores que puede tener un atributo.
Valor nulo: valor inaplicable o desconocido. Diferente de blanco o cero.
El Modelo Relacional
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 14/48
El Modelo Relacional
Ejemplo:
A1 A2 Ai An
a11 a12 a1i a1n
am1 am2 ami amn
R:Tupla
Atributo
Cada tabla debe contener un solo tipo de filas
Cada fila debe ser única (sin repeticiones)
Cada columna tiene un nombre único
Un dominio puede ser común a varias columnas
Cada columna toma su valor de un dominio
Las filas y columnas pueden tener cualquier orden
16/08/2014
8
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 15/48
Noción de Relación desde
la Teoría de Conjuntos
Concepto matemático del modelo relacional: la relación.
Relación: subconjunto del producto cartesiano de una lista de dominios.
Dominio es simplemente un conjunto de valores. Ej: los enteros, el conjunto 0,1, el conjunto a, b, c, etc..
D1XD2XD3... XDk, es el conjunto de las k - tuplas (v1, v2, v3,... vk)tal que v1, está en D1, v2 está en D2, etc.
Ejemplo si k = 2, D1 = 0,1 y D2 = a,b,c, entonces
D1 x D2= (o, a), (o, b), (o, c), (1, a), (1, b), (1, c).Sea la relación r: A1, A1, ... X A1
a11 a12 ... a1n
a21 a22 ... a2n
am1 am2 ... amn
n : grado de la relación y m : cardinalidad.
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 16/48
r Dom (A1) x Dom (A2) x ... x Dom (An)Por ejemplo: (o, a), (o, c), (1, b) es una relación, subconjunto deD1 x D2 ya mencionado.
En la definición de todo modelo de datos que distinguir: la parteestructural, la parte manipulativa y la parte semántica (conjuntode restricciones o reglas de integridad).
Las relaciones tienen conjuntos de uno o más atributos que sirvencomo llave. Una definición informal de llave es: un conjunto deatributos que “distinguen” los miembros de una entidad.
De una manera más formal podemos decir que un conjunto deatributos S de una relación R es una llave si:i. Ninguna instancia de R que represente un posible estado del
mundo, puede tener dos tuplas que igualen todos los atributosde S, a menos que sea la misma tupla; y
ii. No hay un subconjunto propio de S que tenga la propiedad i.
Noción de Relación desde
la Teoría de Conjuntos
16/08/2014
9
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 17/48
RESTRICCIONES DE INTEGRIDAD
Integridad de Entidad: “Ningún valor de la clave
primaria puede ser nulo o tener algún
componente nulo”.
Integridad de Referencial : “Toda llave foránea
debe ser o nulo o su valor debe existir como
llave primaria en alguna relación”
Dependencias Funcionales: “Atributo que
determina funcionalmente a otro”.
Operadores en el Modelo Relacional
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 18/48
Edgar F. Codd (1970-1971) publicó varios artículos dondeintroduce el modelo relacional y el lenguaje demanipulación de datos: El Algebra Relacional y elCalculo Relacional.
El Álgebra Relacional: lenguaje procedimental para lamanipulación de las relaciones; el Cálculo Relacional esun lenguaje no procedimental para definir las soluciones aconsultas.
Codd demostró que el Álgebra Relacional y el CálculoRelacional eran lógicamente equivalentes.
El Cálculo Relacional es importante por estar basado enel calculo de predicados de lógica formal.
Operaciones en el Modelo Relacional
16/08/2014
10
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 19/48
Operaciones en el Modelo Relacional
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 20/48
Operaciones en el Modelo Relacional
Cliente
Vendedor
identCli nombreCli direccion pais saldoInic saldoCte
100 Wetabe Bros Box 241, Tokio Japón $ 4.555.100 $ 45.211.300
101 Maltzl Saltzburg Austria $ 7.531.400 $ 7.720.000
105 Jefferson B 918, Chicago USA $ 4.933.300 $ 5.781.100
110 Gómez Río de Janeiro Brasil $ 27.400.000 $ 3.541.400
idenVen nombreVen idGerente oficina comision10 Roberto Jaimes 27 Chicago 10
14 Masaji Matsu 44 Tokio 11
23 Francis Mora 35 Bruselas 9
37 Elena Hernández 12 Bogotá 13
39 Goro Saiko 44 Tokio 10
27 Teresa Cardona Chicago 15
44 Alberto Gil 27 Tokio 12
35 Brígida Borrero 27 Bruselas 11
12 Gilma Sánchez 27 Bogotá 10
16/08/2014
11
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 21/48
Operaciones en el Modelo Relacional
Producto
Venta Fabricante
codigoPro descripciónPro idFabricante costo precioVenta1035 Blusa 210 $ 11.250 $ 22.000
2241 Lámpara 317 $ 22.250 $ 33.520
2249 Florero 317 $ 13.550 $ 24.800
2518 Porcelana 253 $ 13.600 $ 21.200
fecha identCli identVen codigoPro cantidad
28/02 100 10 2241 200
12/02 101 23 2518 300
15/02 101 23 1035 150
19/02 100 39 2518 200
02/03 101 23 1035 200
05/03 105 10 2241 100
25/03 110 37 2518 150
14/04 105 10 2249 50
01/05 101 23 2249 75
04/06 101 23 2241 250
idFab nombreFab direccion país
210 Kiwi Clothes Auckland Nueva Zelanda
253 Tienda Bronces Lagos Nigeria
317 Miscelania La Y Lima Perú
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 22/48
UNION (U)
La UNIÓN (U) permite combinardatos a partir de dos relaciones:
R U S = t t R v t S
Operaciones en el Modelo Relacional
R S
EmpleadoidenVen nombreVen IdGerente Oficina Comisión
10 Roberto Jaimes 27 Chicago 10
14 Masaji Matsu 44 Tokio 11
23 Francis Mora 35 Bruselas 9
37 Elena Hernandez 12 Bogotá 13
39 Goro Saiko 44 Tokio 10
44 Alberto Gil 27 Tokio 12
35 Brigida Borrero 27 Bruselas 11
12 Gilma Sánchez 27 Bogotá 10
AdministradoridenVen nombreVen IdGerente Oficina Comisión
27 Teresa Cardona Chicago 15
44 Alberto Gil 27 Tokio 12
35 Brigida Borrero 27 Bruselas 11
12 Gilma Sánchez 27 Bogotá 10
Vendedor := Empleado UAdministrador
16/08/2014
12
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 23/48
LA INTERSECCION ( ∩ )
R ∩ S = t t R t S
La operación intersección ( ∩ )
permite identificar las filas que son comunes a las dos relaciones.
R S
Operaciones en el Modelo Relacional
R ∩ S
Suponga que queremos identificar los vendedores que son administradores
EmpleAdmin := Empleado ∩ AdministradorEmpleAdminidenVen nombreVen IdGerente Oficina Comisión
44 Alberto Gil 27 Tokio 12
35 Brigida Borrero 27 Bruselas 11
12 Gilma Sánchez 27 Bogotá 10
Las dos relaciones deben ser compatibles!
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 24/48
LA DIFERENCIA ( - )
R - S = t t R t S
La operación diferencia ( - ) permite identificar filas que estan en una relación y no en la otra relación.
R S
Operaciones en el Modelo Relacional
R - S
Suponga que queremos identificar los administradores que no son empleados
SinJefe := Administrador - Empleado
SinJefeidenVen nombreVen IdGerente Oficina Comisión
27 Teresa Cardona Chicago 15
No es lo mismo R – S que S – R: el orden el importanteEn la diferencia, ambas relaciones deben ser compatibles!
16/08/2014
13
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 25/48
EL PRODUCTO CARTESIANO ( * )
R * S = (t, u) t R u S
La operación Producto Cartesiano ( * ) es idéntica la existente en la teoría de conjuntos. Ej: Sean A y B:A x y B w z
10 22 33 54
11 25 37 98
42 100
Operaciones en el Modelo Relacional
C := A * B (Producto Cartesiano de A y B)C x y w z
10 22 33 54
10 22 37 98
10 22 42 100
11 25 33 54
11 25 37 98
11 25 42 100
Concatenar o adjuntar los atributos de las dos relaciones
Atar en cada fila de A, cada una de las finas de B!
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 26/48
LA SELECCIÓN ( σ )
S = σC ( R ) =t t R Cdonde C es una condición
La operación selección se usa para crear una relación desde otra relación, escogiendo solo aquellas filas de la relación original que satisfacen una condición específica.
Ej: Conocer los vendedores con oficina en Tokio.
VendTokyo := σoficina = “Tokio” ( Vendedor)
Operaciones en el Modelo Relacional
VendTokyoidenVen nombreVen IdGerente Oficina Comisión
14 Masaji Matsu 44 Tokio 11
39 Goro Saiko 44 Tokio 10
44 Alberto Gil 27 Tokio 12
Solo se escogen las filas que satisfacen la condición
El nombre del atributo usado debe existir en la relación
Operadores de relación: >, >=, <, <=, =, OR, NOT, AND
16/08/2014
14
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 27/48
LA PROYECCIÓN ( )
R = a1, a2, …, ak ( S ) donde ai es un atributo de S
La operación proyección permite eliminar las columnas no deseadas de una relación.
Ej: Identificar los nombres de los vendedores con oficina en Tokio.NomVenTokyo := nombreVen (VendTokyo )
Operaciones en el Modelo Relacional
NomVenTokyonombreVen
Masaji MatsuGoro SaikoAlberto Gil
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 28/48
Ejercicio:Sean las relaciones R y S siguientes:
R A B C S D E Fa b c b g fd a f d a fc b d
Hallar :(a) R S (b) R - S
(c) R X S (d) A, C (R)
(e) E (S) (f) σB = b (R)
(g)σE = a ⋁ D = b (S) (h) R S
(i) R – (R – S) (j) σR.B = b ⋀ S.D = d (R X S)
Operaciones en el Modelo Relacional
16/08/2014
15
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 29/48
Operaciones en el Modelo Relacional
EL JOIN
La operación Join se usa para conectar datos entre relaciones.
Hay varias versiones: a) Join Natural, b) Join Theta c) Reuniones
Join Natural ()El Join Natural (R ⊳⊲ S) es aplicable solo cuando las relaciones Ry S tienen atributos con igual nombre. Para calcular R ⊳⊲ S sedebe:
a) Calcular R X S (el producto cartesiano)
b) Para cada atributo a con columna en R y S, seleccione de RXSlas tuplas cuyos valores coincidan en las columnas R.a y S.a.
c) Para cada atributo a elimine la columna S.a y llame la columnarestante (R. a), simplemente a.
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 30/48
Operaciones en el Modelo Relacional
Ejemplo: Sean las relaciones R y S:
R A B C S B C Da b c b c dd b c b c eb b f a d bb a d
Hallar R ⊳⊲ S
Supongamos que se desea conocer los nombres de los clientes
que han sido atendidos por el vendedor con código 10.
Venta10 := identVen = 10 (Venta)
ClienteVen10 := nombre (Venta10 ⊳⊲ Cliente)
La operación Join Natural combina horizontalmente dostablas, sobre valores comunes en un campo específico decada relación. Los dos campos sobre los cuales opera lacomparación deben tener un dominio común.
16/08/2014
16
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 31/48
Operaciones en el Modelo Relacional
Join Theta ( )La operación Join- de R y S sobre las columnas i y j, denotado
donde es un operador de comparación matemático (, ,
>, etc.), es la forma simplificada para la operación: $i $ (r+j) (R x S)
Donde r es la ariedad de la Relación R.
La operación Join- de R y S, produce aquellas tuplas del productocartesiano de R y S, tal que el i-simo componente de R esta enrelación al j-simo componente de S. Si es el operador “=”,la operación se llama equijoin.
Ejemplo : Sean R y S las relaciones siguientes:R A B C S D E A B C D E
1 2 3 3 1 1 2 3 3 1
4 5 6 6 2 1 2 3 6 2
7 8 9 4 5 6 6 2
Identifique los vendedores cuyo gerente tienen una comisión superior al 11%.
ji
SRDC
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 32/48
Operaciones en el Modelo Relacional
DIVISION ( )
La división es la operación del álgebra Relacional quecrea una nueva relación, seleccionando las filas de unarelación que se corresponden con TODAS las filas de laotra relación.
Sean R y S, relaciones con grados r y s respectivamente,donde r > s y S ≠ Φ.
Entonces el cociente R S, es el conjunto de las tuplas t(de grado r – s) tales que para toda tupla u de S, la tupla(t, u) está en R.
16/08/2014
17
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 33/48
Operaciones en el Modelo Relacional
DIVISION ( )
La división puede expresarse en términos de las cincooperaciones básicas del álgebra relacional (unión,diferencia, producto cartesiano, proyección y selección), así:
Donde es el conjunto de (r-s)-tuplasa1,..., ar-s tal que son los primeros (r-s) componentes(atributos) de alguna tupla en R, y para alguna s-tupla ar-s+1,..., ar , en S, a1, ..., ar, no están en R.
)))((()( ,...,2,1,...,2,1,...,2,1 RSRRSR srsrsr
)))((( ,...,2,1 RSRsr
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 34/48
Operaciones en el Modelo RelacionalEjemplo: Hallar R S dadas las relaciones R y S
R A B C D S C D R S A Ba b c d c d a ba b e f e f e db c e fe d c de d e fa b d e
La tupla ab está en R S debido a que abcd y abef estánen R y la tupla ed esta en RS debido a que edcd y edefestán en R. La tupla bc, que solo aparece en la primeracolumnas de R, no está en RS debido a que bccd no estáen R (bcef si está).
Ejemplo: Suponga que se desea conocer la lista de los vendedores quienes han vendido de todos los productos.
16/08/2014
18
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 35/48
Operaciones en el Modelo Relacional
Si queremos conocer los vendedores que vendieroncada uno de los productos, debemos primero obteneruna relación de cada uno de los productos existentes:
CodiProd := codigoPro (Producto)
Luego debemos obtener todas las instancias donde unvendedor y un producto se relacionen en una venta:
VenProd := codigoPro, identVen (Venta)
Ahora, debemos determinar cuales personas de larelación VenPro están asociadas con cada uno de losproductos de la relación CodiProd. Esto se realizautilizando la operación división:
A:= VenPro CodiProd
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 36/48
Operaciones en el Modelo Relacional
Sean A, B y C relaciones, dividir B por C, dejando elresultado en A:
•Las columnas de C deben ser un subconjunto de las columnasde B.
•Las columnas de A son solo aquellas columnas de B que noson columnas de C.
•Una fila es colocada en A si y solo sí ella está asociada en Bcon cada una de las filas de C.
La operación división es la inversa del producto.
(B * C) / C = B
En la práctica, la división puede resolver consultas queinvolucren las palabras “cada uno” o “todos” como parte de lacondición.
16/08/2014
19
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 37/48
Operaciones en el Modelo Relacional
OTRAS OPERACIONES RELACIONALES
Existen consultas que se realizan a las bases de datos y nose pueden atender con las operaciones estándar delálgebra relacional.
Estas operaciones amplían el poder expresivo ymanipulativo del álgebra relacional y se conocen comofunciones agregadas: SUMA, PROMEDIO, MÁXIMO, MÍNIMO yCUENTA.
Operación de “función” F . Sintaxis:
<atributo de agregación> F <lista de funciones> (Tabla Base) : donde
<lista de funciones> = (<función> <atributo>)
Resul := nroProd F CUENTA vlrVenta, PROMEDIO vlrVenta (Ventas)
Resul nroProd CUENTA_vlrVenta PROMEDIO_vlrVenta
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 38/48
Operaciones en el Modelo Relacional
RENOMBRAMIENTO
El renombramiento es una operación unaria. Sintaxis:E = expresión algebráicaX = Nombre del resultado
donde: (a1, a2,..., an) nombres de nuevos atributos
Ejemplo:
(E)ρX
(E)ρ )X( ana2,...,a1,
))((σρ sEstudiante3743=planEstmasEstudSiste
)))((σ(πρ )( sEstudiante3743=planEstplanEstnombre,codigo,dat3dat2,dat1,masEstudSiste
16/08/2014
20
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 39/48
Operaciones en el Modelo Relacional
REUNION EXTERNA
Sean las relaciones Empleado y Trabajo:Empleado nombre dirección ciudad Trabajo nombre sucursal salario
Silva d1 c1 Silva s1 p1Díaz d2 c2 Díaz s2 p2Gil d3 c3 Barco s3 p3Vega d4 c4 Vega s2 p4
Empleado ⊳⊲Trabajo nombre dirección ciudad sucursal salarioSilva d1 c1 s1 p1Díaz d2 c2 s2 p2Vega d4 c4 s2 p4
Reunión Externa por la Izquierda
Reunión Externa por la Derecha
Reunión externa Completa
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 40/48
Operaciones en el Modelo Relacional
REUNION EXTERNA
Primero se ejecuta un join natural. Si un registro en una relación
no se corresponde con un registro de la otra relación en el join
natural, ese registro se añade a la relación que ha sido reunida y
las columnas adicionales se llenan con valores nulos.
Presente los empleados que no tienen un trabajo:
Empleado = ⊳⊲ Trabajo ? Empleado ⊳⊲ = Trabajo ?
Trabajo = ⊳⊲ Empleado ? Trabajo ⊳⊲ = Empleado ?
Tipos de Reunión Externa
Reunión Externa por la Izquierda
Reunión Externa por la Derecha
Reunión externa Completa
16/08/2014
21
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 41/48
Operaciones en el Modelo Relacional
Empleado = ⊳⊲ Trabajo nombre dirección ciudad sucursal salarioSilva d1 c1 s1 p1Díaz d2 c2 s2 p2Gil d3 c3 null null Vega d4 c4 s2 p4
Empleado ⊳⊲= Trabajo nombre dirección ciudad sucursal salarioSilva d1 c1 s1 p1Díaz d2 c2 s2 p2Barco null null s3 p3Vega d4 c4 s2 p4
Empleado = ⊳⊲= Trabajo nombre dirección ciudad sucursal salarioSilva d1 c1 s1 p1Díaz d2 c2 s2 p2Gil d3 c3 null null Barco null null s3 p3Vega d4 c4 s2 p4
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 42/48
Operaciones en el Modelo Relacional
REUNION EXTERNA
Ejemplo: Sean las relaciones Prestamo y Cliente:Prestamo noPrestamo idSucursal Valor
L-201 Plaza Centro 3.000.000 L-440 Versalles 4.000.000L-370 Limonar 5.400.000
Cliente nombreCli nroPrestamoJuanes L-201Pérez L-440López L-555
Join NaturalPrestamo⊳⊲Cliente noPrestamo idSucursal Valor nombreCli
L-201 Plaza Centro 3.000.000 JuanesL-440 Versalles 4.000.000 Pérez
16/08/2014
22
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 43/48
Operaciones en el Modelo Relacional
REUNION EXTERNA
Reunión Externa por la IzquierdaPrestamo=⊳⊲Cliente noPrestamo idSucursal Valor nombreCli
L-201 Plaza Centro 3.000.000 JuanesL-440 Versalles 4.000.000 Pérez L-370 Limonar 5.400.000 null
Reunión Externa por la DerechaPrestamo⊳⊲=Cliente noPrestamo idSucursal Valor nombreCli
L-201 Plaza Centro 3.000.000 JuanesL-440 Versalles 4.000.000 Pérez
L-555 null null López
Reunión externa CompletaPrestamo⊳⊲Cliente noPrestamo idSucursal Valor nombreCli
L-201 Plaza Centro 3.000.000 JuanesL-440 Versalles 4.000.000 Pérez L-370 Limonar 5.400.000 nullL-555 null null López
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 44/48
Operaciones en el Modelo Relacional
Ejercicios:Proveedor ArtículocodigoPro nombProv ciudadProv codiArt nomArt colorArt precioArt
02 Salazar Ibagué c7 Lana negro 501 Jaramillo Cali c3 Nylon rojo 1003 Bernal Ibagué c5 Pana rojo 1804 Caicedo Bogotá c6 Nylon azul 1102 Aldana Medellín c1 Seda verde 20
PedidocodigoPro codiArt cantidad codigoPro codiArt cantidad
01 c5 15 01 c1 1105 c5 12 01 c6 1702 c7 6 04 c1 1903 c1 10 03 c5 1203 c6 10
Realizar las siguientes consultas:
16/08/2014
23
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 45/48
Operaciones en el Modelo RelacionalProveedor (codigoPro, nombProv, ciudadProv )
Artículo (codiArt, nomArt, colorArt, precioArt)
Pedido (codigoPro, codiArt, cantidad)
CONSULTAS1. Obtener los nombres de todos los proveedores
2. Obtener los nombres de los proveedores con sede en Cali
3. Obtener los códigos de los artículos de color azul
4. Obtener los nombres de los proveedores que suministran el artículo c6
5. Obtener los nombres de los proveedores que suministran el artículos de precio mayor que 10
6. Obtener las ciudades de los proveedores que suministran artículos de precio mayos que20
7. Obtener los nombres de los proveedores distintos del “03”, que suministran, al menos, un artículo de los suministrados por “03”
8. Obtener los nombres de los proveedores, que NO suministran, los artículossuministrados por “Bernal”
9. Obtener los nombres de los proveedores, que suministran todos los artículossuministrados por “03”
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 46/48
Operaciones en el Modelo Relacional
Ejercicios:Proveedor (nroProv, nomProv, dirProv)Inventario (nroInv, nombInv, costoInv, existInv)Orden (nroOrden, nroInv, nroProv, canOrd, fechaOrd)Listar los nombres de los proveedores a quienes se les ordenaron sillas
Abastecimiento (proveedor, pieza, cantidad)Proveedor (proveedor, nombre)Se quiere saber los nombres de los preveedores que abastecen la pieza “z”
Estudiante (nombre, codEst, direcEst, planEst, sexoEst)PlanEstudio (codPlan, decribPlan, director, ubicación)Consulta (codEst, fecha, hora, motivo)Se quiere conocer los nombres de los estudiantes que asistieron a consulta, del sexo “femenino” que estudien “Arquitectura”
16/08/2014
24
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 47/48
Operaciones en el Modelo Relacional
i. Una lista de embarques con peso mayor de 30 Kg.ii. Los nombre de los clientes con ingresos anuales superiores a $ 8’000.000.iii. Nombre del conductor del camión No. 54.iv. Nombres de ciudades que han recibido embarques con peso mayor a 100 Kg.v. Nombre e ingreso anual de clientes que han realizado envíos con peso mayor
a 80 Kg.vi. Nombres de conductores que han transportado embarques con peso mayor a
100 Kg.vii. Ciudades que han recibido embarques de clientes con ingreso anual
mayor a $ 12’000.000.viii.Clientes con ingresos anuales superiores a $5’000.000, quienes han enviado
embarques con un peso menor a 1 Kg.
CLIENTE (idCliente, nomCliente, ingreAñoClie)
EMBARQUE (nroEmbar, idCliente, pesoEmb, nroCamion, codDestino)
CAMION (nroCamion, nombreConductor, placa, marca, modelo)
CIUDAD (codCiudad, nombreCiu, poblacion)
CONSULTAS
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 48/48
Operaciones en el Modelo Relacional
i. Clientes cuyos embarques han sido transportados por el conductor Roberto Pérez.
ii. Conductores que han entregado embarques a clientes con ingresos anualesmayores a $16’000.000 a ciudades con población mayor a 1 millón de habitantes.
iii. Ciudades que han recibido embarques de cada uno de los clientes.
iv. Conductores que han hecho entregas de embarques en todas las ciudades.
v. Entregar el nombre del cliente que ha recibido el embarque de mayor peso.
vi. Entregar el nombre del cliente que ha recibido el mayor número embarques.
vii. Especificar el nombre del conductor que ha transportado el mayor pesoacumulando todos los embarques.
viii. Cual es la ciudad que recibe, en promedio, el mayor peso en embarques.
ix. Escriba un programa Java para resolver las consultas 1, 5 y 11.
CLIENTE (idCliente, nomCliente, ingreAñoClie)
EMBARQUE (nroEmbar, idCliente, pesoEmb, nroCamion, codDestino)
CAMION (nroCamion, nombreConductor, placa, marca, modelo)
CIUDAD (codCiudad, nombreCiu, poblacion)
CONSULTAS
16/08/2014
25
24/02/2013 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 49/48
Operaciones en el Modelo RelacionalConsidere las relaciones:Pedido (codProducto, idProveedor, cantidad)Producto (codProducto, descripcion, color)Proveedor (idProveedor , nombre, dirección)
Escribir expresiones en Algebra Relacional que satisfagan los siguientes consultas:
a) Listar la identidad de aquellos proveedores que suministran el producto 34.b) Listar el número y el nombre de los proveedores que suministran los productos 34 o 12.c) Listar el código de los productos que son tuercas o son suministrados por el proveedor 328.d) Listar el código de los productos que son tuercas y son suministrados por el proveedor 328.e) Listar los nombres de los proveedores que suministran al menos un producto que no sea el
producto 33.f) Listar los nombres de los proveedores que no suministran el producto 33.g) Listar los nombres de los proveedores que suministran al menos un producto y que no
suministran el producto 33.h) Listar la identidad y el nombre de los proveedores que suministran más de 100 tuercas en
algún pedido.i) Listar los números de aquellos proveedores que suministran todos los productos.j) Listar los nombres de los proveedores que suministran todos los productos menos el 12.k) Listar los nombres de los proveedores que suministran, al menos, todos los productos
suministrados por el proveedor número 128.l) Listar la identidad de los proveedores que suministran todos los productos en igual
cantidad.
top related