La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Conferencia 5. Álgebra y Cálculo Relacional.

Presentaciones similares


Presentación del tema: "Conferencia 5. Álgebra y Cálculo Relacional."— Transcripción de la presentación:

1 Conferencia 5. Álgebra y Cálculo Relacional.
Bases de Datos Conferencia 5. Álgebra y Cálculo Relacional.

2 Conferencia 5. Álgebra y Cálculo Relacional.
Operaciones del Álgebra Relacional. Ejemplos. Operaciones del Cálculo Relacional.

3 Objetivos. Álgebra. Definir cada una de las operaciones del álgebra relacional. Saber cómo pueden combinarse dichas operaciones para formar expresiones complejas. Definir una expresión de recuperación.

4 Objetivos. Cálculo. Explicar el significado de una variable de tupla.
Definir una expresión de recuperación del cálculo relacional.

5 Bibliografía Mato García, Rosa Ma. “Sistemas de Bases de Datos”, páginas 87 – 98. C. J. Date. “Introducción a los Sistemas de Bases de Datos”, páginas ,

6 Todo modelo de datos debe abarcar tres elementos:
La parte estructural. La parte de integridad. La parte manipulativa.

7 Ejemplo SUM (Snum, Snomb, Mun, Tipo) PROD (Pnum, Pnomb, Precio, Peso)
SP (S, P, Cantidad) Obtener los números de los suministradores que suministran todos los productos.

8 Ejemplo. Análisis sum … snum prod pnum … sp
Determinar productos existentes.[prod] Determinar número de los sum. de productos. [sp] Relación sum-sp. ¿Necesario? sp S P cant

9 Operaciones Matemáticas
Álgebra Relacional Procedural. Cómo se debe realizar una recuperación. Cálculo Relacional No procedural. Qué se quiere obtener sin decir qué operaciones se deben realizar para la recuperación.

10 Operaciones del álgebra relacional
Cada operador del álgebra relacional toma una o dos relaciones como entrada y produce una nueva relación como salida. Operaciones tradicionales de la teoría de conjuntos (unión, intersección, diferencia, producto cartesiano). Operaciones relacionales especiales (selección, proyección, concatenación, división).

11 Operaciones tradicionales de la Teoría de Conjuntos
Unión () Intersección () Diferencia (MENOS) Producto Cartesiano (POR)

12 A unión B (A  B) Es el conjunto de tuplos que pertenecen a A o a B (o a ambos) (donde A y B tienen el mismo grado y el i-ésimo atributo ( 1<= i <=n ) de cada uno está definido sobre el mismo dominio) A B

13 A intersección B (A B) A B
A intersección B es el conjunto de todas las tuplas que pertenecen a A y a B A B

14 Diferencia (A MENOS B) A B
Es el conjunto de todos las tuplas que pertenecen a A y no pertenecen a B A B

15 Producto Cartesiano (A POR B)
A POR B es el conjunto de tuplas t tales que t es la concatenación de una tupla a  A y una tupla b  B. En el caso de la operación producto cartesiano, A y B no tienen que ser del mismo grado y sus respectivos atributos no tienen que estar definidos en el mismo dominio.

16 Operaciones Especiales
Selección Proyección Concatenación División

17 Selección Sea  cualquier operador de comparación (     ). Entonces: RR.X  R.Y es el conjunto de todas las tuplas t de R tales que la comparación t.X  t.Y toma valor cierto, donde los atributos X y Y deben estar definidos en el mismo dominio y la operación  debe tener sentido en ese dominio.

18 Selección En lugar de X o Y se puede especificar una constante, por ejemplo: RR.X  const Las comparaciones  pueden ser combinadas con los operadores lógicos AND, OR y NOT Tuplas que complen con el criterio especificado

19 Proyección La proyección de una relación R sobre los atributos X,Y,...Z: R [x,y,...z] es el conjunto de todas las tuplas (x,y,..z) tales que una tupla t aparece en R con el valor x en X, y en Y, ...y z en Z.

20 Proyección Ningún atributo puede ser especificado más de una vez en la lista de atributos de la proyección. Omitir dicha lista es equivalente a especificar todos los atributos en su correspondiente orden de izquierda a derecha, o sea, dicha proyección sería idéntica a la relación dada. Se eliminan las tuplas repetidas.

21 Concatenación Sea  cualquier operador de comparación.
La concatenación- de una relación A sobre el atributo X con una relación B sobre el atributo Y, es el conjunto de todas las tuplas t tales que t es la concatenación de una tupla a  A y una tupla b  B y para las que el predicado a.x  b.y toma valor cierto. Debe cumplirse que los atributos a.x y b.y estén definidos sobre el mismo dominio y que la operación  tenga sentido en él.

22 Concatenación Si  es la comparación =, la operación se denomina "equijoin". Entonces, el resultado de un equijoin tiene que incluir dos atributos idénticos. Si uno de ellos se elimina, entonces el resultado se denomina concatenación natural (join natural) o simplemente concatenación (JOIN, que puede denotarse también *)

23 División La operación de división divide una relación dividiendo A de grado m+n entre una relación divisor B de grado n, produciendo una relación cociente de grado m. El atributo m+i de A y el atributo i-ésimo de B ( i = 1, 2, ..., n ) deben estar definidos sobre el mismo dominio.

24 Ejemplos: SUM (Snum, Snomb, Mun, Tipo)
PROD (Pnum, Pnomb, Precio, Peso) SP (S, P, Cantidad)

25 Ejemplo SP [S, P] ENTRE PROD [PNUM]
Obtener los números de los suministradores que suministran todos los productos. SP [S, P] ENTRE PROD [PNUM]

26 Prioridades Selección (+) Proyección Concatenación y División (-)

27 Ejemplos 1. Obtener los nombres de los suministradores que suministran el producto P2 ((SUM [SNOM.SNUM] JOIN SP) P='P2') [SNOM]

28 Ejemplos 2. Obtener los nombres de suministradores que suministran al menos un producto de precio=0.10 ((PROD PRECIO='0.10' [PNUM] JOIN SP [S,P]) [S] JOIN SUM) [SNOM]

29 Ejemplos (SP [S , P] ENTRE PROD [PNUM] JOIN SUM) [SNOM]
3. Obtener los nombres de suministradores que suministran todos los productos (SP [S , P] ENTRE PROD [PNUM] JOIN SUM) [SNOM]

30 Ejemplos SP [S , P] ENTRE SP S='S2' [P]
4. Obtener los números de los suministradores que sirven al menos todas las piezas suministradas por S2 SP [S , P] ENTRE SP S='S2' [P]

31 Ejemplo: "Obtener los números y municipios de los suministradores que sirven la Pieza P2" Álgebra: - Proyectar SUM en MUN y SNUM - Hacer un join de la proyección con SP - Seleccionar sobre la relación obtenida en el join los tuplos con P= 'P2' - Proyectar el resultado anterior sobre SNUM y MUN Cálculo: - Obtener SNUM y MUN para los suministradores tales que exista un suministro SP con el mismo valor de SNUM y con el valor de P='P2'

32 Características del cálculo relacional
La formulación del cálculo es "descriptiva" mientras que la algebraica es "prescriptiva“. El cálculo simplemente establece cuál es el problema, el álgebra da un procedimiento para resolver el problema. Es un hecho que el álgebra y el cálculo son equivalentes uno al otro. El cálculo relacional se basa en una rama de la lógica matemática llamada Cálculo de Predicados.

33 Variable de tupla Una variable de tupla es una variable que toma valores sobre una relación, o sea, una variable cuyos únicos valores permitidos son tuplas de la relación. En otras palabras, si la variable de tupla T toma valores sobre la relación R, entonces en cualquier momento del tiempo, T representa a algún tuplo t de R.

34 Variable de tupla Una variable de tupla se define: RANGE OF T IS R
(siendo T la variable de tupla y R una relación) RANGE OF SX IS SUM RANGE OF SY IS SUM RANGE OF PZ IS PROD RANGE OF PX IS PROD RANGE OF SPY IS SP

35 Expresiones del Cálculo Relacional
lista objeto: predicado lista objeto: especifica qué atributos y de qué relaciones se desean recuperar. Está formada por nombres calificados de atributos separados por comas (la calificación se hace sobre variables de tuplas). predicado: especifica las condiciones que deben verificar las tuplas seleccionadas y es opcional.

36 Cálculo Relacional El predicado puede estar formado por:
Comparación: Es una comparación (>, <, =, etc) entre dos nombres de atributos o entre un nombre de atributo y una constante. -(predicado) - NOT predicado - predicado AND predicado - predicado OR predicado -  nom-var (predicado) -  nom-var (predicado)

37 Variables libres Cada ocurrencia de una variable de tupla dentro de un predicado puede estar libre o acotada. 1. Dentro de una simple comparación todas las ocurrencias de variables de tuplas son libres. Ej: SX.SNUM = 'S1' SX.SNUM = SPX.S SPX.P /= PX.PNUM

38 Variables libres/acotadas
2. Las ocurrencias de variables de tuplas en los predicados (f), NOT (f) son libres o acotadas de acuerdo a si son libres o acotadas en f. Las ocurrencias de variables de tuplas en los predicados f AND g, f OR g son libres o acotados de acuerdo a si son libres o acotados en f o g (donde aparezcan). Ej: NOT SX.MUN = 'CERRO' SX.SNUM = SPX.S and SPX.P = PX.PNUM Don’t understand examples.

39 Uso de cuantificadores
3. Las ocurrencias de T que son libres en f son acotadas en los predicados.  T (f) existe un valor de T tal que cuando lo sustituimos en todas las ocurrencias libres de T en f, el predicado f toma valor verdadero.  T (f) cualquier valor que sustituyamos en las ocurrencias libres de T en f, hace que el predicado f tome valor verdadero.

40 Uso de cuantificadores
Otras ocurrencias de variables de tuplas en f son libres /acotadas en los predicados anteriores de acuerdo a si son libres o acotadas en f.

41 Cuantificadores. Ejemplos
 SPX (SPX.S=SX.SNUM and SPX.P='P2') Cada ocurrencia de SPX en este ejemplo está acotada. La única ocurrencia de SX es libre.  PX (PX.PRECIO='1.00') Las ocurrencias de PX son acotadas.

42 Ejemplos. Modelo de datos
SUM (Snum, Snomb, Mun, Tipo) PROD (Pnum, Pnomb, Precio, Peso) SP (S, P, Cantidad)

43 Ejemplos. Variables de tuplas
RANGE SX IS SUM RANGE SY IS SUM RANGE SZ IS SUM RANGE PX IS PROD RANGE PY IS PROD RANGE PZ IS PROD RANGE SPX IS SP RANGE SPY IS SP RANGE SPZ IS SP

44 Ejemplo No. 1 Obtener los números de suministradores del municipio "10 de Oct" con tipo > 20 SX.SNUM : SX.MUN = "10 de Octubre" AND SX.TIPO > 20

45 Ejemplo No. 2 Obtener los nombres de los suministradores que sirven el producto P2 SX.SNOM:  SPX (SPX.S = SX.SNUM and SPX.P = 'P2')

46 Ejemplo No. 3 Obtener los nombres de los suministradores que sirven, al menos, un producto de peso=30 SX.SNOM:  SPX (SX.SNUM=SPX.S and  PX (SPX.P=PX.PNUM and PX.PESO=30))

47 Ejemplo No. 4 Obtener los nombres de los suministradores que sirven al menos un producto suministrado también por S2 SX.SNOM:  SPX (SPX.S=SX.SNUM and  SPY (SPX.P=SPY.P and SPY.S='S2'))

48 Ejemplo No. 5 Obtener los nombres de los suministradores que sirven todos los productos SX.SNOM:  PX ( SPX(SPX.S=SX.SNUM and SPX.P = PX.PNUM)) sustituyendo el  : ( x(f) ­ NOT  x (NOT f) NOT  PX (NOT  SPX (SPX.S=SX.SNUM and SPX.P=PX.PNUM))

49 Ejemplo No. 6 Obtener los nombres de los suministradores que no sirven el producto P2 SX.SNOM: NOT  SPX(SPX.S=SX.SNUM and SPX.P = 'P2')

50 CONCLUSIONES

51 Álgebra Relacional. Conjunto no mínimo, de 8 operaciones. 5 primitivas
Unión Diferencia Producto Selección Proyección Expresa CÓMO recuperar la información existente en una BD.

52 Cálculo relacional. Necesidad de las variables de tuplas.
Composición del predicado. El predicado contiene exactamente a T, U,...V como variables libres, donde T, U, ...V serán las variables de tupla que aparecen en la lista objeto. Expresa QUÉ información se pretende recuperar de la BD.

53 Aplicación Las expresiones algebraicas pueden ser manipuladas para aumentar la eficiencia de las recuperaciones. El proceso de optimización debe realizarlo el SGBD. POR EJEMPLO: (SUM [SNUM] JOIN SP) P='P1' es equivalente a: SUM [SNUM] JOIN SP P='P1' La segunda expresión es más eficiente. ¿Por qué?


Descargar ppt "Conferencia 5. Álgebra y Cálculo Relacional."

Presentaciones similares


Anuncios Google