lenguajes formales de consulta

Download Lenguajes Formales  de  Consulta

If you can't read please download the document

Upload: keran

Post on 10-Jan-2016

132 views

Category:

Documents


3 download

DESCRIPTION

Lenguajes Formales de Consulta. Base de Datos I. Lenguajes Formales de Consulta. Lenguaje 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. - PowerPoint PPT Presentation

TRANSCRIPT

Click to add title

Lenguajes Formales de ConsultaBase de Datos I1Lenguajes Formales de ConsultaLenguaje de consulta Es un lenguaje con el que los usuarios solicitan informacin de la BD.

Estos lenguajes suelen ser de nivel superior que el de los lenguajes de programacin habituales.2Lenguajes Formales de ConsultaClasificacin

Procedimentales

No procedimentales3Lenguajes Formales de ConsultaClasificacin

Procedimentales

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

4Lenguajes Formales de ConsultaClasificacin

No procedimentales

El usuario describe la informacin deseada sin dar un procedimiento concreto para obtener la informacin.5Lenguajes Formales de ConsultaDentro de estos lenguajes podemos encontrar:

lgebra Relacional (Procedimental) Clculo Relacional de Tuplas (No procedimental) Clculo Relacional de Dominios (No procedimental)6Lenguajes Formales de ConsultaEstos lenguajes son estrictos y formales, han servido como base para los lenguajes implementados en los SGBD comerciales.7Algebra RelacionalLenguaje de consulta procedimental basado en lgebra de conjuntos.

Serie de operaciones que toman una o dos relaciones como entrada y generan una relacin como salida, pero siempre sin modificar los de la base de datos (es un lenguaje de consulta).8Algebra RelacionalLas operaciones son:SeleccinProyeccinReunin (JOIN o producto cartesiano con condicin)DivisinOperaciones habituales de conjuntos: unin, interseccin, resta y producto cartesiano.9Seleccin La operacin de seleccin da como resultado un conjunto de tuplas que cumplen la condicin de seleccin aplicada sobre la entrada.10Seleccin c(R)= conjunto de tuplas de la relacin R que cumplen la condicin c.

Donde:R ser un esquema de relacin o una expresin que lo represente. c ser un conjunto de clusulas conectadas entre s mediante operadores booleanos (, , ).

11Seleccin Cada clusula ser de la forma:

OPCOMP

Donde: OPCOMP ser un operador de comparacin (=, , , )

El resultado de la consulta es una seleccin con los mismos atributos que la original.

12Seleccin Ejemplo: base de datos de empleados.EMP (DNI, NOM, AP1, AP2, SUELDO)

Empleados con sueldo superior a $1200SUELDO> 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)

13Seleccin Ejercicios: Tabla sucursal

14

Seleccin Ejercicios:

Sucursales que estn en la ciudad de Aluche.Sucursales cuyos activos sean menores o iguales que 8.000.Sucursales que estn en ciudades que no sean Aluche con activos mayores que 8.000 y menores a 9.000.000.

15Proyeccin La operacin de proyeccin devuelve las tuplas de la relacin que se le pasa como argumento, omitiendo ciertas columnas.16Proyeccin Los atributos que se requieran obtener se colocan como subndice de la operacin, separados por comas.

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

17Proyeccin 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 ms de 1200 de sueldo:DNI ( SUELDO > 1200 ( EMP ) )

18Proyeccin DNI de los empleados con ms 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 */

19Proyeccin Ejercicios:

Tabla Cursos

20

Proyeccin Ejercicios:

Nombre de curso cuyo precio sea menor a 120.

Cdigo curso cuya fecha de inicio sea 20-09-2002 y fecha fin 15-01-2003.

Clave de profesor cuyo horario es de 9:00 a 13:00.

21Renombramiento La operacin de renombramiento permite cambiar el nombre del esquema y de las columnas de otro esquema.

La relacin resultante contiene las mismas tuplas que el Esquema original.

22Renombramiento Ejemplo:Los atributos de una relacin 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)

23Renombramiento Ejemplo:Es tambin 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)

24Unin , Interseccin y Resta -Operaciones tpicas de conjuntos. Las relaciones deben ser compatibles:Mismo nmero 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 relacin (no repite tuplas).

25Unin , Interseccin y Resta -En la relacin resultante, los atributos sern los de la relacin que pongamos como primer operando.

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

26Unin , Interseccin 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))

27Producto Cartesiano XEsta es una operacin binaria. No exige que las relaciones sean compatibles.

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

La relacin 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 relacin con todas las de la segunda.

28Producto Cartesiano X

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

x1, ..., x1x2, ..., x2x3, ..., x3y1, ..., y1y2, ..., y2x1, ..., x1,y1, ..., y1x1, ..., x1, y2, ..., y2x2, ..., x2, y1, ..., y1x2, ..., x2, y2, ..., y2x3, ..., x3, y1, ..., y1x3, ..., x3, y2, ..., y2

Producto Cartesiano XEjemplo:

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

30

Producto Cartesiano XEjemplo:

Pasos a seguir:

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

31Producto Cartesiano XEjemplo: Solucin 1:RES DNI( NUMDE = ND NOMD = Contabilidad ( EMP DPTO ) )

Solucin 2:R1 NOMD = Contabilidad (DPTO)R2 ND (R1)R3 EMP R2R4 NUMDEP = ND (R3)RES DNI(R4)

32Producto Cartesiano XEn un producto cartesiano puede aparecer el mismo nombre de atributo en R1 y R2.

Es necesario crear un convenio de denominacin para distinguir unos atributos de otros.En este caso se realiza adjuntando el nombre de la relacin de la que procede originalmente.Conviene evitarlo utilizando renombramiento.

33Producto Cartesiano XEjemplo:

RESDNI(EMP.NUM= DPTO.NUM NOM = Contabilidad (EMPDPTO))

34

Producto Cartesiano XEjercicio:

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

35

Producto Cartesiano XEjercicio:

Para el siguiente esquema se pide obtener el nombre de los empleados que trabajan en proyectos dirigidos por Lpez.

36

Producto Cartesiano XEjercicio:

Para el siguiente esquema se pide obtener el nombre de los empleados que trabajan en proyectos dirigidos por Lpez.

37

Producto Cartesiano XEjercicio:

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

38

Producto Cartesiano XEjercicio:

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

39

Reunin/Join c Ejercicio:

Operacin binaria que implementa el producto cartesiano con condicin.

R1 c R2 = conjunto de tuplas resultantes del producto cartesiano R1 R2 que cumplen la condicin c.

40Reunin/Join c Ejercicio:

Operacin binaria que implementa el producto cartesiano con condicin.

R1 c R2 = conjunto de tuplas resultantes del producto cartesiano R1 R2 que cumplen la condicin c.

Es decir:R1 c R2 c (R1 R2)

41Reunin/Join c Ejemplo

42

Reunin/Join c Ejemplo

43La figura siguiente representa la reunin de la relacin PROV1 con la relacin REC cuando el NIF de PROVl coincide con el atributo NIF-PRO de PREC.

Reunin/Join Natural EjemploProducto cartesiano con condicin implcita: se seleccionan aquellas tuplas cuyos valores coincidan en los atributos con igual nombre.Se eliminan los atributos duplicadosDados R1(r) y R2(s) donde Ai, 1