El Modelo Relacional - campusvirtual.univalle.edu.co · ... Bases de Datos I 3/48 El Modelo...

25
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 las Bases 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

Transcript of El Modelo Relacional - campusvirtual.univalle.edu.co · ... Bases de Datos I 3/48 El Modelo...

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.