Scarica Informatica documentale slides e più Dispense in PDF di Elementi di Informatica solo su Docsity!
Informatica Documentale Prof.ssa Margherita Zorzi Ricevimento ME 15- Ufficio: stanza 1.80, Cà Vignal 2, Facoltà di Scienze, strada Le Grazie 15
lunedì 04/10/ Lezione 1
Testo di riferimento: P. Atzeni, S. Ceri, S. Paraboschi e R. Torlone. Basi di Dati: modelli e linguaggi di interrogazione. McGraw-Hill, 2009
Lunedì 3 novembre: non ci sarà lezione, verrà recuperata un martedì o un mercoledì pomeriggio
Introduzione – CAP 1
Studio delle Basi di Dati, ovvero insiemi organizzati di dati. Da un punto di vista informatico, le basi di dati sono un supporto digitale su cui immagazzinare i dati, un software che permetta di recuperare i dati e una rete che ne permetta la condivisione.
Contenuto del corso:
- modelli per l'organizzazione dei dati ◦ modello relazionale
- linguaggi per l'utilizzo dei dati ◦ SQL ◦ algebra relazionale
- sistemi per la gestione dei dati
- metodologie di progettazione di basi di dati ◦ come viene affrontata la progettazione di una base di dati
Il modello relazionale è il modello più diffuso e lo andremo a rappresentare tramite tabelle, in modo molto intuitivo.
Il linguaggio SQL serve per definire le basi di dati e per recuperare i sottoinsiemi di dati che interessano per determinati compiti. Le domande per ottenere determinate informazioni si chiamano interrogazioni.
Perché studiare informatica documentale?
- la comunicazione prevede lo scambio e quindi la trasmissione e il recupero di informazioni
- le informazioni devono essere conservate, aggiornate e gestite in modo efficiente.
“ Non ci sono informazioni migliori delle altre, il potere sta nello schedarle tutte, e poi cercare le connessioni...” (Umberto Eco, Il Pendolo di Focault)
Parole Chiave
Base di dati : insieme organizzato di dati utilizzati per il supporto allo svolgimento di attività (di un ente, azienda, ufficio, persona).
Informatica: Scienza del trattamento razionale, specialmente per mezzo di macchine automatiche, dell'informazione, considerata come supporto alla conoscenza umana e alla comunicazione (Accademia Di Francia). Definizione molto “aulica”. In realtà l'informatica è un'insieme di diverse scienze, in quanto gli interessi sono altamente diversificati.
Le basi di dati hanno due anime:
Noi vedremo l'anima metodologica.
Sistema informativo
- componente di una organizzazione che gestisce le informazioni di interesse (cioè utilizzate per il perseguimento degli scopi dell'organizzazione).
- ogni organizzazione ha un sistema informativo, eventualmente non esplicitato nella struttura.
- il sistema informativo è di supporto ad altri sottoinsiemi, e va quindi studiato nel contesto in cui è inserito.
Gestione delle informazioni
- raccolta, acquisizione;
- archiviazione, conservazione;
- elaborazione, trasformazione, produzione;
- distribuzione, comunicazione, scambio.
Sistemi informativi e automazione
- il concetto di “sistema informativo” è indipendente da qualsiasi automatizzazione
- esistono organizzazioni la cui ragion d'essere è la gestione di informazioni (es. servizi anagrafici e banche) e che operano da secoli
Gestione delle informazioni
- i dati sono spesso il risultato di forme di organizzazione e codifica delle informazioni
- Esempio: nei servizi anagrafici e nel riferimento a persone ◦ descrizioni discorsive ◦ nome e cognome ◦ estremi anagrafici ◦ codice fiscale
Perché i dati?
- la rappresentazione precisa di forme più ricche di informazione e conoscenza è difficile
- i dati costituiscono spesso una risorsa strategica perché più stabili nel tempo e di altri componenti (processi, tecnologie, ruoli umani):
- ad esempio, i dati delle banche o delle anagrafi.
Base di dati
- (accettazione generica, metodologica) ◦ insieme organizzato di dati utilizzati per il supporto allo svolgimento delle attività di un ente (azienda, ufficio, persona)
- (accezione specifica, metodologica e tecnologica) ◦ insieme di dati gestiti da un DBMS (DataBase Management System)
In Esame. Cos'è una Base di dati: insieme di dati gestito da un DBMS.
Sistema di gestione di basi di dati DataBase Management System (DBMS)
- Sistema che gestisce collezioni di dati: ◦ grandi, persistenti, condivise
- garantendo ◦ privatezza, affidabilità, efficienza, efficacia. DBMS
prodotti software complessi disponibili sul mercato; esempi:
- DB
- Oracle
- SQLServer
- MySQL
- PostgreeSQL
- Access
Le basi di dati sono … grandi
- dimensioni molto maggiori della memoria centrale dei sistemi di calcolo utilizzati
- il limite deve essere solo quello fisico dei dispositivi
- esempi di dimensioni molto grandi ◦ 500 gigabyte (dati transazionali) ◦ 10 terabyte (dati decisionali) ◦ 500 terabyte (dati scientifici) ◦ 100 miliardi di record.
Le basi di dati sono … persistenti
Hanno un tempo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano.
Le base di dati sono … condivise
- una base di dati è una risorsa integrata, condivisa fra applicazioni
- conseguenze ◦ attività diverse su dati condivisi ▪ meccanismi di autorizzazione ◦ accessi di più utenti ai dati condivisi: ▪ controllo della concorrenza (se due persone fanno la stessa operazione sullo stesso dato, bisogna che le due operazioni vengano fatte una prima dell'altra e non contemporaneamente).
Problemi
- ridondanza: ◦ informazioni ripetute
- rischio di incoerenza: ◦ le versioni possono non coincidere
Archivi e basi di dati
Gestione orario lezioni → Archivio 1: orario lezioni Gestione ricevimento → Archivio 2: ricevimento
Per evitare ridondanza si usa un solo archivio:
Gestione orari lezioni → base di dati Gestione ricevimento → base di dati
Descrizioni dei dati nei DBMS
- Rappresentazioni dei dati a livelli diversi ◦ permettono l'indipendenza dei dati dalla rappresentazione fisica ▪ i programmi fanno riferimento alla struttura a livello più alto, e le rappresentazioni sottostanti possono essere modificate senza necessità di modifica dei programmi
- precisiamo attraverso il concetto di ◦ modello dei dati
Modelli dei dati
- insieme di costrutti utilizzati per organizzare i dati di interesse e descrivere la dinamica
- componente fondamentale: meccanismi di strutturazione (o costruttori di tipo)
- come nei linguaggi di programmazione esistono meccanismi che permettono di definire nuovi tipi così ogni modello dei dati prevede alcuni costruttori
- Esempio: il modello relazionale prevede il costruttore relazione, che permette di definire insiemi di record omogenei.
Organizzazione dei dati in una base di dati
Orario
insegnamento docente aula ora Analisi 1 LUIGI NERI N1 8: BASI DI DATI PIERO ROSSI N2 9: Chimica NICOLA MORI N1 9:
Lo schema degli attributi di dati è l'insieme degli attributi che decido di utilizzare per la mia base di dati. I dati che vado a visualizzare sono l' istanza della base di dati.
In ogni base di dati esistono:
- lo schema, invariante nel tempo, che ne descrive la struttura.
- L'istanza, variabile nel tempo, ovvero i dati stessi.
I modelli logici
- adottati dal DBMS esistenti per l'organizzazione dei dati ◦ utilizzati dai programmi ◦ indipendenti dalle strutture fisiche
- esempi: relazionale, reticolare, gerarchico, a oggetti, basato su XML...
I modelli concettuali
- permettono di rappresentare i dati in modo indipendente da ogni sistem ◦ cercano di descrivere i concetti del mondo reale ◦ sono utilizzati nelle fasi preliminari di progettazione
- il più diffuso è il modello Entity-Relationship.
Utente → schema logico → schema interno → Base di Dati
Lo schema logico astrae lo schema interno in modo che l'utente possa interagire con esso senza dover usare il linguaggio macchina dello schema interno. (Ad esempio, la struttura della tabella).
Schema logico: descrizione della base di dati nel modello logico schema interno (o fisico): rappresentazione dello schema logico per mezzo di strutture di memorizzazione (file; ad esempio, record con puntatori, ordinati in un certo modo).
Linguaggi per basi di dati
- un altro contributo all'efficacia: disponibilità di vari linguaggi e interfacce ◦ linguaggi testuali interattivi (SQL) ◦ comandi (SQL) immersi in un linguaggio ospite (Pascal, Java, C …) ◦ comandi (SQL) immersi in un linguaggio ad hoc, con anche altre funzionalità (p.es. Per grafici o stampe strutturate) ◦ con interfacce amichevoli (senza linguaggio testuale, es. Access)
SQL, un linguaggio interattivo
Il modello relazionale è basato sui valori, esiste un collegamento tra il dato in una tabella (es. aula N3 nell
Corsi
Corso Docente Aula Basi di dati Rossi DS sistemi Neri N Reti Bruni N controlli Bruni G
CHAR(n) → parola riservata per definire un stringa di caratteri lunga n
CHAR(20) → 20 caratteri ; CHAR(4) → 4 caratteri
Modelli logici, caratteristiche
RELAZIONALE “è basato sui valori” anche i riferimenti fra i dati in strutture (relazioni) diverse sono rappresentati per mezzo dei valori stessi.
Studenti
Matricola cognome nome Data di nascita 6554 Rossi Mario 05/12/
Esami
Studente Voto Corso 6554 26 1
Corsi
Codice Titolo Docente 1 Analisi Mario
Il modello relazionale
- proposto da E.F. Codd NEL 1970 per favorire l'indipendenza dei dati
- disponibile in DBMS reali nel 1981 (non è facile implementare l'indipendenza con efficienza e affidabilità)
- si basa sul concetto matematico di relazione (con una variante)
- le relazioni hanno naturale rappresentazione per mezzo di tabelle
Vedremo:
- le strutture
- i vincoli di integrità
Relazione: tre accezioni
- relazione matematica, come nella teoria degli insiemi
- relazione, secondo il modello relazionale dei dati
- relazione (dall'inglese relationship ) che rappresenta una classe di fatti, nel modello Entity-Relationship ; tradotto anche con associazione o correlazione.
Relazione matematica, esempio
- D1 ={a,b}
- D2 = {x,y,z}
- prodotto cartesiano D1 x D ◦ a x ◦ a y ◦ a z ◦ b x ◦ b y ◦ b z
- una relazione r⊆D1xD ◦ a x ◦ a z ◦ b y
Una relazione è un sottoinsieme di un altro insieme, un insieme arbitrario delle coppie del prodotto cartesiano.
Relazione matematica
- d1,... D n ( n insiemi anche non distinti)
- prodotto cartesiano D1 × … ×D n : ◦ insieme di tutte le n-uple (d1,... dn) tali che d1∈D1, …, d n ∈D n ◦ relazione matematica su D1, …, Dn: ▪ un sottoinsieme di D1 × … × Dn. ◦ D1, …., Dn sono i domini della relazione.
Relazione matematica: proprietà
- una relazione matematica è un insieme di n-uple ordinate ◦ (d1,... dn) tali che d1∈D1, …, d n ∈D n
- una relazione è un insieme: ◦ non c'è un ordinamento tra le n-uple ◦ le n-uple sono distinte ◦ ciascuna n-upla è ordinata: l'i-esimo valore proviene dall'i-esimo dominio
Le prime sei domande dell'esame sono teoriche e si basano su tabelle, relazioni e affini.
Tabelle e relazioni
- in una tabella che rappresenta una relazione
- l'ordinamento tra le righe è irrilevante
- l'ordinamento tra le colonne è irrilevante
- una tabella rappresenta una relazione se
- le righe sono diverse tra loro
- le intestazioni delle colonne sono diverse tra loro
- i valori di ogni colonna sono fa loro omogenei
- Es. se una colonna rappresenta un numero di matricola dato da numeri, nella colonna delle matricole mi devo aspettare che ci siano solo sequenze di numeri.
Il modello è basato sui valori
- i riferimenti fra i dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle n-uple.
Studenti
Matricola cognome nome Data di nascita 6554 Rossi Mario 05/12/ 8765 Neri Paolo 03/11/ ... ...
Esami
Studente Voto Corso 6554 26 1 ... ... ...
Corsi
Codice Titolo Docente 1 Analisi Mario ... ...
Lunedì 18/10/ Terza Lezione
In Esame: Esercizio. Due schemi di relazione, fare interrogazioni usando tabelle diverse.
Modello a puntatori.
I puntatori sono collegamenti tra un certo campo di una certa tabella e un certo campo di un'altra tabella. Evito di duplicare i dati in varie tabelle, ma c'è un problema che lo rende più scomodo. Se in una tabella si cancella un dato, non si cancella più il dato, ma si eliminano tutti i collegamenti nelle altre tabelle, con una perdita “a catena” di informazioni.
Struttura basa su valori: vantaggi
- Indipendenza dalle strutture fisiche (si potrebbero avere anche con puntatori i alto livello) che possono cambiare dinamicamente;
- Si rappresenta solo ciò che è rilevante dal punto di vista dell'applicazione (i valori, cioè la rappresentazione logica dei dati);
- L'utente finale vede gli stessi dati dei programmatori;
- I dati sono portabili più facilmente da un sistema ad un altro.
- Alternativa: Alcuni modelli (sia quelli “storici”, reticolare e gerarchico, sia quello a oggetti) prevedono riferimenti espliciti, gestiti dal sistema.
Definizioni (importanti!)
- schema di relazione: un nome R con un insieme di attributi A 1 , …, A (^) n: R(A (^) 1 , ..., A (^) n)
- schema di base di dati: insieme di schemi di relazione: R= {R 1 (X 1 ),...,Rk(Xk)}
R={STUDENTI(Matricola, Cognome, Nome, Data di nascita) ESAMI(Studente, Voto, Corso) CORSI(Codice, Titolo, Docente)}
LIBRI {Autore(Nome, Cognome, CodiceLibro) Libro(Codice, Titolo, Anno)}
Definizioni, 2
- Una ennupla (o tupla) su un insieme di attributi X è una funzione che associa a ciascun attributi A in X un valore del dominio di A;
- t[A] denota il valore della ennupla t sull'attributo A
Strutture nidificate, riflessioni
Abbiamo rappresentato veramente tutti gli aspetti delle ricevute?
Dipende da che cosa ci interessa!
l'ordine delle righe e' rilevante?
possono esistere linee ripetute in una ricevuta?
Sono possibili rappresentazioni diverse:
Informazione incompleta
- ll modello relazionale impone ai dati una struttura rigida: ◦ le informazioni sono rappresentate per mezzo di ennuple ◦ solo alcuni formati di ennuple sono ammessi: quelli che corrispondono agli schemi di relazione
- I dati disponibili possono non corrispondere al formato previsto
Informazione incompleta: motivazioni
In una base di dati può capitare che alcuni valori delle tuple per un attributo non sia presente (es. Una persona non ha inserito il numero di telefono).
Come rappresentare il valore nullo?
- non conviene (anche se spesso si fa) usare valori del dominio (0, stringa nulla, “99”,...): ◦ potrebbero non esistere valori “non utilizzati” ◦ valori “non utilizzati” potrebbero diventare significativi ◦ in fase di utilizzo (nei programmi) sarebbe necessario ogni volta tener conto del “significato” di questi valori.
Informazione incompleta nel modello relazionale
- Tecnica rudimentale ma efficace:
- valore nullo: denota l’assenza di un valore del dominio (e non è un valore del dominio)
- t[A], per ogni attributo A, è un valore del dominio dom(A) oppure il valore nullo (che indichiamo qui con NULL )
- Si possono (e debbono) imporre restrizioni sulla presenza di valori nulli.
Tipi di valore nullo
- (Almeno) tre casi differenti ◦ valore sconosciuto: in questo momento non ho il dato ◦ valore inesistente: l'informazione non esiste: ◦ valore senza informazione: non ho il dato e non so se esista.
- i DBMS non distinguono i tipi di valore nullo.
Tavole di verità
A∧B: Congiunzione (AND) è vero solo quando tutti sono veri
A B A ∧ B
F F F
V F F
F V F
V V V
A∨B: Disgiunzione (OR): è vera quando almeno una delle due è vera, è falsa solo se entrambe sono false.
A B A ∨ B
F F F
V F V
F V V
V V V
A ¬A → negazione (NOT): la negazione di A è vera quando A è falsa e viceversa.
A ¬A
F V
V F
Vincolo di integrità (esempio)
- traduciamo in “linguaggio logico” la proprietà che vogliamo sia soddisfatta dalle istanze della nostra base di dati.
- Ad esempio, se vogliamo esprimere dei vincoli sui valori che può assumere l'attributo VOTO
(Voto≥18)AND(Voto≤30)
(NOT(Lode=”lode”))OR(Voto=30)
Lunedì 25/10/ Quarta lezione
Vincolo di integrità, perché?
- descrizione più accurata della realtà
- contributo alla “qualità dei dati”
- utili nella progettazione (vedremo)
- usati dai DBMS nella esecuzione delle interrogazioni
Vincoli di integrità, nota.
- Alcuni tipi di vincoli (ma non tutti) sono "supportati" dai DBMS: ◦ Possiamo quindi specificare vincoli di tali tipi nella nostra base di dati e il DBMS ne impedisce la violazione
- Per i vincoli "non supportati", la responsabilità della verifica è dell'utente o del programmatore
Tipi di vincoli
- vincoli intrarelazionali (vincolo definito rispetto alle singole relazioni della base di dati) ◦ vincoli di ennupla: esprimono condizioni su valori di ciascuna ennupla, indipendentemente dalla altre ennuple. ▪ Esempio: Stipendi: {impiegato, lordo, ritenute, netto} Lordo=(Ritenute+Netto) se Lordo≠(Ritenute+Netto) il dato errato in Lordo viola un vincolo di ennupla. ◦ vincoli su valori (o di dominio) : coinvolgono un solo attributo (caso particolare di vincolo di ennupla) ▪ Esempio: voto di esame inferiore a 18 o superiore a 30.
- vincoli interrelazionali (tra relazioni diverse della base di dati). Importanti: In Esame vincoli di integrità referenziale. → domanda d'esame
Studenti:{Matricola, Cognome, Nome, Corso, Nascita}
- non ci sono due ennuple con lo stesso valore sull'attributo Matricola
- non ci sono due ennuple uguali su tutti e tre gli attributi Cognome, Nome e Data di Nascita.