governo digitale - università degli studi di roma "tor ... · • fino all’avvento dei...
TRANSCRIPT
![Page 1: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/1.jpg)
1
Governo Digitalea.a. 2007/08
Lezioni 21/5
Titolare: Salvatore [email protected]://www.ce.uniroma2.it/people/tucci.html
Corso integrativo: Mariateresa [email protected]
Gli strumenti Tecnologici
• Basi di dati e sistemi documentali• Protocollo informatico Sistemi di workflow• Sicurezza & Privacy • Firma digitale – marche temporali • Carte multiservizi – certificati di firma e di cifra• Posta certificata• I sistemi web-based• Il ruolo dell’OSS• Metodologie di progettazione
![Page 2: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/2.jpg)
2
Sistema Informativo
• Un Sistema Informativo (SI) è un insieme di persone, apparecchiature, applicazioni, procedure e dati che permettono all’azienda di disporre delle informazioni necessarie nel posto giusto e al momento giusto.
• Un SI non necessariamente fa ricorso a strumenti propri delle tecnologie dell’informazione e delle comunicazioni (ICT, Information andCommunication Technology). Il SI è, infatti, concettualmente indipendente da qualsiasi automatizzazione.
Informazioni e dati
informazione: notizia, dato o elemento che consentedi avere conoscenza più o meno esatta di fatti, situazioni, modi di essere.
dato: ciò che è immediatamente presente alla conoscenza, prima di ogni elaborazione; (in informatica: elementi di informazione costituitida simboli che debbono essere elaborati)
![Page 3: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/3.jpg)
3
Dati e Informazioni
• Dati – fatti grezzi che descrivono un particolare fenomeno.
• Informazioni – dati che hanno un significato particolare in uno specifico contesto.
Esempio:• Dato: la temperatura dell' atmosfera• Informazione: se dovete decidere cosa indossare,
la temperatura esterna rappresenta un'informazione, poiché è pertinente alla decisione immediata (cosa indossare)
L’INFORMAZIONE• Le informazioni si distinguono dai dati gestiti da un
sistema informativo per le differenti finalità che vengono loro attribuite dai diversi utenti.
• Es: “l’80% dei prodotti venduti sono stati sviluppati da meno di 2 anni” – informa l’imprenditore che la sua impresa per poter
continuamente proporre prodotti innovativi, dovrà puntare su una competenza flessibile, evolutiva e orientata al mercato.
– informa il fornitore che ci sono stati repentini cambiamenti chepossono essere una minaccia alla sua posizione
![Page 4: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/4.jpg)
4
Informazioni: una risorsa chiave
Informazione• dimensione temporale
– Tempestività: accesso alle informazioni solo quando è necessario ( una informazione può diventare obsoleta e in tal caso non essere più utile )
– disporre di informazioni che descrivono il periodo temporalepreso in considerazione.
• dimensione spaziale– Indipendenza dal luogo: consultare le informazioni desiderate
indipendentemente dal luogo in cui ci si trova
• formato:– formato, comprensibile e semplice da utilizzare (audio, testo,
video, animazione, grafica e altro),– accuratezza: le informazioni devono essere prive di errori.
![Page 5: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/5.jpg)
5
Gestione delle informazioni
• Raccolta, acquisizione• Archiviazione, conservazione• Elaborazione, trasformazione, produzione• Distribuzione, comunicazione, scambio
• le informazioni vengono rappresentate in modo essenziale attraverso i dati
Base di dati
• Insieme organizzato di dati utilizzati per il supporto allo svolgimento delle attività di un ente (azienda/amministrazione, ufficio, persona)
• insieme di dati gestito da un DBMS
![Page 6: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/6.jpg)
6
Sistema di gestione di basi di datiDataBase Management System (DBMS)
• Sistema che gestisce collezioni di dati:– grandi : dimensioni maggiori della memoria centrale dei sistemi
di calcolo utilizzati– persistenti : tempo di vita indipendente dalle singole esecuzioni
dei programmi che le utilizzano– condivise: Attivita' diverse su dati condivisi (concorrenza)
• garantendo– privacy: meccanismi di autorizzazione– affidabilità : resistenza a malfunzionamenti hardware e software– efficienza : utilizzare al meglio le risorse di spazio di memoria
(principale e secondaria) e tempo (di esecuzione e di risposta)– efficacia : offrendo funzionalità articolate, potenti e flessibili per
rendere produttive le attività dei loro utilizzatori,
Affidabilità e gestione delle transazioni
• Affidabilità :resistenza a malfunzionamenti hardware e software
• Tecnica fondamentale: – gestione delle transazioni
• Transazione: insieme di operazioni da considerare indivisibile ("atomico"), corretto anche in presenza di concorrenza e con effetti definitivi
![Page 7: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/7.jpg)
7
Le transazioni sono … atomiche
• La sequenza di operazioni sulla base di dati viene eseguita per intero o per niente:– trasferimento di fondi da un conto A ad un conto B: o
si fanno il prelevamento da A e il versamento su B o nessuno dei due
Le transazioni sono … concorrenti
• L'effetto di transazioni concorrenti deve essere coerente (ad esempio "equivalente" all'esecuzione separata)– se due assegni emessi sullo stesso conto corrente
vengono incassati contemporaneamente si deve evitare di trascurarne uno
![Page 8: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/8.jpg)
8
I risultati delle transazioni sono permanenti
• La conclusione positiva di una transazione corrisponde ad un impegno (in inglese commit) a mantenere traccia del risultato in modo definitivo, anche in presenza di guasti e di esecuzione concorrente
Organizzazione dei dati in database
• Permette di rendere i dati indipendenti dai singoli programmi che vi accedono e dal supporto fisico sul quale sono memorizzati, grazie alla netta separazione tra la strutturazione logica e la memorizzazione fisica
![Page 9: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/9.jpg)
9
Organizzazione dei dati orientato ai file
• Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica erano costituiti da insiemi di file sequenziali in cui l’organizzazione fisica dei dati ricalcava in modo molto rigoroso quella logica
• La struttura dei file fisici era strettamente correlata al tipo di problema che la procedura automatizzata intendeva risolvere e possedeva una ridotta flessibilità nei confronti di nuove applicazioni
Organizzazione dei dati orientato ai file: svantaggi
• ridondanza indesiderata: gli stessi dati sono ripetuti più volte in più archivi;
• aggiornamento dei dati: ogni volta che un record in un archivio viene aggiornato, è necessario apportare coerentemente la stessa modifica in tutti gli altri archivi che lo contengono. In caso contrario si rischia di generare dati inconsistenti, vale a dire contradditori dal punto di vista logico;
• dipendenza dei dati dai processi: ogni procedura automatizzata “vede” i dati in una precisa forma che può essere diversa rispetto a quella adottata in altre applicazioni.
![Page 10: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/10.jpg)
10
L’indipendenza dal supporto fisico
• Uno degli obiettivi principali dell’organizzazione dei dati, è la creazione di una struttura che renda indipendente il livello logico da quello fisico. In modo che le modifiche alla struttura logica non comportino cambiamenti nelle modalità di accesso e di memorizzazione e viceversa
• organizzazione logica: la strutturazione sistematica e logica dei dati e delle loro relazioni;
• organizzazione fisica: la memorizzazione fisica di determinate strutture di dati su supporti di memoria di massa
Organizzazione dei dati
![Page 11: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/11.jpg)
11
Architettura standard (ANSI/SPARC)a tre livelli per DBMS
BD
Schema logico
Schemaesterno
Schema fisico
Schemaesterno
Schemaesterno
utenteutente utente utente utente
Una vista
Corso AulaDocenteRossiBasi di dati DS3
BruniReti N3NeriSistemi N3
BruniControlli G
Corsi
Nome PianoEdificioOMIDS1 Terra
PincherleG PrimoOMIN3 Terra
Aule
CorsiSedi Corso Aula
Reti N3Sistemi N3
Controlli G
PianoEdificioOMI Terra
Pincherle PrimoOMI Terra
![Page 12: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/12.jpg)
12
Indipendenza logica
• il livello esterno è indipendente da quello logico
• aggiunte o modifiche alle viste non richiedono modifiche al livello logico
• modifiche allo schema logico che lascino inalterato lo schema esterno sono trasparenti
Modello concettuale
• È un insieme di regole atte a costruire uno schema di rappresentazione della realtà di interesse in modo indipendente dalla tecnologia informatica utilizzata.
• Lo schema concettuale fornisce una descrizione dei tipi delle informazioni e delle corrispondenze che costituiscono il database, in modo indipendente dal modello di dati.
![Page 13: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/13.jpg)
13
Modello logico
• È un modello per la costruzione degli schemi attraverso i quali il singolo utente “vede” i dati
• Al livello logico si ha una descrizione dei dati e dei loro rapporti secondo il punto di osservazione dell’utente
• Il linguaggio di manipolazione dati viene utilizzato per creare connessioni tra il sistema di database, gli utenti e le applicazioni impiegate
Modello fisico
• Il modello fisico comprende una descrizione formale, detta anche modello o schema fisico, di come devono essere archiviati i dati e delle modalità con cui sarà possibile accedervi.
• L’implementazione informatica della struttura dei dati con l’aiuto del linguaggio di descrizione per la memorizzazione dei dati (data storage description language).
• Le regole di trasformazione stabiliscono le modalità con cui un determinato oggetto appartenente a un modello può essere rappresentato attraverso uno o più oggetti di un modello di livello inferiore
![Page 14: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/14.jpg)
14
Modelli logici• Gerarchico e reticolare
– utilizzano riferimenti espliciti (puntatori) fra record
• Relazionale "è basato su valori"– anche i riferimenti fra dati in strutture (relazioni)
diverse sono rappresentati per mezzo dei valori stessi
• Ad oggetti– Una base di dati a oggetti è una collezione di
oggetti; ciascun oggetto ha un identificatore, uno stato, e un comportamento
Linguaggi per le basi di dati
• Linguaggio di Definizione dei Dati (DDLDDLData Definition Language )– Per la definizione di schemi (logici, esterni, fisici)
e altre operazioni generali• Linguaggio per la Manipolazione dei Dati
(DMLDML Data Manipulation Language )– Per l’interrogazione e l’aggiornamento di (istanze
di) basi di dati
![Page 15: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/15.jpg)
15
Linguaggi per le basi di dati
• Linguaggio per il controllo dei Dati (DCLDCLData Control Language )– Per definire i diritti di accesso ai dati, i profili
degli utenti che accedono alla base di dati• Linguaggio di descrizione per la
memorizzazione dei dati (DSDLDSDL Data Storage Description Language).
SQL
•• SQLSQL è un acronimo per Structured Query Language. Fu sviluppato originalmente come linguaggio per il DBMS System R dall’IBM Research Laboratory (San Jose, California) nei tardi anni settanta.
• oggi è ormai considerato uno standard per i database relazionali.
![Page 16: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/16.jpg)
16
SQL• L’ANSI (American National Standards Institute) e
l’ISO (International Standardization Organization) hanno provveduto a definire una versione di riferimento di SQL fin dal 1986. Da allora vi sono le seguenti versioni:
• SQL-89 (1989): obsoleta con funzionalità minimali• SQL-2 (1992): versione di riferimento per i sistemi
commerciali• SQL-3 (1999): include nuove caratteristiche • SQL permette di interagire con un database relazionale
in modo indipendente dalle particolarità dell’interfaccia di quest’ultimo
SQL
![Page 17: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/17.jpg)
17
Personaggi e interpreti • progettisti e realizzatori di DBMS• progettisti della base di dati e amministratori della base di
dati– DBA: Persona o gruppo di persone responsabile del controllo
centralizzato e della gestione del sistema, delle prestazioni, dell’affidabilità, delle autorizzazioni (anche progettazione)
• progettisti e programmatori di applicazioni• utenti
– utenti finali (terminalisti): eseguono applicazioni predefinite(transazioni)
– utenti casuali: eseguono operazioni non previste a priori, usando linguaggi interattivi
Proprietà dei DBMS
• Indipendenza logica e fisica dei dati• Ridondanza dei dati pianificata e controllata• Consistenza dei dati• Integrità semantica e operazionale del
database (esattezza e completezza dei dati)• Sicurezza dei dati
![Page 18: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/18.jpg)
18
Progettazione del Data Base
Progettazioneconcettuale
Progettazione logica
RequisitiRequisiti
Diagramma E/RDiagramma E/R
Modello relazionaleModello relazionaleRealizzazione Realizzazione nel DBMSnel DBMS
Implementazione
![Page 19: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/19.jpg)
19
•• Schema concettualeSchema concettuale: risultato della fase di analisi della realtà da rappresentare (diagramma Entità/Relazione)
• È indipendente dalla Base dati utilizzata•• Schema logicoSchema logico: insieme di informazioni così come
sono viste dall’utente• È dipendente dal modello logico della base dati che si
vuole utilizzare (modello relazionale)•• Realizzazione della base dati: Realizzazione della base dati: attività per la creazione
della base dati nel DBMS utilizzato• Occorre utilizzare linguaggi del DBMS con l’eventuale
ausilio di strumenti visuali
I prodotti della varie fasi
Analisi dei requisiti
• Comprende attività (interconnesse) di– acquisizione dei requisiti– analisi dei requisiti– costruzione del glossario
![Page 20: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/20.jpg)
20
Fonti di Requisiti• Possibili fonti:
–– utentiutenti, attraverso:• interviste• documentazione apposita
–– documentazione esistentedocumentazione esistente:• normative (leggi, regolamenti di settore)• regolamenti interni, procedure aziendali• realizzazioni preesistenti
–– modulisticamodulistica
Acquisizione per interviste
– utenti diversi possono fornire informazioni diverse
– utenti a livello più alto hanno spesso una visione più ampia ma meno dettagliata
– le interviste portano spesso ad una acquisizione dei requisiti “per raffinamenti successivi”
![Page 21: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/21.jpg)
21
Interazione con gli utenti
• Spunti:– effettuare spesso verifiche di comprensione
e coerenza– verificare anche per mezzo di esempi
(generali e relativi a casi limite)– richiedere definizioni e classificazioni – far evidenziare gli aspetti essenziali rispetto
a quelli marginali
Progettazioneconcettuale
Progettazione logica
RequisitiRequisiti
Diagramma E/RDiagramma E/R
Modello relazionaleModello relazionaleRealizzazione Realizzazione nel DBMSnel DBMS
Implementazione
![Page 22: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/22.jpg)
22
Modello concettuale dei dati
Modello EntitàModello Entità--RelazioniRelazioni
Il modello Entità-Relazioni: le entità• Entità “una qualsiasi cosa che può essere distintamente
identificata” e che abbia rilevanza per il sistema considerato. Fatti, persone, cose della applicazione di interesse con proprietà comuni e con esistenza “autonoma”– impiegato, città, conto corrente, ordine, fattura
• Gli Attributi sono le proprietà delle entità. I valori che possono assumere servono a descrivere le singole entità es nome, cognome
• Occorrenza (o istanza) è un elemento dell’entità– Mario Rossi
• Attributi Identificatori: attributi che permettono di identificare in modo univoco una occorrenza
![Page 23: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/23.jpg)
23
Rappresentazione grafica entità
Persona
Data Nascita
Cognome
Nome
Automobile
Targa
Modello
Indirizzo
Il modello Entità-Relazioni:le relazioni
• Relazione: legame logico fra due o più entità, rilevante nell’applicazione di interesse
• Ogni relazione ha un nome che la identifica univocamente nello schema:
– nomi espressivi
– opportune convenzioni
• singolare
• sostantivi invece che verbi (se possibile)
![Page 24: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/24.jpg)
24
Il modello Entità-Relazioni:le relazioni
• Cardinalità: specifica il numero massimo di occorrenze delle relazioni cui ciascuna occorrenza di una entità può partecipare
CardinalitàDire che tra le entità A e B esiste una relazione R con
cardinalità
1:1 indica che ad ogni istanza di A corrisponde 0 o 1 istanza di B e viceversa
1:n indica che ad ogni istanza di A possono corrispondere più istanze di B ed ad ogni istanza di B può corrispondere al più una istanza di A
n:m ad ogni istanza di A possono corrispondere più istanze di B
e viceversa
![Page 25: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/25.jpg)
25
Esempi di occorrenze
C1
C2
C4
C3
Cliente
O1
O2
O3
Ordine
O4
Ad ogni istanza di cliente corrispondono n istanze di ordini
Esempio ER
![Page 26: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/26.jpg)
26
Terminologia e notazioni• La terminologia e le notazioni del diagramma ER non sono standard• Entità (istanza entità), tipo di entità (entità), tipo di relazione
(relazione), relazione (istanza di relazione)
• Notazione cardinalità
1ordineimpartiscecliente
n
(1,1)ordineimpartiscecliente
(0,n)
C1
C2
C4
C3
Cliente
O1
O2
O3
OrdineO4
1:n indica che ad ogni istanza di cliente possono corrispondere più istanze di ordini ed ad ogni istanza di Ordine può corrispondere al più una istanza di Cliente
Terminologia e notazionin
ordineimpartiscecliente1
(0,n)ordineimpartiscecliente
(1,1)
C1
C2
C4
C3
Cliente
O1
O2
O3
OrdineO4
La cardinalità indica quante volte in una relazione un’occorrenza dell’entità cliente può essere legata a occorrenze dell’entità ordiniIl cliente può fare (è legato a) n ordiniUn ordine è di un solo cliente
Quindi in tal caso il numero accanto alla entità indica il numero di istanze partecipanti alla relazione
![Page 27: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/27.jpg)
27
Esercizio Cardinalità
viaggioprenotacliente
scaffaleripostolibro
Carta diidentitàpossiedecittadino
mn
11
1n
pezzocompostopuzzlen1
Progettazioneconcettuale
RequisitiRequisiti
Diagramma E/RDiagramma E/R
![Page 28: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/28.jpg)
28
EsercizioRappresentare le seguenti realtà con il modello E-R:• Uno studente è iscritto ad un corso di laurea e
deve sostenere la tesi con un relatore• Un professore può avere più tesisti ed afferisce
ad un dipartimento dell’università
Disegnare solo le entità le relazioni e le cardinalitàsenza attributi
n1studentetesiProfessore
iscrizione
Corso dilaurea
n
1
afferenza
Dipartimento
n
1
![Page 29: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/29.jpg)
29
EsercizioRappresentare le seguenti realtà con il modello E-R:• Un’azienda di noleggio auto ha un insieme di
veicoli. Ogni auto ha un numero di registrazione, un colore e appartiene ad una certa categoria. Ogni categoria è associata ad una tariffa di noleggio identificata da un codice ed avente un determinato costo
1categoriaprezzotariffa
appartenenza
auto
Codice
Nome
NumeroRegistrazione
1
n
Colore
Costo
1
![Page 30: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/30.jpg)
30
Modello logico dei dati
Modello RelazionaleModello Relazionale
Modello relazionale• Proposto da E. F. Codd nel 1970 per favorire
l’indipendenza dei dati • Disponibile in DBMS reali nel 1981 (difficoltà ad
implementare l’indipendenza con efficienza e affidabilità)
IL MODELLO:• I dati sono rappresentati tramite tabelle, chiamate
relazioni (da non confondere con le “relazioni” del modello E/R)
• Ogni relazione è definita dalle colonne (campi) e da una serie di righe (record)
![Page 31: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/31.jpg)
31
Modello relazionale
• L’ordine dei record e dei campi non è importante
• Ogni record ha lo stesso numero di informazioni
• Non possono esistere record identici
• Per ogni tabella deve esistere una chiave primaria: insieme di campi che identificano le ennuple di una relazione
Tabelle e relazioni
• Una tabella rappresenta una relazione se– i valori di ogni colonna sono fra loro omogenei – le righe sono diverse fra loro– le intestazioni delle colonne sono diverse tra loro
• In una tabella che rappresenta una relazione– l’ordinamento tra le righe è irrilevante– l’ordinamento tra le colonne è irrilevante
![Page 32: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/32.jpg)
32
Schema e istanza
• In ogni base di dati esistono:– lo schema, sostanzialmente invariante nel tempo, che
ne descrive la struttura• es.: le intestazioni delle tabelle
– l’istanza, i valori attuali, che possono cambiare anche molto rapidamente
• es.: il “corpo” di ciascuna tabella
L'istanza della base di dati
Analisi matem. I Luigi Neri N1 8:00
Basi di dati Piero Rossi N2 9:45
Chimica Nicola Mori N1 9:45
Fisica I Mario Bruni N1 11:45
Fisica II Mario Bruni N3 9:45
Sistemi inform. Piero Rossi N3 8:00
Basi di dati: schema e istanzaLo schema della base di dati
OrarioInsegnamento Docente Aula Ora
![Page 33: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/33.jpg)
33
Modello ER e modello Relazionale• Il modello ER usa 2 costrutti diversi entità e
relazioni• Il modello relazionale usa un solo costrutto la
relazione• Le relazioni nel modello ER sono espresse nel
modello relazionale tramite l’uguaglianza dei valori di attributi corrispondenti a 2 relazioni(tabelle) diverse
Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studenti
Codice Titolo Docente01 Analisi Mario02 Chimica Bruni04 Chimica Verdi
corsi
Studente Voto Corso3456 30 043456 24 029283 28 01
esami
6554 26 01
![Page 34: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/34.jpg)
34
Importanza delle chiavi• L’esistenza delle chiavi garantisce l’accessibilità a
ciascun dato della base di dati• Una relazione non può contenere ennuple distinte ma
uguali (le chiavi devono assumere valori distinti)• Le chiavi permettono di correlare i dati in relazioni
diverse (il modello relazionale è basato su valori)
• In presenza di valori nulli, i valori della chiave non permettono– di identificare le ennuple – di realizzare facilmente i riferimenti da altre relazioni
Chiavi esterne
• Si dice che un campo Fk di una relazione R è una chiave esterna rispetto ad un’altra relazione S, con riferimento ad una sua chiave, se , in qualunque stato del DB e per ogni tupla di R, il valore di Fk, a meno di non essere null, coincide con il valore della chiave di qualche tupla di S
• Si dice che la relazione S è riferita o referenziata dalla relazione R tramite la chiave esterna Fk
![Page 35: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/35.jpg)
35
Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studenti
Codice Titolo Docente01 Analisi Mario02 Chimica Bruni04 Chimica Verdi
corsi
Studente Voto Corso3456 30 043456 24 029283 28 01
esami
6554 26 01
Chiave esterna rispetto la relazione studenti
Chiave esterna rispetto la relazione corsi
• Un vincolo di integrità referenziale(“foreign key”) fra gli attributi X di una relazione R1 e un’altra relazione R2 impone ai valori su X in R1di comparire come valori della chiave primaria di R2
Integrità referenziale:• informazioni in relazioni diverse sono correlate
attraverso valori comuni• in particolare, valori delle chiavi (primarie)• le correlazioni debbono essere coerenti
Vincolo di integrità referenziale
![Page 36: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/36.jpg)
36
Vincoli di integrità referenziale
È opportuno fissare 2 vincoli sulle chiavi esterne:
• Non è possibile inserire una chiave esterna di un record di una tabella se non esiste il relativo valore tra i record della tabella correlata
• Non è possibile cancellare un record di una tabella se esistono in altre tabelle chiavi esterne che fanno riferimento e tale record
Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studenti
Codice Titolo Docente01 Analisi Mario02 Chimica Bruni04 Chimica Verdi
corsi
Studente Voto Corso3456 30 043456 24 029283 28 01
esami
6554 26 01
Chiave esterna rispetto la relazione studenti
Chiave esterna rispetto la relazione corsi
![Page 37: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/37.jpg)
37
Azioni compensative
• Esempio:– Viene eliminata una ennupla causando una violazione
• Comportamento “standard”:– Rifiuto dell'operazione
• Azioni compensative:– Eliminazione in cascata– Introduzione di valori nulli
Vincoli semantici
• Vincoli che pongono restrizioni sui possibili valori che gli attributi possono assumere nell’ambito del tipo di dati specifico del loro dominio
• Esempio: – Il voto è un numero compreso tra 18 e 30– Matricola è di tipo alfanumerico con il vincolo di non
utilizzare caratteri speciali e di iniziare cono 2 lettere
![Page 38: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/38.jpg)
38
Progettazione logica
Progettazioneconcettuale
RequisitiRequisiti
Diagramma E/RDiagramma E/R
Modello relazionaleModello relazionale
Diagramma E/R Modello relazionale•• EntitàEntità TabelleTabelle•• AttributiAttributi Colonne tabelle (campicampi)•• DominioDominio: insieme di valori che il campo può assumere
– Fisico: tipo di dato che può essere accolto in un campo (nome= testo di 40 caratteri)
– Logico: insieme di informazioni associabili a quel campo (20052 è un CAP valido se di 5 cifre e cap esistente)
•• OccorrenzeOccorrenze Record Record (tuple): righe della tabella•• IdentificatoriIdentificatori Chiavi primarieChiavi primarie: insiemi di campi il
cui valore identifica univocamente il record– No valori ripetuti– No valori nulli
![Page 39: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/39.jpg)
39
Diagramma E/R Modello relazionale•• Relazioni Relazioni (E/R) Tabelle + chiavi esterneTabelle + chiavi esterne
•• Relazioni 1 a 1Relazioni 1 a 1: si inserisce tra i campi di una entità la chiave primaria dell’entità ad essa collegata e viceversa
•• Relazioni 1 a nRelazioni 1 a n: si inserisce nella tabella relativa all’entità della parte molti il campo chiave primaria della tabella relativa all’entità della parte 1
•• Relazioni n a mRelazioni n a m: si divide la relazione in 2 relazioni più semplici di tipo 1 a n introducendo una entità associativa
Esempio relazione 1 a 1
StudenteStudente
TesseraTessera
![Page 40: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/40.jpg)
40
Diagramma E/R Modello relazionale•• Relazioni Relazioni (E/R) Tabelle + chiavi esterneTabelle + chiavi esterne
•• Relazioni 1 a 1Relazioni 1 a 1: si inserisce tra i campi di una entità la chiave primaria dell’entità ad essa collegata e viceversa
•• Relazioni 1 a nRelazioni 1 a n: si inserisce nella tabella relativa all’entità della parte molti il campo chiave primaria della tabella relativa all’entità della parte 1
•• Relazioni n a mRelazioni n a m: si divide la relazione in 2 relazioni più semplici di tipo 1 a n introducendo una entità associativa
Esempio relazione 1 a n
StudenteStudente
ProfessoreProfessore
![Page 41: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/41.jpg)
41
Diagramma E/R Modello relazionale•• Relazioni Relazioni (E/R) Tabelle + chiavi esterneTabelle + chiavi esterne
•• Relazioni 1 a 1Relazioni 1 a 1: si inserisce tra i campi di una entità la chiave primaria dell’entità ad essa collegata e viceversa
•• Relazioni 1 a nRelazioni 1 a n: si inserisce nella tabella relativa all’entità della parte molti il campo chiave primaria della tabella relativa all’entità della parte 1
•• Relazioni n a mRelazioni n a m: si divide la relazione in 2 relazioni più semplici di tipo 1 a n introducendo una entità associativa
Esempio relazione n a m
![Page 42: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/42.jpg)
42
Esempio relazione n a m
Esempio relazione n a m
PasseggeriPasseggeri
VoliVoli
PrenotazionePrenotazione
![Page 43: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/43.jpg)
43
Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studenti
Codice Titolo Docente01 Analisi Mario02 Chimica Bruni04 Chimica Verdi
corsi
Studente Voto Corso3456 30 043456 24 029283 28 01
esami
6554 26 01
Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studenti
Codice Titolo Docente01 Analisi Mario02 Chimica Bruni04 Chimica Verdi
corsi
Studente Voto Corso302428
esami
26
![Page 44: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/44.jpg)
44
Esercizio
Cognome
Giocatore SquadraContratto
Datanascita Città NomeIngaggio
n 1
Ruolo Colori sociali
Relationship uno a molti
Giocatore(Cognome, DataNascita, Ruolo, Squadra, Ingaggio)Squadra(Nome, Città, ColoriSociali)
• con vincolo di integrità referenziale fra Squadra in Giocatoree la chiave di Squadra
• se la cardinalità minima della relationship è 0, allora Squadra in Giocatore deve ammettere valore nullo
![Page 45: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/45.jpg)
45
Impiegato(Matricola, Cognome, Stipendio)
Progetto(Codice, Nome, Budget)
Partecipazione(Matricola, Codice, DataInizio)
Partecipazione
n m
Cognome
Stipendio
Matricola
Impiegato
NomeCodice
Budget
Progetto
Data inizio
Entità e relationship molti a molti
Entità e Relazioni molti a moltiImpiegato(Matricola, Cognome, Stipendio)
Progetto(Codice, Nome, Budget)Partecipazione(Matricola, Codice, DataInizio)
• con vincoli di integrità referenziale fra – Matricola in Partecipazione e (la chiave di)
Impiegato – Codice in Partecipazione e (la chiave di) Progetto
![Page 46: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/46.jpg)
46
Nomi più espressivi per gli attributi della chiave della relazione che
rappresenta la relationship
Impiegato(Matricola, Cognome, Stipendio)
Progetto(Codice, Nome, Budget)
Partecipazione(Matricola, Codice, DataInizio)
Partecipazione(Impiegato, Progetto, DataInizio)
Composizione
ProdottoComposto Componente
Costo Nome Codice
(0,N) (0,N)
Prodotto(Codice, Nome, Costo)
Composizione(Composto, Componente, Quantità)
Relationship ricorsiveQuantità
![Page 47: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/47.jpg)
47
Nome
Fornitore Prodotto
Dipartimento
Fornitura
Partita IVA Genere CodiceQuantità
Nome
Telefono
(0,N) (1,N)
(1,N)
Relationship n-arie
Fornitore(PartitaIVA, Nome)Prodotto(Codice, Genere)
Dipartimento(Nome, Telefono)Fornitura(Fornitore, Prodotto, Dipartimento, Quantità)
Un buon progetto•• Definire il diagramma E/RDefinire il diagramma E/R
– Definire le entità del modello E/R– Definire gli attributi delle singole entità– Determinare le relazioni tra entità nel modello E/R
•• Definire il modello relazionaleDefinire il modello relazionale– Convertire le entità e gli attributi in tabelle e campi– Definire le chiavi primarie– Convertire le relazioni del modello E/R (i campi di
collegamento)
•• Definire i vincoliDefinire i vincoli di integrità referenziale e i vincoli semantici
• Valutare lo schema relazionale realizzato
![Page 48: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/48.jpg)
48
Anomalie e normalizzazione
Un buon progetto
• I passi visti per la progettazione permettono di costruire lo schema logico di un data base (modello relazionale) consistente:– riducendo la ridondanza dei dati – Assenza di anomalie
• Cancellazione• Inserimento• Aggiornamento
![Page 49: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/49.jpg)
49
Anomalie
•• Anomalia di cancellazioneAnomalia di cancellazione: comporta la perdita non voluta di dati
•• Anomalia di inserimentoAnomalia di inserimento: comporta la presenza di record non coerenti
•• Anomalia di aggiornamentoAnomalia di aggiornamento: comporta la ripetizione delle operazioni di aggiornamento a causa della ridondanza dei dati o la presenza di incoerenze qualora l’aggiornamento non viene fatto per tutti i record interessati dall’aggiornamento
Esempio ridondanza dei dati
Ogni volta che uno studente sostiene un esame vengono ripetuti i dati relativi (Matricola cognome nome indirizzo)
![Page 50: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/50.jpg)
50
Anomalia di cancellazione
i dati dell’esame di economia sono presenti solo in tale record lacancellazione implica la perdita di informazione sull’esame
Anomalia di aggiornamento
Se il nome dell’esame di Inglese2 diventa Inglese finaleOccorre modificare tutti i record in cui compare Inglese2
![Page 51: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/51.jpg)
51
Anomalia di inserimento
Per inserire un nuovo corso occorre inserire i dati di un esame
Esempio dipendenza funzionale
Anomalia di inserimento e di aggiornamento:Persona( Cognome, Nome, DataNascita, Onomastico)
Rossi, Giuseppe, 3/7/83, 2 aprile
• Errore: S.Giuseppe è il 19 marzoPersona( Cognome, Nome, DataNascita, CittàNascita,
Regione)Rossi Giuseppe 3/7/83 Roma LazioMolla Alberto 23/8/77 Roma Campania
• Errore Roma non è in Campania
![Page 52: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/52.jpg)
52
Dipendenza Funzionale
Data una relazione R e due suoi campi X e Y si dice che Y dipende funzionalmente da X se i valori di X determinano univocamente i valori di Y
EsempioPersona( Cognome, Nome, DataNascita, Onomastico)
Dipendenza funzionale tra Nome ed OnomasticoPersona( Cognome, Nome, DataNascita,
CittàNascita, Regione)Dipendenza funzionale tra CittàNascita e Regione
Normalizzazione
• Processo suddiviso in fasi denominate forme normali con l’obbiettivo di ottimizzare la struttura della Base Dati ottenendo:– Modello dei dati consistente– Eliminazione delle anomalie di cancellazione,
inserimento, aggiornamento– Riduzione della ridondanza
![Page 53: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/53.jpg)
53
Normalizzazione
Prima forma normale Occorre eliminare i gruppi di dati ripetitivi.
I passi da seguire:
1. Individuare gli attributi che si ripetono per valore in record differenti all’interno della stessa tabella
2. Creare una tabella con i campi non ripetitivi3. Creare una tabella usando gli attributi che si
ripetono + il campo di collegamento con la prima tabella (chiave esterna)
![Page 54: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/54.jpg)
54
NormalizzazioneSeconda forma normale: Occorre verificare che i
campi non chiave primaria dipendono dall’intera chiave primaria e non da parte di essa
1. Identificare dipendenze parziali2. Creare una tabella usando i campi collegati in
modo parziale3. Creare una tabella togliendo dalla tabella di
partenza i campi che dipendevano in modo parziale
![Page 55: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/55.jpg)
55
NormalizzazioneTerza forma normale Occorre verificare che i campi
non chiave primaria dipendono direttamente dalla chiave primaria e non da qualche altro campo all’interno della tabella
1. Identificare le dipendenze transitive2. Creare una tabella usando i campi in dipendenza
transitiva3. Creare una tabella con i campi rimanentiIterare i passi fino ad eliminare tutte le dipendenze
transitive
![Page 56: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/56.jpg)
56
Implementazione DB SQL
![Page 57: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/57.jpg)
57
Linguaggi per le basi di dati
• Linguaggi di Definizione dei Dati (DDL DDL Data Definition Language )– Per la definizione di schemi (logici, esterni, fisici) e altre
operazioni generali
• Linguaggi per la Manipolazione dei Dati (DML DML Data Manipulation Language )– Per l’interrogazione e l’aggiornamento di (istanze di) basi di dati
• Linguaggi per il controllo dei Dati (DCL DCL Data Control Language )– Per definire i diritti di accesso ai dati, i profili degli utenti che
accedono alla base di dati
SQL
– Linguaggio testuale interattivo
![Page 58: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/58.jpg)
58
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)
SQL, un linguaggio interattivo
• "Trovare i corsi tenuti in aule a piano terra"
Nome PianoEdificioOMIDS1 Terra
PincherleG PrimoOMIN3 Terra
Aule
RossiBasi di dati DS3
BruniReti N3NeriSistemi N3
BruniControlli G
CorsiAulaDocenteCorso
![Page 59: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/59.jpg)
59
SQL, un linguaggio interattivo
SELECT Corso, Aula, PianoFROM Aule, CorsiWHERE Nome = AulaAND Piano = "Terra"
Corso Aula
Reti N3Sistemi N3
PianoTerraTerra
SQL immerso in linguaggio ospitewrite('nome della citta''?'); readln(citta); EXEC SQL DECLARE P CURSOR FOR
SELECT NOME, REDDITOFROM PERSONEWHERE CITTA = :citta ;
EXEC SQL OPEN P ; EXEC SQL FETCH P INTO :nome, :reddito ; while SQLCODE = 0 do begin
write('nome della persona:', nome, 'aumento?');readln(aumento);EXEC SQL UPDATE PERSONE
SET REDDITO = REDDITO + :aumentoWHERE CURRENT OF P
EXEC SQL FETCH P INTO :nome, :redditoend;
EXEC SQL CLOSE CURSOR P
![Page 60: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/60.jpg)
60
SQL in linguaggio ad hoc (Oracle PL/SQL)
declare Stip number;begin
select Stipendio into Stip from Impiegatowhere Matricola = '575488' for update of Stipendio;if Stip > 30 then
update Impiegato set Stipendio = Stipendio * 1.1 where Matricola = '575488';
elseupdate Impiegato set Stipendio = Stipendio * 1.15
where Matricola = '575488';end if;commit;
exceptionwhen no_data_found theninsert into Errori values('Matricola inesistente',sysdate);
end;
Interazione non testuale (Access)
![Page 61: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/61.jpg)
61
SQL come DDL
Definizione dello schema
CREATE TABLE, esempio
CREATE TABLE Studente(Matricola CHAR(6) PRIMARY KEY, Nome CHAR(20) NOT NULL, Cognome CHAR(20) NOT NULL,
)
![Page 62: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/62.jpg)
62
Domini elementari
• Carattere: singoli caratteri o stringhe, anche di lunghezza variabile
• Bit: singoli booleani o stringhe• Numerici, esatti e approssimati• Data, ora, intervalli di tempo• Introdotti in SQL:1999:
– Boolean– BLOB, CLOB (binary/character large object): per
grandi immagini e testi
Definizione di domini
• Istruzione CREATE DOMAIN: – definisce un dominio (semplice), utilizzabile in
definizioni di relazioni, anche con vincoli e valori di default
• Esempio
CREATE DOMAIN Voto AS SMALLINT DEFAULT NULLCHECK ( value >=18 AND value <= 30 )
![Page 63: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/63.jpg)
63
Si possono utilizzare due sintassi equivalenti:
Matricola CHAR(6) PRIMARY KEY,
Matricola CHAR(6),…,PRIMARY KEY (Matricola)
Chiave primaria
Vincoli intrarelazionali
• NOT NULL• UNIQUE definisce chiavi• PRIMARY KEY: chiave primaria (una sola,
implica NOT NULL)
![Page 64: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/64.jpg)
64
Vincoli interrelazionaliREFERENCES e FOREIGN KEY permettono di definire
vincoli di integrità referenziale • di nuovo due sintassi
– per singoli attributi– su più attributi
• E' possibile definire politiche di reazione alla violazione
Matricola398732959345
Vigili CognomeRossiNeriNeri
NomeLucaPieroMario
Mori Gino7543
InfrazioniCodice34321
733216452153524
Data1/2/954/3/955/4/965/2/98
Vigile3987329532959345
Prov NumeroMITOPRPR
39548KE39548839548839548
![Page 65: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/65.jpg)
65
InfrazioniCodice34321
733216452153524
Data1/2/954/3/955/4/965/2/98
Vigile3987329532959345
Prov NumeroMITOPRPR
39548KE39548839548839548
Auto Prov NumeroMITOPR
39548KE39548839548
CognomeRossiRossiNeri
NomeMarioMarioLuca
CREATE TABLE, esempioCREATE TABLE Infrazioni(
Codice CHAR(6) NOT NULL PRIMARY KEY, Data DATE NOT NULL, Vigile INTEGER NOT NULL
REFERENCES Vigili(Matricola),Provincia CHAR(2), Numero CHAR(6) ,FOREIGN KEY(Provincia, Numero)
REFERENCES Auto(Provincia, Numero))
![Page 66: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/66.jpg)
66
Modifiche degli schemi
ALTER DOMAINALTER TABLEDROP DOMAINDROP TABLE...
SQL come DML
Inserimenti modifiche cancellazioni di dati
Variazione dell’istanza del DB
![Page 67: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/67.jpg)
67
SQL, operazioni sui dati (DML)
• interrogazione: SELECT ListaAttributiFROM ListaTabelle[ WHERE Condizione ]
• modifica:– INSERT, DELETE, UPDATE
Nome EtàPersone
RedditoAndrea 27
Maria 55Anna 50
Filippo 26Luigi 50
Franco 60Olga 30
Sergio 85Luisa 75
Aldo 2521
4235304020413587
15
MadreMaternità FiglioLuisa
AnnaAnnaMariaMaria
LuisaMaria
OlgaFilippoAndrea
Aldo
Luigi
PadrePaternità Figlio
LuigiLuigi
FrancoFranco
SergioOlga
FilippoAndrea
Aldo
Franco
![Page 68: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/68.jpg)
68
Nome EtàPersone
RedditoAndrea 27 21
Maria 55 42Anna 50 35
Filippo 26 30Luigi 50 40
Franco 60 20Olga 30 41
Sergio 85 35Luisa 75 87
Aldo 25 15Andrea 27 21
Aldo 25 15
Filippo 26 30
Andrea 27 21Aldo 25 15
Filippo 26 30
211530
Reddito
Nome e reddito delle personecon meno di trenta anni
select nome, reddito
from personewhere eta <= 30
Condizione complessaselect *from personewhere reddito > 25
and (eta < 30 or eta > 60)Seleziona le persone che hanno un reddito maggiore di 25 ed
un’età minore di 30 o maggiore di 60
select *from personewhere nome like 'A_d%'
Seleziona le persone che hanno un nome che inizia per 'A' e ha una 'd' come terza lettera
![Page 69: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/69.jpg)
69
Operazioni di aggiornamento• operazioni di
– inserimento: INSERT INTO Tabella [ ( Attributi ) ] VALUES( Valori )
– eliminazione:DELETE FROM Tabella [ WHERE Condizione ]
– modifica: update• di una o più ennuple di una relazione• sulla base di una condizione che può coinvolgere anche
altre relazioni
Esempi
• INSERT INTO Persone VALUES ('Mario',25,52)
• INSERT INTO Persone(Nome, Eta, Reddito)VALUES('Pino',25,52)
• INSERT INTO Persone(Nome, Reddito) VALUES('Lino',55)
![Page 70: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/70.jpg)
70
Eliminazione di ennupleDELETE FROM Tabella
[ WHERE Condizione ]
DELETE FROM PersoneWHERE Eta < 35
SQL come DCL
Come definire i privilegi
![Page 71: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/71.jpg)
71
Controllo dell'accesso
• In SQL è possibile specificare chi (utente) e come (lettura, scrittura, …) può utilizzare la base di dati (o parte di essa)
• Oggetto dei privilegi (diritti di accesso) sono di solito le tabelle, ma anche altri tipi di risorse, quali ad esempio singoli attributi, domini, ...
• Un utente predefinito _system (amministratore della base di dati) ha tutti i privilegi
• Il creatore di una risorsa ha tutti i privilegi su di essa
Privilegi
• Un privilegio è caratterizzato da:– la risorsa cui si riferisce– l'utente che concede il privilegio– l'utente che riceve il privilegio– l'azione che viene permessa– la trasmissibilità del privilegio
![Page 72: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/72.jpg)
72
Tipi di privilegi offerti da SQL• insert: permette di inserire nuovi oggetti (ennuple)• update: permette di modificare il contenuto• delete: permette di eliminare oggetti • select: permette di leggere la risorsa • references: permette la definizione di vincoli di integrità
referenziale verso la risorsa (può limitare la possibilità di modificare la risorsa)
• usage: permette l'utilizzo in una definizione (per esempio, di un dominio)
grant e revoke
• Concessione di privilegi:grant < Privileges | all privileges > on
Resource to Users [ with grant option ]
– grant option specifica se il privilegio può essere trasmesso ad altri utentigrant select on Department to Stefano
• Revoca di privilegirevoke Privileges on Resource from Users
[ restrict | cascade ]
![Page 73: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/73.jpg)
73
Transazione
• Insieme di operazioni da considerare indivisibile ("atomico"), corretto anche in presenza di concorrenza e con effetti definitivi
• Proprietà ("acide"):– Atomicità– Consistenza– Isolamento– Durabilità (persistenza)
Transazioni in SQL
• Istruzioni fondamentali– begin transaction: specifica l'inizio della transazione
(le operazioni non vengono eseguite sulla base di dati)– commit work: le operazioni specificate a partire dal
begin transaction vengono eseguite– rollback work: si rinuncia all'esecuzione delle
operazioni specificate dopo l'ultimo begin transaction
![Page 74: Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi di programmazione di terza generazione gli archivi di una qualsiasi procedura informatica](https://reader030.vdocuments.pub/reader030/viewer/2022011808/5c69887c09d3f2e4258d00f2/html5/thumbnails/74.jpg)
74
Una transazione in SQLbegin transaction;update ContoCorrente
set Saldo = Saldo – 10where NumeroConto = 12345 ;
update ContoCorrenteset Saldo = Saldo + 10where NumeroConto = 55555 ;
commit work;