bases de datos (ig18 semipresencial) el modelo …

60
BASES DE DATOS (IG18 Semipresencial) El Modelo Relacional Algebra Relacional y SQL Lledó Museros / Ismael Sanz [email protected] / [email protected] Tema 4 1 de 60

Upload: others

Post on 23-Oct-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BASES DE DATOS (IG18 Semipresencial) El Modelo …

BASES DE DATOS (IG18 Semipresencial)El Modelo Relacional

Algebra Relacional y SQL

Lledó Museros / Ismael [email protected] / [email protected]

Tema 4

1 de 60

Page 2: BASES DE DATOS (IG18 Semipresencial) El Modelo …

1. Introducción2. Operadores del Álgebra Relacional

1. Asignación2. Renombramiento3. Restricción4. Proyección5. Unión6. Diferencia7. Producto Cartesiano8. Combinación natural9. Otras Combinaciones 10. Intersección11. División 12. Agrupación

Tema 4 Índice

2 de 60

Page 3: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Álgebra relacional y cálculo relacional : la base de los lenguajes relacionales (Codd).

Álgebra relacional lenguaje proceduralCálculo relacional lenguaje no procedural

AVISO: son lenguajes formales no muy "amigables", pero se deben estudiar porque sirven para comprender las operaciones básicas de los lenguajes de manejo de datos.Un lenguaje es relacionalmente completo si permite obtener cualquier relación que se pueda derivar mediante el álgebra relacional (o el cálculo relacional).SQL es relacionalmente completo, de hecho, se diseño basándose en el álgebra y cálculo relacional.

Tema 4 Introducción: Lenguajes Relacionales

3 de 60

¡¡pero ambos lenguajes son equivalentes!!

Page 4: BASES DE DATOS (IG18 Semipresencial) El Modelo …

1. Introducción2. Operadores del Álgebra Relacional

1. Asignación2. Renombramiento3. Restricción4. Proyección5. Unión6. Diferencia7. Producto Cartesiano8. Combinación natural9. Otras Combinaciones 10. Intersección11. División 12. Agrupación

Tema 4 Índice

4 de 60

Page 5: BASES DE DATOS (IG18 Semipresencial) El Modelo …

El Álgebra relacional (en adelante Álgebra) está constituida por una colección de operadores de alto nivel que, aplicados a las relaciones, dan como resultado nuevas relaciones.

Si R1, R2, . . . , Rj y R’ son relaciones y Op un operador del Álgebra, una operación consiste en aplicar Op a la relación o relaciones R1, R2, . . . , Rjque da como resultado la relación R’:

Op(R1, R2, ..., Rj) = R'

Tema 4 Operadores del ÁlgebraRelacional

5 de 60

Page 6: BASES DE DATOS (IG18 Semipresencial) El Modelo …

El Álgebra cumple la propiedad de cierre (clausura), ya que el resultado de una operación es otra relación. Si Op1, Op2, . . . , Opn son operadores del Álgebra, se cumple:

Opn( ...(Op2(Op1(R)))) = R'

Tema 4 Operadores del ÁlgebraRelacional

6 de 60

Page 7: BASES DE DATOS (IG18 Semipresencial) El Modelo …

1. Introducción2. Operadores del Álgebra Relacional

1. Asignación2. Restricción3. Proyección4. Unión5. Diferencia6. Producto Cartesiano7. Combinación natural8. Otras Combinaciones 9. Intersección10. División 11. Agrupación

Tema 4 Índice

7 de 60

Page 8: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Asignación: Operación auxiliar que se utiliza para almacenar resultados en una nueva relación o para resultados intermedios cuando se desea dividir una operación compleja en una secuencia de operaciones más simples.

NR := Op(R)Permite copiar una relación en otra nueva (siendo el operador Op la identidad):

NR := RO renombrar los atributos de la relación original:

NR(A1,A2, ..., An) := R

Tema 4 Asignación

8 de 60

Page 9: BASES DE DATOS (IG18 Semipresencial) El Modelo …

1. Introducción2. Operadores del Álgebra Relacional

1. Asignación2. Renombramiento3. Restricción4. Proyección5. Unión6. Diferencia7. Producto Cartesiano8. Combinación natural9. Otras Combinaciones 10. Intersección11. División 12. Agrupación

Tema 4 Índice

9 de 60

Page 10: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Renombramiento: Operación auxiliar que se utiliza para renombrar los atributos y así evitar los problemas causados al operar con varias relaciones en las que coincide el nombre de algún atributo.

En este caso, si no renombramos, la relación resultante cuya cabecera es un subconjunto de los atributos de las relaciones implicadas en la operación, no estaría bien definida porque los nombres de atributos deben ser únicos.

R RENAME ai AS bjR RENAME a1 AS bj, a2 AS b2, ....

Tema 4 Renombramiento

10 de 60

Page 11: BASES DE DATOS (IG18 Semipresencial) El Modelo …

1. Introducción2. Operadores del Álgebra Relacional

1. Asignación2. Renombramiento3. Restricción4. Proyección5. Unión6. Diferencia7. Producto Cartesiano8. Combinación natural9. Otras Combinaciones 10. Intersección11. División 12. Agrupación

Tema 4 Índice

11 de 60

Page 12: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Restricción (selección): R WHERE predicadoObtiene las tuplas de R que cumplen el predicado especificado . Este predicado es una comparación en la que aparece al menos un atributo de R; puede ser una combinación booleana de varios predicados.

Piezas rojas con peso mayor de 15:P WHERE COLOR = ’rojo’ AND PESO >15

Tema 4 Restricción

12 de 60

París19rojoengraneP6Londrés17rojopernoP2CIUDADPESOCOLORPNOMBREPnum

Page 13: BASES DE DATOS (IG18 Semipresencial) El Modelo …

SQL:RestricciónSELECT *FROM tablaWHERE predicado

Piezas rojas con peso mayor de 15:

Tema 4 Restricción

13 de 60

SELECT *FROM pWHERE color = 'rojo'AND peso > 15;

Page 14: BASES DE DATOS (IG18 Semipresencial) El Modelo …

1. Introducción2. Operadores del Álgebra Relacional

1. Asignación2. Renombramiento3. Restricción4. Proyección5. Unión6. Diferencia7. Producto Cartesiano8. Combinación natural9. Otras Combinaciones 10. Intersección11. División 12. Agrupación

Tema 4 Índice

14 de 60

Page 15: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Proyección: R [ai, ..., ak]

Obtiene una relación que contiene un subconjunto vertical de R, extrayendo los valores de los atributos especificados y eliminando tuplas duplicadas.

Tema 4 Proyección

15 de 60

Page 16: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Proveedores y piezas que envían: Ciudades en las que se almacena alguna pieza:

Tema 4 Proyección

16 de 60

....

P1S2

P4S1

P3S1

P2S1

P1S1

pnumsnum

Londres

Roma

París

CIUDAD

SP[snum,pnum]P[ciudad]

Page 17: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Tema 4 Proyección

17 de 60

SQL:ProyecciónSELECT [DISTINCT] ai, ..., akFROM tabla;

Proveedores y piezas que envían:

Ciudades en las que se almacena alguna pieza:

¿Son equivalentes estas sentencias a las del Álgebra?

SELECT sp.snum,sp.pnumFROM sp;

SELECT p.ciudadFROM p;

Page 18: BASES DE DATOS (IG18 Semipresencial) El Modelo …

1. Introducción2. Operadores del Álgebra Relacional

1. Asignación2. Renombramiento3. Restricción4. Proyección5. Unión6. Diferencia7. Producto Cartesiano8. Combinación natural9. Otras Combinaciones 10. Intersección11. División 12. Agrupación

Tema 4 Índice

18 de 60

Page 19: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Unión: R UNION SObtiene una relación cuyas tuplas son las que se encuentran en R, o en S, o en ambas relaciones a la vez. Para poder realizar esta operación, R y S deben ser compatibles para la unión.Dos relaciones son compatibles para la unión si ambas tienen el mismo esquema de tupla (cabecera), es decir, si tienen el mismo número de atributos, se llaman igual y se encuentran definidos sobre los mismos dominios.Ciudades en las que hay proveedores o se almacenan piezas:

Tema 4 Unión

19 de 60

Page 20: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Tema 4 Unión

20 de 60

AtenasParísLondresCIUDAD

LondresRomaParísCIUDAD

P[CIUDAD]S[CIUDAD]

S[CIUDAD] UNION P[CIUDAD]

AtenasRomaLondresParísCIUDAD

Page 21: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Tema 4 Proyección

21 de 60

SQL: En SQL todas las operaciones de conjuntos eliminan duplicados.

UniónSELECT ai, ..., akFROM tabla1UNIONSELECT ai, ....., akFROM tabla2

Ciudades en las que hay proveedores o se almacenan piezas:SELECT s.ciudadFROM sUNIONSELECT p.ciudad FROM p;

Page 22: BASES DE DATOS (IG18 Semipresencial) El Modelo …

1. Introducción2. Operadores del Álgebra Relacional

1. Asignación2. Renombramiento 3. Restricción4. Proyección5. Unión6. Diferencia7. Producto Cartesiano8. Combinación natural9. Otras Combinaciones 10. Intersección11. División 12. Agrupación

Tema 4 Índice

22 de 60

Page 23: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Diferencia: R MINUS SObtiene una relación que tiene las tuplas que se encuentran en R y no se encuentran en S. Para poder realizar esta operación, R y S deben ser compatibles para la unión.Ciudades en las que hay proveedores y no se almacenan piezas:

Tema 4 Diferencia

23 de 60

AtenasParísLondresCIUDAD

LondresRomaParísCIUDAD

S[CIUDAD] P[CIUDAD]

AtenasCIUDAD

S[CIUDAD] MINUS P[CIUDAD]

Page 24: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Ciudades en las que se almacenan piezas y no hay proveedores:

Tema 4 Diferencia

24 de 60

AtenasParísLondresCIUDAD

LondresRomaParísCIUDAD

S[CIUDAD] P[CIUDAD]

RomaCIUDADP[CIUDAD] MINUS S[CIUDAD] =

Page 25: BASES DE DATOS (IG18 Semipresencial) El Modelo …

SQL:

Ciudades en las que hay proveedores y no se almacenan piezas:

Tema 4 Diferencia

25 de 60

SELECT ai, ..., ak

FROM tabla1

MINUS

SELECT ai, ..., ak

FROM tabla2

SELECT s.ciudad

FROM s

MINUS

SELECT p.ciudad

FROM p;

Page 26: BASES DE DATOS (IG18 Semipresencial) El Modelo …

1. Introducción2. Operadores del Álgebra Relacional

1. Asignación2. Renombramiento3. Restricción4. Proyección5. Unión6. Diferencia7. Producto Cartesiano8. Combinación natural9. Otras Combinaciones 10. Intersección11. División 12. Agrupación

Tema 4 Índice

26 de 60

Page 27: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Producto cartesiano: R TIMES S

El producto cartesiano de dos relaciones R y S, de cardinalidades m1 y m2 respectivamente, es una relación definida sobre la unión de los atributos de ambas relaciones y cuyo cuerpo está constituido por las m1 x m2 tuplas formadas concatenando cada tupla de R con cada una de las tuplas de S. Es decir, obtiene una relación cuyas tuplas están formadas por la concatenación de todas las tuplas de R con todas las tuplas de S.

Tema 4 Producto Cartesiano

27 de 60

Page 28: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Datos de los proveedores que envían la pieza P1 y cantidad que envían:

Tema 4 Producto Cartesiano

300P1S2

300P1S1CANTpnumsnum

SP where pnum=‘P1’

28 de 60

Page 29: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Datos de los proveedores que envían la pieza P1 y cantidad que envían:

Tema 4 Producto Cartesiano

S TIMES (SP where pnum=‘P1’)

300P1S2Atenas20AldanaS5300P1S2Londres20CoronaS4300P1S2París30 BernalS3300P1S2París10JaimesS2300P1S2Londres20SalazarS1300P1S1Atenas20AldanaS5300P1S1Londres20CoronaS4300P1S1París30 BernalS3300P1S1París10JaimesS2300P1S1Londres20SalazarS1

CANTpnumSP.snumCIUDADESTADOSNOMBRES.snum

¿Era esto lo que queríamos? 29 de 60

Page 30: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Para quedarse sólo con los datos de los proveedores que envían la pieza P1, hay que hacer una restricción:

Ahora nos quedamos sólo con los atributos buscados con una proyección:

Tema 4 Producto Cartesiano

(S TIMES (SP where pnum=‘P1’)) WHERE S.snum=SP.snum

300P1S2París10JaimesS2

300P1S1Londres20SalazarS1

CANTPnumSP.snumCIUDADESTADOSNOMBRES.snum

((S TIMES (SP where pnum=‘P1’)) WHERE S.snum=SP.snum) [S.snum, SNOMBRE, ESTADO, CIUDAD, CANT]

300París10JaimesS2300Londres20SalazarS1CANTCIUDADESTADOSNOMBRES.snum

30 de 60

Page 31: BASES DE DATOS (IG18 Semipresencial) El Modelo …

SQL:

Datos de los proveedores que envían la pieza P1 y cantidad que envían:

Tema 4 Producto Cartesiano

Producto Cartesiano

SELECT t.ai, ..., t.ak,

u.bj, ...,u.b1

FROM tabla1 t, tabla2 u

SELECT s.snum, s.snombre, s.estado,

s.ciudad, sp.cant

FROM s, sp

WHERE s.snum=sp.snum

AND sp.pnum=‘P1’;

31 de 60

Page 32: BASES DE DATOS (IG18 Semipresencial) El Modelo …

1. Introducción2. Operadores del Álgebra Relacional

1. Asignación2. Renombramiento3. Restricción4. Proyección5. Unión6. Diferencia7. Producto Cartesiano8. Combinación natural9. Otras Combinaciones 10. Intersección11. División 12. Agrupación

Tema 4 Índice

32 de 60

Page 33: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Combinación natural (concatenación o join): R JOIN SObtiene una relación cuyas tuplas son todas las tuplas de R concatenadas con todas las tuplas de S que en los atributos comunes (los que se llaman igual) tienen los mismos valores. Estos atributos comunes aparecen una sola vez en el resultado.Datos de los proveedores que envían la pieza P1 y cantidad que envían:

Tema 4 Combinación Natural

300P1S2

300P1S1CANTpnumsnum

SP where pnum=‘P1’

33 de 60

Page 34: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Tema 4 Combinación Natural

S JOIN (SP where pnum=‘P1’)

300P1París10JaimesS2300P1Londres20SalazarS1

CANTpnumCIUDADESTADOSNOMBRES.snum

Mediante una proyección nos quedamos sólo con los atributos que nos interesan:

(S JOIN (SP where pnum=‘P1’)) [snum, SNOMBRE, STADO, CIUDAD, CANT]

300París10JaimesS2300Londres20SalazarS1CANTCIUDADESTADOSNOMBRES.snum

34 de 60

Page 35: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Tema 4 Combinación Natural

Nótese que esta expresión obtiene el mismo resultado que la expresión:

Porque la Combinación Natural es un producto cartesiano

una restricción de igualdad sobre los atributos comunes.

y una proyección eliminando (uno de) los atributos repetidos:

R1= (S TIMES (SP where pnum=‘P1’))

((S TIMES (SP where pnum=‘P1’)) WHERE S.snum=SP.snum) [S.snum, SNOMBRE, ESTADO, CIUDAD, CANT]

R2= R1 WHERE S.snum=SP.snum

RDO= R2 [S.snum, SNOMBRE, ESTADO, CIUDAD, CANT]

35 de 60

Page 36: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Tema 4 Combinación Natural

SQL:

Datos de los proveedores que envían la pieza P1 y cantidad que envían:

Concatenación Natural

SELECT *

FROM tabla1 NATURAL JOIN tabla2

SELECT s.snum, s.snombre, s.estado,

s.ciudad, sp.cant

FROM sp NATURAL JOIN s

WHERE sp.pnum=‘P1’;

36 de 60

Page 37: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Tema 4 Combinación Natural

SQL:

Datos de los proveedores que envían la pieza P1 y cantidad que envían:

Concatenación

SELECT *

FROM tabla1 JOIN tabla2

USING (ai,ak,...)

SELECT s.snum, s.snombre, s.estado, s.ciudad, sp.cant

FROM sp JOIN s USING (snum)

WHERE sp.pnum=‘P1’;

37 de 60

Page 38: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Tema 4 Combinación Natural

SQL:

Datos de los proveedores que envían la pieza P1 y cantidad que envían:

Atención: El JOIN del álgebra se corresponde con el NATURAL JOIN de SQL. El JOIN de SQL no existe en el álgebra como un único operador, pero se puede simular (TIMES+ proyección)

Concatenación

SELECT *

FROM tabla1 JOIN tabla2

ON tabla1.ai = tabla2.bj,

tabla1.ak = tabla2.bl, ...

SELECT s.snum, s.snombre, s.estado, s.ciudad, sp.cant

FROM sp JOIN s ON s.snum=sp.snum

WHERE sp.pnum=‘P1’;

38 de 60

Page 39: BASES DE DATOS (IG18 Semipresencial) El Modelo …

1. Introducción2. Operadores del Álgebra Relacional

1. Asignación2. Renombramiento 3. Restricción4. Proyección5. Unión6. Diferencia7. Producto Cartesiano8. Combinación natural9. Otras Combinaciones 10. Intersección11. División 12. Agrupación

Tema 4 Índice

39 de 60

Page 40: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Combinación natural externa izquierda: R LEFT OUTER JOIN S

La Combinación natural externa izquierda es una Combinación natural en la que las tuplas de R que no tienen valores en común con ninguna tupla de S, también aparecen en el resultado. Se puede definir mediante un JOIN y sobre el resultado aplicar la operación UNION para agregar las tuplas de la relación de la izquierda que no estén ya añadidas

Tema 4 Otras Combinaciones

40 de 60

Page 41: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Combinación natural externa izquierda: R LEFT OUTER JOIN S

SQL:

Tema 4 Otras Combinaciones

Concatenación natural externa izquierda

SELECT *

FROM tabla1 NATURAL LEFT OUTER JOIN tabla2

Concatenación externa izquierda

SELECT *

FROM tabla1 LEFT OUTER JOIN tabla2

USING (ai) / ON tabla1.ai = tabla2.bj

41 de 60

Page 42: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Combinación natural externa derecha: R RIGHT OUTER JOIN S

La combinación natural externa derecha es una Combinación natural en la que las tuplas de S que no tienen valores en común con ninguna tupla de R, también aparecen en el resultado. Se puede definir mediante un JOIN y sobre el resultado aplicar la operación UNION para agregar las tuplas de la relación de la derecha que no estén ya añadidas

Tema 4 Otras Combinaciones

42 de 60

Page 43: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Combinación natural externa derecha: R RIGHT OUTER JOIN S

SQL:

Tema 4 Otras Combinaciones

Concatenación natural externa derecha

SELECT *

FROM tabla1 NATURAL RIGHT OUTER JOIN tabla2

Concatenación externa izquierda

SELECT *

FROM tabla1 RIGHT OUTER JOIN tabla2

USING (ai) / ON tabla1.ai = tabla2.bj

43 de 60

Page 44: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Combinación natural externa completa:R FULL OUTER JOIN S

La Combinación natural externa completa es una Combinación natural en la que las tuplas de S que no tienen valores en común con ninguna tupla de R y las tuplas de R que no tienen valores en común con ninguna tupla de S , también aparecen en el resultado.

Se puede definir mediante un JOIN y sobre el resultado aplicar la operación UNION para agregar las tuplas de la relación de la izquierda y de la derecha que no estén ya añadidas.

Tema 4 Otras Combinaciones

44 de 60

Page 45: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Combinación natural externa completa:R FULL OUTER JOIN S

SQL:

Tema 4 Otras Combinaciones

Concatenación natural externa completa

SELECT *

FROM tabla1 NATURAL FULL OUTER JOIN tabla2

Concatenación externa completa

SELECT *

FROM tabla1 FULL OUTER JOIN tabla2

USING (ai) / ON tabla1.ai = tabla2.bj

45 de 60

Page 46: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Datos de todos los proveedores con las piezas que envían:

S LEFT OUTER JOIN SP

Tema 4 Otras Combinaciones

46 de 60

Page 47: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Parejas de piezas azules y proveedores de la misma ciudad. Las piezas y proveedores que queden desparejados también se deben obtener:

PAZ := (P WHERE COLOR=‘azul’) PAZ FULL OUTER JOIN S

Tema 4 Otras Combinaciones

47 de 60

Page 48: BASES DE DATOS (IG18 Semipresencial) El Modelo …

SQL:Datos de todos los proveedores con las piezas que envían:

Parejas de piezas azules y proveedores de la misma ciudad. Las piezas y los proveedores que queden desparejados también se deben obtener:

Tema 4 Otras Combinaciones

SELECT *

FROM s NATURAL LEFT OUTER JOIN sp;

SELECT *

FROM s NATURAL FULL OUTER JOIN p

WHERE p.color=‘azul’;

48 de 60

Page 49: BASES DE DATOS (IG18 Semipresencial) El Modelo …

1. Introducción2. Operadores del Álgebra Relacional

1. Asignación2. Renombramiento 3. Restricción4. Proyección5. Unión6. Diferencia7. Producto Cartesiano8. Combinación natural9. Otras Combinaciones 10. Intersección11. División 12. Agrupación

Tema 4 Índice

49 de 60

Page 50: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Intersección: R INTERSECT SObtiene una relación que contiene las tuplas de R que también se encuentran en S. Para poder realizar esta operación, R y S deben ser compatibles para la unión.

R INTERSECT Sobtiene el mismo resultado que

R MINUS (R MINUS S)

Tema 4 Intersección

50 de 60

Page 51: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Ciudades en las que hay proveedores y se almacenan piezas:

Tema 4 Intersección

AtenasParísLondresCIUDAD

LondresRomaParísCIUDAD

S[CIUDAD] P[CIUDAD]

P[CIUDAD] INTERSECT S[CIUDAD] = ParísLondresCIUDAD

51 de 60

Page 52: BASES DE DATOS (IG18 Semipresencial) El Modelo …

SQL:

Ciudades en las que hay proveedores y se almacenan piezas:

Tema 4 Intersección

SELECT ciudad

FROM p

INTERSECT

SELECT ciudad

FROM s;

52 de 60

Page 53: BASES DE DATOS (IG18 Semipresencial) El Modelo …

1. Introducción2. Operadores del Álgebra Relacional

1. Asignación2. Renombramiento3. Restricción4. Proyección5. Unión6. Diferencia7. Producto Cartesiano8. Combinación natural9. Otras Combinaciones 10. Intersección11. División 12. Agrupación

Tema 4 Índice

53 de 60

Page 54: BASES DE DATOS (IG18 Semipresencial) El Modelo …

División: R DIVIDEBY SSuponiendo que la cabecera de R es el conjunto de atributos A y la cabecera de S es el conjunto de atributos B, tales que B es un subconjunto de A. Si consideramos C como el subconjunto de los atributos de A que no están en B (A - B), la división obtiene una relación cuya cabecera es el conjunto de atributos C y que contiene las tuplas de R que están acompañadas de todas las tuplas de S.La división de una relación R (dividendo) por otra relación S (divisor) es una relación RES (cociente) tal que, al realizarse su combinación natural con el divisor, todas las tuplas resultantes se encuentran en el dividendo.No existe en SQL una orden equivalente. Se puede «simular» contando tuplas o mediante equivalencias del álgebra

Tema 4 División

54 de 60

Page 55: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Proveedores que suministran todas las piezas que se almacenan en Londres:

Piezas que se almacenan en Londres: Proveedores que almacenan TODAS las piezas de PL:

Tema 4 División

PL:= (P WHERE CIUDAD = ‘Londres’) [pnum]

P4P2pnum

SP[snum, pnum] DIVIDEBY PL

S4S1snum

55 de 60

Page 56: BASES DE DATOS (IG18 Semipresencial) El Modelo …

1. Introducción2. Operadores del Álgebra Relacional

1. Asignación2. Renombramiento 3. Restricción4. Proyección5. Unión6. Diferencia7. Producto Cartesiano8. Combinación natural9. Otras Combinaciones 10. Intersección11. División 12. Agrupación

Tema 4 Índice

56 de 60

Page 57: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Agrupación (resumen):

SUMMARIZE R GROUPBY(ai,...,ak) ADD cálculo AS atributo

Esta operación agrupa las tuplas de R que tienen los mismos valores en los atributos especificados y realiza un cálculo sobre los grupos obtenidos (SUM, AVG, MAX, MIN, COUNT). La relación resultado tiene como cabecera los atributos por los que se ha agrupado y el cálculo realizado con el nombre especificado en atributo.

Tema 4 Agrupación

57 de 60

Page 58: BASES DE DATOS (IG18 Semipresencial) El Modelo …

Número total de unidades de piezas suministradas por cada proveedor:

SUMMARIZE SP GROUPBY(snum) ADD SUM(CANT) AS CANT_TOTAL

Número medio de unidades suministradas por envío: SUMMARIZE SP GROUPBY () ADD AVG(CANT) AS MEDIA

Tema 4 Agrupación

900S4200S3700S21300S1

CANT_TOTALsnum

258

MEDIA

58 de 60

Page 59: BASES DE DATOS (IG18 Semipresencial) El Modelo …

SQL:

Número total de unidades de piezas suministradas por cada proveedor:

Número medio de unidades suministradas por envío:

Tema 4 Agrupación

Agrupación

SELECT cálculo(atributo)

FROM tabla

GROUPBY ai, ..., ak

HAVING condición

SELECT SUM(CANT) AS CANT_TOTAL

FROM sp

GROUPBY snum;

SELECT AVGCANT) AS MEDIA

FROM sp;

59 de 60

Page 60: BASES DE DATOS (IG18 Semipresencial) El Modelo …

BASES DE DATOS (IG18 Semipresencial)El Modelo Relacional. Algebra Relacional

¿DUDAS?

Lledó Museros / Ismael [email protected] / [email protected]

Tema 4

60 de 60