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

Slides:



Advertisements
Presentazioni simili
Interrogazioni Semplici Le operazioni di interrogazione vengono specificate per mezzo dellistruzione select select ListaAttributi from ListaTabelle [where.
Advertisements

Calcolo Relazionale.
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Algebra e calcolo relazionale (parte 2)
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Algebra relazionale Presentazione 12.1
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Frontespizio Economia Monetaria Anno Accademico
SQL Structured Query Language
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
Istruzione SELECT (versione base)
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi.
SQL per la modifica di basi di dati. 29/01/2014SQL per la modifica di basi di dati2 Data Manipulation Language Introduciamo ora il Data Manipulation Language.
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
11/10/2001Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 1 Viste (relazioni derivate) Rappresentazioni diverse per gli stessi dati (schema esterno)schema.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Basi di dati Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
SQL Per la modifica di basi di dati
Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste listruzione.
Manipolazione dei dati I comandi SQL che permettono di modificare il contenuto di una base di dati sono insertdeleteupdate insert ha la seguente sintassi:
SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE.
Basi di dati Claudia Raibulet
SQL: Structured Query Language
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.
1 Il Linguaggio SQL Il Linguaggio SQL Prof. Lorenzo Vita, Ing. Luigi Testa.
SQL.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
DB- Sistemi Informativi
SQL Interrogazioni. 2 Interrogazioni in SQL Non esiste un SQL standard (vari dialetti) Formulazione di interrogazioni (query) è parte del Data Manipulation.
Algebra relazionale (III). Interrogazioni con Algebra Relazionale Dato schema R(Y) di DB, un’interrogazione è una funzione che, per ogni istanza r di.
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti SQL :Structured Query Language: SELECT (IV) SQL (Slide tratte in parte da da Atzeni, Ceri,
SQL (IV) Data Definition Language/ Data Manipulation Language.
Informatica Introduzione alle basi di dati Lezione 8 (bis) Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Le query in SQL Unità didattica sviluppata per l’ITIS “A. Volta” – Classe 5 sez. I Ing Domenico Liguori - Università degli studi di Napoli “Federico.
Informatica Introduzione alle basi di dati Lezione 2 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
1 Microsoft Access Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni Informatica per laurea triennale.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
Algebra relazionale (III). Esempi di Interrogazioni: 3 Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di Tutti gli impiegati?
Interrogazioni (parte 2)
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
Vincoli interrelazionali
Raggruppamenti e target list scorretta select padre, avg(f.reddito), p.reddito from persone f join paternita on figlio = nome join persone p on padre =
Lezione 6 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
Algebra relazionale (II). Join esterni Per combinare sempre le tuple di due relazioni, anche quando non ci sono corrispondenze tra i valori degli attributi.
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Approfondimenti SQL.
L’Algebra Relazionale
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
SQL Linguaggio per l’interrogazione di una base dati.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
Esercizi SQL Group by. CREATE TABLE dipendente (codDip CHAR(8) NOT NULL UNIQUE PRIMARY KEY, cognome CHAR(60) NOT NULL, nome CHAR(60) NOT NULL, stipendio.
Transcript della presentazione:

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

2 Esercitazione Che cos’è Studenti  Lavoratori? MatricolaCognomeNome BruniAndrea NeriDario RealeCarla MatricolaCognomeNome BiancoGiovanni NeriDario RealeCarla Studenti Lavoratori

3 Esercitazione Che cos’è Studenti  Lavoratori? MatricolaCognomeNome BruniAndrea NeriDario RealeCarla MatricolaCognomeNome BiancoGiovanni NeriDario RealeCarla Studenti Lavoratori

4 Esercitazione Che cos’è Studenti - Lavoratori? MatricolaCognomeNome BruniAndrea NeriDario RealeCarla MatricolaCognomeNome BiancoGiovanni NeriDario RealeCarla Studenti Lavoratori

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

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

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

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

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

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

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

12 Esercitazione Che cos’è Studenti  Esami (join naturale)? MatricolaCognomeNome BruniDario NeriDario RealeCarla Studenti MatricolaCorsoVoto Psicologia Informatica Psicologia Psicologia22 Esami

13 Esercitazione Che cos’è Studenti  Esami (join naturale)? MatricolaCognomeNome BruniDario NeriDario RealeCarla Studenti NumeroCorsoVoto Psicologia Informatica Psicologia Psicologia22 Esami

14 Esercitazione Che cos’è Studenti  Esami (join naturale)? MatricolaCognomeNome BruniDario NeriDario RealeCarla Studenti MatricolaCorsoVoto Psicologia Informatica Psicologia Psicologia22 Esami

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

16 Esercitazione Che cos’è Studenti  LEFT Esami? MatricolaCognomeNome BruniDario NeriDario RealeCarla Studenti MatricolaCorsoVoto Psicologia Informatica Psicologia Psicologia22 Esami

17 Esercitazione Che cos’è Studenti  FULL Esami? MatricolaCognomeNome BruniDario NeriDario RealeCarla Studenti MatricolaCorsoVoto Psicologia Informatica Psicologia Psicologia22 Esami

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 Theta-Join ImpiegatoReparto RossiVendite NeriProduzione BianchiProduzione DivisioneCapo VenditeBruni ProduzioneMori AcquistiBaldi Rel1Rel2 ImpiegatoRepartoDivisioneCapo RossiVendite Bruni NeriProduzione Mori BianchiProduzione Mori  Reparto=Divisione (Rel1  Rel2)

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 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 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 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 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 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 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 Rossi Mario Bianchi Luigi NeriNULL Nico Bini Marco CelliNULL3.000

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 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 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 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)

5 - SQL

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 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 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 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 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 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 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 Tabella “Impiegato” NomeCognomeDipartUfficioStipendioCittà MarioRossiAmministr1015Milano CarloBianchiProd2012Torino GiuseppeVerdiAmministr2013Roma FrancoNeriDistrib1615Napoli CarloRossiDirezione1427Milano LorenzoLanziDirezione721Genova PaolaBurroniAmmistr7513Venezia MarcoFrancoProd2014Roma Impiegato

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

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

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

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

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

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