• Non ci sono risultati.

Linguaggi per basi di dati

N/A
N/A
Protected

Academic year: 2021

Condividi "Linguaggi per basi di dati"

Copied!
31
0
0

Testo completo

(1)

ALGEBRA RELAZIONALE

(2)

Linguaggi per basi di dati

operazioni sullo schema

„ DDL: data definition language

operazioni sui dati

„ DML: data manipulation language

„ interrogazione ("query")

„ aggiornamento

(3)

Linguaggi di interrogazione per basi di dati relazionali

Dichiarativi

„ specificano le proprietà del risultato ("che cosa")

Procedurali

„ specificano le modalità di generazione del risultato ("come")

(4)

Linguaggi di interrogazione

Algebra relazionale: procedurale Calcolo relazionale:

dichiarativo (teorico)

SQL (Structured Query Language):

parzialmente dichiarativo (reale) QBE (Query by Example):

dichiarativo (reale)

(5)

Algebra relazionale

Insieme di operatori

„ su relazioni

„ che producono relazioni

„ e possono essere composti

(6)

Operatori dell'algebra relazionale

unione, intersezione, differenza ridenominazione

selezione proiezione

join (join naturale, prodotto cartesiano, theta-join)

(7)

Operatori insiemistici

le relazioni sono insiemi

i risultati devono essere relazioni

è possibile applicare unione, intersezione e differenza solo a relazioni definite sugli

stessi attributi

(8)

Laureati Matricola

7432 9824

Età 54 45 Nome

Neri Verdi

7274 Rossi 42

Quadri Matricola

7432 9824 9297

Età 54 45 33 Nome

Neri Verdi

Neri

Laureati ∪ Quadri

Matricola Nome Età 7432 Neri 54 9824 Verdi 45 9297 Neri 33 7274 Rossi 42 7432 Neri 54 9824 Verdi 45 7274 Rossi 42 7432 Neri 54 9824 Verdi 45 9297 Neri 33 7432 Neri 54 9824 Verdi 45 9297 Neri 33 7274 Rossi 42

Unione

(9)

Laureati Matricola

7432 9824

Età 54 45 Nome

Neri Verdi

7274 Rossi 42

Quadri Matricola

7432 9824 9297

Età 54 45 33 Nome

Neri Verdi

Neri

Laureati ∩ Quadri

Matricola Nome Età 7432 Neri 54 9824 Verdi 45

7432 Neri 54 9824 Verdi 45 7432 Neri 54

9824 Verdi 45

7432 Neri 54 9824 Verdi 45

Intersezione

(10)

Laureati

Matricola Nome Età 7432 Neri 54 9824 Verdi 45 7274 Rossi 42

Quadri Matricola

7432 9824 9297

Età 54 45 33 Nome

Neri Verdi

Neri

Laureati – Quadri

Matricola Nome Età 7432 Neri 54 9824 Verdi 45 7274 Rossi 42 7432 Neri 54 9824 Verdi 45 7274 Rossi 42

Differenza

(11)

Ridenominazione

operatore unario

"modifica lo schema" lasciando inalterata l'istanza dell'operando

(12)

Paternità

Padre Figlio Adamo Caino Abramo Isacco

Adamo Abele

ρρρρGenitore ← Padre (Paternità)

Padre Figlio Adamo Caino Abramo Isacco

Adamo Abele Genitore

(13)

ρρρρ Sede, Retribuzione ← Ufficio, Stipendio (Impiegati) ρρρρ Sede, Retribuzione ← Fabbrica, Salario∪∪∪∪ (Operai)

Impiegati Cognome

Neri Rossi

Ufficio Milano Roma

Stipendio 64

55

Operai Cognome

Verdi Bruni

Fabbrica Latina Monza

Salario 55 45

Cognome Sede Retribuzione Neri

Rossi

64 55 Milano

Roma

(14)

Selezione

operatore unario

produce un risultato che

„ ha lo stesso schema dell'operando

„ contiene il sottoinsieme delle ennuple

dell'operando che soddisfano una determinata condizione

(15)

Impiegati

Cognome Filiale Stipendio Matricola

Neri Milano 64 5998

Rossi Roma 55

7309

Neri Napoli 64 5698

Milano Milano 44 9553

impiegati che

„ guadagnano più di 50

„ guadagnano più di 50 e lavorano a Milano

„ hanno lo stesso nome della filiale presso cui lavorano

(16)

Cognome Filiale Stipendio Matricola

Neri Milano 64 5998

Rossi Roma 55

7309

Neri Napoli 64 5698

Milano Milano 44 9553

Impiegati

Milano Milano 44 9553 Neri Napoli 64 5698

σ Stipendio > 50 (Impiegati)

(17)

Impiegati

Cognome Filiale Stipendio Matricola

Neri Milano 64 5998

Rossi Roma 55

7309

Neri Napoli 64 5698

Milano Milano 44 9553

σ Stipendio > 50 AND Filiale = 'Milano' (Impiegati)

Rossi Roma 55

7309

Neri Napoli 64 5698

Milano Milano 44 9553

Neri Milano 64 5998

(18)

Impiegati

Cognome Filiale Stipendio Matricola

Neri Milano 64 5998

Rossi Roma 55

7309

Neri Napoli 64 5698

Milano Milano 44 9553

σ Cognome = Filiale(Impiegati)

Neri Milano 64 5998

Rossi Roma 55

7309

Neri Napoli 64 5698

Milano Milano 44 9553

(19)

Selezione, sintassi e semantica

sintassi

σ Condizione (Operando)

„ Condizione: espressione booleana

semantica

„ il risultato contiene le ennuple dell'operando che soddisfano la condizione

(20)

Proiezione

operatore unario

produce un risultato che

„ ha parte degli attributi dell'operando

„ contiene ennuple cui contribuiscono tutte le ennuple dell'operando

(21)

Impiegati

Cognome Filiale Stipendio Matricola

Neri Milano 64 5998

Neri Napoli 55 7309

Rossi Roma 64

5698

Rossi Roma 44

9553

„ per tutti gli impiegati:

„ matricola e cognome

„ cognome e filiale

(22)

Cognome Filiale Stipendio Matricola

Neri Milano 64 5998

Neri Napoli 55 7309

Rossi Roma 64

5698

Rossi Roma 44

9553

π Matricola, Cognome (Impiegati)

(23)

Cognome Filiale Stipendio Matricola

Neri Milano 64 5998

Neri Napoli 55 7309

Rossi Roma 64

5698

Rossi Roma 44

9553

π Cognome, Filiale (Impiegati)

(24)

Proiezione, sintassi e semantica

sintassi

π ListaAttributi (Operando) semantica

„ il risultato contiene le ennuple ottenute da tutte le ennuple dell'operando ristrette agli attributi nella lista

(25)

Cardinalità delle proiezioni

una proiezione

„ contiene al più tante ennuple quante l'operando

„ può contenerne di meno

se X è una superchiave di R, allora π X(R) contiene esattamente tante ennuple quante R

(26)

Selezione e proiezione

operatori "ortogonali"

selezione:

„ decomposizione orizzontale

proiezione:

„ decomposizione verticale

(27)

selezione

proiezione

(28)

Selezione e proiezione

Combinando selezione e proiezione,

possiamo estrarre interessanti informazioni da una relazione

(29)

Cognome Filiale Stipendio Matricola

Neri Milano 64 5998

Rossi Roma 55

7309

Neri Napoli 64 5698

Milano Milano 44 9553 Milano Milano 44 9553 Neri Napoli 64 5698

σσσσStipendio > 50 (Impiegati)

π Matricola,Cognome ( )

(30)

Prodotto cartesiano

„ Operazione binaria

„ contiene sempre un numero di ennuple pari al prodotto delle cardinalità degli operandi (le ennuple sono tutte combinabili )

(31)

Rossi A

Neri B

Bianchi B

Impiegato Reparto Impiegati

A Mori

B Bruni

B Bruni

B Bruni

Codice Capo Reparti

Impiegati X Reparti

Impiegato Reparto Codice Capo

Rossi A AAA Mori

Rossi A B Bruni

Neri B A Mori

Neri B B Bruni

Bianchi B A Mori

Riferimenti

Documenti correlati

La tabella SOMMARIO CATEGORIA riporta, per ogni categoria di evento e per ogni data, il numero complessivo di eventi previsti e il costo.. complessivo per la

-- Esiste uno studente eleggibile: seleziono la sua matricola SELECT Matricola INTO Matr.

Ogni nodo dell'albero, ad eccezione di un nodo speciale detto radice, ha un nodo padre e zero, uno o più nodi figli.. • Se un nodo non ha nessun nodo figlio è detto nodo foglia

Risultato matr cognome nome ciclo anno relatore.

DISTINCT ( π (Studenti))) ElencoNomi =  ORDER BY cognome, nome

tipo CHAR(10) qualifica CHAR(15) facolta CHAR(10) nome CHAR(20) cognome CHAR(20) codice CHAR(4) Docente.

◦ Il risultato di questa operazione è una relazione che ha come attributi l’unione di quelli degli operandi, con le ennuple formate concatenando quelle di R ed S con. valori

Propriet` a, associate a uno schema di base di dati, che devono essere soddisfatte da tutte le istanze che rappresentano informazioni corrette della base di dati. • Si