Conferencia 5. Álgebra y Cálculo Relacional.

Slides:



Advertisements
Presentaciones similares
Tipos de Datos.
Advertisements

Propiedad Intelectual Cpech PPTCAC033MT21-A16V1 Números complejos Propiedad Intelectual Cpech ACOMPAÑAMIENTO ANUAL BLOQUE 21.
PROGRAMACIÓN I CENTRO DE ESTUDIOS INTEGRADOS EL MARISCAL - CEIM Ing. Luisa Fernanda Arenas Castañeda Feb 6 de 2016.
LOGICA Y MATEMATICA COMPUTACIONAL Profesora Responsable: Esp. Prof. Liliana Caputo.
Algebra de Boole SISTEMAS DIGITALES I.  En 1854 el matemático inglés George Boole formalizó un sistema algebraico de dos valores para expresar cierto.
TEMA 1: TEMA 1: INTRODUCCIÓN A LA ESTADÍSTICA Por: Denise Muñoz Belmonte Claudia Morales Cerezuela.
RECONOCES Y REALIZAS OPERACIONES CON DISTINTO TIPO DE FUNCIONES PROFESORA: XÓCHITL ARIANDA RUIZ ARMENTA MATEMÁTICAS 4 4TO SEMESTRE ENERO 2015 MULTIVERSIDAD.
República Bolivariana de Venezuela Instituto Universitario Politécnico “Santiago Mariño" Estadísticas I - OV Estadística Profesor : Bachiller: Pedro Beltrán.
Ing. Sergio Valladares Castillo Base de Datos I Algebra Relacional.
1 EXPRESIONES ALGEBRAICAS Por ejemplo: ¿Qué es una Expresión Algebraica? Es una combinación de letras y números ligada por los signos de las operaciones:
El poder generalizador de los SIMBOLOS
Conferencia 7. Lenguaje SQL Estándar. Ejemplos.
FUNCIONES, PROSESAMIENTO ELEMENTAL DE DATOS
MEDIDAS Y ERRORES.
SQL: Structured Query Language
DE PRIMERO Y SEGUNDO GRADO Diseño: M. en C. Juan Adolfo Alvarez Mtz.
2. Simplificación de funciones booleanas: Método de Karnaugh
DIVISIÓN DE CIENCIAS BÁSICAS COORDINACIÓN DE MATEMÁTICAS
. Primera Open Class Asignatura: Programación Estructurada Tema:
Conferencia 2. Modelo Relacional. Teoría de la Normalización.
Apuntes de Matemáticas 3º ESO
CONJUNTOS Álgebra Superior
FUNCIONES, PROCESAMIENTO ELEMENTAL DE DATOS
Por Irma, Mario, Briana, Juan Profr. Gerardo 6 grado
DOMINIO Y RANGO DE UNA FUNCIÓN.
Introducción al Muestreo Msc Edwin Giron Amaya
Tema: ECUACIONES DE PRIMER Y SEGUNDO GRADO CON UNA INCÓGNITA
SQL 2: Structured Query Language
METODOLOGÍA DE LA PROGRAMACIÓN
Álgebra relacional.
Demanda Indica la cantidad de un bien que los consumidores están dispuestos a comprar en función de su precio. Existe una clara relación entre el precio.
Conferencia 4. Normalización. Forma Normal de Boyce – Codd (FNBC)
Lógica de Proposiciones y Predicados
Tema 4 Elementos para el Desarrollo de Algoritmos
Conceptos Basicos de Álgebra
Conjuntos La guía sencilla Guía basada en :
Descripción e interpretación de la estadística
UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE CIENCIAS ADMINISTRATIVAS
Tema 6. Conceptos básicos de programación Clase 1
FÓRMULAS Una fórmula es la representación de una operación aritmética en una hoja de cálculo. Características: Siempre comienza por el signo igual(=) ó.
MODELO RELACIONAL.
EXPRESIONES Una expresión es una forma especial de asignación.
Introducción ACTIVIDAD: magnitudes Conceptos:
PROBABILIDAD Y ESTADÍSTICA
y pensamiento algebraico
Retroalimentación ejercicios de tarea. Ejercicios para resolver 1.¿Cuántos bytes hay exactamente en un sistema que contiene a.32 Kbytes b.64 Mbytes c.6.4.
DOCENTE: ANGEL PALACIO BIENVENIDOS AL MUNDO DEL
CONCEPTOS BÁSICOS DE COMPUTACIÓN E HISTORIA
ESTADÍSTICA BÁSICA.
Tipos de Datos abstractos
Introducción a los algoritmos
Tipos de Datos abstractos
POLINOMIOS p(x) = p0 + p1x + p2x2 + p3x3 + … + pnxn pn ≠ 0
Tema 3: Operadores Antonio J. Sierra.
Ejemplos Cálculo Relacional
CONJUNTOS Álgebra Superior
Presentan:. Presentan: Estadística Historia y Conceptos Básicos.
Operadores básicos- Modelos geomáticos (Macro Modeler)
Operaciones combinadas
Diego Hernández R Algoritmos Diego Hernández R
Diego Hernández R Algoritmos Diego Hernández R
LENGUAJES DE BASES DE DATOS: CÁLCULO RELACIONAL
Expresiones algorítmicas
Eduardo Cruz Pérez.
Lenguaje Algebraico. Término Algebraico Es una combinación de letras, números y signos de operaciones. Ejemplo: 3b² Para escribir una Término algebraica.
CC Bases de Datos Otoño 2019 Clase 4: El Álgebra Relacional
ALGEBRA RELACIONAL UNIDAD 3 ALGEBRA RELACIONAL. INTRODUCCIÓN Se forma a partir de la matemática formal Creada por Edgar Frank Codd en 1972 Concede comportamineto.
EXPRESIONES ALGEBRAICAS
Tema 8. Estructuras de decisión. Clases 1 y 2.
1 Números racionales Organiza las ideas Conjuntos de números
Transcripción de la presentación:

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

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

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.

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

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 150-182, 198-218.

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

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.

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

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.

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).

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

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

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

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

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.

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

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.

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

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.

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.

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.

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 *)

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.

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

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]

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

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

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]

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]

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]

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'

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.

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.

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

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.

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)

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

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.

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.

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.

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.

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

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

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

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')

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))

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'))

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))

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')

CONCLUSIONES

Á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.

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.

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é?