Join (naturale) Join. Join. Join

Documenti analoghi
Dati una relazione r(x) e un sottoinsieme Y di X, la proiezione di r su Y si indica con

Modulo 2 Data Base 3

Proiezione. Proiezione. Join. Operatore monadico Produce un risultato che

Operatori derivati dagli insiemi

Il theta-join, espresso come prodotto cartesiano seguito da una selezione, è il tipo di join operativamente più generale. Infatti:

Operatori derivati dagli insiemi. Algebra Relazionale. Unione. Operatori derivati dagli insiemi

Vincoli di Integrità Referenziale

Linguaggi per basi di dati

Join. il Join è l'operatore più interessante dell'algebra relazionale permette di correlare dati in relazioni diverse 20/03/2006 1

Parte III L algebra relazionale

Parte III. L algebra relazionale

Dichiarativi : specificano le proprietà del risultato ("che cosa") Procedurali specificano le modalità di generazione del risultato ("come")

Tipi di operatori. Gli operatori dell algebra relazionale sono classificabili nelle seguenti categorie:

Corso di Informatica

Basi di dati Algebra relazionale Figure ed esempi

Operatori derivati dagli insiemi. Algebra Relazionale. Unione. Operatori derivati dagli insiemi

Aggiornamenti e Interrogazioni

Esercitazione 1. ogni tupla contribuisce al risultato: Impiegato Reparto Rossi. Bruni. Bianchi

Equivalenze di espressioni. Equivalenze. Equivalenze. Atomizzazione delle selezioni ( F 2 (E)) Idempotenza delle proiezioni

Left Join, Right Join, Full Join

Modulo 2 Data Base 2

Basi di dati e Relazioni

Esercitazione 1. ogni tupla contribuisce al risultato: Impiegato Reparto Rossi. Bruni. Bianchi

ALGEBRA RELAZIONALE. DB -Algebra Relazionale 1

Linguaggi per basi di dati e SQL

Linguaggi per basi di dati. Linguaggi per basi di dati e SQL. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione

Linguaggi per basi di dati. Interrogazione delle basi di dati. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione

Interrogazioni (Query) Esempi. Esempi. Esempi

Algebra relazionale. Algebra relazionale. Operatori dell algebra relazionale. Operatori dell algebra relazionale. Algebra relazionale.

Linguaggi per basi di dati ALGEBRA RELAZIONALE. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione

Operazioni. Lezione 8. Operazioni Relazionali. Operazioni insiemistiche Intersezione: Operazioni insiemistiche Unione:

Equivalenza di Espressioni Algebriche

ALGEBRA RELAZIONALE ALGEBRA RELAZIONALE

Fondamenti di Teoria delle Basi di Dati

Decomposizione senza perdita

Lezione 6. Algebra e Calcolo Relazionale

3 Algebra Relazionale

OPERATORI RELAZIONALI. prima RIPASSIAMO COSA ABBIAMO IMPARATO

Esercitazione 1 Algebra relazionale

Il Modello Relazionale e le operazioni

Modulo 8 I data base Unità 5 Le Query

Algebra Relazionale.

Tornando all esempio..

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica I Modulo Basi di dati a.a

Accesso ai dati di un DB. Algebra relazionale. Accesso ai dati di un DB. Algebra relazionale

Algebra relazionale (versione formale )

Il linguaggio SQL. TUTORATO DIFONDAMENTI DIINFORMATICA

Basi di dati. Giuseppe De Giacomo. Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma

Linguaggi per Basi di Dati - 1. Algebra Relazionale. Algebra Relazionale. Linguaggi per Basi di Dati - 2. Operatori Insiemistici.

ALGEBRA'RELAZIONALE'

Università di Roma La Sapienza Laurea in Ingegneria Informatica. Basi di Dati. Anno Accademico 2003/2004 Canale M-Z.

LA NORMALIZZAZIONE. Prima parte

L algebra relazionale

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a

Operatori di base. σ F (r) = {t t r. F(t) = true} SELEZIONE σ F (r)

L algebra relazionale in RA

Basi di dati. Maurizio Lenzerini Dipartimento di Ingegneria Informatica Automatica e Gestionale Antonio Ruberti Università di Roma La Sapienza

ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a

SQL QUERY: Le interrogazioni del database

Basi di dati e Relazioni

Corso di Basi di Dati

Introduzione. Il Modello Relazionale. Relazioni e Tabelle. Relazioni Matematiche - 1. Relazioni Matematiche - 2. Relazioni Matematiche - 3

Modello relazionale e algebra relazionale

Elementi di Informatica LB Basi di Dati. Anno accademico 2007/2008 Prof. Stefano Contadini

Basi di dati. Gabriella Trucco

Algebra Relazionale.

(Lezione SQL 3) Barbara Di Camillo Dipartimento di Ingegneria dell Informazione. Università degli Studi di Padova

Corso di Informatica

L algebra relazionale

Basi di Dati: Corso di laboratorio

BASE DI DATI. collezione di dati, utilizzati per rappresentare le. (accezione specifica) collezione di dati gestita da un DBMS. (accezione generica)

L algebra relazionale

Elena Baralis 2007 Politecnico di Torino 1

Il modello relazionale

Introduzione all algebra relazionale. Prof. Giovanni Giuffrida

Le relazioni hanno una naturale rappresentazione per mezzo di. D. Gubiani Il Modello Relazionale 3

Algebra e Calcolo relazionale. Algebra e calcolo relazionale (parte 1)

Elena baralis 2007 Politecnico di Torino 1

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica I Modulo Basi di dati a.a

Modello relazionale e algebra relazionale

Corso di Basi di Dati

D B M G. Sistemi informativi. Modello relazionale e algebra relazionale. Modello relazionale. Algebra relazionale

Elena baralis 2007 Politecnico di Torino 1

ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a

Elena baralis 2007 Politecnico di Torino 1

Corso sul linguaggio SQL

Una relazione con anomalie

Algebra relazionale D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2012/13

Basi di dati. Linguaggi di interrogazione

Tecniche di normalizzazione

MODULO Il sistema azienda. Sistema Informativo e Informatico Requisiti dei dati

Basi di dati Maurizio Lenzerini Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza

Linguaggi di interrogazione

L algebra relazionale

Maschere e Query. C. Marrocco. Università degli Studi di Cassino

Lezione 5. Algebra relazionale

DataBase Management System - DBMS

Corso di Basi di Dati A.A. 2013/2014

Basi di Dati. Dettagli e Approfondimenti

Transcript:

Combinando selezione e proiezione, si possono estrarre informazioni da una sola relazione. Non si possono però correlare informazioni presenti in relazioni diverse Il join è l'operatore più interessante (potente) dell'algebra relazionale in quanto permette di correlare dati presenti in relazioni diverse (naturale) E l operatore più caratteristico dell algebra relazionale, che evidenzia la proprietà del modello relazionale di essere basato su valori. Non ha un corrispettivo nella teoria degli insiemi. L operatore di join (naturale) correla dati contenuti in relazioni diverse. Il suo risultato è una relazione definita sull unione degli schemi degli operandi, le cui tuple sono ottenute combinando le tuple degli operandi che hanno valori uguali su attributi comuni (con lo stesso nome). Il join naturale r 1 r 2 di r 1 (X 1 ) e r 2 (X 2 ) è una relazione definita su X 1 X 2 (che si può scrivere X 1 X 2 ) r 1 r 2 = { t su X 1 X 2 t[x 1 ] r 1 e t[x 2 ] r 2 } Il grado della relazione ottenuta è minore o uguale alla somma dei gradi delle due relazioni in quanto gli attributi omonimi compaiono una sola volta. Per questo motivo la definizione implica che una tupla del risultato sia ottenuta concatenando ogni tupla della prima relazione con ogni tupla della seconda in cui gli attributi comuni hanno lo stesso valore. Se X 1 X 2 è vuoto il join naturale equivale al prodotto cartesiano fra le relazioni. Non ci sono attributi comuni e ogni tupla della prima relazione può concatenarsi con ogni tupla della seconda Se X 1 = X 2 il join naturale equivale all intersezione fra le relazioni. Infatti, ogni tupla può concatenarsi solo con se stessa e quindi, se è presente nel risultato finale (cioè se è presente in entrambe le relazioni), resta immutata. 1

Due casi limite: Se ciascuna tupla di ciascun operando contribuisce ad almeno una tupla del risultato il join si dice completo. Se per alcune tuple non è verificata la corrispondenza e non contribuiscono al risultato, le tuple si dicono dangling. join vuoto, nessuna tupla degli operandi è combinabile ciascuna delle tuple di un operando è combinabile con tutte le tuple dell altro. In questo caso il risultato è pari al prodotto cartesiano degli operandi. Il secondo caso richiede: che esistano attributi comuni che assumono lo stesso valore per ogni tupla di entrambi gli operandi (che, quindi, non contengono informazione significativa) oppure che non vi siano attributi comuni. Mori Neri runi ianchi Mori Neri runi ianchi runi ogni tupla contribuisce al risultato: il join è completo Un non completo Neri ianchi Mori C runi Neri Mori ianchi Mori 2

Un vuoto D Mori Neri C runi ianchi : proprietà r 1 r 2 contiene un numero di tuple compreso fra zero (risultato = insieme vuoto) e il prodotto di r 1 e r 2 (risultato = prodotto cartesiano) Se r 1 r 2 è completo allora contiene un numero di tuple pari almeno al massimo fra r 1 e r 2 (nessuna tupla resta esclusa, quindi tutte le tuple della relazione di cardinalità maggiore partecipano sicuramente al join) Se X 1 X 2 contiene una chiave per r 2, allora r 1 (X 1 ) r 2 (X 2 ) contiene al più r 1 tuple (ogni tupla di r 1 si associa al più a una tupla di r 2 ). : proprietà se il join coinvolge una chiave di r 2 e un vincolo di integrità referenziale da r 1 a r 2, allora il numero di tuple è pari a r 1 (ogni tupla di r 1 si associa ad una e una sola tupla di r 2 ) r 1 r 2 = r 2 r 1 il join è commutativo (r 1 r 2 ) r 3 = r 1 (r 2 r 3 ) il join è associativo Quindi sequenze di join possono essere scritte senza parentesi Per correlare attributi con nome diverso (se cioè X 1 X 2 è vuoto) è possibile fare il theta-join, definito come un prodotto cartesiano seguito da una selezione r 1 F r 2 = F (r 1 r 2 ) dove F è la condizione di selezione. Se F è una condizione di uguaglianza fra un attributo della prima relazione e uno della seconda, allora siamo in presenza di un equi-join. E il tipo di join più comune. Sono importanti formalmente: il join naturale è basato sui nomi degli attributi equi-join e theta-join sono basati sui valori 3

Neri ianchi Codice Capo Mori runi JOIN Reparto=Codice Codice Capo Mori Neri runi Neri ianchi Mori runi Neri runi ianchi Mori ianchi runi naturale ed equi-join PROJ Impiegato,Reparto,Capo ( SEL Reparto=Codice ( JOIN ) ) Codice Capo JOIN Reparto=Codice (equi-join) equivale a (ridenominazione + join naturale) JOIN (REN Reparto Codice ()) ma anche (theta-join, accetta qualsiasi pred. logico) esterni Il join naturale non include nel risultato le tuple in cui non c è corrispondenza fra gli attributi legati dal join (tuple dangling). Si definiscono altri tipi di join, in cui vengono considerate anche le tuple dangling, utilizzando valori nulli dove non vi sia corrispondenza. sinistro (r 1 JOIN LEFT r 2 ) Contribuiscono tutte le tuple di r 1, eventualmente estese con valori nulli relativamente agli attributi di r 2 se non c è corrispondenza destro (r 1 JOIN RIGHT r 2 ) Contribuiscono tutte le tuple di r 2, eventualmente estese con valori nulli relativamente agli attributi di r 1 se non c è corrispondenza completo o full join (r 1 JOIN FULL r 2 ) Contribuiscono tutte le tuple di r 1 e r 2, eventualmente estese con valori nulli relativamente agli attributi dell altra relazione se non c è corrispondenza 4

Neri ianchi Mori C runi Neri ianchi Mori C runi JOIN LEFT Neri Mori ianchi Mori NULL JOIN RIGHT Neri Mori ianchi Mori NULL C runi Neri ianchi JOIN FULL Mori C runi Neri Mori ianchi Mori NULL NULL C runi e proiezioni: problemi Neri ianchi Mori C runi Neri Mori ianchi Mori Neri ianchi Mori 5

e proiezioni: problemi Neri Mori ianchi runi Verdi ini Neri Mori ianchi runi Verdi ini Neri Mori ianchi runi Neri runi ianchi Mori Verdi ini e proiezioni: proprietà Date due relazioni R 1(X 1 ) e R 2(X 2 ) X1 (R 1 R 2 ) R 1 X2 (R 1 R 2 ) R 2 Se proietto il risultato del join sullo schema di una delle due relazioni ne ottengo un sottoinsieme. Infatti, se non c è corrispondenza fra alcune tuple di R 1 e di R 2, tali tuple sono dangling e vengono escluse dal join. Se si tenta quindi di ricostruire le due relazioni originali si ha perdita di informazione. e proiezioni: proprietà R(X), X = X 1 X 2 ( X1 (R)) ( X2 (R)) R Se scompongo lo schema di una relazione R in due sottoschemi X 1 e X 2, R è contenuta nella relazione che si ottiene effettuando il join fra le proiezioni di R su di essi. 6