algebra relacional2

11
Universidad Cesar Vallejo Programa de Expertos en Computación y Sistemas (PECS) Modelo Relacional Modelamiento de Datos y Diseño de BD

Upload: karinrojas

Post on 24-Jan-2016

212 views

Category:

Documents


0 download

DESCRIPTION

Permite realizar operaciones

TRANSCRIPT

Page 1: Algebra Relacional2

Universidad Cesar Vallejo

Programa de Expertos en Computación y Sistemas (PECS)

Modelo Relacional

Modelamiento de Datos y Diseño de BD

Page 2: Algebra Relacional2

Universidad Cesar Vallejo

Modelo Relacional

I. CONCEPTO DE ALGEBRA RELACIONAL:

El álgebra relacional es un lenguaje formal con una serie de operadores que trabajan sobre una o varias relaciones para obtener otra relación resultado, sin que cambien las relaciones originales. Tanto los operandos como los resultados son relaciones, por lo que la salida de una operación puede ser la entrada de otra operación. Esto permite anidar expresiones del álgebra, del mismo modo que se pueden anidar las expresiones aritméticas. A esta propiedad se le denomina clausura: las relaciones son cerradas bajo el álgebra, del mismo modo que los números son cerrados bajo las operaciones aritméticas.

II. OPERADORES TRADICIONALES

Como vimos el Algebra relacional es un lenguaje de consulta procedural que consta de un conjunto de operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relación, por lo tanto, es posible anidar y combinar operadores. Hay ocho operadores en el álgebra relacional que construyen relaciones y manipulan datos, estos son:

PRIMITIVASUnión Intersección Diferencia Producto

ESPECIALES Selección Proyección División

UNIONEn álgebra relacional la unión de dos relaciones compatibles A y B

Relaciones Compatibles: En el álgebra relacional la compatibilidad se aplica a las operaciones de Unión, Intersección y Diferencia. Cada operación requiere dos relaciones que deben ser compatibles, esto significa que deben ser del mismo grado, n, y el i-ésimo atributo de cada una (i= 1, 2...n) se debe basar en el mismo dominio.

A UNION B o A U B

Produce el conjunto de todas las tuplas que pertenecen ya sea a A o a B o a Ambas. Al igual que en teoría de conjuntos el símbolo representa aquí la unión de dos relaciones.∪Sintaxis

Modelamiento de Datos y Diseño de BD

(condición1,condición2) (RELACION1) U (condición1,condicon2) (RELACION2)

Page 3: Algebra Relacional2

Universidad Cesar Vallejo

Ejemplo:Veamos el siguiente modelo de la base de datos, esta es una base de datos de ejemplo, puesto que podríamos utilizar una sola relación persona

Los Esquemas de relaciones que se pueden construir a partir de este modelo son los siguientes:

Dueño = {rut, nombre, teléfono, dirección, vigencia}Chofer = {rut, nombre, teléfono, dirección, fecha_licencia_desde, fecha_licencia_hasta, vigencia}Vale = {correlativo, hora_desde, hora_hasta, metraje_total, tarifa_total}Móvil = {patente, rut_dueño, rut_chofer, marca, modelo, año}Viaje = {correlativo_vale, patente_movil, Hora_Desde, hora_hasta, origen, destino, tarifa, metraje}

Ejemplo1: Mostrar rut y vigencia de los Dueños y choferes

  rut,vigencia(DUEÑO) U   rut,vigencia(CHOFER)

INTERSECCIÓN

En álgebra relacional la intersección de dos relaciones compatibles A y B

A INTERSECCION B o A ∩ B

Modelamiento de Datos y Diseño de BD

Page 4: Algebra Relacional2

Universidad Cesar Vallejo

La intersección obtiene como resultado una relación que contiene las tuplas de R que

también se encuentran en S. Para realizar esta operación, R y S deben ser compatibles para

la unión.

Ejemplo2: Devuelve todos los dueños que también son choferes

rut,vigencia(DUEÑO) ∩   rut,vigencia(CHOFER)

DIFERENCIAEn álgebra relacional la diferencia entre dos relaciones compatibles A y B

A MENOS B o A – B

Produce el conjunto de todas las tuplas t que pertenecen a A y no pertenecen a B.

Ejemplo3: Devuelve todos los dueños que NO son choferes

rut,vigencia(DUEÑO) -   rut,vigencia(CHOFER)

PRODUCTOEn álgebra relacional el producto de dos relaciones A y B es:

A Veces B o A X B

El producto cartesiano obtiene una relación cuyas tuplas están formadas por la concatenación de todas las tuplas de A con todas las tuplas de B.

Habrá casos en que sea necesario combinar la información de varias relaciones. El producto cartesiano ``multiplica" dos relaciones, definiendo una nueva relación que tiene todos los pares posibles de tuplas de las dos relaciones. Si la relación A tiene tuplas y atributos

y la relación B tiene tuplas y atributos, la relación resultado tendrá tuplas y

atributos. Ya que es posible que haya atributos con el mismo nombre en las dos relaciones, el nombre de la relación se antepondrá al del atributo en este caso para que los nombres de los atributos sigan siendo únicos en la relación resultado.

Ejemplos:

DUEÑO x MOVIL

Modelamiento de Datos y Diseño de BD

Page 5: Algebra Relacional2

Universidad Cesar Vallejo

OPERACIONES ESPECIALES:

Seleccionar ():

Por medio de esta operación se posibilita la selección de un subconjunto de tuplas de una relación que corresponden a una condición (columna OPERADOR valor) determinada. El grado (total de columnas de la Relación), se conserva.

Sintaxis:

La selección, permite extraer todas las filas (tuplas) que cumple una condición determinada. Esta condición permite la utilización de los operadores de comparación: =,>,<,>=,¹, además de los conectores lógicos "y" - "o":

Ejemplo:

DNI Nombre

P_Apellido

S_Apellido

Sexo

Dirección

Telefono

Salario

71134534

Juan Mesa Uribe M Cra 25 22-1

2567532

1,600,000

23423445

Ana María

Betancur Bermudez F Cra 45 11-13

3433444

1,300,000

12453535

Gloria Betancur  Garces F Tr. 12 43-5

2756533

1,700,000

75556743

Pedro Ochoa Pelaez M Cll.6ta 14-45

2686885

1,200,000

43533322

Patricia Angel Guzmán F Cll. 45 23-1

2674563

1,350,000

78900456

Carlos Betancur Agudelo M Cir. 5 12-5

4445775

1,500,000

a. cedula = 71134534 (PERSONA)Resultado: DNI Nombr

eP_Apellido

S_Apellido

Sexo

Dirección

Telefono

Salario

71134534

Juan Mesa Uribe M Cra 25 22-1

2567532

1,600,000

b.   sexo ='F' (PERSONA)

c.   (primer_apellido ='Betancur') y (sexo='F')  (PERSONA)

d.   (sexo = 'M'') o (Salario >=1,350,000)  (PERSONA)

Proyectar ()Esta operación permite seleccionar algunas columnas de una relación.

Modelamiento de Datos y Diseño de BD

(condición) (RELACION)

Page 6: Algebra Relacional2

Universidad Cesar Vallejo

 Sintaxis:

Ejemplos: Se construyen con base en la Relación anterior: PERSONA.

a. DNI, nombre, primer_apellido, segundo_apellido (PERSONA)

b. cedula, salario (PERSONA)c. La operación SELECCIÓN combinada con la operación PROYECCIÓN, podemos

tener: cedula, nombre, salario ( (sexo = 'M'') o (Salario >=1,350,000)  (PERSONA) )

d. EL RESULTADO DE LAS OPERACIONES PUEDEN SER LLEVADOS A RELACIONES TEMPORALES DE LA SIGUIENTE FORMA:

REL_TEMP cedula, nombre, salario ( (sexo = 'M'') o (Salario >=1,350,000)  (PERSONA) )

En álgebra relacional el operador de división divide la relación A con grado m + n por la relación B entregando como resultado una relación con grado m. El atributo m + i de A y el atributo i de B deben estar definidos dentro del mismo dominio. Así el resultado de DIVISIÓNA DIVIDIDO POR B o A / B

produce la relación C con un sólo atributo X, tal que cada valor de x de C.X aparece como un valor de A.X, y el par de valores (x, y) aparece en A para todos los valores y que aparecen en B.

Ejemplo:

Selecciona todos los autos a cuyos choferes les caduca la licencia el 01/01/1999

Modelamiento de Datos y Diseño de BD

<lista de Atributos> (RELACION)

Page 7: Algebra Relacional2

Universidad Cesar Vallejo

EJERCICIOS DE ALGEBRA RELACIONAL

U : Unión|X| : Juntaπ : Proyecciónσ : SelecciónX : Producto Cartesianodoc¬4 : Renombre del campo de posición 4 por doc

Ejercicio Resueltos: Se tiene las siguientes relaciones:

CLIENTES (Nº Cliente, Nombre, Dirección, Teléfono, Ciudad)PRODUCTO (Cod Producto, Descripción, Precio)VENTA (Cod Producto, Nº Cliente, Cantidad, IdVenta)

Lo primero es renombrar las tablas para facilitar su manejo en las consultas:CLIENTES C

PRODUCTO PVENTA V

a. Realizar una consulta que muestre el nombre de los clientes de Lima

Solución

nombre( (Ciudad = 'Lima'') C)b. Indicar el código y descripción de los productos cuyo código coincida con su

descripciónSolución

Codigo, descripción ( (Codigo=descripción) P)c. Obtener el nombre de los clientes junto con el identificador de venta y la cantidad

vendida, de aquellos productos de los que se vendieron más de 500 unidadesSolución

nombre, inventa,Cantidad ( (Cantidad>50) PxC)

d. Nombre de los clientes de la tabla Clientes que no aparecen en la tabla de ventas (Clientes que no han comprado nada)

Solución

nombreC- nombre(CxV)

Modelamiento de Datos y Diseño de BD

Page 8: Algebra Relacional2

Universidad Cesar Vallejo

EJERCICIO Propuestos:Sea la siguiente BD:PROVEEDORES( nro-p,nom-p,categoría,ciud-p)ITEMS(nro-i,descripción-i,ciud-i)PEDIDOS(nro-p,nro-c,nro-i,cantidad,precio)CLIENTES(nro-c,nom-c,ciud-c)

PROVEEDORES PITEMS I

PEDIDOS DCLIENTESC

1. Listar los proveedores de Chiclayo. 2. Listar los proveedores que proveen el item "1". 3. Listar los clientes que solicitan items provistos por "p1". 4. Listar los clientes que solicitan algún ítem provisto por proveedores con categoria mayor

que 4. 5. Listar los ítems pedidos por clientes de Rosario. 6. Listar los pedidos en los cuales un cliente de Rosario solicita artículos fabricados en

Mendoza (ciud-i = "Mendoza"). 7. Listar los pedidos en los que el cliente "23" solicita items no solicitados por el cliente

"30". 8. Listar las ciudades en la forma (ciu1,ciu2 ) tales que un proveedor en ciu1 provea items

solicitados por clientes de ciu2. 9. Listar los números de proveedores cuya categoría sea mayor que la de todos los

proveedores que proveen el item "cuaderno". 10. Listar los clientes que han pedido 2 o más ítems distintos. 11. Listar los proveedores que proveen a todos los clientes de Lima una cantidad mayor que

el promedio de las cantidades pedidas por los clientes de Rosario.

Modelamiento de Datos y Diseño de BD