Álgebra Relacional (1 de 2)

Documentos relacionados
ESQUEMA DE BASE DE DATOS ATROPELLOS

álgebra relacional 2

TEMA 6.- LENGUAJES DE CONSULTA FORMALES.

Tema 8 Álgebra Relacional

Unidad 3. Álgebra Relacional y Cálculo Relacional

Codd propuso estos tres lenguajes como base teórica de cualquier lenguaje que quisiera cumplir con los requisitos formales del modelo.

Algebra Relacional. Bases de Datos 2 - Tecnologo de Informatica. BD2 - Algebra Relacoinal

4. Algebra relacional

Catedra de Base de Datos

Introducción al Álgebra Relacional

Algebra Relacional. Gestión y Modelación de Datos

El Modelo Relacional - Dinámica-

Cátedra de Base de Datos

BASES DE DATOS I. Algebra Relacional

Guía del Curso Curso de Bases de Datos Relacionales

El Modelo Relacional: Dinámica y Álgebra Relacional. El Modelo Relacional Tema 8

Operador Restricción

Conceptos básicos de álgebra relacional

Bases de Datos. Álgebra Relacional

S.Q.L. (Lenguaje de Consulta Estructurada) Consultas Avanzadas. Sistemas de Bases de Datos II - ITS EMT CETP

BASES DE DATOS (IG18 Semipresencial) El Modelo Relacional Algebra Relacional y SQL

Bases de Datos Distribuidas -Antecedentes

Algebra Relacional Algebra Relacional

Álgebra Relacional. Carlos A. Olarte BDI

Oracle Database 12c SQL and PLSQL Fundamentals

Tema 5 Algebra Relacional

FUNDAMENTOS DE LAS BASES DE DATOS ( ) Datos Generales

Bases de datos 1. Teórico: Algebra Relacional

Procesamiento de consultas (capítulo 13 y 14 del libro)

Concepto de modelo de datos Un modelo de datos es un conjunto de:

OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007

select nombre from profesores where categoria='aso6';

BB.DD. relacionales. BB. DD. Relacionales T Dpto. Lenguajes y Sistemas Informáticos. Universidad de Alicante

Guía práctica SQL. (c) Francisco Charte Ojeda

UNIDAD4. 1. Procedimentales 2. No Procedimentales

Operadores. Además se pueden emplear en sentencias SET.

1. DML. Las consultas multitabla

Esquema Lógico F1. EXAMEN 1 de diciembre de EQUIPO (NOMBRE:cadena) CP (NOMBRE) DIRECTOR (NOMBRE:cadena) CP (NOMBRE)

Consultas Complejas:

T2B01 Responde con verdadero o falso a las siguientes afirmaciones teniendo en cuenta el siguiente esquema entidad-relación Perros. 0..N 1..

BASES DE DATOS (IG18 Semipresencial) El Modelo Relacional Fundamentos del Modelo Relacional de Datos

Álgebra relacional. Álgebra Relacional. Franco Guidi Polanco. Semántica de los Operadores del Álgebra Relacional: Unión. Propiedad de cierre

Definición y manipulación de datos (UF2176)

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

Técnico en Sistemas de Almacenamiento

Algebra Relacional Curso Bases de Datos

SQL: Lenguaje de Interrogación Estructurado

Conceptos Avanzados de Bases de datos

Práctica 1: Introducción a las bases de datos relacionales.

BASES DE DATOS (curso 2003/2004)

SQL. Amparo López Gaona. México, D.F. Noviembre 2003

TEMA: CONSULTAS (ALGEBRA RELACIONAL Y SQL)

UNIDAD 3 MODELO RELACIONAL

Sistemas de Datos Curso: Ernesto Chinkes. SQL Básico Algebra Relacional

Lenguaje de Diseño. Primera Parte. Segundo Cuatrimestre 2017

SQL, Consultas. Son Importantes las Consultas? Cuál es el Resultado de SELECT? Andrés Moreno S.

Tema 2. Bases de Datos Relacionales

Introducción 1 Recuperación de Datos mediante la Sentencia SQL SELECT

Expresiones y sentencias

AR - Marco General. Álgebra Relacional AR - SELECT. AR - SELECT - Propiedades. 19/Agosto/2016

Práctica 3: El lenguaje SQL (1ª parte). Programa de prácticas: (5ª sesión). Lenguaje SQL: manipulación de datos (consulta y actualización):

BASES DE DATOS TEMA 3. MODELO RELACIONAL

Temario. Índices simples Árboles B Hashing

CC BASES DE DATOS OTOÑO 2018

Lenguaje de Diseño. Primera Parte. Resolución de Problemas y Algoritmos. Primer Cuatrimestre Ing. En Informática e Ing.

Expresiones y sentencias

CC BASES DE DATOS PRIMAVERA Clase 5: Álgebra Relacional. Aidan Hogan

Contenido. Prólogo... Prólogo a la edición en español Argumentos y proposiciones lógicas Introducción

Temario. Índices simples Árboles B Hashing

BASES DE DATOS. TEMA 6. El Álgebra Relacional

TEMA 4.. CONSULTA DE DATOS I.

Sistemas de Bases de Datos I. Modelo Lógico Modelo Relacional

Técnico Especialista TIC en Bases de Datos y Lenguajes Estructurales

Modelos de Datos. Modelo Entidad-Relación

Álgebra relacional. Franco Guidi Polanco. Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile

INTRODUCIR FORMULAS EN EXCEL

Transcripción:

Álgebra Relacional (1 de 2) T4.2006-07 Dpto. Lenguajes y Sistemas Informáticos Universidad de Alicante

Qué es el AR? Para qué sirve? Los que utiliza AR. Cómo se adaptan otros ya conocidos Cómo se usan los diferentes operadores del lenguaje Cómo construyo consultas con estos operadores

los lenguajes de especificación en el MR Codd propone 3 lenguajes teóricos en su teoría del MR álgebra relacional cálculo relacional de tuplas cálculo relacional de dominios para qué? base teórica declaración de los mínimos a cumplir por todo lenguaje relacional

los lenguajes de especificación en el MR y por qué sólo teóricos? falta de operadores básicos algunos escandalosos : No hay operadores aritméticos simples (sumas, restas, etc.) No hay operadores de manipulación de cadenas de caracteres....

álgebra relacional porqué álgebra? basado en álgebra de conjuntos usa 8 operadores con: R1 --- --- --- --- --- --- --- --- --- R2 --- --- --- --- --- --- --- --- --- operandos = relaciones resultado = relación Operador AR RS --- --- --- --- --- --- --- --- ---

los que necesitamos definir o redefinir: Relación y Esquema de relación Nombres Cualificados de Atributo y Alias de una relación Relación nominada y relación derivada Relaciones compatibles Operación conmutativa y operación asociativa

relación Relación matemática Orden entre las componentes de las tuplas Adaptación al MR: No orden entre las componentes de las tuplas El uso de nombres simbólicos de atributo evita el tener en cuenta la ordenación Adaptación al AR Volvemos a utilizar el orden de las componentes (de los atributos)

relación Adaptación al AR El conjunto de nombres de atributos es un conjunto ordenado Las tuplas son listas de valores (conjunto ordenado) tal que el i- ésimo valor pertenece al i-ésimo dominio asociado al i-ésimo nombre de atributo

esquema de relación es la descripción formal de la relación con sus atributos y dominios asociados. se aplica únicamente a las relaciones nominadas, aquellas descritas en el esquema lógico relacional.

esquema de relación R( A 1 :D 1, A 2 :D 2,..., A n :D n ) donde: R es el nombre de la relación A i es el nombre del atributo D i es el nombre del dominio asociado a A i únicamente para las relaciones descritas en el esquema de BD

nombre cualificado de atributo nombre completo del atributo. hace referencia a la relación a la que pertenece: R.A i el atributo A i de la relación R. evita la ambigüedad de atributos con el mismo nombre.

alias de una relación nombre alternativo de la relación dada una relación R se define un alias mediante la declaración: definir alias S para R se puede utilizar como nombre de la relación tanto R como S, y los nombres cualificados de atributos R.A i o S.A i, respectivamente

relación nominada es toda relación definida en el esquema lógico relacional constituyen nuestra base de datos

relación derivada es toda relación resultado de una expresión del Álgebra Relacional no tiene nombre ni alias como nombres de atributos usan los nombres cualificados de atributos de las relaciones operando siguiendo unas ciertas reglas dependiendo del operador y del orden de los operandos

relaciones compatibles dos relaciones R y S son compatibles si tienen la misma estructura: el mismo grado, y los mismos dominios asociados a los i-ésimos atributos R( A 1 :D 1, A 2 :D 2,..., A n :D n ) S( B 1 :E 1, B 2 :E 2,..., B m :E m ) R y S son compatibles si y sólo si: 1) n = m 2) i D i = E i (1 i n)

ejemplo de relaciones compatibles ALUMNOS (dni: domdni, nombre: domnombre, fechanacim: domfecha) EMPRESAS (cif: domdni, nombrecomercial: domnombre, fechaapertura: domfecha) mismo grado n=3 mismos dominios asociados al i- ésimo atributo

ejemplo de relaciones NO compatibles ALUMNOS (dni: domdni, nombre: domnombre, fechanacim: domfecha) ALUMNOS_ARQUITECTURA (dni: domdni, nombre: domnombre, fechanacim: domfecha, edificiosdestruidos: domcantidad)

ejemplo de relaciones NO compatibles ALUMNOS (dni: domdni, nombre: domnombre, fechanacim: domfecha) ALUMNOS_ARQUITECTURA (dni: domdni, nombre: domnombre, fechanacim: domfecha, edificiosdestruidos: domcantidad) diferente grado!!!

otro ejemplo de relaciones NO compatibles ALUMNOS (dni: domdni, nombre: domnombre, fechanacim: domfecha) PROFESORES (dni: domdni, nombre: domnombre, fechanacim: domfecha2)

otro ejemplo de relaciones NO compatibles ALUMNOS (dni: domdni, nombre: domnombre, fechanacim: domfecha) PROFESORES (dni: domdni, nombre: domnombre, fechanacim: domfecha2) diferentes dominios!!!

operación conmutativa una operación es conmutativa si se cumple A B = B A operación asociativa una operación es asociativa si se cumple (A B) C = A (B C)

operación conmutativa una operación es conmutativa si se cumple A B = B A No obstante, hay que tener en cuenta que las columnas de las relaciones una derivadas operación dependen es asociativa del si se orden cumple de los operandos operación asociativa (A B) C = A (B C)

operadores del AR según Codd, los operadores del AR se pueden dividir en 2 grupos: derivados de la teoría de conjuntos unión intersección diferencia producto cartesiano DONDE selección [ ] proyección división relacionales concatenación natural

operadores del AR otra clasificación: básicos (o primitivas) unión diferencia producto cartesiano DONDE selección [ ] proyección derivados intersección división concatenación natural

características básicas las operaciones son anidables (porque el resultado es otra relación) R S = D 1 D 1 O = D 2 R S O = D 2 hay precedencias por el uso de paréntesis R S = D 1 O D 1 = D 2 O ( R S ) = D 2

la consulta más básica en AR la consulta más básica en AR sería la que obtiene todos los datos de una relación uso: <operando> ejemplo: obtener los alumnos AR: alumno SQL: select * from alumno

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Peatones ( toda información disponible de los ) select * from peatones PEATONES

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Nombre de los peatones select nombre from peatones PEATONES [nombre]

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Nombre de los peatones de menos de 30 años select nombre from peatones where edad <= 30 PEATONES donde edad<=30 [nombre]

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Nombre de los peatones de menos de 30 años select nombre from peatones where edad <= 30 PEATONES [nombre] donde edad<=30 es lo mismo que PEATONES [nombre]

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Nombre de los peatones de entre 20 y 30 años select nombre from peatones where edad >= 20 and edad <= 30 PEATONES donde (edad >= 20 y edad <= 30) [nombre]

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Nombre y edad de los peatones de entre 20 y 30 años select nombre, edad from peatones where edad>=20 and edad<=30 PEATONES donde (edad>=20 y edad<=30) [nombre, edad]

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Nombre y edad de los peatones de entre 20 y 30 años select nombre from peatones where edad>=20 and edad<=30 PEATONES donde (edad>=20 y edad<=30) [nombre, edad] PEATONES [nombre, edad] donde (edad>=20 y edad<=30)

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Dni de los peatones atropellados select dni from atropellados ATROPELLADOS [dni]

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Dni de los peatones atropellados select dni from atropellados ATROPELLADOS [dni] Dni de los peatones select dni from peatones PEATONES [dni]

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Dni de los peatones que no han sido atropellados nunca select dni from peatones MINUS select dni from atropellados PEATONES [dni] (ATROPELLADOS [dni] )

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Secuencia de evaluación: PEATONES [dni] (ATROPELLADOS [dni] ) Primero, paréntesis; luego, de izquierda a derecha

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Secuencia de evaluación: PEATONES [dni] (ATROPELLADOS [dni] ) Primero, paréntesis; luego, de izquierda a derecha

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Secuencia de evaluación: PEATONES [dni] (ATROPELLADOS [dni] ) Primero, paréntesis; luego, de izquierda a derecha

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Secuencia de evaluación: PEATONES [dni] (ATROPELLADOS [dni] ) Primero, paréntesis; luego, de izquierda a derecha

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Secuencia de evaluación: PEATONES [dni] (ATROPELLADOS [dni] ) Primero, paréntesis; luego, de izquierda a derecha

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Secuencia de evaluación: PEATONES [dni] (ATROPELLADOS [dni] ) Primero, paréntesis; luego, de izquierda a derecha

Secuencia de evaluación: PEATONES [dni] (ATROPELLADOS [dni] ) álgebra relacional ATROPELLADOS =R1 R1 [dni] =R2 PEATONES =R3 R3 [dni] =R4 R4 R2 =S Atropellados.dni, Atropellados.mat Atropellados.dni Peatones.dni, Peatones.nombre, Peatones.edad Peatones.dni Peatones.dni

Secuencia de evaluación: PEATONES [dni] (ATROPELLADOS [dni] ) álgebra relacional ATROPELLADOS =R1 R1 [dni] =R2 PEATONES =R3 R3 [dni] =R4 R4 R2 =S Atropellados.dni, Atropellados.mat Atropellados.dni Peatones.dni, Peatones.nombre, Peatones.edad Peatones.dni Peatones.dni

Secuencia de evaluación: PEATONES [dni] (ATROPELLADOS [dni] ) álgebra relacional ATROPELLADOS =R1 R1 [dni] =R2 PEATONES =R3 R3 [dni] =R4 R4 R2 =S Atropellados.dni, Atropellados.mat Atropellados.dni Peatones.dni, Peatones.nombre, Peatones.edad Peatones.dni Peatones.dni

Secuencia de evaluación: PEATONES [dni] (ATROPELLADOS [dni] ) álgebra relacional ATROPELLADOS =R1 R1 [dni] =R2 PEATONES =R3 R3 [dni] =R4 R4 R2 =S Atropellados.dni, Atropellados.mat Atropellados.dni Peatones.dni, Peatones.nombre, Peatones.edad Peatones.dni Peatones.dni

Secuencia de evaluación: PEATONES [dni] (ATROPELLADOS [dni] ) álgebra relacional ATROPELLADOS =R1 R1 [dni] =R2 PEATONES =R3 R3 [dni] =R4 R4 R2 =S Atropellados.dni, Atropellados.mat Atropellados.dni Peatones.dni, Peatones.nombre, Peatones.edad Peatones.dni Peatones.dni

Secuencia de evaluación: PEATONES [dni] (ATROPELLADOS [dni] ) álgebra relacional ATROPELLADOS =R1 R1 [dni] =R2 PEATONES =R3 R3 [dni] =R4 R4 R2 =S Atropellados.dni, Atropellados.mat Atropellados.dni Peatones.dni, Peatones.nombre, Peatones.edad Peatones.dni Peatones.dni

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Nombre de los peatones que no han sido atropellados nunca PEATONES [dni] (ATROPELLADOS [dni] ) PEATONES [nombre]

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Nombre de los peatones que no han sido atropellados nunca PEATONES [dni] (ATROPELLADOS [dni] ) PEATONES [nombre] Atributos con =nombre e =dominio

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES PEATONES ATROPELLADOS sí (dni) COCHES ATROPELLADOS sí (matrícula) PEATONES COCHES NO

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Nombre de los peatones atropellados alguna vez select nombre from peatones, atropellados where peatones.dni=atropellados.dni PEATONES ATROPELLADOS [nombre]

PEATONES nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS matrícula: dommat) CP (dni, matrícula) CAj (dni) PEATONES CAj (matrícula) COCHES Nombre de los peatones atropellados alguna vez select nombre from peatones, atropellados where peatones.dni=atropellados.dni PEATONES [nombre] ATROPELLADOS INCORRECTO!

Resumen Proyección selecciona columnas (select) Selección selecciona filas (where) elimina las que no cumplen la condición Concatenación natural relaciona filas de distintas tablas (automatiza el where de varias tablas) Diferencia filtra filas (minus) elimina las que sí cumplen la condición Producto cartesiano todas las posibles combinaciones de filas (from)