Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf ·...
Transcript of Basi di Dati. Programmazione e gestione di sistemi telematicidisit.org/paolucci/Corso_BD.pdf ·...
Basi di Dati. Programmazione e gestione di sistemitelematici
Coordinatore: Prof. Paolo NesiDocenti: Prof. Paolo Nesi
Dr.sa Michela Paolucci
Dr. Emanuele Bellini
Cosa e’ l’informatica?
� Scienza del trattamento razionale, specialmente per mezzo di macchine automatiche, dell’informazione, considerata come supporto alla conoscenza umana e alla comunicazione (Accad. di Francia)
Sistema azienda
Sistema azienda
Sistema organizzativo
Sistema informativo
Sistema informatico
Sistema Organizzativo� E' un Insieme di risorse e di regole per lo
svolgimento coordinato delle attività(processi) per perseguire gli scopi prefissi
Sistema Informativo � E un sottosistema di una organizzazione
che gestisce le informazioni di interesse
� sistema informativo è costituito dall'insieme delle informazioni utilizzate, prodotte e trasformate da un'azienda durante l'esecuzione dei processi aziendali, dalle modalità in cui esse sono gestite e dalle risorse, sia umane, sia tecnologiche, coinvolte.(wikipedia)
Risorse� le risorse di una azienda (o ente,
amministrazione): - persone - denaro - materiali - informazioni - …
Concetto di Sistema Informatico� Si tratta della parte di tutto il sistema informativo
che comprende automatismi: ovvero le informazioni che il sistema gestisce con la tecnologia informatica
� opera per supportare le altre componenti dell’organizzazione
� un Sistema Informativo è indipendente dalla sua computerizzazione
� Esempi di Sistema Informativo …
Sistema Informativo vs automazione� Un sistema informativo è indipendente da
ogni tipo di automatizzazione� Esistono organismi che hanno come
principale scopo quello di gestire informazioni (si tratta ad esempio di banche dati o servizi che gestiscono dati sensibili, etc)
Concetto di Sistema Informatico� Si tratta della parte di tutto il sistema
informativo che comprende automatismi: ovvero le informazioni che il sistema gestisce con la tecnologia informatica
Elementi di un Sistema informativo� Base di dati (BD)� Software di gestione della Base di Dati� Software applicativo� Hardware del computer (es. dispositivi di
memorizzazione)� Personale che sviluppa, gestisce o usa il
sistema�Prodedure stabilite di inserimento dati
� Quando, Chi, Come
Informazione strutturata� La struttura dell’informazione dipende dal suo
utilizzo e può essere modificata nel tempo� Esempio: per memorizzare dati su una
persona, nel corso del tempo:�Nome e cognome (fino a qualche secolo fa
non era ovvio neppure questo)�Nome, cognome, data di nascita e luogo di
nascita
�Codice Fiscale
Dati vs Informazione� Nei sistemi informatici le informazioni sono
rappresentate sotto forma di dati� Dati: fatti grezzi che devono essere interpretati e
correlati per fornire informazione
� Esempio:� Esempio: “Maria” e AA499SS sono una
stringa e un numero, ovvero due dati�Se vengono restituiti in risposta alla domanda
“Chi è l'autista e qual è il numero di targa della sua auto” allora costituiscono informazione
Le basi di dati� Gli archivi costituiscono una memoria di lavoro
indispensabile per gestire grandi quantità di informazioni, per ordinarle, metterle in relazione e recuperarle.
� Prima dell’introduzione delle tecnologie informatiche, gli archivi erano gestiti in forma cartacea, tramite schedari e registri, che permettevano di catalogare e ordinare i dati secondo un unico criterio di ricerca e rendevano disagevole il recupero e l’analisi dell’informazione: tutte le operazioni erano manuali.
� L’informatica ha consentito la conservazione ed il recupero delle informazioni, secondo i più svariati criteri, in maniera automatica, tramite un unico programma
Le basi di datiUn DB si può definire come:
“una collezione di dati usati per rappresentare
le informazioni che risultano di interesse per
un sistema informativo”.
Le basi di dati� Le basi di dati, o Data Base, sono sistemi che permettono la
manipolazione di grandi quantità di informazioni.� Consentono infatti:
� Raccolta e acquisizione dei dati� L’ archiviazione e la conservazione� La loro elaborazione e trasformazione� La distribuzione, comunicazione e scambio dell’informazione
� Il Data Base è l’insieme dei dati che organizzati costituiscono l’informazione.
� Il data base, però, non è costituito solo da un insieme di dati� tabelle (contenitori di dati)� query (strumenti di interrogazione, recupero dati), � maschere (strumenti per l’inserimento su computer)� report (ouput dei dati).
Prima dei database� Ogni applicazione aveva il suo file privato
� file: organizzazione sequenziale� applicazione: scritta in un linguaggio orientato alla gestione di
file (Cobol,PL/1)� gestione dei dati: file system
� Svantaggi:� ridondanza: se due applicazioni usano gli stessi dati, questi
sono replicati� inconsistenza: l’aggiornamento di un dato può riguardare
una sola copia del dato� dipendenza dei dati: ogni applicazione organizza i dati
tenendo conto dell’uso che deve farne
Sistemi di gestione di basi dati� Un sistema di gestione di basi di dati (DataBase
Management System, DBMS) è un sistema software in grado di gestire collezioni di dati che siano grandi, condivise, e persistenti, assicurando la loro affidabilità e privatezza. Un DBMS deve essere efficiente ed efficace.
� In seconda approssimazione, si può definire una base di dati come una
� “collezione di dati gestita da un DBMS”.
Sistemi di gestione di basi dati� Le basi di dati possono essere grandi:
� IBM certifica basi di dati di oltre 64 Gb! � basi di dati gestite da DBMS che devono prevedere
gestione di dati in memoria di massa.
� Le basi di dati sono condivise: � applicazioni e utenti diversi devono poter accedere,
secondo opportune modalità, a dati comuni � riduzione di ridondanze e di inconsistenze. � Per garantire l’accesso condiviso ai dati, ogni
DBMS dispone di un meccanismo di controllo di
concorrenza.
Condivisione� Le basi di dati possono essere grandi:
� IBM certifica basi di dati di oltre 64 Gb! � basi di dati gestite da DBMS che devono prevedere
gestione di dati in memoria di massa.
� Le basi di dati sono condivise: � applicazioni e utenti diversi devono poter accedere,
secondo opportune modalità, a dati comuni � riduzione di ridondanze e di inconsistenze. � Per garantire l’accesso condiviso ai dati, ogni
DBMS dispone di un meccanismo di controllo di
concorrenza.
Condivisione� Ogni componente di un' organizzazione è
coinvolta in una porzione del Sistema Informativo� Tali porzioni possono essere sovrapposte
� Un DB è una risorsa condivisa e integrata tra le differenti componenti dell'organizzazione
� La possibilità di condividere e integrare le informazioni permette di ridurre ridondanze (dati replicati in modo totale o parziale) e conseguenti Inconsistenze
Condivisione� Le informazioni non vengono mai
condivise completamente: sono sempre necessari opportuni meccanismi per il controllo della privacy e per regolamentare gli accessi ai contenuti stessi
� Al fine di condividere le informazioni ènecessario gestire accessi contemporanei ai dati stessi (concetto di 'controllo della concorrenza')
DBMS� i DB sono persistenti, hanno infatti un ciclo di vita non è
limitato alle sole esecuzioni dei programmi che ne fanno uso
� I dati permangono al termine dei programmi che li elaborano
� I DBMS garantiscono affidabilità, ovvero la capacità di preservare il contenuto del DB nel caso in cui si verifichino malfunzionamenti software e/o hardware.
� E’ possibile effettuare backup e recovery dei dati� I DBMS garantiscono la possibilità di gestire i dati in
modo privato:� ciascun utente autenticato, in base ai permessi che gli sono
consentiti, può svolgere solo alcune azioni sui dati.
Memorizzazione� I Data Base usano spesso file in formati
proprietari per la memorizzazione dei dati� In tal caso offrono comunque agli utenti
una visualizzazione astratta dei dati: la gestione di memorizzazione e manipolazione dei dati avviene in modo del tutto trasparente rispetto all'utente stesso
DBMS� Per efficienza di un DBMS si intende
� la sua capacità di svolgere le operazioni usando un insieme di risorse che siano accettabili per gli utenti.
�tempo e spazio
� Per efficacia di un DBMS si intende � la capacità di rendere produttive le attività
dei suoi utenti.
3 livelli di astrazione di un DB� Schema esterno
� è la descrizione, in un modello logico, di una parte del DB attraverso “viste” parziali, o derivate, che prevedono anche strutture dati diverse rispetto a quelle usate invece nello schema logico. Tali strutture riflettono privilegi di accesso e necessità legate a particolari tipologie di utenti. Uno schema logico può avere ad esso associati più schemi esterni
� Schema logico� è la descrizione de DB nel modello logico “principale”
del DBMS (ad esempio la descrizione della struttura delle tabelle)
� Schema fisico� È’ larappresentazione dello schema logico attraverso l'uso
strutture
Indipendenza tra dati e accesso� Gli accessi al DB avvengono solo grazie
allo schema esterno, che può anche coincidere del tutto con lo schema logico.
� Indipendenza fisicai livelli logico ed esterno non dipendono dal livello fisico� una relazione viene usata allo stesso modo, ovvero
non dipende dalla sua realizzazione fisica (organizzazione dei file e relativa allocazione fisica)
� la realizzazione fisica può mutare senza necessariamente modificare i programmi
� mezzo di strutture fisiche di memorizzazione, cioè i file
Linguaggi per un DB� Data Definition Language (DDL),
linguaggio usato per definire schemi (logici, esterni, fisici) e anche altre operazioni generali
� Data Manipulation Language (DML), linguaggio necessario per interrogare/modificare/aggiornare le (istanze di) basi di dati
� Nei DBMS Standard SQL integra entrambe le funzionalità
Concetto di Modello di dati� Si tratta di un insieme di definizioni usate
per organizzare e gestire i dati di interesse per descriverne la struttura in modo che risulti comprensibile da un elaboratore elettronico
Modello di dati: tipologie� DB logici: ovvero indipendenti dalle strutture
fisiche ma disponibili nei DBMS: gerarchico, reticolare (network), relazionale, ad oggetti
� DB concettuali: sono indipendenti dalle modalitàdi realizzazione e sono usati per rappresentare entità reali e le relative relazioni nelle prime fasi della progettazione (si parla di entità-relazioni)
Modello relazionale� Il modello relazionale dei dati permette di
definire nuovi “concetti” grazie al meccanismo di strutturazione (costruttore) noto come “relazione” che consente di organizzare i dati in insiemi di aggregazioni (record) a struttura fissa.
� Una relazione viene descritta attraverso una tabella in cui le righe rappresentano specifici record
Modello Relazionale� Oggetto = Record
� Campi = Informazioni di interesse
� Oggetto = “Membro dello Staff”� Informazioni di interesse = Codice, Cognome,
Nome, Ruolo, Anno di assunzione
Analista 2007GinoRossixxx1CODICE COGNOME NOME RUOLO ASSUNZIONE
Modello Relazionale
�Esempio:�posso organizzare i dati relativi ai docenti e ai relativi corsi universitari per mezzo della relazione “docenza”rappresentabile dalla seguente tabella
DOCENZA
Modello relazionale
01/12/1980MavisBrown937653
10/10/1980LucySmith587614
12/02/1981PaoloVerdi200768
23/04/1981AnnaBlack485745
25/11/1980MarySmith276545
DataNasciNomeCognomeMatric
STUDENTISTUDENTI
ClarkChemistry04
BealeChemistry03
GrantPhysics01
TutorTitoloCodice
CORSICORSI
04B200768
01B937653
04B276545
01C276545
CorsoVotoStud
ESAMIESAMI
Modello relazionale
01/12/1980MavisBrown937653
10/10/1980LucySmith587614
12/02/1981PaoloVerdi200768
23/04/1981AnnaBlack485745
25/11/1980MarySmith276545
DataNasciNomeCognomeMatric
STUDENTISTUDENTI
ClarkChemistry04
BealeChemistry03
GrantPhysics01
TutorTitoloCodice
CORSICORSI
04B200768
01B937653
04B276545
01C276545
CorsoVotoStud
ESAMI = relazione tra studenti e corsiESAMI = relazione tra studenti e corsi
Schemi e istanze di relazionalePer schema di una relazione si intende la
sua intestazione cioè il nome della relazione seguito dai nomi dei suoi attributi; esempio:
DOCENZA(Corso, Nome_docente).L’istanza di una relazione è costituita
dall’insieme delle sue righe. Lo schema di relazione è stabile nel tempo, a
differenza della sua istanza.[1]
Schemi e istanze di relazionale
Schema
della relazione
Istanza
della relazioneRecord
Docenza
Relazioni e base datiUna base di dati è generalmente costituita da
più relazioni, i cui record contengono valori comuni, ove necessario per stabilire corrispondenze (associazioni).
Relazioni e base datiMatricola Cognome Nome Data_nascita
389726 Rossi Maria 25/07/1981421695 Bianchi Antonio 11/03/1978379723 Verdi Luca 03/09/1980
Studente Voto Corso
389726 28 01389726 21 04379723 25 04421695 26 03
STUDENTI
ESAMI
CORSI
Codice Titolo Docente
01 Informatica Pinco02 Matematica Pallino03 Storia Bello04 Statistica Alto
Relazionali e base datiL’esempio precedente mostra una delle
caratteristiche fondamentali del modello relazionale: i riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di valori. Per tale motivo spesso si afferma che: “il modello relazionale è basato sui valori “
Integrita’� I dati devono soddisfare dei “vincoli” che
esistono nella realtà di interesse, ad esempio:
� uno studente ha la residenza in una sola città (si parla di dipendenze funzionali)
� ad ogni studente universitario viene associato un identificativo univo, ovvero il numero di matricola (chiave)
� uno studente può ricevere un voto per ogni esame che deve essere: un intero positivo compreso tra 18 e 30 (dominio)
� il guadagno dovuto al lavoro straordinario di una persona viene calcolato come prodotto del numero di ore per la paga all'ora (vincoli dinamici)
Informazione incompleta e valorinulliA volte può accadere che non si dispongano di tutti i dati di
una tupla (record) di una relazione. Esempio: per uno studente potrei non disporre del numero di matricola o della data di nascita. Come fare?
Per rappresentare in modo semplice la non disponibilità di valori, il concetto di relazione viene esteso prevedendo che un record possa assumere su ogni suo campo, un valore speciale (detto valore nullo) che denota l’assenza di informazione.
Informazione incompleta e valorinulli Nota bene:
È opportuno controllare la presenza di valori nulli nelle relazioni perchésolo alcune configurazioni possono essere ammesse
Matricola Cognome Nome Data_nascita
389726 Rossi Maria NULLNULL Bianchi Antonio 11/03/1978
… … … …
STUDENTI
Vincoli di integrita’
� In alcuni casi può accadere che, a seguito di errori umani nell’introduzione di dati, alcuni record delle tabelle rappresentino informazioni non corrette
Vincoli di integrita’In una base di dati èopportuno evitare situazioni come questa. A tale scopo è stato introdotto il concetto di vincolo di integrità come proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette.
Matricola Cognome Nome Data_nascita
200768 Verdi Fabio 12/02/1799942761 Rossi Luca 10/10/1979942761 Bianchi Mario 14/07/1983
Studente Voto Lode Corso
942761 22 Si 01942761 36 No 03379796 30 No 01
STUDENTI
ESAMI
Chiavi
I più importanti vincoli intrarelazionali sono i vincoli di chiave: senza di essi il modello relazionale perderebbe la sua utilitàe quindi il suo senso! Una chiave è un insieme di attributi utilizzati per identificare univocamente i record di una relazione. (esempi)
Inoltre, il vincolo di chiave permette di stabilire efficacemente le corrispondenze fra dati contenuti in relazioni diverse che caratterizzano il modello razionale come “modello basato sui valori”.
Chiavi
NOTA BENE: Bisogna limitare il più possibile la presenza
di valori nulli nelle chiavi. Su una delle chiavi minimali detta chiave primaria èassolutamente vietata la presenza di valori nulli.
Chiave primaria
Insieme minimale di attributi di una relazione che consente di identificare univocamente i record di una tabella; non può ammettere valori nulli.
Chiave primaria
In quasi tutti i casi è possibile trovare delle chiavi minimali e quindi scegliere una chiave primaria. Nei rari casi in cui ciò non accada è necessario introdurre un attributo aggiuntivo (Un codice. Probabilmente non significativo al fine interpretativo dei dati) i cui valori vengano generati automaticamente e associati a ciascuna tupla della relazione.
Vincoli integrita’ referenziale
Targa Cognome Nome
BK749L Rossi MinoCM294P Bianchi TinoRL296K Verdi PinoWR692Y Celesti Lino
Codice Data Articolo Codice_targa
743792 26/10/2004 34 BK749L927450 10/10/2004 53 RL296K992001 04/10/2004 15 WR692Y999223 10/09/2004 27 BK749L
AUTO
INFRAZIONI
Vincoli integrita’ referenziale
Un vincolo di integrità referenziale (detto anche chiave esterna) tra un insieme X di attributi di una relazione R1 e un’altra relazione R2 è soddisfatto se i valori su X di ciascuna tupla dell’istanza di R2 compaiono come valori della chiave primaria dell’istanza di R1.
Sicurezza
� I dati devono essere protetti da accessi non autorizzati; il DBA deve considerare i seguenti fattori:� valore attuale dell’informazione per l’organizzazione� valore attuale dell’informazione per chi vuole violare la privatezza� persone che possono accedere ai dati in base a quali permessi e
modalità
In base ai precedenti fattori, si decide:� un regolamento di accesso ai dati� eventuali effetti in seguito ad una violazione