Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Esempio: Determinare il voto minimo
B′←A,B
Esempio →Determinare il voto minimo 25.
Minimo/massimo relativo R(A, B) A B R
Dato lo schema relazionale , trovare per ogni il minimo/massimo in .
La soluzione è, quando supponiamo di voler determinare il massimo( )( )(R)π (R) − π R ⋈ ρA,B A,B A=A′∧B<B′ A′,B′←A,B
A = A′ B < B′nota che la condizione circoscrive i confronti possibili .
EsempioDeterminare per ogni studente il voto massimo
Daniele 30
Martina Contestabile — Mat. 731044
Ilaria 28
Marco 30
Minimo/massimo assoluto «decentrato»
R(A, B) A B R
Dato lo schema relazionale , trovare gli per cui è minimo/massimo in .
La soluzione è, quando supponiamo di determinare il massimo( )( )( )(R)π (R) − π R ⋈ ρA,B A,B B<B′ A′,B′←A,B
EsempioDeterminare gli studenti per cui il voto è massimo
Daniele 30
Marco 3092
Martina Contestabile Ingegneria Informatica — III Anno A.A.
- 2022/23Cardinalità R(A, B)
- Dato lo schema relazionale , trovareA B
- Gli che sono associati ad almeno 2
- (R)π R ⋈ ρA A=A′∧B≠B′ A′,B′←A,BA B
- Gli che sono associati ad almeno 3
- (R)π σ R × ρ × ρA A=A′∧ A=A′′∧B≠B′∧B≠B′′∧B′≠B′′ A′,B′←A,B A′′,B′′←A,BA B
- Gli che sono associati ad almeno n(n − 1) prodotti cartesiani. i(n − 1) A = Acondizioni della forma .(nn − 1) i jB ≠ Bcondizioni della forma .2Osservazioni R(A, B) A B
- Dato lo schema relazionale , trovare gli che sono associati ad al più nπ
- (R) − A Bgli associati ad almeno n+1
- AR(A, B) A BDato lo schema relazionale , trovare gli che sono associati esattamente ad nA B A B
- Gli associati ad almeno n — gli associati ad almeno n+1
- Per Ogni R(A, B)Dato lo schema relazionale ,σ (R) ≡ R
- − σ (R)
- ∀B( p)
- ∃B(¬p)
- A Btrovare gli per i quali tutti i sono positivi ( )
- π (R)
- − π σA
- A B≤0
- A Btrovare gli per i quali tutti i sono uguali( )
- π (R)
- − π R ⋈ ρA
- A A A=A′∧B≠B′ A′,B′←A,B
- Martina Contestabile — Mat. 73104493
- Martina Contestabile Ingegneria Informatica — III Anno A.A. 2022/23
- IL LINGUAGGIO DI INTERROGAZIONE SQL-DML
- SQL concetti base
- SQL e i due tipi di operazioni sui dati
- SQL è un linguaggio per gestire le basi di dati relazionali, il suo acronimo significa Structured Query Language.
- SQL è un linguaggio che contiene sia funzionalità di un:
- DDL per definire lo schema di una base di dati relazionale.
- DML per leggere e scrivere i dati.
- L’operazione di interrogazione SELECT serve per effettuare un’interrogazione di una base dati per estrarre i dati di interesse.
- Le operazioni di modifica, invece, sono:
- INSERT per l’inserimento di
nuove informazioni in una tabella.
DELETE per la cancellazione di dati obsoleti.
UPDATE per l'aggiornamento di dati presenti nella base dati.
L'operazione SELECT non nidificata
Qualità di una interrogazione
Abbiamo visto nella progettazione di schemi concettuali che lo scopo della progettazione è dicostruire uno schema caratterizzato da determinate qualità.
Analogamente, nel progettare una interrogazione, dobbiamo sempre avere in mente alcune proprietà, introdotte nella pagina successiva.
Correttezza
L'interrogazione esprime esattamente la richiesta dell'utente, espresse in linguaggio naturale.
Efficienza
L'interrogazione viene eseguita in poco tempo e/o con basso utilizzo della memoria.
Comprensibilità (o leggibilità)
L'interrogazione esprime in maniera facilmente comprensibile la richiesta espressa in linguaggio naturale.
Interrogazioni SQL
Al contrario dell'algebra relazionale, SQL è un linguaggio
III. Delle n-uple selezionate, fornire in output i valori degli attributi citati nella ListaAttributi.
94Martina Contestabile Ingegneria Informatica — III Anno A.A. 2022/23
Clausola WHERE
Permette di esprimere condizioni di selezione applicate singolarmente ad ogni tupla:
Espressione booleana di predicati.
Predicati semplici:
Espressioni di confronto tra attributi e costanti.
Ricerca testuale.
Valori null.
Un primo insieme di esercizi introduzione
Specifiche della base dati di riferimento
Vogliamo rappresentare un insieme di persone, con nome, età e reddito: assumiamo che il nome sia la chiave primaria — quindi, esiste un solo Franco, una sola Maria, ecc.. Vogliamo rappresentare poi per ogni persona, in due tabelle diverse, il padre e la madre, anche essi con il nome. Anche in questi casi, si assume che il nome identifichi la persona.
Produciamo lo schema della base dati relazionale che
corrisponde alle precedenti specifiche.
Tre schemi di relazione:
- Persone(Nome, Età, Reddito)
- Maternità(NomeMadre, NomeFiglio)
- Paternità(NomePadre, NomeFiglio)
Perché NomeFiglio è chiave nelle due relazioni Maternità(NomeMadre, NomeFiglio) e Paternità(NomePadre, NomeFiglio)?
Perché il nome identifica ogni persona, e ogni persona ha una sola madre e un solo padre.
Dati i tre schemi di relazione:
- Persone(Nome, Età, Reddito)
- Maternità(NomeMadre, NomeFiglio)
- Paternità(NomePadre, NomeFiglio)
Individuiamo i vincoli di integrità referenziale.
- Persone(Nome, Età, Reddito)
- Maternità(NomeMadre, NomeFiglio)
- Paternità(NomePadre, NomeFiglio)
Ora, per allenarci, eseguiamo alcune interrogazioni "a mente".
Troviamo:
- I figli di Luisa.
- Le nonne.
- Martina Contestabile - Mat. 731044
- I genitori di Olga.
- I genitori con più di un figlio.
I figli di Luisa sono Maria e Luigi.
I genitori di Olga sono Anna e...
Luigi.Le nonne sono rappresentate solo da Luisa.I genitori con più di un figlio sono Luisa, Anna, Luigi, Franco e Maria.OsservazionePer poter fornire le risposte, abbiamo dovuto "navigare" tra le diverse relazioni, utilizzando la proprietà già vista del modello relazionale in cui i valori collegano le diverse relazioni.Attenzione, però, perché nel seguito rappresenteremo i termini del linguaggio sia. ad esempio, con SELECT maiuscole sia con select minuscole.Primo obiettivoEsprimiamo in SQL l'operazione di selezione delle n-uple in una relazione che rispettano una determinata condizione e, insieme, l'operazione che produce in output solo alcuni attributi.95Martina Contestabile Ingegneria Informatica - III Anno A.A. 2022/23Nome e reddito delle persone con meno di trent'anni.select nome, reddito from persone where eta < 30 Risultato⟹La relazione su cui fare l'Interrogazione è Persone From persone.Nondobbiamo fare nessun prodotto Cartesiano. ⟹Dobbiamo selezionare le persone con meno di 30 anni where Età < 30.⟹Produrre Nome e Reddito select Nome, Reddito.Clausola FROM — Notazione punto e aliasSe A è il nome di un attributo e X è il nome di una relazione su cui è definito A, X.A denotal'attributo A della relazione X.SELECT e le sue abbreviazioniData lo schema di relazione R(A,B) select *from Requivale a Operatore di ridenominazione.select X.A as A, X.B as Bfrom R XLe estraiamo tutte. where trueRidenominazioneSi usano Alias per ridenominare le tabelle:Abbreviano il riferimento a tabelle.Risolvono le ambiguità di riferimento.Si possono fare ridenominazioni su attributi e relazioni con la clausola AS, come Impiegato as. La ridenominazione ha come effetto che nella SELECT il termine Impiegato può essereIsostituito da I. Inoltre, si può anche omettere AS, tipo .Impiegato ISELECT e ridenominazioni select nome,Il testo formattato con i tag HTML è il seguente:redditofrom personewhere eta < 30
Può scriversi, per ragioni di leggibilità, come
Martina Contestabile — Mat. 731044
select nome, redditofrom persone as personegiovani
where eta < 30
SELECT e abbreviazioni select *1
from personewhere eta < 30
È equivalente a select nome, età, redditofrom personewhere eta < 30
1 Significa «tutti gli attributi» 96
Martina Contestabile Ingegneria Informatica — III Anno A.A. 2022/23
Selezione senza proiezione
Nome, età e reddito delle persone con meno di trenta anni
select *from personewhere eta < 30
Produce in output tutti i valori degli attributi di Persone con meno di 30 anni.
Proiezione, senza selezione
Nome e reddito di tutte le persone
select nome, redditofrom persone
Espressioni aritmetiche nella target list
Sono ammesse espressioni aritmetiche nella target list
Query: Trova il reddito annuo di Luigi, e calcola quindi il reddito semestrale.
Select Reddito/2 as redditoSemestrale
from Personewhere
Il tuo nome è Luigi.