Vous êtes sur la page 1sur 18

1

GESTIN DE DATOS 2012


- Clase 3 -

Modelo Relacional
2

Representa la base de datos como una coleccin de relaciones. Viendo cada relacin como una tabla de valores, cada fila de la tabla representa una coleccin de valores de datos relacionados entre s. En terminologa formal, una fila se denomina tupla, una cabecera de columnas es un atributo y la tabla se denomina relacin. Para cada atributo hay un conjunto de valores permitidos, denominado dominio de ese atributo.

Modelo Relacional: Ejemplo


3

Tabla Cliente
idCliente 19.283.746 1.928.374 nombre Gonzalez Gmez calle Arenal Carretas ciudad La Granja Junn

Tabla Cuenta
nroCuenta C-101 C-215 C-102 C-305 C-201 C-217 saldo 500 700 400 350 900 750

Tabla Prstamo
nroPrstamo importe P-15 P-10 50000 7000

Tabla PoseeCuenta
idCliente 19.283.746 19.283.746 1.928.374 67.789.901 nroCuenta C-101 C-201 C-215 C-102

67.789.901 18.273.609
32.112.312 33.666.999 25.123.456 23.928.374

Lpez Abril
Santos Ruprez Daz Prez

Mayor Preciados
Mayor Ramblas Corrientes Maip

Pergamino Valsain
Pergamino Len La Plata Junn

P-30 P-20

40000 3500

18.273.609
32.112.312 23.928.374

C-305
C-217 C-201

Tabla PoseePrstamo

Cliente= (idCliente, nombre, calle, ciudad) Cuenta= (nroCuenta, saldo) Prstamo= (nroPrstamo, importe) PoseeCuenta= (idCliente, nroCuenta) PoseePrstamo= (idCliente, nroPrstamo)

idCliente 19.283.746 1.928.374 18.273.609 33.666.999 23.928.374

nroPrstamo P-30 P-10 P-20 P-15 P-10

Lenguajes de consultas
4

Un lenguaje de consultas es un lenguaje en el que los usuarios solicitan informacin de la base de datos. Pueden clasificarse en dos grandes grupos:

Procedimentales: El usuario indica al sistema que lleve a cabo una serie de operaciones en la base de datos para calcular el resultado deseado. No procedimentales: El usuario describe la informacin deseada sin dar un procedimiento concreto para obtener esa informacin.

lgebra relacional
5

Consiste en un conjunto de operaciones que toman una o dos tablas como entrada y genera otra tabla nueva como resultado. Los operadores bsicos se dividen en dos grupos:

Unarios: Operan sobre una tabla.


Seleccin Proyeccin Renombre

Binarios: Operan sobre dos tablas.


Producto cartesiano Unin Diferencia

AR: Seleccin
6

El formato genrico es: predicado (tabla) Selecciona tuplas que satisfacen un predicado dado. Ej.: Presentar todos los clientes de la ciudad de Junn. ciudad = Junn (cliente)
idCliente 1.928.374 23.928.374 nombre Gmez Prez calle Carretas Maip ciudad Junn Junn

AR: Seleccin
7

La condicin puede tener conectivos lgicos (And, Or, Not) y operadores de comparacin <>, >, <, >=, <=, =. Ej.: Presentar los clientes de la ciudad de Pergamino con identificador mayor a 33.000.000. ciudad = Pergamino and idCliente > 33000000 (cliente)
idCliente 67.789.901 nombre Lpez calle Mayor ciudad Pergamino

AR: Proyeccin
8

El formato genrico es: lista de atributos (tabla) Devuelve la relacin argumento con columnas omitidas. Si quedan tuplas repetidas, se excluyen. Ej.: Presentar el nombre y ciudad de todos los clientes. nombre, calle (cliente)
nombre ciudad Gonzalez Gmez Lpez Abril La Granja Junn Pergamino Valsain

Santos
Ruprez Daz Prez

Pergamino
Len La Plata Junn

AR: Composicin de operaciones relacionales


9

Ej.: Presentar los nmeros de cuenta con saldo menor a 500. nroCuenta (saldo < 500 (cuenta))
nroCuenta C-102

C-305

El orden de las operaciones es importante. Si el ej. anterior se hubiera presentado como saldo < 500 ( nroCuenta (cuenta)) la proyeccin quitara el atributo saldo, por lo que la seleccin posterior fallara.

AR: Producto cartesiano


10

El formato genrico es: tabla1 X tabla2 Combina la informacin de las dos tablas.

AR: Producto cartesiano


11

Ej.: Presentar todos los atributos de los clientes con sus cuentas. cliente X poseeCuenta
Cliente idCliente 19.283.746 19.283.746 19.283.746 19.283.746 19.283.746 19.283.746 19.283.746 1.928.374 1.928.374 nombre Gonzalez Gonzalez Gonzalez Gonzalez Gonzalez Gonzalez Gonzalez Gmez Gmez calle Arenal Arenal Arenal Arenal Arenal Arenal Arenal Carretas Carretas ciudad La Granja La Granja La Granja La Granja La Granja La Granja La Granja Junn Junn PoseeCuenta idCliente 19.283.746 19.283.746 1.928.374 67.789.901 18.273.609 32.112.312 23.928.374 19.283.746 19.283.746 nroCuenta C-101 C-201 C-215 C-102 C-305 C-217 C-201 C-101 C-201

AR: Producto cartesiano


12

Es necesario filtrar aquellas tuplas sin sentido. En nuestro ejemplo, el atributo idCliente de la tabla cliente debe coincidir con el idCliente de la tabla posee. cliente.idCliente = poseeCuenta.idCliente (cliente X poseeCuenta)
Cliente idCliente 19.283.746 19.283.746 1.928.374 67.789.901 18.273.609 32.112.312 23.928.374 nombre Gonzalez Gonzalez Gmez Lpez Abril Santos Prez calle Arenal Arenal Carretas Mayor Preciados Mayor Maip ciudad La Granja La Granja Junn Pergamino Valsain Pergamino Junn PoseeCuenta idCliente 19.283.746 19.283.746 1.928.374 67.789.901 18.273.609 32.112.312 23.928.374 nroCuenta C-101 C-201 C-215 C-201 C-305 C-217 C-201

AR: Renombre
13

El formato genrico es: nombreNuevo (tabla) Permite utilizar la misma tabla dos veces en la misma consulta. Ej.: Presentar el nombre de todos los clientes que viven en la misma ciudad que Lpez.

cli.nombre (cliente.ciudad = cli.ciudad ((nombre = Lpez (cliente)) X cli (cliente)))

AR: Unin
14

El formato genrico es: tabla1 U tabla2 Equivalente a la unin matemtica. Las instancias repetidas se eliminan automticamente. Las dos tablas deben ser de unin compatibles

Igual cantidad de atributos. El i-simo atributo de la 1era. tabla y el i-simo atributo de la 2da. tabla deben tener el mismo dominio (i:1..n).

AR: Unin
15

Ej.: Presentar el identificador de todos los clientes que tienen cuenta, prstamo o ambos. idCliente (PoseeCuenta) U idCliente (PoseePrstamo)
Tabla PoseePrstamo
idCliente 19.283.746 1.928.374 nroPrstamo P-30 P-10 idCliente 19.283.746 1.928.374 67.789.901 18.273.609 32.112.312 23.928.374 33.666.999 nroCuenta C-101 C-201

Tabla PoseeCuenta
idCliente 19.283.746 19.283.746

1.928.374
67.789.901 18.273.609 32.112.312 23.928.374

C-215
C-102 C-305 C-217 C-201

18.273.609
33.666.999 23.928.374

P-20
P-15 P-10

AR: Diferencia
16

El formato genrico es:


tabla1 - tabla2

Permite hallar las tuplas que estn en una relacin pero no en la otra. Las dos tablas deben ser de unin compatibles.

AR: Diferencia
17

Ej.: Presentar el identificador de todos los clientes que tienen cuenta pero no tienen prstamo. idCliente (PoseeCuenta) - idCliente (PoseePrstamo)
Tabla PoseePrstamo
idCliente 19.283.746 1.928.374 nroPrstamo P-30 P-10 idCliente 67.789.901 32.112.312 nroCuenta C-101 C-201

Tabla PoseeCuenta
idCliente 19.283.746 19.283.746

1.928.374
67.789.901 18.273.609 32.112.312 23.928.374

C-215
C-102 C-305 C-217 C-201

18.273.609
33.666.999 23.928.374

P-20
P-15 P-10

lgebra relacional: Ejercitacin


18

A partir de las siguientes tablas, especificar las consultas en lgebra relacional:

Aeropuerto =(codAeropuerto, nombre, ciudad, pas) Vuelo = (codVuelo, lnea, codAeropuertoSale, codAeropuertoLlega) VueloAsignado = (codVuelo, fecha, horaSalida, cantidadAsientos, idAvin) ReservaAsientos = (codVuelo, fecha, horaSalida, numAsiento, idCliente, telCliente)
a)

b)

c)

d)

Confeccionar una lista con los cdigos de vuelo y fechas de todos los vuelos que salen de aeropuerto con cdigo IAH. Obtener un listado con las fechas y ciudades de los vuelos realizados por el cliente de identificacin 1111. Obtener cdigo, fecha, hora y ciudad de salida de los vuelos que no tengan reservas hechas. Obtener un listado de las ciudades de donde parten vuelos con cantidad de asientos superior a 150.

Vous aimerez peut-être aussi