La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università."— Transcript della presentazione:

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

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

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

4 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

5 Oggi studieremo le basi di dati (DB) Le basi di dati (database, in inglese) servono per organizzare e memorizzare le informazioni in modo strutturato: – e poterle poi rielaborare in modo automatico Hanno alcuni aspetti in comune con i fogli di calcolo: – gestiscono tipi diversi di informazione – visualizzano l’informazione in forma tabulare 5Informatica di base – Linea 1

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

7 La logica booleana Per poter capire i 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 7Informatica di base – Linea 1

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

9 La logica booleana Il nostro scopo: definire una “espressione logica” e verificare il suo “valore di verità”: – cioè, l’espressione è vera o falsa? Ogni espressione logica è costituita da un insieme di operatori e di 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

10 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; se il valore dell’operando è vero, allora restituisce il valore “falso” 10Informatica di base – Linea 1

11 Tavole di verità aba AND b VERO FALSO VEROFALSO 11 aba OR b VERO FALSOVERO FALSOVERO FALSO aNOT a VEROFALSO VERO ANDORNOT Ogni operatore da solo definisce un’espressione logica: “a AND b”, “a OR b”, “NOT a” sono tre espressioni il valore di verità di ogni espressione dipende dai valori degli operandi a e b  tavola di verità

12 Espressioni booleane Così come è possibile comporre le operazioni algebriche (somma, prodotto, …), è possibile comporre anche le operazioni booleane – Esempio: a AND (b OR (NOT c)) a, b, c sono singoli operandi oppure 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” – l’espressione “a AND (b OR (NOT c))” è vera o falsa? 12Informatica di base – Linea 1

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

14 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 gli attributi dell’entità che sono necessari agli scopi di uno specifico contesto applicativo 14Informatica di base – Linea 1

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

16 Come si rappresentano gli attributi Gli attributi hanno un nome e un dominio – Attenzione! Non un “valore”, come scritto nel libro di testo – Il dominio definisce il tipo di valori che possono essere assunti per quell’attributo – Es. entità “appartamento”: attributo con nome “indirizzo”: il dominio è un testo attributo con nome “numero di stanze”: il dominio è un numero intero Informatica di base – Linea 116

17 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 un DB I dati invece sono gli specifici valori inseriti per gli attributi – perciò, i metadati specificano il tipo di dati contenuti nel DB, ma non i dati stessi Informatica di base – Linea 117

18 Dati e metadati: esempio Entità: “appartamento” Attributi: – “superficie commerciale”  dominio: numero; dato: 100 – “piano”  dominio: numero; dato: 4 – “numero di stanze”  dominio: numero; dato: 5 – “indirizzo”  dominio: testo; dato: Via Roma, 16 – “box”  dominio: booleano (“sì” o “no”); dato: si 18Informatica di base – Linea 1

19 Tabelle e istanze SuperficiePianoStanzeIndirizzoBox 10044Via Rossi, 5No 5042Via Verdi, 4Sì 15087Via Bianchi, 9Sì 19 Per ogni entità, i dati dei vari attributi vengono memorizzati in una tabella: il nome della tabella corrisponde all’entità i diversi attributi corrispondono alle colonne della tabella ogni riga corrisponde ad una entità specifica Uno specifico insieme di dati in una tabella viene detto istanza Tabella: appartamenti

20 Atomicità degli attributi Gli attributi devono contenere dati che non necessitano mai di essere scomposti Esempio. Per l’entità “persona”, abbiamo due possibilità: – attributo “nome completo” (“Mario Rossi”) – attributo “nome” e attributo “cognome” (“Mario”, “Rossi”) Che differenza c’è? – se il nome e il cognome si trattano sempre assieme, va bene anche “nome completo”, altrimenti la separazione degli attributi in “nome” e “cognome” è indispensabile 20Informatica di base – Linea 1

21 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à In pratica: non possono esistere nel DB due entità con gli stessi valori per tutti gli attributi – cioè, in ogni tabella di un DB non possono esistere delle righe identiche 21Informatica di base – Linea 1

22 Chiavi candidate Abbiamo appena detto che in un DB non possono esistere due entità con gli stessi valori per tutti gli attributi. Quindi: – deve esistere almeno un insieme di attributi i cui valori non sono ripetuti in due entità diverse ad esempio, l’insieme di tutti gli attributi – ognuno di questi insiemi identifica univocamente un’entità, cioè permette di distinguere entità diverse Un insieme di attributi che identifica in modo univoco ogni entità è detto chiave candidata 22Informatica di base – Linea 1

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

24 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 in modo univoco e definitivo tutte le righe in una tabella: – cioè, per distinguere tutte le entità fra loro Esempio di chiave primaria: – “codice fiscale” è una buona scelta – “nome”, “cognome” non è una buona scelta perché no? 24Informatica di base – Linea 1

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

26 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 una o più tabelle, e restituiscono come risultato una tabella – noi vediamo soltanto 3 operazioni, quelle più utili nella pratica 26Informatica di base – Linea 1

27 1. Selezione Permette di selezionare alcune righe da una tabella Come si fa? Si specifica una condizione (o “test”) e una tabella di input Il risultato è dato da una tabella che ha gli stessi attributi della tabella in input, e che contiene solo le righe (prese dalla tabella input) in cui la condizione è verificata – la condizione viene valutata per ogni riga 27Informatica di base – Linea 1

28 Selezione, esempio Tabella: appartamenti 28 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

29 Combinazione di condizioni: la logica booleana E se volessimo esprimere più condizioni, cioè sfruttare i valori di più attributi? – usiamo la logica booleana Es: “è al quarto piano e non ha il box” – select Piano=4 AND Box=“no” from appartamenti Es: “è al quarto piano e non ha il box, oppure è all’ottavo piano e ha il box” – select (Piano = 4 AND Box=“no”) OR (Piano=8 AND Box = “Sì”) from appartamenti 29Informatica di base – Linea 1

30 2. Proiezione Permette di scegliere quali attributi di una tabella visualizzare Come si fa? Si specificano una tabella in input e una lista di attributi di quella tabella Il risultato è una tabella che ha solo quell’insieme di attributi, ed è costituita da tutte le righe della tabella in input – in pratica, la proiezione “estrae” delle colonne dalla tabella in input 30Informatica di base – Linea 1

31 Proiezione, esempio Tabella: appartamenti 31 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

32 3. Prodotto Si applica ad una coppia di tabelle in input Restituisce una tabella che contiene tutti gli attributi delle due tabelle in input e tutte le combinazioni delle righe 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)} 32Informatica di base – Linea 1

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

34 Composizione di operazioni E’ possibile combinare le operazioni sulle tabelle, 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 da sommare a 5 34Informatica di base – Linea 1

35 Composizione di operazioni, esempio Tabella: appartamenti 35 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

36 Un’altra operazione utile: il join E’ molto usata, quindi prende un nome specifico E’ una forma di composizione: – applica una selezione ad un prodotto di tabelle (andando a vedere se c’è una corrispondenza fra i valori di alcuni attributi) L’idea è: fai il prodotto di due tabelle ma non restituire tutte le combinazioni delle righe, prendi solo quelle per cui è verificata una certa condizione 36Informatica di base – Linea 1

37 Il join naturale Si fa il prodotto fra due tabelle A e B, e si selezionano solo le righe per le quali il valore di un attributo (specificato) di A è uguale al valore di un attributo (specificato) di B – cioè, le righe in cui esiste una corrispondenza fra la tabella A e la tabella B rispetto al valore degli attributi che abbiamo specificato 37Informatica di base – Linea 1

38 Join naturale, esempio Tabella: Bambini 38 NomeAnniGenere Andrea2Maschio Luca3Maschio Anna4Femmina GiocoColoreGiocoDa MacchininabluMaschio BambolarosaFemmina Tabella: Giochi join Bambini, Giochi on Bambini.genere = Giochi.GiocoDa NomeAnniGenereGiocoColoreGiocoDa Andrea2MaschioMacchininabluMaschio Luca3MaschioMacchininabluMaschio Anna4FemminaBambolarosaFemmina Anna4FemminaMacchininabluMaschio Domanda: perché questa riga non fa parte della tabella ottenuta con il join?

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

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

41 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 41Informatica di base – Linea 1

42 Esempio di inconsistenza dei dati 42 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 Verdi cambia indirizzo e comunica la modifica solo alla segreteria (ma non alla biblioteca)

43 “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” 43Informatica di base – Linea 1

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

45 La soluzione: cosa abbiamo fatto Abbiamo scelto l’insieme di attributi {Matricola} come chiave primaria della tabella Studenti – è un identificatore unico per tutte le righe 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 45Informatica di base – Linea 1

46 La chiave esterna Una chiave esterna è un insieme di attributi di una tabella che fanno riferimento alla chiave primaria di un’altra tabella – la chiave esterna permette di reperire le informazioni da una tabella ad un’altra in modo coerente, senza dover replicare tutte le informazioni di una tabella in altre tabelle – si evitano sia la ridondanza che l’inconsistenza 46Informatica di base – Linea 1

47 “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?” 47Informatica di base – Linea 1

48 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 48Informatica di base – Linea 1

49 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 49Informatica di base – Linea 1

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

51 2 - la completezza dei dati (cont) Usiamo il join naturale: LibriStudenti = join Libri, Studenti on Studenti.Matricola = Libri.Matricola Tabella: LibriStudenti TitoloAutoreLibri.Matri cola NomeCognomeStudenti.M atricola Indirizzo FluencySnyder111111AndreaBianchi111111Via Roma, 1 La RelativitàEinstein222222BeatriceVerdi222222Corso Milano, 2 Tabella: Studenti NomeCognomeMatricolaIndirizzo AndreaBianchi111111Via Roma, 1 BeatriceVerdi222222Corso Milano, 2 CarloRossi333333Piazza Genova, 3 TitoloAutoreMatricola FluencySnyder La RelativitàEinstein Tabella: Libri

52 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 ogni utilizzo specifico del DB che vengono derivate attraverso operazioni su tabelle – es: LibriStudenti – le tabelle logiche vengono anche dette “viste” – un singolo DB può dare origine a moltissime viste diverse 52Informatica di base – Linea 1

53 Relazioni tra tabelle Una relazione tra tabelle è una corrispondenza tra gli attributi di una tabella e gli 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 – le due tabelle sono collegate dalla relazione che si chiama “inPrestitoA” – diagramma entità-relazione: è uno schema usato per rappresentare le entità (con i loro attributi) e le loro relazioni 53 Informatica di base – Linea 1 Libro Titolo Autore Studente Nome Cognome Matricola Indirizzo inPrestitoA

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

55 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! 55Informatica di base – Linea 1

56 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 la struttura dell’informazione 56Informatica di base – Linea 1

57 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 57Informatica di base – Linea 1

58 La struttura dei DB Abbiamo visto come vengono generalmente strutturati i DB: – è 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 estrarre dei dati da un DB 58Informatica di base – Linea 1

59 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))) 59Informatica di base – Linea 1

60 Esercizi, logica booleana Considera le proposizioni proposte nella slide precedente e calcola il valore di verità delle seguenti espressioni: – 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)) 60Informatica di base – Linea 1

61 Esercizi, operazioni su tabelle Tabella: Studenti 61 NomeCognomeAnno MarioBianchi2 AnnaVerdi2 LuciaRossi1 NomeCognomeRuolo AndreaBluRicercatore CarlaViolaOrdinario Tabella: Professori Usando le tabelle riportate in questa slide, calcola le seguenti operazioni: project Nome, Anno from Studenti select Ruolo = “Ricercatore” from Professori Studenti x Professori Informatica di base – Linea 1


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

Presentazioni simili


Annunci Google