Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere.

Slides:



Advertisements
Presentazioni simili
Interrogazioni Semplici Le operazioni di interrogazione vengono specificate per mezzo dellistruzione select select ListaAttributi from ListaTabelle [where.
Advertisements

DB -Algebra Relazionale
Calcolo Relazionale.
Algebra e calcolo relazionale (parte 2)
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Algebra relazionale Presentazione 12.1
Interrogazione di una base di dati relazionale Algebra relazionale.
1 Algebra Relazionale Eugenio Di Sciascio. 2 Introduzione Lalgebra relazionale è un linguaggio procedurale: le operazioni vengono specificate descrivendo.
Operazioni Relazionali
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Istruzione SELECT (versione base)
Corso di Informatica (Programmazione)
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
11/10/2001Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 1 Viste (relazioni derivate) Rappresentazioni diverse per gli stessi dati (schema esterno)schema.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Conoscenza e ragionamento Logica dei predicati del primo ordine.
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Logica dei predicati del primo ordine.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Proiezione Dati una relazione r(X) e un sottoinsieme Y di X, la proiezione di r su Y si indica con Y ( r ) o PROJ Y ( r ) ed è linsieme di tuple su Y ottenute.
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Join e proiezioni: problemi ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo BMori CBruni NeriBMori ImpiegatoRepartoCapo BianchiBMori ImpiegatoReparto.
Manipolazione dei dati I comandi SQL che permettono di modificare il contenuto di una base di dati sono insertdeleteupdate insert ha la seguente sintassi:
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Capitolo 4:SQL 16/10/2002.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Capitolo 3: ALGEBRA E CALCOLO RELAZIONALE 10/10/2002.
Basi di dati Claudia Raibulet
MODELLO LOGICO DEI DATI
Introduzione a Oracle 9i
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
Algebra relazionale. Accesso ai dati di un DB Aggiornamento di DB: funzione che, data istanza di DB, produce altra istanza di DB, sullo stesso schema.
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Una convenzione e notazione alternativa per i join Nota: è sostanzialmente l'approccio usato in SQL Ignoriamo il join naturale (cioè non consideriamo implicitamente.
Microsoft Access Query (II), filtri.
Esercizi su ALGEBRA RELAZIONALE
Algebra relazionale. Accesso ai dati di un DB Aggiornamento di DB: funzione che, data istanza di DB, produce altra istanza di DB, sullo stesso schema.
Le query in SQL Unità didattica sviluppata per l’ITIS “A. Volta” – Classe 5 sez. I Ing Domenico Liguori - Università degli studi di Napoli “Federico.
ALGEBRA RELAZIONALE. Algebra Relazionale2  Le basi di dati rappresentano le informazioni di interesse per applicazioni che gestiscono i dati  E’ importante.
ALGEBRA E CALCOLO RELAZIONALE
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
Algebra relazionale (III). Esempi di Interrogazioni: 3 Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di Tutti gli impiegati?
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
Interrogazioni (parte 2)
Algebra relazionale. Accesso ai dati di un DB Aggiornamento di DB: funzione che, data istanza di DB, produce altra istanza di DB, sullo stesso schema.
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
1 Il modello relazionale. 2 Introduzione Il modello relazionale, sebbene non sia stato il modello usato nei primi DBMS, e' divenuto lentamente il modello.
Rappresentazione dell'informazione
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Join Proprietà Il join di r 1 e r 2 contiene un numero di tuple compreso fra zero e il prodotto di |r 1 | e |r 2 | se il join di r 1 e r 2 è completo allora.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
Join Se ciascuna tupla di ciascun operando contribuisce ad almeno una tupla del risultato il join si dice completo. Se per alcune tuple non è verificata.
Vincoli interrelazionali
Raggruppamenti e target list scorretta select padre, avg(f.reddito), p.reddito from persone f join paternita on figlio = nome join persone p on padre =
S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni) Normalizzazione di Schemi.
Algebra relazionale (II). Join esterni Per combinare sempre le tuple di due relazioni, anche quando non ci sono corrispondenze tra i valori degli attributi.
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Eprogram informatica V anno.
Informatica Introduzione alle basi di dati Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Approfondimenti SQL.
L’Algebra Relazionale
Operazioni Relazionali
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
Operazioni con gli insiemi
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
SQL Linguaggio per l’interrogazione di una base dati.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Selezione e Proiezione
Vincoli di Integrità Non tutte le combinazioni possibili di valori dei domini su cui è definita una relazione sono accettabili. Alcuni attributi possono.
Transcript della presentazione:

Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere la soluzione. Operatori: unione intersezione differenza derivati dalla teoria degli insiemi ridenominazione selezione proiezione specifici dellalgebra relazionale join può assumere diverse forme (naturale, theta-join, prodotto cartesiano)

Operatori derivati dagli insiemi Le relazioni sono insiemi e quindi è naturale estendere ad esse le operazioni tipiche della teoria degli insiemi. Il risultato di unoperazione fra relazioni DEVE essere una relazione. Le relazioni sono insiemi di tuple omogenee e quindi ha senso definire ed applicare tali operatori solo a tuple definite sugli stessi attributi. Es. lunione fra due relazioni su tuple non omogenee non è una relazione.

Operatori derivati dagli insiemi Unione Lunione fra due relazioni r 1 e r 2 definite sullo stesso insieme X si indica con r 1 r 2 ed è una relazione su X contenente le tuple appartenenti a r 1, a r 2 o ad entrambe. Intersezione Lintersezione fra due relazioni r 1 e r 2 definite sullo stesso insieme X si indica con r 1 r 2 ed è una relazione su X contenente le tuple appartenenti sia a r 1 che a r 2. Differenza La differenza fra due relazioni r 1 e r 2 definite sullo stesso insieme X si indica con r 1 - r 2 ed è una relazione su X contenente le tuple appartenenti a r 1 ma non a r 2.

Laureati Matricola Età Nome Neri Verdi Rossi Quadri Matricola Età Nome Neri Verdi Neri Laureati Quadri MatricolaEtàNome Neri Verdi Neri Rossi Neri Verdi Rossi Neri Verdi Neri Neri Verdi Neri Rossi Unione

Laureati Matricola Età Nome Neri Verdi Rossi Quadri Matricola Età Nome Neri Verdi Neri Laureati Quadri MatricolaEtàNome Neri Verdi Neri Verdi Neri Verdi Neri Verdi Intersezione

Laureati MatricolaEtàNome Neri Verdi Rossi Quadri Matricola Età Nome Neri Verdi Neri Laureati – Quadri MatricolaEtàNome Neri Verdi Rossi Neri Verdi Rossi Differenza

Ridenominazione In algebra relazionale si ha corrispondenza fra attributi mediante il nome. La ridenominazione consente di modificare il nome di un attributo per associarlo ad un altro in una operazione algebrica. Ad es. rende compatibili due attributi con nome diverso quando ha senso fare lunione fra le relazioni cui appartengono. Si indica con nuovonome vecchionome ( Relazione ) Es. da Paternità( Padre,Figlio ) e Maternità( Madre,Figlio ) è possibile ottenere Genitore Padre ( Paternità ) Genitore Madre ( Maternità )

REN Genitore Padre (Paternità) REN Genitore Madre (Maternità) GenitoreFiglio AdamoCaino AbramoIsacco AdamoAbele GenitoreFiglio EvaSet SaraIsacco EvaAbele GenitoreFiglio AdamoCaino AbramoIsacco AdamoAbeleEvaSet SaraIsacco EvaAbele REN Genitore Padre (Paternità) REN Genitore Madre (Maternità)

Selezione e Proiezione Le operazioni di selezione e di proiezione si applicano ad una relazione e ne restituiscono una porzione. Possono essere considerate ortogonali o complementari, in quanto una opera sulle righe e laltra sulle colonne. La selezione produce un insieme di tuple, definite su tutti gli attributi della relazione. La proiezione produce un risultato definito su un insieme limitato di attributi, cui contribuiscono tutte le tuple.

selezione proiezione

Selezione La selezione produce una nuova relazione definita sugli stessi attributi della relazione cui è applicata, contenente solamente le tuple di questultima che soddisfano una specifica condizione di selezione. Si indica con F ( r ) o SEL F ( r ) dove: F è una condizione da verificare r è la relazione a cui la selezione è applicata Quindi F (r) produce una relazione, sullo stesso schema di r, contenente tutte le tuple per le quali F è vera.

Selezione, sintassi e semantica sintassi SEL Condizione (Operando) Condizione: espressione booleana (come quelle dei vincoli di tupla) semantica il risultato contiene le tuple dell'operando che soddisfano la condizione

Selezione La condizione di selezione F è una formula proposizionale su X, cioè una formula ottenuta combinando con i simboli (and) (or) (not) espressioni del tipo A B o A c è un operatore di confronto (,,,, ) A e B sono attributi di X su cui il confronto abbia senso c è una costante tale che il confronto con A sia definito E definito un valore di verità di F su una tupla t: A B è vera se e solo se t[A] t[B] è vero A c è vera se t[A] c è vera F 1 F 2, F 1 F 2, F hanno lusuale significato

Impiegati CognomeFilialeStipendioMatricola NeriMilano RossiRoma NeriNapoli Milano CognomeFilialeStipendioMatricola NeriMilano RossiRoma NeriNapoli Milano Impiegati ( che guadagnano piu di 50 ) Milano NeriNapoli SEL Stipendio > 50 (Impiegati)

Selezione con valori nulli CognomeFilialeEtàMatricola NeriMilano RossiRoma BruniMilano NULL 9553 Impiegati SEL Età>30 (Persone) SEL Età 30 (Persone) Persone Perché? Perché le selezioni vengono valutate separatamente! Ma anche SEL Età>30 Età 30 (Persone) Persone Perché? Perché anche le condizioni atomiche vengono valutate separatamente!

Selezione con valori nulli Per riferirsi ai valori nulli esistono forme apposite di condizioni: IS NULL IS NOT NULL SEL Età>30 (Persone) SEL Età 30 (Persone) SEL Età IS NULL (Persone) = SEL Età>30 Età 30 Età IS NULL (Persone) = Persone

Proiezione Dati una relazione r(X) e un sottoinsieme Y di X, la proiezione di r su Y si indica con Y ( r ) o PROJ Y ( r ) ed è linsieme di tuple su Y ottenute dalle tuple di r considerando solo i valori su Y. Y ( r ) = { t[Y] | t r } Una proiezione ha un numero di tuple minore o uguale rispetto alla relazione r cui è applicata. Il numero di tuple è uguale se e solo se Y è superchiave per r.

Proiezione operatore monadico produce un risultato che possiede parte degli attributi dell'operando contiene tuple cui contribuiscono tutte le tuple dell'operando sintassi PROJ ListaAttributi (Operando) semantica il risultato contiene le tuple che si ottengono restringendo tutte le tuple dell'operando agli attributi nella lista (ed eliminando gli eventuali duplicati)

CognomeFilialeStipendioMatricolaNeriMilano NeriNapoli RossiRoma RossiRoma visualizzare matricola e cognome di tutti gli impiegati PROJ Matricola, Cognome (Impiegati) CognomeFilialeStipendioMatricola NeriMilano NeriNapoli RossiRoma RossiRoma PROJ Cognome, Filiale (Impiegati) visualizzare cognome e filiale di tutti gli impiegati

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 Join

E loperatore più caratteristico dellalgebra relazionale, che evidenzia la proprietà del modello relazionale di essere basato su valori. Non ha un corrispettivo nella teoria degli insiemi. Loperatore di join (naturale) correla dati contenuti in relazioni diverse. Il suo risultato è una relazione definita sullunione degli insiemi di attributi degli operandi, le cui tuple sono ottenute combinando le tuple degli operandi che hanno valori uguali su attributi comuni (con lo stesso nome).

Join 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 al grado della somma dei gradi delle due relazioni in quanto gli attributi omonimi compaiono una sola volta. Se X 1 X 2 è vuoto il join naturale equivale al prodotto cartesiano fra le relazioni. Se X 1 = X 2 il join naturale equivale allintersezione fra le relazioni