Anteprima
Vedrai una selezione di 17 pagine su 80
Appunti TIS - Technologies for Information Systems - Prof Elio Masciari Pag. 1 Appunti TIS - Technologies for Information Systems - Prof Elio Masciari Pag. 2
Anteprima di 17 pagg. su 80.
Scarica il documento per vederlo tutto.
Appunti TIS - Technologies for Information Systems - Prof Elio Masciari Pag. 6
Anteprima di 17 pagg. su 80.
Scarica il documento per vederlo tutto.
Appunti TIS - Technologies for Information Systems - Prof Elio Masciari Pag. 11
Anteprima di 17 pagg. su 80.
Scarica il documento per vederlo tutto.
Appunti TIS - Technologies for Information Systems - Prof Elio Masciari Pag. 16
Anteprima di 17 pagg. su 80.
Scarica il documento per vederlo tutto.
Appunti TIS - Technologies for Information Systems - Prof Elio Masciari Pag. 21
Anteprima di 17 pagg. su 80.
Scarica il documento per vederlo tutto.
Appunti TIS - Technologies for Information Systems - Prof Elio Masciari Pag. 26
Anteprima di 17 pagg. su 80.
Scarica il documento per vederlo tutto.
Appunti TIS - Technologies for Information Systems - Prof Elio Masciari Pag. 31
Anteprima di 17 pagg. su 80.
Scarica il documento per vederlo tutto.
Appunti TIS - Technologies for Information Systems - Prof Elio Masciari Pag. 36
Anteprima di 17 pagg. su 80.
Scarica il documento per vederlo tutto.
Appunti TIS - Technologies for Information Systems - Prof Elio Masciari Pag. 41
Anteprima di 17 pagg. su 80.
Scarica il documento per vederlo tutto.
Appunti TIS - Technologies for Information Systems - Prof Elio Masciari Pag. 46
Anteprima di 17 pagg. su 80.
Scarica il documento per vederlo tutto.
Appunti TIS - Technologies for Information Systems - Prof Elio Masciari Pag. 51
Anteprima di 17 pagg. su 80.
Scarica il documento per vederlo tutto.
Appunti TIS - Technologies for Information Systems - Prof Elio Masciari Pag. 56
Anteprima di 17 pagg. su 80.
Scarica il documento per vederlo tutto.
Appunti TIS - Technologies for Information Systems - Prof Elio Masciari Pag. 61
Anteprima di 17 pagg. su 80.
Scarica il documento per vederlo tutto.
Appunti TIS - Technologies for Information Systems - Prof Elio Masciari Pag. 66
Anteprima di 17 pagg. su 80.
Scarica il documento per vederlo tutto.
Appunti TIS - Technologies for Information Systems - Prof Elio Masciari Pag. 71
Anteprima di 17 pagg. su 80.
Scarica il documento per vederlo tutto.
Appunti TIS - Technologies for Information Systems - Prof Elio Masciari Pag. 76
1 su 80
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

FROM ANAGRAFICA(conNomi e cognomi ripetizioni) di tutti gli studenti presenti in anagrafica:

SELECT Nome, Cognome

FROM ANAGRAFICA

SELEZIONE

Sia data una relazione r ϵ R(X) ed una condizione di selezione l’insieme:

Si definisce selezione (sigma di r), tale che la tupla t soddisfa la condizione .

Es. Studenti in anagrafica che hanno nome Alex. La selezionelavora in orizzontale, per questo l’operazione di SELECTrestituisce due tuple. Se prima andavo a prendere i valori inverticale, ovvero gli attributi che mi interessavano, qui lavoro inorizzontale, prendo direttamente le tuple.

La condizione può essere di vari tipi:

Condizione Atomica

Sia r una relazione su R(X)e siano A e B є X, che è l’insieme di attributi di r, e sia θ є{=,≠,<,>, ≤, ≥} una qualsiasi relazione definita sul dominio di A e B. Le seguenti sonocondizioni atomiche:

A θ B; (confronto tra i valori di due elementi degli attributi)

- A = c, per ogni valore

costante c del dominio di A (confronto con una costante)-Condizione di Selezione

Ogni condizione atomica è una Condizione di Selezione. D'altro canto, se vc1 e vc2 sono due condizioni di selezione, lo sono pure vc1 ∩ vc2, vc1 ∪ vc2, e ¬vc1 (lo sono anche l'unione, l'intersezione e la negazione).

Soddisfacimento di una condizione di selezione

Sia R(X) uno schema di relazione, r un'istanza di R, t una tupla in r, A e B attributi in X, e c una costante. Sia χ una qualsiasi condizione di selezione su A, B e c. Il soddisfacimento di χ da t (t ⊨ χ) è definita per induzione sulla struttura di χ, come segue (una condizione di selezione è soddisfatta nei casi in cui):

  • Paragone tra attributi: t ⊨ A θ B, se e solo se t[A] θ t[B]
  • Paragone tra costanti: t ⊨ A θ c, se e solo se t[A] θ c
In SQL la selezione prevede la seguente sintassi (Select * significa 'seleziona tutti i...

campi'):NOME TABELLA Condizione

SELECT * FROM WHERE

Es. In modo da prendere tutte le tuple, della tabella Anagrafica, in cui l'attributo nome ha valore Alex

SELECT *FROM ANAGRAFICAWHERE Nome = Alex

QUERY

Una query SQL su una tabella r si ottiene combinando un'operazione di proiezione con una diselezione. Ovvero sto dicendo πY (σ χ( r ) ). In sintassi SQL lo indico come SELECT Y FROM rWHERE χ

CONFRONTO TRA STRINGE

Una menzione a parte lo merita il .Nel caso del confronto tra stringhe, si possono utilizzare degli operatori che ci permettono di fareconfronti ulteriori, rispetto ai classici operatori. Es. Supponiamo di voler fare il confronto solo su partidi stringhe o di caratteri, in SQL questa cosa si fa con l'operatore LIKE, che si utilizza insieme a duecaratteri riservati:

Simbolo “%” che sostituisce un numero arbitrario di caratteri

Carattere “_” che sostituisce un singolo carattere

e a[Es. Se voglio gli studenti che hanno

la come seconda lettera del cognome e come l'ultima, scriverò: SELECT Nome, Cognome FROM ANAGRAFICA WHERE Cognome LIKE '_e%a';

OPERATORI ARITMETICI E DI ORDINAMENTO

Gli operatori numerici possono essere applicati solo agli attributi di proiezione aventi dominio numerico (es. avere gli stipendi aumentati di 10 euro, metto SELECT Nome, Stipendio+10) e, se è definito un ordinamento sul dominio degli attributi, è possibile ordinare le tuple attraverso la clausola ORDER BY in maniera crescente (ASC) o decrescente (DESC). Es. nomi e cognomi in ordine decrescente:

SELECT Cognome, Nome FROM ANAGRAFICA ORDER BY Cognome, Nome DESC;

PRODOTTO CARTESIANO

Date due relazioni r1 e r2 definite sugli schemi R(X1) e R(X2) con X1 ∩ X2 = Ø (quindi sono due schemi disgiunti, non hanno nemmeno un attributo in comune), il prodotto cartesiano tra r1 e r2 restituisce un'istanza di relazione r definita su R(X1 ∪ X2) e contenente le tuple t formate dalla concatenazione.

diciascuna tupla di r1 con ciascuna tupla di r2

r = r1 x r2 = {t = t2 t1 ∈ r1 ∧ t2 ∈ r2} ⟨t1, ⟩,

DOT NOTATION

Succede a volte che una tabella debba essere utilizzata più volte all’interno della Query, voglio cioè utilizzare più istanze della stessa tabella, oppure che due tabelle abbiano attributi con lo stesso nome.

Si utilizza qui la Dot notation, cioè, per identificare gli attributi comuni nel prodotto cartesiano, si specifica NomeRelazione.NomeAttributo

JOIN

Date due relazioni r1 su R(X1) e r2 su R(X2), con: X1 ∩ X2 = Ø e con χ≡ ar1 ϑ ar2 (condizione logica) si definisce THETA JOIN l’operazione di selezione sul prodotto cartesiano. Se ϑ è una uguaglianza tra i valori di un attributo di r1 e quelli di r2 si parla di EQUI JOIN.  considero un uguaglianza, lo chiamo EQUI.

Es. ANAGRAFICA MANSIONI ANAGRAFICA ᅣ Codice = MansioneMANSIONINB. La condizione coinvolge

SEMPRE solo attributi, mai costanti.In SQL la JOIN può essere effettuata in modo implicito o in modo esplicito. join implicito Il si ottiene applicando la definizione data di equi-join, come prodotto cartesiano seguito da una selezione: ```sql SELECT * FROM r1, r2 WHERE Condizione ``` ```sql SELECT * FROM ANAGRAFICA DIPENDENTI, MANSIONI WHERE Mansione=Codice ``` join esplicito Il richiede invece che una istruzione SQL esprima l'operazione di join, come nel seguente modo: ```sql SELECT * FROM r1 JOIN r2 ON Condizione ``` ```sql SELECT * FROM ANAGRAFICA DIPENDENTI JOIN MANSIONI ON Mansione=Codice ``` TUPLE DONDOLANTI Se si considerano le istanze di relazioni sulla destra si può notare che la terza tupla della relazione MANSIONI non è coinvolta nell'operazione di equi join. Infatti, non esiste un impiegato con la mansione di amministratore: si parla quindi di "tupla dondolante" (dangling tuple). NB. In questo caso, la join può essere dannosa, poiché potrei

Tralasciare alcune info utili, causando errori. Per evitare ciò, si considera il JOIN ESTERNO. Se ho due relazioni r e r (relazione di sx e relazione di dx, poiché compaiono a dx e sx dell'operatore di join), direi che: r ᅣ r- JOIN DESTRO s RIGHT dr ᅣ rJOIN SINISTRO- s LEFT dr ᅣ r- JOIN COMPLETO s FULL d

Il JOIN ESTERNO prevede che tutte le tuple della relazione r o della relazione r o di entrambe s concorrano alla formazione del risultato, ponendo NULL dove l'operazione di join coinvolge tuple mancanti. In particolare:

  • Join esterno sinistro: vengono considerate tutte le tuple della relazione sinistra;
  • Join esterno destro: vengono considerate tutte le tuple della relazione destra;
  • Join completo: vengono considerate tutte le tuple della relazione sinistra e della relazione destra.

Es. Se faccio il join esterno DESTRO, con la sintassi:

SELECT * FROM r RIGHT JOIN r ON r.Codice = r.Mansione s d d1 s

Un caso particolare di theta join è il JOIN NATURALE,

in cui la condizione di uguaglianza è implicitamente verificata su tutte le coppie di attributi delle due relazioni aventi lo stesso nome. Se, ad esempio, r1 ed r2 hanno il nome di un attributo comune, chiamiamolo Ac, vale la seguente equivalenza:

Es. Se ho due tabelle con un attributo con lo stesso nome, come Impiegati (Nome, CodiceDip) e Dipartimenti (CodiceDip, NomeDip). Qui CodiceDip in Impiegati è una chiave esterna, che referenzia CodiceDip chiave primaria di Dipartimenti.

Se metto in join le due tabelle, lo faccio con:

SELECT * FROM IMPIEGATI I JOIN DIPARTIMENTI T ON i.CodiceDip = t.CodiceDip

Oppure, semplicemente (la condizione è implicitamente applicata sugli attributi con uguale nome. Se ci sono più campi con lo stesso nome non farlo, perché Oracle prende i primi che trova):

SELECT * FROM IMPIEGATI I INNER JOIN DIPARTIMENTI T

Sia r una relazione definita su uno schema R(X) e sia Y un insieme di attributi avente la stessa cardinalità di

X e sia definito un ordinamento tra gli attributi di X e quelli di Y, diciamolo A1, A2, …, Ake B1, B2, …, Bk, con la proprietà che dom(Ai) = dom(Bi)con i = 1, …, k. L’operazione ditridenominazione non fa altro che prendere gli attributi della tupla e ridenominarli, assegnare ilnuovo nome, a patto che i domini coincidano, cioè è la seguente: Es. Se io ho un Database in italiano e voglio ridenominare gli attributi in inglese, scriverò: In SQL sarà fatta in SELECT usando gli ALIAS (L’AS si può anche omettere, è opzionale): SELECT Nome AS Name, Cognome AS Surname FROM ANAGRAFICA_DIPENDENTI L’Uso degli alias è importante quando vado a interrogare più volte la stessa tabella. Es. Voglio trovare i nomi e i cognomi dei dipendenti la cui mansione è uguale a quelle di undipendente assegnato (posso scrivere nome=x, assegnato, non per forza uno a caso): SELECT T1.Nome, T1.Cognome FROM ANAGRAFICA DIPENDENTI T1, ANAGRAFICA DIPENDENTI T2 WHERE (T1.Mansione=T2.Mansione) AND (T2.Nome='Mario') AND (T2.Cognome='rossi') AND(T1.Nome <> 'Mario') AND (T1.Cognome <>'rossi') LEZIONE 8. – Continuo Operazioni sui Dati FUNZIONI AGGREGATE Per si intende un insieme di funzioni che possono essere applicati solo ad attributi numerici e operano su 'collezioni di valori della base di dati' (non sulla singola tupla, ma su gruppi di tuple). Classiche funzioni aggregate sono le operazioni di: COUNT (Ci dice quante tuple, al verificarsi di determinate condizioni, appartengono a un insieme); MIN e MAX ( Es.Il minimo valore e il massimo valore di una tupla, rispetto ad un certo attributo.- dipendenti con salario massimo); SUM (Somma dei valori delle tuple); AVG (Media dei valori delle tuple). - raggruppare Non posso però limitarmi ad una sola tupla come farei con SELECT, ma devo dapprima le tuple sulla base del valore di uno o

più attributi, quindi di applicare a ciascun gruppo così ottenuto,

[Se voglio sapere il valore massimo di un insieme, devo prima raggrupparele funzioni di aggregazionetutti gli elementi dell’insieme, altrimenti non posso farlo ]. Ciò si ottiene attraverso opportuneclausole dette di raggruppamento.

Le operazioni di aggregazione e raggruppamento non sono definite in algebra relazionale, mentresono di uso molto comune in SQL, dal momento che aggregazione e raggruppamento sono operazionicomuni in molte applicazioni di basi di dati.

SQL supporta cinque diverse funzioni di aggregazione, che

Dettagli
Publisher
A.A. 2019-2020
80 pagine
2 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Antonella912 di informazioni apprese con la frequenza delle lezioni di technologies for information systems 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 Napoli Federico II o del prof Masciari Elio.