La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Informatica Introduzione alle basi di dati Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:

Presentazioni simili


Presentazione sul tema: "Informatica Introduzione alle basi di dati Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:"— Transcript della presentazione:

1 Informatica Introduzione alle basi di dati Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico: 2005-2006

2 2 Esercitazione Che cos’è Studenti  Lavoratori? MatricolaCognomeNome 123456BruniAndrea 654321NeriDario 456123RealeCarla MatricolaCognomeNome 321654BiancoGiovanni 654321NeriDario 456123RealeCarla Studenti Lavoratori

3 3 Esercitazione Che cos’è Studenti  Lavoratori? MatricolaCognomeNome 123456BruniAndrea 654321NeriDario 456123RealeCarla MatricolaCognomeNome 321654BiancoGiovanni 654321NeriDario 456123RealeCarla Studenti Lavoratori

4 4 Esercitazione Che cos’è Studenti - Lavoratori? MatricolaCognomeNome 123456BruniAndrea 654321NeriDario 456123RealeCarla MatricolaCognomeNome 321654BiancoGiovanni 654321NeriDario 456123RealeCarla Studenti Lavoratori

5 5 Esercitazione Che cos’è  Numero  Matricola (Studenti)? MatricolaCognomeNome 123456BruniAndrea 654321NeriDario 456123RealeCarla Studenti

6 6 Esercitazione Che cos’è  Voto>25 (Studenti)? CognomeNomeEtàVoto BruniDario2129 NeriDario2329 RealeCarla2022 Studenti

7 7 Esercitazione Che cos’è  Voto>25  Eta<23 (Studenti)? CognomeNomeEtàVoto BruniDario2129 NeriDario2329 RealeCarla2022 Studenti

8 8 Esercitazione Che cos’è  Voto>25  Eta<23 (Studenti)? CognomeNomeEtàVoto BruniDario2129 NeriDario2329 RealeCarla2022 Studenti

9 9 Esercitazione Che cos’è  Cognome,Nome (Studenti)? CognomeNomeEtàVoto BruniDario2129 NeriDario2329 RealeCarla2022 Studenti

10 10 Esercitazione Che cos’è  Nome,Voto (Studenti)? CognomeNomeEtàVoto BruniDario2129 NeriDario2329 RealeCarla2022 Studenti

11 11 Esercitazione Che cos’è  Cognome,Nome,Età,Voto (Studenti)? CognomeNomeEtàVoto BruniDario2129 NeriDario2329 RealeCarla2022 Studenti

12 12 Esercitazione Che cos’è Studenti  Esami (join naturale)? MatricolaCognomeNome 123456BruniDario 654321NeriDario 456123RealeCarla Studenti MatricolaCorsoVoto 123456Psicologia23 123456Informatica29 654321Psicologia29 456123Psicologia22 Esami

13 13 Esercitazione Che cos’è Studenti  Esami (join naturale)? MatricolaCognomeNome 123456BruniDario 654321NeriDario 456123RealeCarla Studenti NumeroCorsoVoto 123456Psicologia23 123456Informatica29 654321Psicologia29 456123Psicologia22 Esami

14 14 Esercitazione Che cos’è Studenti  Esami (join naturale)? MatricolaCognomeNome 123456BruniDario 654321NeriDario 456123RealeCarla Studenti MatricolaCorsoVoto 654123Psicologia23 789456Informatica29 901234Psicologia29 876987Psicologia22 Esami

15 15 Esercitazione Che cos’è Studenti  Lavoratori (join naturale)? MatricolaCognomeNome 123456BruniAndrea 654321NeriDario 456123RealeCarla MatricolaCognomeNome 321654BiancoGiovanni 654321NeriDario 456123RealeCarla Studenti Lavoratori

16 16 Esercitazione Che cos’è Studenti  LEFT Esami? MatricolaCognomeNome 123456BruniDario 654321NeriDario 456123RealeCarla Studenti MatricolaCorsoVoto 987654Psicologia23 987654Informatica29 654321Psicologia29 456123Psicologia22 Esami

17 17 Esercitazione Che cos’è Studenti  FULL Esami? MatricolaCognomeNome 123456BruniDario 654321NeriDario 456123RealeCarla Studenti MatricolaCorsoVoto 987654Psicologia23 987654Informatica29 654321Psicologia29 456123Psicologia22 Esami

18 18 Theta-Join Serve per fare Join su relazioni senza attributi omonimi Operatore derivato: si ottiene come prodotto cartesiano seguito da selezione di tuple che verificano condizione di uguaglianza tra valori di attributi r1  F r2 =  F (r1  r2)

19 19 Theta-Join ImpiegatoReparto RossiVendite NeriProduzione BianchiProduzione DivisioneCapo VenditeBruni ProduzioneMori AcquistiBaldi Rel1Rel2 ImpiegatoRepartoDivisioneCapo RossiVendite Bruni NeriProduzione Mori BianchiProduzione Mori  Reparto=Divisione (Rel1  Rel2)

20 20 Theta-Join ed Equi-Join Theta-Join: r1  F r2 =  F (r1  r2) Condizione di selezione F è formula proposizionale come descritto per operatore di selezione Se F è congiunzione di uguaglianze tra attributi di r1 e attributi di r2: theta-join detto equi-join

21 21 Theta-Join ed Equi-Join Per esempio: Rel1(Impiegato,Reparto), Rel2(Divisione,Capo)  Reparto=Divisione (Rel1  Rel2) Infrazioni(Codice,Data,Ag,Art,Prov,Num), Auto(Provincia,Targa,Prop,Indirizzo)  Prov=Provincia  Num=Targa (Infrazioni  Auto)

22 22 Theta-Join ed Equi-Join Theta-join e equi-join più utili di join naturale Permettono di operare su relazioni senza attributi in comune Join naturale simulabile mediante ridenominazione, equi-join e proiezione

23 23 Theta-Join ed Equi-Join Per esempio: R1(A,B,C), R2(B,C,D) R1  R2 =  A,B,C,D (R1  B=B’  C=C’ (  B’,C’  B,C (R2)))

24 24 Theta-Join ed Equi-Join Per esempio: R1(A,B,C), R2(B,C,D) R1  R2 =  A,B,C,D (R1  B=B’  C=C’ (  B’,C’  B,C (R2))) Join naturale Equi-join

25 25 Theta-Join ed Equi-Join Per esempio: R1(A,B,C), R2(B,C,D) R1  R2 =  A,B,C,D (R1  B=B’  C=C’ (  B’,C’  B,C (R2))) Si ridenomina R2 affinchè abbia attributi diversi da quelli di R1 Equi-join tra R1 e R2 per selezionare tuple in corrispondenza Proiezione del risultato per eliminare attributi ridondanti

26 26 Algebra con valori nulli Come applicare espressioni di algebra relazionale in presenza di tuple con valori nulli? Per esempio:  Età>30 (Impiegati) Se in relazione Impiegati non si conosce età di alcune persone: tuple 104 e 219 devono essere selezionate? MatrNomeEtàStip 101Mario Rossi342.000 103Mario Bianchi 231.750 104Luigi NeriNULL3.050 105Nico Bini441.700 210Marco CelliNULL3.000

27 27 Algebra con valori nulli Logica a 3 valori per il trattamento di valori veri, falsi, sconosciuti: V, F, U (unknown) Un predicato assume valore U quando uno dei termini del confronto ha valore nullo Tabelle di verità dei connettivi: AND, OR, NOT ANDVUF VVUF UUUF FFFF ORVUF VVVV UVUU FVUF NOT VF UU FV

28 28 Algebra con valori nulli Poiché ragionare su valori nulli è complesso, adottiamo approccio semplificato al trattamento del valore nullo nelle espressioni dell’algebra relazionale Definiamo due nuove condizioni atomiche di selezione: dato attributo A A IS NULL: vera su tupla t se il valore di t su A è nullo; falsa se valore specificato A IS NOT NULL: vera su t se valore di t su A specificato, falsa altrimenti

29 29 Algebra con valori nulli Interpretiamo le condizioni di selezione in modo restrittivo, escludendo da selezione le tuple con valore U, a meno che non sia esplicitamente incluso nella selezione

30 30 Algebra con valori nulli Per esempio:  Età>30 (Impiegati) – le tuple con Età null non vengono selezionate (su di esse la condizione Età>30 assume valore U)  Età>30  Età IS NULL (Impiegati) – si includono anche le tuple con Età sconosciuta (104, 210 in relazione Impiegati)

31 5 - SQL

32 32 Interrogazioni in SQL Non esiste un SQL standard (vari dialetti) Formulazione di interrogazioni (query) è parte del Data Manipulation Language, DML Anche usato nel Data Declaration Language, DDL (per esempio, per dichiarare vincoli di integrità)

33 33 Interrogazioni in SQL Paradigma dichiarativo: si specifica la descrizione dell’obiettivo e non il modo con cui ottenerlo A differenza dell’algebra relazionale, che è procedurale

34 34 Cenni sull’implementazione Interrogazione in SQL viene tradotta in linguaggio procedurale Sulla traduzione si fanno ottimizzazioni algebriche (ecco a cosa serve l’algebra…) … … e non (queste ultime dipendono dalle strutture sottostanti al DBMS in questione)

35 35 Sintassi Esistono, in generale, più modi per effettuare un’interrogazione: scelte basate sulla leggibilità (più che sull’efficienza…) Struttura essenziale (introdurremo le variazioni di volta in volta): select ListaAttributi (target list) from ListaTabelle (clausola “from”) [ where Condizione] (clausola “where”)

36 36 Notazione Le parentesi angolari : permettono di isolare un termine della sintassi Le parentesi quadre [,]: indicano che il termine all’interno è opzionale Può non comparire o comparire una sola volta

37 37 Notazione Le parentesi graffe {,}: indicano che il termine racchiuso può non comparire o essere ripetuto un numero arbitrario di volte Le barre verticali |: indicano che deve essere scelto uno tra i termini separati dalle barre

38 38 Significato dell’interrogazione Si considera il prodotto cartesiano fra le tabelle della clausola “from” Si selezionano quelle tuple che soddisfano la condizione della clausola “where” (opzionale) Si danno in ouput i valori di quegli attributi che sono elencati nella target list (“select”)

39 39 Tabella “Impiegato” NomeCognomeDipartUfficioStipendioCittà MarioRossiAmministr1015Milano CarloBianchiProd2012Torino GiuseppeVerdiAmministr2013Roma FrancoNeriDistrib1615Napoli CarloRossiDirezione1427Milano LorenzoLanziDirezione721Genova PaolaBurroniAmmistr7513Venezia MarcoFrancoProd2014Roma Impiegato

40 40 Interrogazione 1 select Stipendio as Salario from Impiegato where Cognome = ‘Rossi’ Salario 15 27

41 41 Interrogazione 1 select Stipendio as Salario from Impiegato where Cognome = ‘Rossi’ Salario 15 27 alia s

42 42 Interrogazione 2 select * from Impiegato where Cognome = ‘Rossi’ NomeCognomeDipartUfficioStipendioCittà MarioRossiAmministr1015Milan o CarloRossiDirezione1427Milan o

43 43 Interrogazione 2 select * from Impiegato where Cognome = ‘Rossi’ tutti NomeCognomeDipartUfficioStipendioCittà MarioRossiAmministr1015Milan o CarloRossiDirezione1427Milan o

44 44 Interrogazione 3 select Stipendio/12 as StipMens from Impiegato where Cognome = ‘Bianchi’ StipMens 1

45 45 Interrogazione 3 select Stipendio/12 as StipMens from Impiegato where Cognome = ‘Bianchi’ espressioni StipMens 1


Scaricare ppt "Informatica Introduzione alle basi di dati Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:"

Presentazioni simili


Annunci Google