48
Lenguajes Formales de Consulta Base de Datos I

Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

Embed Size (px)

Citation preview

Page 1: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

Lenguajes Formales de Consulta

Base de Datos I

Page 2: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

2

Lenguajes Formales de Consulta

Es un lenguaje con el que los usuarios solicitan información de la BD.

Estos lenguajes suelen ser de nivel superior que el de los lenguajes de programación habituales.

Page 3: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

3

Lenguajes Formales de Consulta

Clasificación

Procedimentales No procedimentales

Page 4: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

4

Lenguajes Formales de Consulta

Clasificación

Procedimentales

El usuario indica al sistema que lleve a cabo una serie de operaciones en la BD para calcular el resultado.

Page 5: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

5

Lenguajes Formales de Consulta

• Clasificación

No procedimentales

El usuario describe la información deseada sin dar un procedimiento concreto para obtener la información.

Page 6: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

6

Lenguajes Formales de Consulta

• Dentro de estos lenguajes podemos encontrar:

o Álgebra Relacional (Procedimental)o Cálculo Relacional de Tuplas (No

procedimental)o Cálculo Relacional de Dominios (No

procedimental)

Page 7: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

7

Algebra Relacional

• Lenguaje de consulta procedimental basado en álgebra de conjuntos.

• Serie de operaciones que toman una o dos relaciones como entrada y generan una relación como salida, pero siempre sin modificar los de la base de datos (es un lenguaje de consulta).

Page 8: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

8

Algebra Relacional

• Las operaciones son: Selección Proyección Reunión (JOIN o producto cartesiano con

condición) División Operaciones habituales de conjuntos:

unión, intersección, resta y producto cartesiano.

Page 9: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

9

Selección σ

• La operación de selección da como resultado un conjunto de tuplas que cumplen la condición de selección aplicada sobre la entrada.

Page 10: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

10

Selección σ

σc(R)= conjunto de tuplas de la relación R que cumplen la condición c.

Donde: R será un esquema de relación o una

expresión que lo represente. c será un conjunto de cláusulas

conectadas entre sí mediante operadores booleanos ( , , ¬).∧ ∨

Page 11: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

11

Selección σ

• Cada cláusula será de la forma:

<nombre atributo> OPCOMP <nombre atributo>

Donde: OPCOMP será un operador de comparación (=, ≠, <, ≤, >, ≥)

El resultado de la consulta es una selección con los mismos atributos que la original.

Page 12: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

12

Selección σ

• Ejemplo: base de datos de empleados.

EMP (DNI, NOM, AP1, AP2, SUELDO)

Empleados con sueldo superior a $1200

σSUELDO> 1200 (EMP)

Empleados cuyos apellidos sean iguales:

σAP1= AP2 (EMP)

Empleados con sueldo superior a $1200 cuyos apellidos sean iguales:

σ (SUELDO > 1200) (AP1 = AP2)∧ (EMP)

Page 13: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

13

Selección σ

• Ejercicios: Tabla sucursal

No. sucursal Nombre de la sucursal

Ciudad de la Sucursal

Activos

1 Aldama Puebla 9,000,000

2 Centro Teotitlán de F. M. 7,500

3 La loma Huautla de J. 2,000

4 5 de Mayo Tehuacán 3,700,000

5 Portales Oaxaca 1,700,000

6 San Jerónimo Teotitlán de F. M. 1,500

7 Revolución Tehuacán 8,000,000

Page 14: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

14

Selección σ

Ejercicios:

Sucursales que estén en la ciudad de Tehuacán.

Sucursales cuyos activos sean menores o iguales que 8,000.

Sucursales que no estén en Tehuacán y con mayores a 8,000 y menores a 9,000,000.

Page 15: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

15

Proyección Π

La operación de proyección devuelve las tuplas de la relación que se le pasa como argumento, omitiendo ciertas columnas.

Page 16: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

16

Proyección Π

Los atributos que se requieran obtener se colocan como subíndice de la operación, separados por comas.

ΠLISTA_ATRIBUTOS (R) = conjunto de tuplas de R con los atributos de la lista.

Page 17: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

17

Proyección Π

Ejemplo: base de datos de empleados.

EMP (DNI, NOM, AP1, AP2, SUELDO)

DNI y sueldo de todos los empleados:

ΠDNI, SUELDO ( EMP )

DNI de los empleados con más de 1200 de sueldo:

ΠDNI ( σ SUELDO > 1200 ( EMP ) )

Page 18: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

18

Proyección Π

DNI de los empleados con más de 1.200 de sueldo, “dos pasos”:

R1 ← σ SUELDO > 1200 ( EMP )

/* Tuplas de EMP con sueldo > 1200 */

R2 ← Π DNI

( R1 )/* DNI empleados con sueldo > 1200 */

Page 19: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

19

Proyección Π

Ejercicios:

Tabla Cursos

Cód. curso

Nombre curso profesor Fecha inicio

Fecha Fin horario Precio

C001 Programación Web

P001 02-03-15 07-05-15 11:00 a 13:00 120.00

C002 Base de Datos P001 23-02-15 30-04-15 13:00 a 15:00 110.00

C003 Matemáticas P002 03-11-14 28-02-15 9:00 a 11:00 100.00

Page 20: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

20

Proyección Π

Ejercicios:

• Nombre de curso cuyo precio sea menor a 120.

• Código de los cursos que sean impartidos entre las fechas 01-01-15 y 30-06-15.

•Nombre de todos los cursos que estén en el horario de 9:00 a 13:00.

Page 21: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

21

Renombramiento ρ

• La operación de renombramiento permite cambiar el nombre del esquema y de las columnas de otro esquema.

• La relación resultante contiene las mismas tuplas que el Esquema original.

Page 22: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

22

Renombramiento ρ

Ejemplo:

Los atributos de una relación se pueden renombrar para facilitar el manejo de atributos:

/* Renombramiento de DNI a D */

ρEMP (D,NOM,AP1,AP2,SUELDO)(EMP)

/* Renombramiento de todos los atributos */

ρEMP(D,N,A1,A2,S)(EMP)

Page 23: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

23

Renombramiento ρ

Ejemplo:

Es también posible realizar copias de relaciones renombrando o no sus atributos:

/* Copia de EMP a EMP1 sin renombrar atributos */

ρEMP1(DNI, NOM, AP1, AP2, SUELDO)(EMP)

Page 24: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

24

Unión , Intersección ∩ y Resta -∪

Operaciones típicas de conjuntos. Las relaciones deben ser compatibles:

Mismo número de atributos y mismo dominio dos a dos:

R1 (A1, A2, ... An)

R2 (B1, B2, …Bn)

Para todo i, 1 ≤ i ≤ n, Dom (Ai) = Dom (Bi)

El resultado de estas operaciones será otra relación (no repite tuplas).

Page 25: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

25

Unión , Intersección ∩ y Resta -∪

En la relación resultante, los atributos serán los de la relación que pongamos como primer operando.

Lo habitual es realizar uniones, intersecciones y restas con esquemas exactamente iguales.

Page 26: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

26

Unión , Intersección ∩ y Resta -∪

Ejemplo:

EST (DNI_EST, NOMB_EST)

PROF (DNI_PROF, NOMB_PROF)

Personas que son alumnos o son profesores:ρPER(DNI, NOMBRE)(ρEST(DNI,NOMBRE)(EST) ρ∪ PROF(DNI, NOMBRE)(PROF))

Page 27: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

27

Producto Cartesiano X

Esta es una operación binaria. No exige que las relaciones sean compatibles.

R1 (A1, ..., An) × R2 (B1, ..., Bm) → R (A1, ..., An, B1, ..., Bm)

La relación resultante, R, contiene tuplas con los atributos de ambas relaciones. Pero esas tuplas son el resultado de combinar cada una de las tuplas de la primera relación con todas las de la segunda.

Page 28: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

28

Producto Cartesiano X

R1 (A1, ..., An) R2 (B1, ..., Bm) R1 (A1, ..., An) × R2 (B1, ..., Bm)

x1, ..., x1

x2, ..., x2

x3, ..., x3

y1, ..., y1

y2, ..., y2

x1, ..., x1,y1, ..., y1

x1, ..., x1, y2, ..., y2

x2, ..., x2, y1, ..., y1

x2, ..., x2, y2, ..., y2

x3, ..., x3, y1, ..., y1

x3, ..., x3, y2, ..., y2

Page 29: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

29

Producto Cartesiano X

Ejemplo:

Para el siguiente esquema se pide obtener el DNI de los empleados que trabajan en el departamento “Contabilidad”.

Page 30: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

30

Producto Cartesiano X

Ejemplo:

Pasos a seguir:

• Combinar los datos de ambas tablas.• Quedarse con las filas donde cada empleado aparezca junto a su Departamento y además el nombre del departamento sea “Contabilidad”• Filtrar campos para obtener DNI.

Page 31: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

31

Producto Cartesiano X

Ejemplo:• Solución 1:RES ←ΠDNI( σNUMDE = ND NOMD = “Contabilidad” ∧ ( EMP × DPTO ) )

• Solución 2: R1 ← σNOMD = “Contabilidad” (DPTO)

R2 ← ΠND (R1)

R3 ← EMP × R2 R4 ← σNUMDEP = ND (R3)

RES ←ΠDNI(R4)

Page 32: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

32

Producto Cartesiano X

En un producto cartesiano puede aparecer el mismo nombre de atributo en R1 y R2.

• Es necesario crear un convenio de denominación para distinguir unos atributos de otros.• En este caso se realiza adjuntando el nombre de la

relación de la que procede originalmente.• Conviene evitarlo utilizando renombramiento.

Page 33: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

33

Producto Cartesiano X

Ejemplo:

RES←ΠDNI(σEMP.NUM= DPTO.NUM NOM = “Contabilidad”∧ (EMP×DPTO))

Page 34: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

34

Producto Cartesiano X

Ejercicio:

Para el siguiente esquema se pide obtener el DNI de los empleados que trabajan en el departamento “Contabilidad”.

Page 35: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

35

Producto Cartesiano X

Ejercicio:

Para el siguiente esquema se pide obtener el nombre de los empleados que trabajan en proyectos dirigidos por “López”.

Page 36: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

36

Producto Cartesiano X

Ejercicio:

Para el siguiente esquema se pide obtener el nombre de los empleados que trabajan en proyectos dirigidos por “López”.

Page 37: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

37

Producto Cartesiano X

Ejercicio:

Para el siguiente esquema se pide obtener el DNI de los empleados cuyo supervisor gana más de 2.000.

Page 38: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

38

Producto Cartesiano X

Ejercicio:

Para el siguiente esquema se pide obtener el DNI de los empleados supervisados por DNI = 123

Page 39: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

39

Reunión/Join c

Ejercicio:

• Operación binaria que implementa el producto cartesiano con condición.

• R1 c R2 = conjunto de tuplas resultantes del producto cartesiano R1 × R2 que cumplen la condición c.

Page 40: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

40

Reunión/Join c

Ejercicio:

• Operación binaria que implementa el producto cartesiano con condición.

R1 c R2 = conjunto de tuplas resultantes del producto cartesiano R1 × R2 que cumplen la condición c.

Es decir:

R1 c R2 ≡ σc (R1 × R2)

Page 41: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

41

Reunión/Join c

Ejemplo

Page 42: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

42

Reunión/Join c

Ejemplo

La figura siguiente representa la reunión de la relación PROV1 con la relación REC cuando el NIF de PROVl coincide con el atributo NIF-PRO de PREC.

Page 43: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

43

Reunión/Join Natural

Ejemplo

Producto cartesiano con condición implícita: se seleccionan aquellas tuplas cuyos valores coincidan en los atributos con igual nombre.• Se eliminan los atributos duplicados• Dados R1(r) y R2(s) donde Ai, 1<=i<=k son

atributos comunes a R1 y R2

R1 R2 ≡Πr∩s(σR1.A1=R2.A1…R1.Ak=R2.Ak(R1 × R2)

• Si no hay atributos comunes, es decir, r ∩s=∅R1 R2 ≡ R1 × R2

Page 44: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

44

Reunión/Join Natural

Ejemplo:

La figura siguiente representa la reunión natural de la relación PROV1 con la relación PREC cuando el NIF de PROVl coincide con el atributo NIF-PRO de PREC.

Observemos que no aparece duplicado el atributo NIF.

Page 45: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

45

Reunión/Join Natural

Ejemplo:

Page 46: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

46

Reunión/Join Natural

Page 47: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

47

Reunión/Join Natural

Ejercicios:

Page 48: Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes

GRACIAS