Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.

Slides:



Advertisements
Presentazioni simili
Modulo 5 DataBase ACCESS.
Advertisements

Calcolo Relazionale.
Algebra di Boole Casazza Andrea 3EA I.I.S. Maserati.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Algebra relazionale Presentazione 12.1
Le parti del discorso logico e informatico
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
Algoritmi e Dimostrazioni Stefano Berardi
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
L’uso dei database in azienda
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Access: Query semplici
Basi di dati Università Degli Studi Parthenope di Napoli
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
Corso di Laurea in Ingegneria per lAmbiente e il Territorio Informatica per lAmbiente e il Territorio Docente: Giandomenico Spezzano Tutor: Alfredo Cuzzocrea.
Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere.
Modello E-R Generalizzazioni
Basi di dati Claudia Raibulet
Manipolazione dei dati
Esercitazione di Basi di Dati
MODELLO LOGICO DEI DATI
Progettare un database
INFORMATICA MATTEO CRISTANI. INDICE CICLO DELLE LEZIONI LEZ. 1 INTRODUZIONE AL CORSO LEZ. 2 I CALCOLATORI ELETTRONICI LEZ. 3 ELEMENTI DI TEORIA DELL INFORMAZIONE.
Introduzione a Oracle 9i
Realizzato da Roberto Savino
Sistemi di Elaborazione delle Informazioni Mod.I.
BIOINFO3 - Lezione 51 INSERIMENTO DEI DATI Visto come si creano le tabelle (sinora tristemente vuote), cominciamo ad occuparci di come riempirle con dei.
DATABASE Introduzione
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Corsi di Laurea in Biotecnologie
Microsoft Access Query (II), filtri.
Modulo 5 DataBase ACCESS. Informazioni e Dati INFORMAZIONI vengono scambiate con linguaggio scritto o parlato DATI rappresentazione di informazioni in.
Microsoft Access Maschere (II).
Diagramma delle Classi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – Ver. aggiornata.
Algebra di Boole.
Introduzione a Javascript
Tecnologie di InternetDocument Type Definition Dott. Nicola Dragoni Document Type Definition  Document Type Definition (DTD)  Documento XML valido 
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
IV D Mercurio DB Lezione 2
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
Condizioni Logiche Che cosa sono: una condizione logica è un’espressione che può avere valore VERO o FALSO Ad esempio: “Torino ha più abitanti di Roma”
Microsoft Access Chiavi, struttura delle tabelle.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
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 =
Copyright © Istituto Italiano Edizioni Atlas
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
1 Esami Esame scritto: Tra 21 e 25 domande: 20 domande chiuse (20 punti),  5 domande aperte (10 punti) 1½ ore Esame orale/applicativo: Esercizi usando.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
LA LOGICA MATEMATICA.
1 “ Le Basi di Dati ”. 2 Parte 5: Tabelle –Creazione di una tabella –Indici e chiavi primarie –Relazioni e integrità referenziale Basi di Dati Struttura.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Modulo 5 – Database ACCESS LICEO SCIENTIFICO “ B. RESCIGNO COMPUTER SCUOLA PIANO INTEGRATO 2008/09 ESPERTO prof.ssa Rita Montella.
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:
Transcript della presentazione:

Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università degli Studi di Milano Corsi di Laurea in Biotecnologie (primo anno interfacoltà)

Settima lezione: Introduzione alle basi di dati (Capitoli 12 e 13) 2Informatica di base – Linea 1

Prima parte Cosa abbiamo fatto e cosa faremo 3Informatica di base – Linea 1

Abbiamo visto: i fogli di calcolo Informazione rappresentata in forma tabulare In ogni cella posso mettere il tipo di dati che desidero Il formato dei dati è descritto a livello di cella: – ricordate (dal laboratorio) come si cambia il formato di una cella? 4Informatica di base – Linea 1

Oggi studieremo le basi di dati (DB) Le basi di dati (database, in inglese) servono per organizzare, memorizzare e poter rielaborare automaticamente l’informazione Hanno alcuni aspetti in comune con i fogli di calcolo: – gestiscono tipi diversi di informazione – visualizzano l’informazione in forma tabulare Tuttavia, sono profondamente diverse dai fogli di calcolo 5Informatica di base – Linea 1

Fogli di calcolo e DB: differenze Nonostante abbiano finalità e metodi di visualizzazione simili, i fogli di calcolo e le DB sono sostanzialmente differenti DB strutturano “maggiormente” l’informazione: – vediamo tra poco cosa vuol dire DB sono utilizzate principalmente per memorizzare grandi quantità di informazione: – non tanto per elaborare automaticamente l’informazione Informatica di base – Linea 16

La logica booleana Per poter capire le DB, dobbiamo imparare le nozioni della logica booleana: – è utilizzata in diversi ambiti informatici – in realtà l’abbiamo già vista: nei circuiti elettronici del processore nelle funzioni avanzate dei motori di ricerca per Internet nei fogli di calcolo (funzione “and”) 7Informatica di base – Linea 1

Seconda parte La logica booleana 8Informatica di base – Linea 1

La logica booleana Definisce espressioni costituite da operatori e operandi Gli operandi possono assumere solo valori binari: – “vero” o “falso” – 0 o 1 Ogni operatore può essere applicato ad uno o due operandi 9Informatica di base – Linea 1

Gli operatori booleani Operatori con due operandi: – AND: restituisce il valore “vero” solo se entrambi gli operandi sono veri – OR: restituisce il valore “vero” se almeno uno dei due operandi è vero Operatore con un solo operando: – NOT: restituisce il valore “vero” se il valore dell’operando è falso (altrimenti restituisce il valore “falso”) 10Informatica di base – Linea 1

Tavole di verità aba AND b VERO FALSO VEROFALSO 11 aba OR b VERO FALSOVERO FALSOVERO FALSO aNOT a VEROFALSO VERO Informatica di base – Linea 1 ab“a x b” AND ab“a + b” aNOT a ORNOT

Espressioni booleane Così come è possibile comporre le operazioni algebriche (somma, prodotto, …), è possibile comporre anche le operazioni booleane Esempio: a AND (b OR (NOT c)) – dove a, b, c sono singoli operandi o intere proposizioni, ognuna delle quali può assumere valore vero o falso – Esempio di proposizioni (vere o false?): a = “il triangolo è una figura geometrica con tre lati” b = “3+2 = 7” c = “4 è un numero dispari” 12Informatica di base – Linea 1

Tavola di verità di espressioni booleane Permette di valutare la verità di un’espressione per tutte le possibili combinazioni di valori delle variabili: – l’espressione è valutata nell’ordine dato dalle parentesi 13 abcNOT cb OR (NOT c)a AND (b OR (NOT c)) VERO FALSOVERO FALSOVERO FALSOVEROFALSO VEROFALSO VERO FALSOVERO FALSOVEROFALSO VEROFALSOVERO FALSO VEROFALSO VERO FALSO

Terza parte Introduzione alle basi di dati: le entità 14Informatica di base – Linea 1

Cosa può essere rappresentato nei DB? Nei DB è possibile rappresentare qualunque entità che sia rappresentabile su un computer – Es: una casa, una persona, ecc. Per rappresentare un’entità, si identificano le sue caratteristiche, dette attributi – in particolare, si identificano quegli attributi che sono necessari agli scopi di uno specifico contesto applicativo 15Informatica di base – Linea 1

Entità e attributi: un esempio Es: attributi dell’entità “appartamento” – Applicazione “agenzia immobiliare”: superficie commerciale, piano, numero di stanze, indirizzo, box, etc.... – Applicazione “catasto”: indirizzo, numero piantina catastale, valore catastale, etc Informatica di base – Linea 1

Come si rappresentano gli attributi Gli attributi hanno un nome e un dominio – non un “valore”, come scritto nel libro di testo – il dominio è l’insieme di possibili valori che possono essere assunti – es. entità “appartamento”: attributo “indirizzo”: dominio un testo attributo “numero di stanze”: dominio un numero Informatica di base – Linea 117

Distinzione tra dati e metadati Il dominio è un metadato: – informazione che descrive l’informazione nei fogli di calcolo: il formato della cella è un metadato che descrive i dati della cella I metadati definiscono il tipo di informazione che può essere memorizzato in una specifica base di dati I dati sono gli specifici valori inseriti per gli attributi. Informatica di base – Linea 118

Metadati: esempio Entità: “appartamento” Attributi: – “superficie commerciale”, dominio: numero – “piano”, dominio: numero – “numero di stanze”, dominio: numero – “indirizzo”, dominio: testo – “box”, dominio: booleano (“sì” o “no”) 19Informatica di base – Linea 1

Istanza SuperficiePianoStanzeIndirizzoBox 10044Via Rossi, 5No 5042Via Verdi, 4Sì 15087Via Bianchi, 9Sì 20 – I metadati specificano il tipo di dati ma non i dati stessi – Uno specifico insieme di dati in una tabella viene detto istanza Tabella: appartamenti Informatica di base – Linea 1

Atomicità degli attributi Gli attributi devono contenere dati che non necessitano di essere scomposti Esempio: – attributo “nome completo” (es: “Mario Rossi”) oppure – Attributo “nome” e attributo “cognome” (es: “Mario”, “Rossi”) Se il nome e il cognome si trattano sempre assieme, va bene anche “nome completo” – altrimenti “nome” e “cognome” è indispensabile 21Informatica di base – Linea 1

Unicità delle entità Due entità possono avere lo stesso valore per uno o più attributi – es: due appartamenti possono essere allo stesso piano Se due entità hanno lo stesso valore per tutti gli attributi, allora sono la stessa entità – perché gli attributi che abbiamo identificato sono tutti gli attributi che caratterizzano le entità In pratica: non esistono due entità con gli stessi valori per tutti gli attributi 22Informatica di base – Linea 1

Chiavi candidate Non possono esistere due entità con gli stessi valori per tutti gli attributi. Quindi: – esistono insiemi di attributi i cui valori non possono essere ripetuti in due entità – come minimo, l’insieme di tutti gli attributi – ognuno di questi insiemi identifica univocamente un’entità Un insieme di attributi che identifica univocamente un’entità è detto chiave candidata 23Informatica di base – Linea 1

Chiavi candidate: esempio Entità “persona”, attributi: – Nome, cognome, data di nascita, luogo di nascita, codice fiscale Chiavi candidate: – Nome, cognome, data di nascita, luogo di nascita, codice fiscale l’insieme di tutti gli attributi è sempre una chiave candidata – Codice fiscale – Codice fiscale con un qualunque insiemi di attributi è una chiave candidata – Nome, cognome, data di nascita, luogo di nascita in molti contesti applicativi può essere considerata una chiave candidata 24Informatica di base – Linea 1

Chiave primaria Tra tutte le chiavi candidate, ne viene scelta una che svolge il ruolo di chiave primaria La chiave primaria viene utilizzata per identificare tutte le righe in una tabella Esempio: – “codice fiscale” è una buona scelta: è una chiave candidata ed è composta da pochi attributi (uno solo) 25Informatica di base – Linea 1

Quarta parte Le operazioni sulle tabelle 26Informatica di base – Linea 1

Il formalismo dei DB I DB sono basati su solidi risultati teorici E’ possibile definire 5 operazioni sulle tabelle, analoghe alle operazioni algebriche: – selezione, proiezione, unione, differenza, prodotto – si applicano a tabelle, restituiscono come risultato una tabella 27Informatica di base – Linea 1

1. Selezione Permette di selezionare alcune righe da una tabella Si specifica una condizione (o “test”) e una tabella di input Il risultato è dato da una tabella con gli stessi attributi della tabella in input e contenente solo le righe in cui la condizione è verificata – la condizione viene valutata per ogni riga. 28Informatica di base – Linea 1

Selezione, esempio Tabella: appartamenti 29 SuperficiePianoStanzeIndirizzoBox 10044Via Rossi, 5No 5042Via Verdi, 4Sì 15087Via Bianchi, 9Sì select Piano=4 from appartamenti SuperficiePianoStanzeIndirizzoBox 10044Via Rossi, 5No 5042Via Verdi, 4Sì Informatica di base – Linea 1

Combinazione di condizioni: la logica booleana E se volessimo esprimere più condizioni? – Usiamo la logica booleana Es: “è al quarto piano e non ha il box” – Piano=4 AND Box=“no” Es: “è al quarto piano e non ha il box, oppure è al primo piano e ha il box” – (Piano = 4 AND Box=“no”) OR (Piano=1 AND Box = “Sì”) 30Informatica di base – Linea 1

2. Proiezione Permette di scegliere quali attributi di una tabella visualizzare Si specificano una tabella e una lista di attributi di quella tabella Il risultato è una tabella con solo quell’insieme di attributi e tutte le righe della tabella in input 31Informatica di base – Linea 1

Proiezione, esempio Tabella: appartamenti 32 SuperficiePianoStanzeIndirizzoBox 10044Via Rossi, 5No 5042Via Verdi, 4Sì 15087Via Bianchi, 9Sì Project Indirizzo, Box from appartamenti IndirizzoBox Via Rossi, 5No Via Verdi, 4Sì Via Bianchi, 9Sì Informatica di base – Linea 1

3. Unione Operazione applicata a due tabelle che hanno esattamente gli stessi attributi Restituisce la tabella che contiene l’unione delle righe di entrambe le tabelle in input 33Informatica di base – Linea 1

Unione, esempio Tabella: appartamenti 34 SuperficiePianoStanzeIndirizzoBox 10044Via Rossi, 5No 5042Via Verdi, 4Sì 15087Via Bianchi, 9Sì Piccolo = select Stanze<3 from appartamenti Grande = select Stanze>5 from appartamenti Piccolo unito Grande: SuperficiePianoStanzeIndirizzoBox 5042Via Verdi, 4Sì 15087Via Bianchi, 9Sì Informatica di base – Linea 1

4. Differenza Operazione applicata a due tabelle che hanno esattamente gli stessi attributi Assume in input due tabelle, A e B Restituisce la tabella che contiene le righe che fanno parte di A ma non di B – “sottrae da A le righe di B” 35Informatica di base – Linea 1

Differenza, esempio Tabella: appartamenti 36 SuperficiePianoStanzeIndirizzoBox 10044Via Rossi, 5No 5042Via Verdi, 4Sì 15087Via Bianchi, 9Sì Grande = select Stanze>5 from appartamenti appartamenti - Grande: SuperficiePianoStanzeIndirizzoBox 10044Via Rossi, 5No 5042Via Verdi, 4Sì Informatica di base – Linea 1

5. Prodotto Si applica ad una coppia di tabelle (anche senza gli stessi attributi) Restituisce una tabella che contiene tutti gli attributi delle due tabelle in input e tutte le combinazioni dei valori delle due tabelle in input – funziona come il prodotto cartesiano fra due insiemi {a, b} x {c, d, e} = {{ a,c }, {a, d}, {a, e}, {b, c}, {b, d}, {b, e}} 37Informatica di base – Linea 1

Il prodotto: esempio Tabella: Bambini 38 NomeAnniGenere Andrea2Maschio Luca3Maschio Anna4Femmina GiocoColoreGiocoDa MacchininabluMaschio BambolarosaFemmina Tabella: Giochi Bambini x Giochi NomeAnniGenereGiocoColoreGiocoDa Andrea2MaschioMacchininabluMaschio Andrea2MaschioBambolarosaFemmina Luca3MaschioMacchininabluMaschio Luca3MaschioBambolarosaFemmina Anna4FemminaMacchininabluMaschio Anna4FemminaBambolarosaFemmina

Composizione di operazioni E’ possibile combinare le operazioni in modo da utilizzare il risultato di una operazione come operando per una nuova operazione – analogo a 5 + (2 * 3): prima svolgiamo (2*3) e otteniamo un numero che poi usiamo come operando sommato a 5 39Informatica di base – Linea 1

Composizione di operazioni, esempio Tabella: appartamenti 40 SuperficiePianoStanzeIndirizzoBox 10044Via Rossi, 5No 5042Via Verdi, 4Sì 15087Via Bianchi, 9Sì project Superficie, Piano from (select Stanze>3 from appartamenti) SuperficiePiano Informatica di base – Linea 1

Il join E’ una forma di composizione: – si applica una selezione ad un prodotto E’ molto usata, quindi prende un nome specifico L’idea è: fai il prodotto ma non restituire tutti le combinazioni ma solo alcune per cui vale una certa condizione 41Informatica di base – Linea 1

Il join naturale Si moltiplicano due tabelle A e B e si selezionano solo le righe per le quali un attributo (specificato) di A ha valore uguale ad un attributo (specificato) di B 42Informatica di base – Linea 1

Join naturale, esempio Tabella: Bambini 43 NomeAnniGenere Andrea2Maschio Luca3Maschio Anna4Femmina GiocoColoreGiocoDa MacchininabluMaschio BambolarosaFemmina Tabella: Giochi Join Bambini, Giochi on Bambini.genere = Giochi.GiocoDa NomeAnniGenereGiocoColoreGiocoDa Andrea2MaschioMacchininabluMaschio Luca3MaschioMacchininabluMaschio Anna4FemminaBambolarosaFemmina Informatica di base – Linea 1

Quinta parte Principi di progettazione di DB 44Informatica di base – Linea 1

La ridondanza dei dati Molti contesti applicativi portano ad avere, come soluzione naturale, la duplicazione di dati tra diverse tabelle. 45 Tabella: Studenti NomeCognomeMatricolaIndirizzo AndreaBianchi111111Via Roma, 1 BeatriceVerdi222222Corso Milano, 2 CarloRossi333333Piazza Genova, 3 LibroAutoreNomeCognomeIndirizzo FluencySnyderAndreaBianchiVia Roma, 1 La RelativitàEinsteinBeatriceVerdiCorso Milano, 2 Tabella: Libri prestati Informatica di base – Linea 1

I problemi derivanti dalla ridondanza Spreco di spazio di memorizzazione: – le stesse informazioni vengono memorizzate due volte: sarà necessario utilizzare il doppio dello spazio per memorizzare quei dati Inconsistenza dei dati: – se un dato cambia, deve essere cambiato in tutte le tabelle dove quel dato è presente. – è difficile verificare automaticamente che questa operazione venga realizzata correttamente – se non viene realizzata correttamente, i dati diventano inconsistenti 46Informatica di base – Linea 1

Esempio di inconsistenza dei dati 47 Tabella: Studenti NomeCognomeMatricolaIndirizzo AndreaBianchi111111Via Roma, 1 BeatriceVerdi222222Viale Monza, 4 CarloRossi333333Piazza Genova, 3 LibroAutoreNomeCognomeIndirizzo FluencySnyderAndreaBianchiVia Roma, 1 La RelativitàEinsteinBeatriceVerdiCorso Milano, 2 Tabella: Libri prestati Beatrice Bianchi cambia indirizzo e comunica la modifica solo alla segreteria (ma non alla biblioteca) Informatica di base – Linea 1

“mmm, non capisco dove vuoi andare a parare” “Va bene, ho capito che la ridondanza è tanto brutta, però l’informazione dell’indirizzo serve in entrambe le tabelle, quindi non posso fare a meno di duplicarla” 48Informatica di base – Linea 1

La soluzione: l’intuizione Nella tabella della biblioteca non memorizzo tutte le informazioni di uno studente, ma solo la sua matricola: 49 Tabella: Studenti NomeCognomeMatricolaIndirizzo AndreaBianchi111111Via Roma, 1 BeatriceVerdi222222Corso Milano, 2 CarloRossi333333Piazza Genova, 3 TitoloAutoreMatricola FluencySnyder La RelativitàEinstein Tabella: Libri Informatica di base – Linea 1

La soluzione: cosa abbiamo fatto Abbiamo scelto l’insieme di attributi {Matricola} come chiave primaria della tabella Studenti Nella tabella Libri usiamo un riferimento alla matricola dello studente che ha preso in prestito il libro: – l’insieme di attributi {Matricola} prende il nome di chiave esterna 50Informatica di base – Linea 1

La chiave esterna Una chiave esterna è un insieme di attributi di una tabella che fanno riferimento alla chiave primaria di un’altra tabella. 51Informatica di base – Linea 1

“Non mi stai convincendo” “Ci sono almeno due cose che non mi vanno bene di quello che ci hai appena detto: 1.non hai tolto del tutto la ridondanza dei dati, in quanto la matricola viene sempre ripetuta due volte 2.nella tabella Libri non ci sono più i dettagli dello studente ma solo la matricola: se volessi sapere come si chiama chi ha preso un certo libro, come faccio?” 52Informatica di base – Linea 1

1 – la ridondanza E’ vero che la chiave esterna ripete i valori della chiave primaria – nel nostro esempio: Libri.Matricola ripete i valori di Studenti.Matricola 53Informatica di base – Linea 1

1 – la ridondanza (cont) tuttavia: – abbiamo scelto una chiave primaria che richiede poco spazio per essere memorizzata (dunque si spreca poco spazio) – abbiamo aggiunto metadati (abbiamo specificato che Libri.Matricola è una chiave esterna che si riferisce a Studenti.Matricola) quindi possiamo aggiornare automaticamente i dati qualora un valore di Studenti.Matricola o di Libri.Matricola venisse aggiornato. 54Informatica di base – Linea 1

2-la completezza dei dati Come fa la libreria a sapere il nome degli studenti a cui i libri sono stati prestati? Applichiamo un’operazione tra tabelle: – quale? 55Informatica di base – Linea 1

2-la completezza dei dati (cont) Usiamo il Join naturale 56 LibriStudenti = join Libri, Studenti on Studenti.Matricola = Libri.Matricola TitoloAutoreLibri.Matri cola NomeCognomeStudenti.M atricola Indirizzo FluencySnyder111111AndreaBianchi111111Via Roma, 1 La RelativitàEinstein222222BeatriceVerdi222222Corso Milano, 2 Informatica di base – Linea 1

Tabelle fisiche e tabelle logiche Tabelle fisiche: le tabelle i cui dati vengono memorizzati dal DB – es: Libri, Studenti Tabelle logiche: le tabelle necessarie per l’utilizzo del DB che vengono derivate attraverso operazioni su tabelle – es: LibriStudenti – le tabelle logiche vengono anche dette “viste” 57Informatica di base – Linea 1

Relazioni tra tabelle Relazione tra tabelle: corrispondenza tra attributi di una tabella con alcuni attributi di un’altra tabella. – Es: Studenti e Libri sono in relazione in quanto Libri.Matricola è una chiave esterna che fa riferimento a Studenti.Matricola – la relazione inPrestitoA collega Libri a Studenti – diagramma entità-relazione: è uno schema usato per rappresentare le entità (con i loro attributi) e le loro relazioni 58 Informatica di base – Linea 1 Libro Titolo Autore Studente Nome Cognome Matricola Indirizzo inPrestitoA

Sesta parte Interrogazione di una base di dati 59Informatica di base – Linea 1

Le query Le operazioni di lettura o scrittura di dati da un DB vengono dette query – (trad: “interrogazioni”) In particolare ci occuperemo di capire come si possono realizzare le operazioni di: selezione, proiezione e join “Ma come si fa a specificare le query?” 60Informatica di base – Linea 1

SQL SQL è un linguaggio che permette di specificare le query – SQL = Structured Query Language E’ stato studiato appositamente per essere facilmente comprensibile – appare simile al linguaggio naturale – ma NON è linguaggio naturale ha un sintassi formale 61Informatica di base – Linea 1

La proiezione In SQL l’operazione per “selezionare” alcuni valori da tabelle è detta SELECT La parola FROM indica da quali tabelle vogliamo andare a prendere i risultati SELECT nome, cognome FROM studenti  Effettua la proiezione di studenti sugli attributi nome e cognome 62Informatica di base – Linea 1

La selezione Si utilizza lo stesso costrutto SELECT FROM della proiezione, ma in aggiunta si specifica una clausola WHERE SELECT * FROM esami WHERE crediti > 3 il simbolo * indica di selezionare tutti gli attributi 63Informatica di base – Linea 1

Selezione e proiezione La combinazione delle due operazioni si ottiene in modo naturale in SQL: SELECT nomeEsame FROM esami WHERE crediti>3 Effettua la selezione degli esami con più di 3 crediti e poi fa la proiezione sull’attributo nomeEsame 64Informatica di base – Linea 1

Prodotto Il prodotto viene calcolato automaticamente quando vengono selezionate più tabelle con la clausola FROM SELECT nome, cognome, nomeEsame FROM Professori, Esami 65Informatica di base – Linea 1

Il join Selezioniamo alcune righe dopo aver fatto il prodotto: SELECT nome, cognome, nomeEsame FROM Docenti, Esami WHERE Docenti.Identificativo = Esami.docente 66Informatica di base – Linea 1

La composizione guidata di query Molti applicativi per gestire database rendono disponibili strumenti di supporto alla creazione di query: – oggi ne vedremo alcuni Idea: – chi è esperto scrive direttamente in SQL (fa prima) – chi non è esperto si lascia aiutare dall’applicazione: il risultato è comunque una query in SQL 67Informatica di base – Linea 1

Settima parte Conclusioni 68 “Non ne posso più!!! Una lezione davvero infinita…” Informatica di base – Linea 1

Riepilogo: la logica booleana Rende formali concetti intuitivi come “E”, “O”, “NO” Permette di comporre espressioni complesse in modo simile all’algebra Basta fare pochi esercizi per prendere confidenza: fateli! 69Informatica di base – Linea 1

Riepilogo: le basi di dati Possono sembrare simili ai fogli di calcolo ma in realtà sono molto differenti Forniscono una struttura per rappresentare qualunque entità – attraverso l’utilizzo dei metadati che descrivono l’informazione 70Informatica di base – Linea 1

Riepilogo: le operazioni sulle tabelle Permettono di generare nuove tabelle a partire da tabelle esistenti. Sono operazioni abbastanza semplici ed intuitive – (anche il prodotto?) I concetto di join e di chiave primaria ci consentono di: – definire le relazioni tra tabelle – effettuare le ricerche in una base di dati 71Informatica di base – Linea 1

La struttura dei DB Abbiamo visto come vengono generalmente strutturate la BD – è improbabile che vi troviate a dover creare DB (di grandi dimensioni) – tuttavia, comprendere i principi di strutturazione dei DB è indispensabile per poterli utilizzare correttamente e per poter estrarre informazioni da essi – in laboratorio, sfrutteremo le conoscenze teoriche di questa lezione per capire come sia possibile recuperare dei dati da una base di dati 72Informatica di base – Linea 1

Esercizi, logica booleana Considera le seguenti proposizioni e calcola il valore di verità dell’espressione che segue – a = “un quadrato ha un lato più lungo degli altri” – b = “la popolazione Italiana nell’anno 2000 era di 10 abitanti” – c = “5-2=3” NOT ((a AND (b OR c)) AND ((NOT c) OR (NOT b))) 73Informatica di base – Linea 1

Esercizi, logica booleana Calcola la tavola di verità per le seguenti espressioni: – a OR (NOT b) – a AND (NOT b) – a OR (b AND c) – (a AND b) or (b AND c) – a AND (NOT A) – a OR (NOT a) – (a AND (NOT b)) OR (c AND (a OR b)) 74Informatica di base – Linea 1

Esercizi: operazioni su tabelle Tabella: Studenti 75 NomeCognomeAnno MarioBianchi2 AnnaVerdi2 LuciaRossi1 NomeCognomeRuolo AndreaBluRicercatore CarlaViolaOrdinario Tabella: Professori Calcola le seguenti operazioni Project Nome, Anno from Studenti Select Ruolo = “Ricercatore” from Professori Studenti x Professori Informatica di base – Linea 1

Esercizi: operazioni su tabelle Considera le due tabelle della slide precedente e spiega se le seguenti operazioni sono valide o meno. Se sono valide, calcola la tabella risultante. – (Project Nome, Cognome From Studenti) + (Project Nome, Cognome From Professori) – (Project Nome, Cognome From Studenti) – (Project Nome, Cognome From Professori) – Select anno=3 from Studenti – Select anno=2 from Professori 76Informatica di base – Linea 1