+ All Categories
Home > Documents > Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi...

Governo Digitale - Università degli Studi di Roma "Tor ... · • Fino all’avvento dei linguaggi...

Date post: 17-Feb-2019
Category:
Upload: phunglien
View: 216 times
Download: 0 times
Share this document with a friend
74
Governo Digitale a.a. 2007/08 Lezioni 21/5 Titolare: Salvatore Tucci [email protected] http://www.ce.uniroma2.it/people/tucci.html Corso integrativo: Mariateresa Celardo [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
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

74

Una transazione in SQLbegin transaction;update ContoCorrente

set Saldo = Saldo – 10where NumeroConto = 12345 ;

update ContoCorrenteset Saldo = Saldo + 10where NumeroConto = 55555 ;

commit work;


Recommended