ESCUELA : NOMBRES: BASE DE DATOS I CICLO Ciencias de la Computación Ing. Juan Carlos Morocho OCTUBRE 2009 – FEBRERO 2010 BIMESTRE: I BIMESTRE
Capítulo 4 Álgebra relacional y  Cálculo relacional Transparencias
Capítulo 4 - Objetivos El significado del término «completud relacional». Cómo construir consultas en álgebra relacional. Cómo construir consultas en el cálculo relacional de tuplas. Cómo construir consultas en el cálculo relacional de dominios. Las categorías de lenguajes de manipulación de datos relacionales (DML,  Data Manipulation Language ).
Introducción El álgebra relacional y el cálculo relacional son lenguajes formales asociados al modelo relacional. De manera informal el álgebra relacional es un lenguaje procedimental (de alto nivel) y el cálculo relacional un lenguaje no procedimental. Sin embargo, formalmente, ambos lenguajes son equivalentes entre sí.
Álgebra relacional Las operaciones de álgebra relacional se aplican a una o más relaciones para definir otra relación sin modificar las relaciones originales. Tanto los operandos  como los resultados son relaciones de manera que la salida de una operación puede utilizarse como entrada de otra.
Álgebra relacional Existen cinco operaciones básicas en al álgebra relacional: selección, proyección, producto cartesiano, unión y diferencia de conjuntos.  Estas permiten realizar la mayoría de las operaciones de extracción de datos que nos interesan. También existen la combinación, intersección y la división, que pueden expresarse en términos de las cinco operaciones básicas.
Operaciones de álgebra relacional Selección Proyección Producto cartesiano Diferencia de conjuntos Intersección Unión
Operaciones de álgebra relacional Combinación natural Semicombinación Combinación externa izquierda División (área sombreada) Ejemplo de división
Selección (o Restricción)  predicate  (R) La operación de selección se aplica a una única relación R y define otra relación que contiene únicamente aquellas tuplas de R que satisfacen la condición ( predicado ) especificada.
Ejemplo - Selección (o Restricción) Enumerar todos los miembros del personal cuyo salario sea superior a 10.000 euros.  salary > 10000  (Staff)
Proyección  col1, . . . , coln (R) Se aplica a una única relación R y define otra relación que contiene un subconjunto vertical de R, extrayendo los valores de los atributos especificados y eliminando los duplicados. © Pearson Education Limited 1995, 2005
Ejemplo - Proyección Generar una lista de salarios para todo el personal, mostrando solamente los detalles referidos a los atributos  staffNo ,  fName ,  lName , y  salary .  staffNo, fName, lName, salary (Staff)
Unión R    S La unión de dos relaciones R y S define una relación que contiene todas las tuplas de R, de S o tanto de R como de S, eliminándose las tuplas duplicadas.  R y S tienen que ser compatibles con respecto a la unión.
Ejemplo - Unión Enumerar todas las ciudades en las que exista una sucursal, o un inmueble en alquiler.  city (Branch)      city (PropertyForRent)
Diferencia de conjuntos R – S Define una relación compuesta por las tuplas que encuentran en la relación R pero no en S.  R y S deben ser compatibles con respecto a la unión.
Ejemplo – Diferencia de conjuntos Enumerar todas las ciudades en las que exista una sucursal pero no haya inmuebles en alquiler.  city (Branch) –   city (PropertyForRent)
Intersección R    S Define una relación compuesta por el conjunto de todas las tuplas que existen tanto en R como en S.  R y S deben ser compatibles con respecto a la unión. Expresándolo con operaciones básicas: R    S = R – (R – S)
Ejemplo - Intersección Enumerar todas las ciudades en las que exista tanto una sucursal como al menos un inmueble en alquiler.  city (Branch)      city (PropertyForRent)
Producto cartesiano R X S Define una relación que es la concatenación de cada tupla de la relación R con cada tupla de la relación S. © Pearson Education Limited 1995, 2005
Ejemplo – Producto cartesiano Enumerar los nombres y comentarios de todos los clientes que hayan visto un inmueble en alquiler. (  clientNo, fName, lName (Client)) X (  clientNo, propertyNo, comment  (Viewing))
Operaciones de combinación La combinación es una derivada del producto cartesiano. Equivalente a realizar una operación de selección utilizando el predicado de combinación como fórmula se selección sobre el producto cartesiano de las dos relaciones que funcionan como operando.
Operaciones de combinación Existen varias formas de operación de combinación Combinación theta  Equicombinación (un tipo particular de combinación theta) Combinación natural Combinación externa Semicombinación
Combinación Theta (  -combinación) R  F S Defina una relación que contiene tuplas del producto cartesiano que satisfacen el predicado F.  El predicado tiene la forma R.a i     S.b i  donde    puede ser uno de los operadores de comparación (<,   , >,   , =,   ).
Combinación Theta (  -combinación) Puede ser reescrita en términos de las operaciones básicas de selección y producto cartesiano. R  F S =   F (R    S)
Ejemplo - Equicombinación  Enumerar los nombres y comentarios de todos los clientes que hayan visitado un inmueble en alquiler. (  clientNo, fName, lName (Client))  Client.clientNo = Viewing.clientNo  (  clientNo, propertyNo, comment (Viewing))
Combinación natural R  S La combinación natural entre las dos relaciones R y S sobre todos los atributos comunes. De los resultados se elimina una de las dos apariciones de cada atributo común.
Ejemplo – Combinación natural Enumerar los nombres y comentarios de todos los clientes que hayan visitado un inmueble en alquiler. (  clientNo, fName, lName (Client))  (  clientNo, propertyNo, comment (Viewing))
Combinación externa Se emplea para incluir en la relación resultante las tuplas que no tengan valores correspondientes en los atributos comunes de S. R  S La combinación externa izquierda (natural) es aquella combinación que también incluye en el resultado las tuplas de R que no tienen valores correspondientes en los atributos comunes de S.
Ejemplo – Combinación externa izquierda Generar un informe de estado sobre las visitas de los inmuebles.  propertyNo, street, city (PropertyForRent)  Viewing
Semicombinación R  F  S Define una relación que contiene las tuplas de R que participan en la combinación de R con S. © Pearson Education Limited 1995, 2005
Ejemplo - Semicombinación Enumerar los detalles completos de todos los empleados que trabajen en la sucursal de Glasgow. Staff  Staff.branchNo=Branch.branchNo (  city=‘Glasgow’ (Branch)) © Pearson Education Limited 1995, 2005
División R    S Define una relación sobre los atributos C que está compuesta por el conjunto de tuplas de R que se corresponden con la combinación de  todas  las tuplas de S. © Pearson Education Limited 1995, 2005
Ejemplo - División Identificar todos los clientes que hayan visto todos los inmuebles con tres habitaciones. (  clientNo, propertyNo (Viewing))     (  propertyNo (  rooms = 3  (PropertyForRent)))
Cálculo relacional Las consultas de cálculo relacional especifican  qué  hay que extraer, en lugar de  cómo  extraerlo. En la lógica de primer orden o cálculo de predicados, un predicado es una función booleana con argumentos.  Cuando asignamos valores a los argumentos la función nos proporciona una expresión, denominada  proposición , que puede ser verdadera o falsa.
Cálculo relacional Si el predicado contiene una variable (Ej. ‘ x  es miembro del personal’), tiene que existir un rango asociado para  x .  Cuando sustituimos algunos de los valores de este rango por x, la proposición puede ser verdadera; para otros valores puede ser falsa.  Aplicado a las bases de datos se puede encontrar en dos formas:  tuplas  y  dominios .
Cálculo relacional de tuplas Lo que nos interesa es localizar las tuplas para las que un cierto predicado sea verdadero. Es un cálculo basado en el uso de  variables de tuplas .  Una variable de tuplas es una variable que «toma sus valores» en una determinada relación: Ej. una variable cuyos únicos valores permitidos son las tuplas de la relación.  Especificar el rango de una variable de tupla S de forma que el rango sea la relación  Staff :  Staff(S) Para extraer el conjunto de todas las tuplas S tales que F(S) sea verdadera: {S | F(S)}
Cálculo relacional de tuplas - Ejemplo Para obtener los detalles de todos los empleados que ganen más de 10.000 euros: {S | Staff(S)    S.salary > 10000} Para extraer un atributo concreto, como  salary , escribiríamos: {S.salary | Staff(S)    S.salary > 10000}
Cálculo relacional de tuplas Podemos usar dos  cuantificadores  para decir a cuántas instancias se aplica el predicado: Cuantificador existencial  Э  («existe»)  Cuantificador universal  ˅  («para todo»)  Las variables de tupla cualificadas mediante  ˅  or  Э  se denominan  variables legadas , mientras que si no están cualificadas se denominan  variables libres .
Cálculo relacional de tuplas  El cuantificador existencial se utiliza en fórmulas que deben ser ciertas para al menos una instancia, como en: Staff(S)    ( Э B)(Branch(B)     (B.branchNo = S.branchNo)    B.city = ‘London’) Significa «Existe una tupla de Branch que tiene el mismo valor de branchNo que el valor de branchNo correspondiente a la tupla actual de Staff,  S , y cuya ciudad correspondiente es Londres».
Cálculo relacional de tuplas El cuantificador universal se utiliza en enunciados que deben ser ciertos para todas las instancias, como en: (&quot;B) (B.city    ‘Paris’) Significa «No existe ninguna sucursal en París».  También podemos usar ~( Э B) (B.city = ‘Paris’) que significa «no existe ninguna sucursal situada en París».
Ejemplo – Cálculo relacional de tuplas Enumerar los nombres de todos los gerentes que ganen más de 25.000 euros. {S.fName, S.lName | Staff(S)     S.position = ‘Manager’    S.salary > 25000}
Cálculo relacional de dominios Utiliza variables que toman sus valores de  dominios  de atributos, en lugar de tomarlos de tuplas de alguna relación.  Si F( d 1 ,  d 2 , . . . ,  d n ) representa una fórmula compuesta de átomos y  d 1 ,  d 2 , . . . ,  d n  representa variables de dominio, entonces: { d 1 ,  d 2 , . . . ,  d n  | F( d 1 ,  d 2 , . . . ,  d n )} Es una expresión en el cálculo relacional de dominios.
Ejemplo – Cálculo relacional de dominios Hallar los nombres de  todos los gerentes que ganen más de 25.000 euros. {fN, lN | ( Э sN, posn, sex, DOB, sal, bN)  (Staff (sN, fN, lN, posn, sex, DOB, sal, bN)   posn = ‘Manager’    sal > 25000)} © Pearson Education Limited 1995, 2005
Ejemplo – Cálculo relacional de dominios Enumerar los empleados que gestionan inmuebles en alquiler en Glasgow. {sN, fN, lN, posn, sex, DOB, sal, bN |  ( Э sN1,cty)(Staff(sN,fN,lN,posn,sex,DOB,sal,bN)   PropertyForRent(pN, st, cty, pc, typ, rms,  rnt, oN, sN1, bN1)     (sN=sN1)    cty=‘Glasgow’)}
Cálculo relacional de dominios Cuando se restringe el cálculo relacional de dominios a expresiones seguras es equivalente al cálculo relacional de tuplas restringido también a expresiones segura, y ambos son a su vez equivalentes al álgebra relacional.  Esto quiere decir que toda expresión relacional tiene una expresión equivalente en el cálculo relacional y  vice versa .
Otros lenguajes Los lenguajes orientados a transformación son lenguajes no procedimentales que utilizan relaciones para transformar los datos de entrada en las salidas requeridas (Ej. SQL). Los lenguajes gráficos proporcionan al usuario una imagen o ilustración de la estructura de la relación. El usuario rellena un ejemplo de lo que desea y el sistema devuelve los datos requeridos en dicho formato (Ej. QBE,  Query-By-Example ).
Otros lenguajes Los lenguajes de cuarta generación (4GL,  Fourth Generation Languages , permiten crear una aplicación personalizada completa utilizando un conjunto limitado de comandos en un entorno amigable y frecuentemente basado en menús. Algunos sistemas aceptan algún tipo de  lenguaje natural , que suele ser una versión restringida del inglés, lo que a veces se denomina lenguajes de quinta generación (5GL,  Fifth Generation Languages ). Estos desarrollos se encuentran todavía en una etapa temprana.
 

Más contenido relacionado

PPTX
Normalizacion de bases de datos
PPTX
Pilas, colas, y listas estructura de datos
DOCX
Listas como estructura de datos..
PPTX
Crear base de datos mysql command
DOCX
Codigo para crear la base de datos
DOCX
Aplicaciones de los árboles y grafos
PPTX
Programación 3: colas
PPTX
Unidad 1 introducción a las estructuras de datos
Normalizacion de bases de datos
Pilas, colas, y listas estructura de datos
Listas como estructura de datos..
Crear base de datos mysql command
Codigo para crear la base de datos
Aplicaciones de los árboles y grafos
Programación 3: colas
Unidad 1 introducción a las estructuras de datos

La actualidad más candente (20)

PPTX
Algebra relacional
DOCX
Pilas como estructura de datos..
PDF
Programa de Pila Estática
PPT
El modelo entidad_relacion
PDF
Ejercicios packet tracer_completo_2014
DOCX
Metodo de la burbuja en algoritmo
PDF
Estructura de Datos - árboles y grafos
PPTX
Lenguaje de programacion c#
PDF
Modelo relacional
PDF
3. Modelo Relacional
PPTX
Listas
PPTX
Normalización Usando Dependencias Funcionales - Segunda Forma Normal
DOCX
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
PPTX
Tipos de listas en estructura de datos
PPTX
12 reglas de codd
PPT
Historia de la base de datos
DOCX
RESUMEN DE LA LÓGICA DE LOS PREDICADOS
PPTX
Java con base de datos
ODP
Bases de Datos - Parte 5/10 Modelo relacional
PPT
Pilas
Algebra relacional
Pilas como estructura de datos..
Programa de Pila Estática
El modelo entidad_relacion
Ejercicios packet tracer_completo_2014
Metodo de la burbuja en algoritmo
Estructura de Datos - árboles y grafos
Lenguaje de programacion c#
Modelo relacional
3. Modelo Relacional
Listas
Normalización Usando Dependencias Funcionales - Segunda Forma Normal
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Tipos de listas en estructura de datos
12 reglas de codd
Historia de la base de datos
RESUMEN DE LA LÓGICA DE LOS PREDICADOS
Java con base de datos
Bases de Datos - Parte 5/10 Modelo relacional
Pilas
Publicidad

Destacado (20)

PPSX
1.2 hidrostatica
PDF
Bases de Datos - Parte 6/10 Álgebra relacional
PPTX
Algebra relacional fundamentos de base de datos
DOCX
Operaciones básicas utilizadas en álgebra relacional
PPTX
Optimizing distributed queries
PDF
CV-Ahmed Mostafa
PPTX
Calculo relacional
PPTX
CALCULO RELACIONAL
PPTX
Calculo relacional
PPTX
Algebra relacional
PPTX
Cálculo relacional
PPTX
PPTX
Introducción a las bases de datos2
PDF
Curso de bases de dtos
DOCX
Ejercicios áLgebra Relacional
PDF
Algebra y calculo relacional
PPTX
Calculo relacional de base de datos
PDF
Algebra Relacional
PPTX
Comandos básicos mysql
PPT
Algebra relacional
1.2 hidrostatica
Bases de Datos - Parte 6/10 Álgebra relacional
Algebra relacional fundamentos de base de datos
Operaciones básicas utilizadas en álgebra relacional
Optimizing distributed queries
CV-Ahmed Mostafa
Calculo relacional
CALCULO RELACIONAL
Calculo relacional
Algebra relacional
Cálculo relacional
Introducción a las bases de datos2
Curso de bases de dtos
Ejercicios áLgebra Relacional
Algebra y calculo relacional
Calculo relacional de base de datos
Algebra Relacional
Comandos básicos mysql
Algebra relacional
Publicidad

Similar a Bases de Datos Cap:IV (20)

PDF
bd2-teorico01.pdf
DOCX
Unidad v algebra relacional
DOCX
unidad v Algebra Relacinal
PPTX
Calculo relacional1
PDF
Base de datos relacionales algebra relacional
PPTX
ÁLGEBRA RELACIONAL
PPTX
Algebra relacional
PPTX
Algebra relacional
PDF
Algebra relacional
DOCX
Algebra relacional
PPT
Ud2 el modelo relacional
PPTX
Tema4 algebra relacional
PDF
presentacion
PPTX
Algebra relacional
PPT
Operaciones Relacionales
DOCX
Algebra relacional (operaciones)
PPTX
Algebra Relacional
PPTX
Clase algebra relacional .pptx
DOCX
Algebra relacional
PPTX
Relaciones y Grafos
bd2-teorico01.pdf
Unidad v algebra relacional
unidad v Algebra Relacinal
Calculo relacional1
Base de datos relacionales algebra relacional
ÁLGEBRA RELACIONAL
Algebra relacional
Algebra relacional
Algebra relacional
Algebra relacional
Ud2 el modelo relacional
Tema4 algebra relacional
presentacion
Algebra relacional
Operaciones Relacionales
Algebra relacional (operaciones)
Algebra Relacional
Clase algebra relacional .pptx
Algebra relacional
Relaciones y Grafos

Más de Videoconferencias UTPL (20)

PPT
La oración en clave de espiritualidad misionera
PPTX
Asesoria trabajo fin de titulacion (Lineas y proyectos de investigación )
PPTX
Asesoria trabajo fin de titulacion (objetivos y planificacion)
PPTX
Generos graficos
PPTX
Periodismo digital
PPTX
PPTX
La entrevista
PPTX
PPTX
Generos periodisticos
PPT
Biología general
PPT
Introducción a las ciencias ambientales
PPT
Expresion oral y escrita
PPT
Matematicas I
PPT
Contabilidad general I
PPT
Realidad Nacional
PPT
Aplicación de nuevas tecnologías
PPT
Marketing y protocolo empresarial
PPT
Gerencia educativa
PPT
Toma de decisiones
PPT
Ejercicios fonetica y fonologia
La oración en clave de espiritualidad misionera
Asesoria trabajo fin de titulacion (Lineas y proyectos de investigación )
Asesoria trabajo fin de titulacion (objetivos y planificacion)
Generos graficos
Periodismo digital
La entrevista
Generos periodisticos
Biología general
Introducción a las ciencias ambientales
Expresion oral y escrita
Matematicas I
Contabilidad general I
Realidad Nacional
Aplicación de nuevas tecnologías
Marketing y protocolo empresarial
Gerencia educativa
Toma de decisiones
Ejercicios fonetica y fonologia

Último (20)

PPTX
TEMA 1ORGANIZACIÓN FUNCIONAL DEL CUERPO, MEDIO INTERNO Y HOMEOSTASIS (3) [Aut...
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE_COM.pdf
PDF
Como Potenciar las Emociones Positivas y Afrontar las Negativas Ccesa007.pdf
PPTX
BIZANCIO. EVOLUCIÓN HISTORICA, RAGOS POLÍTICOS, ECONOMICOS Y SOCIALES
PPTX
4. Qué es un computador PARA GRADO CUARTO.pptx
PDF
Como usar el Cerebro en las Aulas SG2 NARCEA Ccesa007.pdf
PDF
Teologia-Sistematica-Por-Lewis-Sperry-Chafer_060044.pdf
DOC
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
PDF
RM2025 - FUNDAMENTOS TEÓRICOS - PEDIATRÍA.pdf
PDF
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
PDF
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
DOC
Manual de Convivencia 2025 actualizado a las normas vigentes
DOCX
PLANES DE área ciencias naturales y aplicadas
PDF
Jodorowsky, Alejandro - Manual de Psicomagia.pdf
PDF
Nadie puede salvarte excepto Tú - Madame Rouge Ccesa007.pdf
PPTX
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
PDF
TALLER DE ESTADISTICA BASICA para principiantes y no tan basicos
PDF
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
PDF
La lluvia sabe por qué: una historia sobre amistad, resiliencia y esperanza e...
DOCX
TEXTO DE TRABAJO DE EDUCACION RELIGIOSA - CUARTO GRADO.docx
TEMA 1ORGANIZACIÓN FUNCIONAL DEL CUERPO, MEDIO INTERNO Y HOMEOSTASIS (3) [Aut...
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE_COM.pdf
Como Potenciar las Emociones Positivas y Afrontar las Negativas Ccesa007.pdf
BIZANCIO. EVOLUCIÓN HISTORICA, RAGOS POLÍTICOS, ECONOMICOS Y SOCIALES
4. Qué es un computador PARA GRADO CUARTO.pptx
Como usar el Cerebro en las Aulas SG2 NARCEA Ccesa007.pdf
Teologia-Sistematica-Por-Lewis-Sperry-Chafer_060044.pdf
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
RM2025 - FUNDAMENTOS TEÓRICOS - PEDIATRÍA.pdf
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
Manual de Convivencia 2025 actualizado a las normas vigentes
PLANES DE área ciencias naturales y aplicadas
Jodorowsky, Alejandro - Manual de Psicomagia.pdf
Nadie puede salvarte excepto Tú - Madame Rouge Ccesa007.pdf
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
TALLER DE ESTADISTICA BASICA para principiantes y no tan basicos
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
La lluvia sabe por qué: una historia sobre amistad, resiliencia y esperanza e...
TEXTO DE TRABAJO DE EDUCACION RELIGIOSA - CUARTO GRADO.docx

Bases de Datos Cap:IV

  • 1. ESCUELA : NOMBRES: BASE DE DATOS I CICLO Ciencias de la Computación Ing. Juan Carlos Morocho OCTUBRE 2009 – FEBRERO 2010 BIMESTRE: I BIMESTRE
  • 2. Capítulo 4 Álgebra relacional y Cálculo relacional Transparencias
  • 3. Capítulo 4 - Objetivos El significado del término «completud relacional». Cómo construir consultas en álgebra relacional. Cómo construir consultas en el cálculo relacional de tuplas. Cómo construir consultas en el cálculo relacional de dominios. Las categorías de lenguajes de manipulación de datos relacionales (DML, Data Manipulation Language ).
  • 4. Introducción El álgebra relacional y el cálculo relacional son lenguajes formales asociados al modelo relacional. De manera informal el álgebra relacional es un lenguaje procedimental (de alto nivel) y el cálculo relacional un lenguaje no procedimental. Sin embargo, formalmente, ambos lenguajes son equivalentes entre sí.
  • 5. Álgebra relacional Las operaciones de álgebra relacional se aplican a una o más relaciones para definir otra relación sin modificar las relaciones originales. Tanto los operandos como los resultados son relaciones de manera que la salida de una operación puede utilizarse como entrada de otra.
  • 6. Álgebra relacional Existen cinco operaciones básicas en al álgebra relacional: selección, proyección, producto cartesiano, unión y diferencia de conjuntos. Estas permiten realizar la mayoría de las operaciones de extracción de datos que nos interesan. También existen la combinación, intersección y la división, que pueden expresarse en términos de las cinco operaciones básicas.
  • 7. Operaciones de álgebra relacional Selección Proyección Producto cartesiano Diferencia de conjuntos Intersección Unión
  • 8. Operaciones de álgebra relacional Combinación natural Semicombinación Combinación externa izquierda División (área sombreada) Ejemplo de división
  • 9. Selección (o Restricción)  predicate (R) La operación de selección se aplica a una única relación R y define otra relación que contiene únicamente aquellas tuplas de R que satisfacen la condición ( predicado ) especificada.
  • 10. Ejemplo - Selección (o Restricción) Enumerar todos los miembros del personal cuyo salario sea superior a 10.000 euros.  salary > 10000 (Staff)
  • 11. Proyección  col1, . . . , coln (R) Se aplica a una única relación R y define otra relación que contiene un subconjunto vertical de R, extrayendo los valores de los atributos especificados y eliminando los duplicados. © Pearson Education Limited 1995, 2005
  • 12. Ejemplo - Proyección Generar una lista de salarios para todo el personal, mostrando solamente los detalles referidos a los atributos staffNo , fName , lName , y salary .  staffNo, fName, lName, salary (Staff)
  • 13. Unión R  S La unión de dos relaciones R y S define una relación que contiene todas las tuplas de R, de S o tanto de R como de S, eliminándose las tuplas duplicadas. R y S tienen que ser compatibles con respecto a la unión.
  • 14. Ejemplo - Unión Enumerar todas las ciudades en las que exista una sucursal, o un inmueble en alquiler.  city (Branch)   city (PropertyForRent)
  • 15. Diferencia de conjuntos R – S Define una relación compuesta por las tuplas que encuentran en la relación R pero no en S. R y S deben ser compatibles con respecto a la unión.
  • 16. Ejemplo – Diferencia de conjuntos Enumerar todas las ciudades en las que exista una sucursal pero no haya inmuebles en alquiler.  city (Branch) –  city (PropertyForRent)
  • 17. Intersección R  S Define una relación compuesta por el conjunto de todas las tuplas que existen tanto en R como en S. R y S deben ser compatibles con respecto a la unión. Expresándolo con operaciones básicas: R  S = R – (R – S)
  • 18. Ejemplo - Intersección Enumerar todas las ciudades en las que exista tanto una sucursal como al menos un inmueble en alquiler.  city (Branch)   city (PropertyForRent)
  • 19. Producto cartesiano R X S Define una relación que es la concatenación de cada tupla de la relación R con cada tupla de la relación S. © Pearson Education Limited 1995, 2005
  • 20. Ejemplo – Producto cartesiano Enumerar los nombres y comentarios de todos los clientes que hayan visto un inmueble en alquiler. (  clientNo, fName, lName (Client)) X (  clientNo, propertyNo, comment (Viewing))
  • 21. Operaciones de combinación La combinación es una derivada del producto cartesiano. Equivalente a realizar una operación de selección utilizando el predicado de combinación como fórmula se selección sobre el producto cartesiano de las dos relaciones que funcionan como operando.
  • 22. Operaciones de combinación Existen varias formas de operación de combinación Combinación theta Equicombinación (un tipo particular de combinación theta) Combinación natural Combinación externa Semicombinación
  • 23. Combinación Theta (  -combinación) R F S Defina una relación que contiene tuplas del producto cartesiano que satisfacen el predicado F. El predicado tiene la forma R.a i  S.b i donde  puede ser uno de los operadores de comparación (<,  , >,  , =,  ).
  • 24. Combinación Theta (  -combinación) Puede ser reescrita en términos de las operaciones básicas de selección y producto cartesiano. R F S =  F (R  S)
  • 25. Ejemplo - Equicombinación Enumerar los nombres y comentarios de todos los clientes que hayan visitado un inmueble en alquiler. (  clientNo, fName, lName (Client)) Client.clientNo = Viewing.clientNo (  clientNo, propertyNo, comment (Viewing))
  • 26. Combinación natural R S La combinación natural entre las dos relaciones R y S sobre todos los atributos comunes. De los resultados se elimina una de las dos apariciones de cada atributo común.
  • 27. Ejemplo – Combinación natural Enumerar los nombres y comentarios de todos los clientes que hayan visitado un inmueble en alquiler. (  clientNo, fName, lName (Client)) (  clientNo, propertyNo, comment (Viewing))
  • 28. Combinación externa Se emplea para incluir en la relación resultante las tuplas que no tengan valores correspondientes en los atributos comunes de S. R S La combinación externa izquierda (natural) es aquella combinación que también incluye en el resultado las tuplas de R que no tienen valores correspondientes en los atributos comunes de S.
  • 29. Ejemplo – Combinación externa izquierda Generar un informe de estado sobre las visitas de los inmuebles.  propertyNo, street, city (PropertyForRent) Viewing
  • 30. Semicombinación R F S Define una relación que contiene las tuplas de R que participan en la combinación de R con S. © Pearson Education Limited 1995, 2005
  • 31. Ejemplo - Semicombinación Enumerar los detalles completos de todos los empleados que trabajen en la sucursal de Glasgow. Staff Staff.branchNo=Branch.branchNo (  city=‘Glasgow’ (Branch)) © Pearson Education Limited 1995, 2005
  • 32. División R  S Define una relación sobre los atributos C que está compuesta por el conjunto de tuplas de R que se corresponden con la combinación de todas las tuplas de S. © Pearson Education Limited 1995, 2005
  • 33. Ejemplo - División Identificar todos los clientes que hayan visto todos los inmuebles con tres habitaciones. (  clientNo, propertyNo (Viewing))  (  propertyNo (  rooms = 3 (PropertyForRent)))
  • 34. Cálculo relacional Las consultas de cálculo relacional especifican qué hay que extraer, en lugar de cómo extraerlo. En la lógica de primer orden o cálculo de predicados, un predicado es una función booleana con argumentos. Cuando asignamos valores a los argumentos la función nos proporciona una expresión, denominada proposición , que puede ser verdadera o falsa.
  • 35. Cálculo relacional Si el predicado contiene una variable (Ej. ‘ x es miembro del personal’), tiene que existir un rango asociado para x . Cuando sustituimos algunos de los valores de este rango por x, la proposición puede ser verdadera; para otros valores puede ser falsa. Aplicado a las bases de datos se puede encontrar en dos formas: tuplas y dominios .
  • 36. Cálculo relacional de tuplas Lo que nos interesa es localizar las tuplas para las que un cierto predicado sea verdadero. Es un cálculo basado en el uso de variables de tuplas . Una variable de tuplas es una variable que «toma sus valores» en una determinada relación: Ej. una variable cuyos únicos valores permitidos son las tuplas de la relación. Especificar el rango de una variable de tupla S de forma que el rango sea la relación Staff : Staff(S) Para extraer el conjunto de todas las tuplas S tales que F(S) sea verdadera: {S | F(S)}
  • 37. Cálculo relacional de tuplas - Ejemplo Para obtener los detalles de todos los empleados que ganen más de 10.000 euros: {S | Staff(S)  S.salary > 10000} Para extraer un atributo concreto, como salary , escribiríamos: {S.salary | Staff(S)  S.salary > 10000}
  • 38. Cálculo relacional de tuplas Podemos usar dos cuantificadores para decir a cuántas instancias se aplica el predicado: Cuantificador existencial Э («existe») Cuantificador universal ˅ («para todo») Las variables de tupla cualificadas mediante ˅ or Э se denominan variables legadas , mientras que si no están cualificadas se denominan variables libres .
  • 39. Cálculo relacional de tuplas El cuantificador existencial se utiliza en fórmulas que deben ser ciertas para al menos una instancia, como en: Staff(S)  ( Э B)(Branch(B)  (B.branchNo = S.branchNo)  B.city = ‘London’) Significa «Existe una tupla de Branch que tiene el mismo valor de branchNo que el valor de branchNo correspondiente a la tupla actual de Staff, S , y cuya ciudad correspondiente es Londres».
  • 40. Cálculo relacional de tuplas El cuantificador universal se utiliza en enunciados que deben ser ciertos para todas las instancias, como en: (&quot;B) (B.city  ‘Paris’) Significa «No existe ninguna sucursal en París». También podemos usar ~( Э B) (B.city = ‘Paris’) que significa «no existe ninguna sucursal situada en París».
  • 41. Ejemplo – Cálculo relacional de tuplas Enumerar los nombres de todos los gerentes que ganen más de 25.000 euros. {S.fName, S.lName | Staff(S)  S.position = ‘Manager’  S.salary > 25000}
  • 42. Cálculo relacional de dominios Utiliza variables que toman sus valores de dominios de atributos, en lugar de tomarlos de tuplas de alguna relación. Si F( d 1 , d 2 , . . . , d n ) representa una fórmula compuesta de átomos y d 1 , d 2 , . . . , d n representa variables de dominio, entonces: { d 1 , d 2 , . . . , d n | F( d 1 , d 2 , . . . , d n )} Es una expresión en el cálculo relacional de dominios.
  • 43. Ejemplo – Cálculo relacional de dominios Hallar los nombres de todos los gerentes que ganen más de 25.000 euros. {fN, lN | ( Э sN, posn, sex, DOB, sal, bN) (Staff (sN, fN, lN, posn, sex, DOB, sal, bN)  posn = ‘Manager’  sal > 25000)} © Pearson Education Limited 1995, 2005
  • 44. Ejemplo – Cálculo relacional de dominios Enumerar los empleados que gestionan inmuebles en alquiler en Glasgow. {sN, fN, lN, posn, sex, DOB, sal, bN | ( Э sN1,cty)(Staff(sN,fN,lN,posn,sex,DOB,sal,bN)  PropertyForRent(pN, st, cty, pc, typ, rms, rnt, oN, sN1, bN1)  (sN=sN1)  cty=‘Glasgow’)}
  • 45. Cálculo relacional de dominios Cuando se restringe el cálculo relacional de dominios a expresiones seguras es equivalente al cálculo relacional de tuplas restringido también a expresiones segura, y ambos son a su vez equivalentes al álgebra relacional. Esto quiere decir que toda expresión relacional tiene una expresión equivalente en el cálculo relacional y vice versa .
  • 46. Otros lenguajes Los lenguajes orientados a transformación son lenguajes no procedimentales que utilizan relaciones para transformar los datos de entrada en las salidas requeridas (Ej. SQL). Los lenguajes gráficos proporcionan al usuario una imagen o ilustración de la estructura de la relación. El usuario rellena un ejemplo de lo que desea y el sistema devuelve los datos requeridos en dicho formato (Ej. QBE, Query-By-Example ).
  • 47. Otros lenguajes Los lenguajes de cuarta generación (4GL, Fourth Generation Languages , permiten crear una aplicación personalizada completa utilizando un conjunto limitado de comandos en un entorno amigable y frecuentemente basado en menús. Algunos sistemas aceptan algún tipo de lenguaje natural , que suele ser una versión restringida del inglés, lo que a veces se denomina lenguajes de quinta generación (5GL, Fifth Generation Languages ). Estos desarrollos se encuentran todavía en una etapa temprana.
  • 48.  

Notas del editor