Anteprima
Vedrai una selezione di 6 pagine su 23
Gestione dell'informazione e basi di dati - basi di dati relazionali Pag. 1 Gestione dell'informazione e basi di dati - basi di dati relazionali Pag. 2
Anteprima di 6 pagg. su 23.
Scarica il documento per vederlo tutto.
Gestione dell'informazione e basi di dati - basi di dati relazionali Pag. 6
Anteprima di 6 pagg. su 23.
Scarica il documento per vederlo tutto.
Gestione dell'informazione e basi di dati - basi di dati relazionali Pag. 11
Anteprima di 6 pagg. su 23.
Scarica il documento per vederlo tutto.
Gestione dell'informazione e basi di dati - basi di dati relazionali Pag. 16
Anteprima di 6 pagg. su 23.
Scarica il documento per vederlo tutto.
Gestione dell'informazione e basi di dati - basi di dati relazionali Pag. 21
1 su 23
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

[ON DELETE NO ACTION|CASCADE|SET NULL|SET DEFAULT]

[ON UPDATE NO ACTION|CASCADE|SET NULL|SET DEFAULT],

[[altri_attributi],]

[FOREIGN KEY (<attributi_referenti>) REFERENCES <relazione_riferita>[(<attributi_riferiti>)]

[ON DELETE NO ACTION|CASCADE|SET NULL|SET DEFAULT]

[ON UPDATE NO ACTION|CASCADE|SET NULL|SET DEFAULT],]

[altri_vincoli]

);

NOTA - Gli attributi riferiti per mezzo di una chiave esterna devono essere chiave della rispettiva relazione, cioè

devono essere contrassegnati dalle clausole UNIQUE o PRIMARY KEY; inoltre devono avere dominio compatibile con

gli attributi referenti.

ON DELETE - Clausola che definisce il comportamento del DBMS relativamente alla cancellazione delle tuple riferite

tramite chiave esterna.

ON UPDATE - Clausola che definisce il comportamento del DBMS relativamente alla modifica delle tuple riferite

tramite chiave esterna.

Comportamento

NO ACTION - Le tuple della relazione riferita sono cancellate o modificate soltanto se non esiste alcuna tupla della relazione

referente associata ad esse. È il comportamento predefinito.

CASCADE - Le tuple della relazione riferita sono cancellate o modificate e sono cancellate o modificate di conseguenza anche le

tuple associate ad esse tramite chiave esterna.

SET NULL - Le tuple della relazione riferita sono cancellate o modificate e gli eventuali valori associati ad esse tramite chiave

esterna sono impostati a NULL (se tale operazione non è proibita da clausole NOT NULL).

SET DEFAULT - Le tuple della relazione riferita sono cancellate o modificate e gli eventuali valori associati ad esse tramite chiave

esterna sono impostati al valore predefinito. 7

3.1.5 Cancellazione delle relazioni

DROP TABLE <nome_relazione> RESTRICT|CASCADE;

Comportamento

RESTRICT - La relazione viene cancellata soltanto se non include alcun riferimento ad altri elementi della base di dati.

CASCADE - La relazione viene cancellata e sono eliminati tutti gli elementi del database a cui essa si riferisce.

3.1.6 Modifica delle relazioni

ADD COLUMN - Determina l’aggiunta di un nuovo attributo e delle sue eventuali caratteristiche (dominio, valore

predefinito, vincoli).

ALTER TABLE <nome_relazione>

ADD COLUMN <specifica_attributo>;

ALTER COLUMM - Determina la modifica di un attributo della relazione e delle sue caratteristiche.

ALTER TABLE <nome_relazione>

ALTER COLUMN <nome_attributo> [SET DEFAULT <valore_predefinito>]|[DROP DEFAULT];

DROP COLUMN - Determina l’eliminazione di un attributo, nelle modalità RESTRICT o CASCADE.

ALTER TABLE <nome_relazione>

DROP COLUMN <nome_attributo> RESTRICT|CASCADE;

ADD CONSTRAINT - Determina l’aggiunta di un vincolo di integrità.

ALTER TABLE <nome_relazione>

ADD CONSTRAINT <vincolo>;

DROP CONSTRAINT - Determina l’eliminazione di un vincolo di integrità già definito.

ALTER TABLE <nome_relazione>

DROP CONSTRAINT <nome_vincolo>;

3.2 M :

ANIPOLAZIONE DEI DATI INTERROGAZIONI

3.2.1 Forma base delle interrogazioni

SELECT [DISTINCT] <attributi>|*

FROM <relazioni_oggetto>

[WHERE <condizioni>];

SELECT - Clausola di proiezione, consente di specificare gli attributi che l’interrogazione deve restituire, attraverso il

nome o nella forma NomeRelazione.NomeAttributo. La clausola opzionale DISTINCT consente di ignorare eventuali

tuple duplicate; il carattere * indica la selezione di tutti gli attributi della relazione oggetto.

NOTA - Ogni interrogazione restituisce determinati attributi nell’ordine in cui sono specificati entro l’interrogazione

stessa o, in alternativa, secondo la definizione delle relazioni coinvolte.

FROM - Clausola di provenienza, consente di specificare le relazioni sulla quale è definita l’interrogazione.

NOTA - Gli attributi elencati con la clausola SELECT devono far parte delle relazioni selezionate attraverso la clausola

FROM.

WHERE - Clausola (opzionale) di qualificazione, consente di restringere l’interrogazione ai soli dati che rispettano

determinate condizioni (espressioni, funzioni o sotto-interrogazioni), eventualmente combinate attraverso gli

operatori logici AND, OR, NOT.

NOTA - Gli operatori logici hanno la precedenza usuale e possono essere raggruppati attraverso l’uso di parentesi.

3.2.2 Operatori e funzioni

Operatori - Il linguaggio SQL supporta gli operatori logici e aritmetici principali (=, <, >, +, -, *, /, etc.) e una serie di

altri operatori e funzioni.

Operatore Specifica

BETWEEN - Consente di valutare l’appartenenza di un valore e a un e [NOT] BETWEEN v AND v

1 2

determinato intervallo [v , v ]. Sostanzialmente è una forma abbreviata del

1 2 8

confronto e <= v OR e >= v (minore o uguale o maggiore o uguale).

1 2

IN - Consente di valutare l’appartenenza di un valore e a un insieme

specificato (v , v , …, v ). Sostanzialmente è una forma abbreviata del

1 2 n

confronto e = v OR e = v OR … OR e = v . e [NOT] IN (v , v , …, v )

1 2 n 1 2 n

NOTA - L’operatore IN è particolarmente utile quando l’insieme di valori non è

direttamente enumerato ma risulta da un’interrogazione a se stante.

LIKE - Consente di confrontare le stringhe con particolari pattern, cioè con

espressioni testuali ottenute attraverso i caratteri speciali ‘%’ (che denota una e [NOT] LIKE ‘pattern’

qualunque sequenza di caratteri) e ‘_’ (che denota un carattere qualsiasi).

Funzioni - Le funzioni del linguaggio SQL possono comparire nelle interrogazioni, sia nella clausola WHERE, sia nella

clausola SELECT; in quest’ultimo caso permettono di definire attributi virtuali, ai quali è possibile dare un nome

attraverso la particella AS (<attributo_virtuale> AS <nome>).

Funzione Specifica

ABS - Restituisce il valore assoluto (o modulo) di un valore numerico n. ABS(n)

MOD - Dati due valori numerici interi a e b, fornisce il resto (intero) della MOD(a, b)

divisione tra il primo e il secondo.

LENGTH - Restituisce la lunghezza in caratteri di una stringa s. LENGTH(‘s’)

UPPER - Data una stringa s, la restituisce completamente in maiuscolo. UPPER(‘s’)

LOWER - Data una stringa s, la restituisce completamente in minuscolo. LOWER(‘s’)

SUBSTR - Data una stringa s, restituisce la sottostringa a partire dal carattere SUBSTR(‘s’, m)

in posizione m, fino al termine di s o per un numero di caratteri n SUBSTR(‘s’, m, n)

eventualmente specificato.

TRIM - Date una stringhe s , vi elimina gli spazi o i caratteri di una stringa s TRIM(‘s ’)

1 2 1

eventualmente specificata. TRIM(‘s ’ FROM ‘s ’)

2 1

CURRENT_DATE - Restituisce la data corrente. CURRENT_DATE

CURRENT_TIME - Restituisce l’ora attuale. CURRENT_TIME

CURRENT_TIMESTAMP - Restituisce data e ora attuali nel formato CURRENT_TIMESTAMP

TIMESTAMP.

EXTRACT - Dato un valore d di tipo DATE o TIME, vi estrae l’elemento EXTRACT(q FROM d)

corrispondente al qualificatore temporale q (YEAR, MONTH, DAY, etc.).

NOTA - SQL permette di applicare gli operatori algebrici elementari alle funzioni e ai valori che rappresentano date o

intervalli di tempo.

CAST - Operatore per mezzo del quale è possibile convertire i dati in un tipo diverso da quello corrente (ad esempio

tra date e stringhe o tra numeri e stringhe).

CAST(<valore>) AS <nuovo_tipo>

3.2.3 Ordinamento dei dati

ORDER BY - Clausola per l’ordinamento, crescente (ASC, predefinito) o decrescente (DESC), delle tuple risultanti da

un’interrogazione, secondo i valori di uno o più attributi specificati.

SELECT [DISTINCT] <attributi>

FROM <relazioni_oggetto>

[WHERE <condizioni>]

ORDER BY <attributo_di_riferimento> [ASC]|DESC[, altri_attributi];

3.2.4 Operazioni di join

SELECT [DISTINCT] <attributi>

FROM <relazione_1> [<alias>], <relazione_2> [<alias>][, altre relazioni]

WHERE <predicato_di_join>

NOTA 1: l’operazione di join così specificata corrisponde al prodotto cartesiano delle relazioni indicate nella clausola

FROM, al più ristretto alle tuple che soddisfano il predicato di join contenuto nella clausola WHERE.

NOTA 2: il predicato di join consiste in una o più condizioni sugli attributi delle relazioni oggetto, i quali sono indicati

nella forma NomeRelazione.Attributo o Alias.Attributo per evitare ambiguità (vale lo stesso per la specifica della

clausola SELECT).

Operazione di join Specifica (clausola FROM)

9

CROSS JOIN - Restituisce il prodotto cartesiano delle relazioni <relazione_1> CROSS JOIN <relazione_2>

specificate.

JOIN ON - Realizza l’operazione di theta-join (o equi-join, in caso di <relazione_1> JOIN <relazione_2> ON

uguaglianza). <predicato_di_join>

JOIN USING - Richiede l’uguaglianza dei valori corrispondenti agli <relazione_1> JOIN <relazione_2> USING

attributi specificati. (<lista_attributi>)

NATURAL JOIN - Realizza l’operazione di join naturale, cioè richiede <relazione_1> NATURAL JOIN <relazione_2>

l’uguaglianza dei valori corrispondenti agli attributi omonimi.

NOTA - Le operazioni di JOIN USING e NATURAL JOIN collassano gli attributi omonimi, perciò non è possibile

specificarli nella forma NomeRelazione.Attributo, ma solo attraverso il loro nome.

OUTER JOIN - Particolare operazione di join, include nel risultato delle interrogazioni le tuple che non trovano

corrispondenza attraverso l’operazione stessa e ne imposta i valori mancanti a NULL. Può essere utilizzata per

realizzare le operazioni di join naturale e theta-join.

NOTA - Per distinzione, l’operazione di join tradizionale, nelle diverse varianti, è anche chiamata INNER JOIN.

Operazione di outer join

LEFT OUTER JOIN - Include le tuple che non trovano corrispondenza attraverso l’operazione, della sola relazione specificata a

sinistra.

RIGHT OUTER JOIN - Include le tuple che non trovano corrispondenza attraverso l’operazione, della sola relazione specificata a

destra.

FULL OUTER JOIN - Include le tuple che non trovano corrispondenza attraverso l’operazione, di entrambe le relazioni coinvolte.

3.2.5 Operatori aggregati

COUNT - Operatore aggregato, restituisce la cardinalità di un insieme di valori, ossia il numero degli elementi in esso

contenuti. L’operatore può essere utilizzato in diversi modi.

 Se invocato sul nome di un attributo, restituisce il numero dei valori non nulli corrispondenti ad esso entro la

relazione a cui appartiene [es: COUNT(<nome_attributo>)].

 Se invocato sul nome di un attributo preceduto dalla clausola DISTINCT, restituisce il numero dei valori distinti e

non nulli corrispondenti all’attributo entro la relazione di appartenenza [es

Dettagli
Publisher
A.A. 2010-2011
23 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher SteDV di informazioni apprese con la frequenza delle lezioni di Gestione dell'informazione e 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 Milano o del prof Perlasca Paolo.