Anteprima
Vedrai una selezione di 20 pagine su 135
Basi di dati Pag. 1 Basi di dati Pag. 2
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 6
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 11
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 16
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 21
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 26
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 31
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 36
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 41
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 46
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 51
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 56
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 61
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 66
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 71
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 76
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 81
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 86
Anteprima di 20 pagg. su 135.
Scarica il documento per vederlo tutto.
Basi di dati Pag. 91
1 su 135
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

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.

  1. 2022/23Cardinalità R(A, B)
  2. Dato lo schema relazionale , trovareA B
  3. Gli che sono associati ad almeno 2
  4. (R)π R ⋈ ρA A=A′∧B≠B′ A′,B′←A,BA B
  5. Gli che sono associati ad almeno 3
  6. (R)π σ R × ρ × ρA A=A′∧ A=A′′∧B≠B′∧B≠B′′∧B′≠B′′ A′,B′←A,B A′′,B′′←A,BA B
  7. 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
  8. Dato lo schema relazionale , trovare gli che sono associati ad al più nπ
  9. (R) − A Bgli associati ad almeno n+1
  10. AR(A, B) A BDato lo schema relazionale , trovare gli che sono associati esattamente ad nA B A B
  11. Gli associati ad almeno n — gli associati ad almeno n+1
  12. 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

: specifica cosa si vuole, non come lo si vuole. Come detto, è il compilatore del DBMS che sceglie la implementazione ottima dal punto di vista dei costi. Poiché, tuttavia, esistono in genere espressioni diverse per la stessa interrogazione in SQL, occorre privilegiare nella scelta la comprensibilità. Sintassi SELECT ListaAttributi -> PROIEZIONE, scelgo le colonne. Martina Contestabile — Mat. 731044 FROM ListaTabelle -> SELEZIONE, scelgo le righe. [WHERE Condizione] Nella SELECT, ListaAttributi è la "target list", lista obiettivo, cioè l'insieme degli attributi i cui valori si vuole riprodurre come esito della interrogazione. La clausola FROM contiene le tabelle coinvolte dalla interrogazione. La clausola WHERE contiene una condizione, di forma e significato analoghe a quelle viste nei vincoli di n-upla. Semantica I. Fare il prodotto cartesiano delle tabelle citate nella FROM, se ci sono più tabelle. II.Selezionare dal prodotto cartesiano le n-uple che soddisfano la condizione presenti nella WHERE.

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 Formattazione del testo

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.
Dettagli
A.A. 2022-2023
135 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher martina.contestabile01 di informazioni apprese con la frequenza delle lezioni di Basi di dati e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Brescia o del prof Rula Anisa.