Governo Digitale a.a. 2007/08



Documenti analoghi
SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Sistema di Gestione di Basi di Dati DataBase Management System DBMS

Corso di Informatica (Basi di Dati)

Lezione V. Aula Multimediale - sabato 29/03/2008

DBMS (Data Base Management System)

Organizzazione degli archivi

Progettazione di Basi di Dati

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati

Informatica (Basi di Dati)

SQL Laboratorio di Basi di Dati a.a. 2002/2003

Definizione di domini

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Elena Baralis 2013 Politecnico di Torino 1

BASE DI DATI: sicurezza. Informatica febbraio ASA

Sistemi Informativi e Basi di Dati

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

I Sistemi Informativi

1. BASI DI DATI: GENERALITÀ

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Le Basi di Dati. Le Basi di Dati

Tecnologia di un Database Server (centralizzato) Introduzione generale

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Alessandra Raffaetà. Basi di Dati

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Introduzione al data base

TEORIA sulle BASI DI DATI

Archivi e Basi di Dati

Gestione delle tabelle

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Progettaz. e sviluppo Data Base

Informatica per le discipline umanistiche 2 lezione 10

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Database. Si ringrazia Marco Bertini per le slides

MODELLO RELAZIONALE. Introduzione

Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a

Cardinalità e identificatori. Informatica. Generalizzazioni. Generalizzazioni. Generalizzazioni. Generalizzazioni

Facoltà di Farmacia - Corso di Informatica

Corso di Informatica (Basi di Dati)

Base di dati e sistemi informativi

BASI DI DATI - : I modelli di database

Volumi di riferimento

Vincoli di integrità

Informatica Documentale

Al giorno d oggi, i sistemi per la gestione di database

DATABASE RELAZIONALI

L architettura di un DBMS

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2

MODELLO E/R. Modellazione dei dati

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

database: modello entityrelationship

Informatica 2 Basi di dati

Progettaz. e sviluppo Data Base

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

I database. Cosa sono e a cosa servono i Database

Data Base. Prof. Filippo TROTTA

Informatica (Basi di Dati)

IL SISTEMA INFORMATIVO

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Introduzione alla teoria dei database relazionali. Come progettare un database

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

Basi di Dati: Corso di laboratorio

Basi di Dati e Microsoft Access

Capitolo 13. Interrogare una base di dati

Progettazione di una base di dati Ufficio della Motorizzazione

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

MODELLO E/R. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Corso di Informatica Generale 1 IN1. Linguaggio SQL

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Il database management system Access

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Le Basi di dati: generalità. Unità di Apprendimento A1 1

Progettazione Logica. Progettazione Logica

Linguaggio SQL. Structured Query Language

Basi di Dati Relazionali

Basi di Dati Relazionali

DB - Modello relazionale dei dati. DB - Modello Relazionale 1

Linguaggio SQL: costrutti avanzati

Partite string string int int. Perché studiare il Modello Relazionale? Capitolo 2. Relazione: tre accezioni. Basi di dati relazionali: definizioni

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Corso di Basi di Dati. Linguaggi per basi di dati. Linguaggi per basi di dati. Linguaggi per basi di dati: Algebra Relazionale

Organizzazione delle informazioni: Database

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età

Transcript:

Governo Digitale a.a. 2007/08 Lezioni 21/5 Titolare: Salvatore Tucci s.tucci@governo.it http://www.ce.uniroma2.it/people/tucci.html Corso integrativo: Mariateresa Celardo m.celardo@governo.it 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

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 and Communication Technology). Il SI è, infatti, concettualmente indipendente da qualsiasi automatizzazione. Informazioni e dati informazione: notizia, dato o elemento che consente di 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 costituiti da simboli che debbono essere elaborati)

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 che possono essere una minaccia alla sua posizione

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 temporale preso 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.

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

Sistema di gestione di basi di dati DataBase 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

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

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

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.

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

Architettura standard (ANSI/SPARC) a tre livelli per DBMS utente utente utente utente utente Schema esterno Schema esterno Schema esterno Schema logico Schema fisico BD Una vista Corsi Corso Docente Basi di dati Rossi Sistemi Neri Reti Bruni Controlli Bruni Aula DS3 N3 N3 G Aule Nome DS1 N3 G Edificio OMI OMI Pincherle Piano Terra Terra Primo CorsiSedi Corso Aula Sistemi N3 Reti N3 Controlli G Edificio Piano OMI Terra OMI Terra Pincherle Primo

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.

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). Leregole 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

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 (DDL Data Definition Language ) Per la definizione di schemi (logici, esterni, fisici) e altre operazioni generali Linguaggio per la Manipolazione dei Dati (DML Data Manipulation Language ) Per l interrogazione e l aggiornamento di (istanze di) basi di dati

Linguaggi per le basi di dati Linguaggio per il controllo dei Dati (DCL Data 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 (DSDL Data Storage Description Language). SQL SQL è 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.

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

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

Progettazione del Data Base Progettazione concettuale Diagramma E/R Requisiti Progettazione logica Realizzazione nel DBMS Implementazione Modello relazionale

I prodotti della varie fasi Schema concettuale: risultato della fase di analisi della realtà da rappresentare (diagramma Entità/Relazione) È indipendente dalla Base dati utilizzata Schema 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: attività per la creazione della base dati nel DBMS utilizzato Occorre utilizzare linguaggi del DBMS con l eventuale ausilio di strumenti visuali Analisi dei requisiti Comprende attività (interconnesse) di acquisizione dei requisiti analisi dei requisiti costruzione del glossario

Fonti di Requisiti Possibili fonti: utenti, attraverso: interviste documentazione apposita documentazione esistente: normative (leggi, regolamenti di settore) regolamenti interni, procedure aziendali realizzazioni preesistenti modulistica 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

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 Progettazione concettuale Diagramma E/R Requisiti Progettazione logica Realizzazione nel DBMS Implementazione Modello relazionale

Modello concettuale dei dati Modello Entità-Relazioni 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

Rappresentazione grafica entità Targa Automobile Modello Data Nascita Persona Indirizzo Cognome Nome 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)

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

Esempi di occorrenze C1 C2 C3 C4 Cliente O1 O2 O3 O4 Ordine Ad ogni istanza di cliente corrispondono n istanze di ordini Esempio ER

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à 1 n cliente impartisce ordine (1,1) (0,n) cliente impartisce ordine C1 C2 C3 C4 Cliente O1 O2 O3 O4 Ordine 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 notazioni cliente cliente n (0,n) impartisce impartisce 1 (1,1) ordine ordine La cardinalità indica quante volte in una relazione un occorrenza dell entità cliente può essere legata a occorrenze dell entità ordini Il cliente può fare (è legato a) n ordini Un ordine è di un solo cliente Quindi in tal caso il numero accanto alla entità indica il numero di istanze partecipanti alla relazione C1 C2 C3 C4 Cliente O1 O2 O3 O4 Ordine

Esercizio Cardinalità cliente n prenota m viaggio cittadino 1 possiede 1 Carta di identità libro n riposto 1 scaffale puzzle 1 composto n pezzo Progettazione concettuale Diagramma E/R Requisiti

Esercizio Rappresentare 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 Professore 1 tesi n studente n n afferenza iscrizione 1 1 Dipartimento Corso di laurea

Esercizio Rappresentare 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 Costo Nome tariffa 1 prezzo 1 categoria Codice 1 appartenenza Numero Registrazione Colore auto n

Modello logico dei dati Modello 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)

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

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 Basi di dati: schema e istanza Orario Lo schema della base di dati Insegnamento Docente Aula Ora 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 L'istanza della base di dati

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 studenti Matricola Cognome Nome Data di nascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo 03/11/1976 9283 Verdi Luisa 12/11/1979 3456 Rossi Maria 01/02/1978 esami Studente Voto Corso 3456 30 04 3456 24 02 9283 28 01 6554 26 01 corsi Codice Titolo Docente 01 Analisi Mario 02 Chimica Bruni 04 Chimica Verdi

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

studenti Matricola Cognome Nome Data di nascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo 03/11/1976 9283 Verdi Luisa 12/11/1979 3456 Rossi Maria 01/02/1978 esami Studente Voto Corso 3456 30 04 Chiave 3456 esterna rispetto 24 la relazione 02 studenti 9283 28 01 6554 26 01 corsi Codice Titolo Docente 01 Analisi Mario 02 Chimica Bruni Chiave esterna rispetto la relazione corsi 04 Chimica Verdi Vincolo di integrità referenziale Un vincolo di integrità referenziale ( foreign key ) fra gli attributi X di una relazione R 1 e un altra relazione R 2 impone ai valori su X in R 1 di comparire come valori della chiave primaria di R 2 Integrità referenziale: informazioni in relazioni diverse sono correlate attraverso valori comuni in particolare, valori delle chiavi (primarie) le correlazioni debbono essere coerenti

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 studenti Matricola Cognome Nome Data di nascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo 03/11/1976 9283 Verdi Luisa 12/11/1979 3456 Rossi Maria 01/02/1978 esami Studente Voto Corso 3456 30 04 Chiave 3456 esterna rispetto 24 la relazione 02 studenti 9283 28 01 6554 26 01 corsi Codice Titolo Docente 01 Analisi Mario 02 Chimica Bruni Chiave esterna rispetto la relazione corsi 04 Chimica Verdi

Esempio: Azioni compensative 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

Progettazione concettuale Diagramma E/R Requisiti Progettazione logica Modello relazionale Diagramma E/R Modello relazionale Entità Tabelle Attributi Colonne tabelle (campi) Dominio: 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) Occorrenze Record (tuple): righe della tabella Identificatori Chiavi primarie: insiemi di campi il cui valore identifica univocamente il record No valori ripetuti No valori nulli

Diagramma E/R Modello relazionale Relazioni (E/R) Tabelle + chiavi esterne Relazioni 1 a 1: 1 si inserisce tra i campi di una entità la chiave primaria dell entità ad essa collegata e viceversa Relazioni 1 a n: 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 m: m si divide la relazione in 2 relazioni più semplici di tipo 1 a n introducendo una entità associativa Esempio relazione 1 a 1 Studente Tessera

Diagramma E/R Modello relazionale Relazioni (E/R) Tabelle + chiavi esterne Relazioni 1 a 1: 1 si inserisce tra i campi di una entità la chiave primaria dell entità ad essa collegata e viceversa Relazioni 1 a n: 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 m: m si divide la relazione in 2 relazioni più semplici di tipo 1 a n introducendo una entità associativa Esempio relazione 1 a n Professore Studente

Diagramma E/R Modello relazionale Relazioni (E/R) Tabelle + chiavi esterne Relazioni 1 a 1: 1 si inserisce tra i campi di una entità la chiave primaria dell entità ad essa collegata e viceversa Relazioni 1 a n: 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 m: m si divide la relazione in 2 relazioni più semplici di tipo 1 a n introducendo una entità associativa Esempio relazione n a m

Esempio relazione n a m Prenotazione Esempio relazione n a m Passeggeri Voli

studenti Matricola Cognome Nome Data di nascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo 03/11/1976 9283 Verdi Luisa 12/11/1979 3456 Rossi Maria 01/02/1978 esami Studente Voto Corso 3456 30 04 3456 24 02 9283 28 01 6554 26 01 corsi Codice Titolo Docente 01 Analisi Mario 02 Chimica Bruni 04 Chimica Verdi studenti Matricola Cognome Nome Data di nascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo 03/11/1976 9283 Verdi Luisa 12/11/1979 3456 Rossi Maria 01/02/1978 esami Studente Voto Corso 30 24 28 26 corsi Codice Titolo Docente 01 Analisi Mario 02 Chimica Bruni 04 Chimica Verdi

Esercizio Relationship uno a molti Cognome Data Ingaggio nascita Città Nome n 1 Giocatore Contratto Squadra Ruolo Colori sociali Giocatore(Cognome, DataNascita, Ruolo, Squadra, Ingaggio) Squadra(Nome, Città, ColoriSociali) con vincolo di integrità referenziale fra Squadra in Giocatore e la chiave di Squadra se la cardinalità minima della relationship è 0, allora Squadra in Giocatore deve ammettere valore nullo

Entità e relationship molti a molti Cognome Matricola Data inizio Codice Nome Impiegato n Partecipazione m Progetto Stipendio Budget Impiegato(Matricola, Cognome, Stipendio) Progetto(Codice, Nome, Budget) Partecipazione(Matricola, Codice, DataInizio) Entità e Relazioni molti a molti Impiegato(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

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) Relationship ricorsive Quantità (0,N) (0,N) Composizione Composto Prodotto Componente Costo Nome Codice Prodotto(Codice, Nome, Costo) Composizione(Composto, Componente, Quantità)

Nome Relationship n-arie Partita IVA Quantità Genere Codice Fornitore (0,N) Fornitura (1,N) Prodotto (1,N) Dipartimento Nome Telefono Fornitore(PartitaIVA, Nome) Prodotto(Codice, Genere) Dipartimento(Nome, Telefono) Fornitura(Fornitore, Prodotto, Dipartimento, Quantità) Un buon progetto Definire 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 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 vincoli di integrità referenziale e i vincoli semantici Valutare lo schema relazionale realizzato

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

Anomalie Anomalia di cancellazione: comporta la perdita non voluta di dati Anomalia di inserimento: comporta la presenza di record non coerenti Anomalia 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)

Anomalia di cancellazione i dati dell esame di economia sono presenti solo in tale record la cancellazione implica la perdita di informazione sull esame Anomalia di aggiornamento Se il nome dell esame di Inglese2 diventa Inglese finale Occorre modificare tutti i record in cui compare Inglese2

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 marzo Persona( Cognome, Nome, DataNascita, CittàNascita, Regione) Rossi Giuseppe 3/7/83 Roma Lazio Molla Alberto 23/8/77 Roma Campania Errore Roma non è in Campania

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 Esempio Persona( Cognome, Nome, DataNascita, Onomastico) Dipendenza funzionale tra Nome ed Onomastico Persona( 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

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 ripetitivi 3. Creare una tabella usando gli attributi che si ripetono + il campo di collegamento con la prima tabella (chiave esterna)

Normalizzazione Seconda forma normale: Occorre verificare che i campi non chiave primaria dipendono dall intera chiave primaria e non da parte di essa 1. Identificare dipendenze parziali 2. Creare una tabella usando i campi collegati in modo parziale 3. Creare una tabella togliendo dalla tabella di partenza i campi che dipendevano in modo parziale

Normalizzazione Terza 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 transitive 2. Creare una tabella usando i campi in dipendenza transitiva 3. Creare una tabella con i campi rimanenti Iterare i passi fino ad eliminare tutte le dipendenze transitive

Implementazione DB SQL

Linguaggi per le basi di dati Linguaggi di Definizione dei Dati (DDL Data Definition Language ) Per la definizione di schemi (logici, esterni, fisici) e altre operazioni generali Linguaggi per la Manipolazione dei Dati (DML Data Manipulation Language ) Per l interrogazione e l aggiornamento di (istanze di) basi di dati Linguaggi per il controllo dei Dati (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

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" Corsi Corso Docente Basi di dati Rossi Sistemi Neri Reti Bruni Controlli Bruni Aula DS3 N3 N3 G Aule Nome DS1 N3 G Edificio OMI OMI Pincherle Piano Terra Terra Primo

SQL, un linguaggio interattivo SELECT Corso, Aula, Piano FROM Aule, Corsi WHERE Nome = Aula AND Piano = "Terra" Corso Sistemi Reti Aula N3 N3 Piano Terra Terra SQL immerso in linguaggio ospite write('nome della citta''?'); readln(citta); EXEC SQL DECLARE P CURSOR FOR SELECT NOME, REDDITO FROM PERSONE WHERE 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 + :aumento WHERE CURRENT OF P EXEC SQL FETCH P INTO :nome, :reddito end; EXEC SQL CLOSE CURSOR P

SQL in linguaggio ad hoc (Oracle PL/SQL) declare Stip number; begin select Stipendio into Stip from Impiegato where Matricola = '575488' for update of Stipendio; if Stip > 30 then update Impiegato set Stipendio = Stipendio * 1.1 where Matricola = '575488'; else update Impiegato set Stipendio = Stipendio * 1.15 where Matricola = '575488'; end if; commit; exception when no_data_found then insert into Errori values('matricola inesistente',sysdate); end; Interazione non testuale (Access)

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, )

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 NULL CHECK ( value >=18 AND value <= 30 )

Chiave primaria Si possono utilizzare due sintassi equivalenti: Matricola CHAR(6) PRIMARY KEY, Matricola CHAR(6),, PRIMARY KEY (Matricola) Vincoli intrarelazionali NOT NULL UNIQUE definisce chiavi PRIMARY KEY: chiave primaria (una sola, implica NOT NULL)

Vincoli interrelazionali REFERENCES 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 Infrazioni Codice Data Vigile Prov Numero 34321 1/2/95 3987 MI 39548K 53524 4/3/95 3295 TO E39548 64521 5/4/96 3295 PR 839548 73321 5/2/98 9345 PR 839548 Vigili Matricola Cognome Nome 3987 Rossi Luca 3295 Neri Piero 9345 Neri Mario 7543 Mori Gino

Infrazioni Codice Data Vigile Prov Numero 34321 1/2/95 3987 MI 39548K 53524 4/3/95 3295 TO E39548 64521 5/4/96 3295 PR 839548 73321 5/2/98 9345 PR 839548 Auto Prov Numero Cognome Nome MI 39548K Rossi Mario TO E39548 Rossi Mario PR 839548 Neri Luca CREATE TABLE, esempio CREATE 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) )

ALTER DOMAIN ALTER TABLE DROP DOMAIN DROP TABLE... Modifiche degli schemi SQL come DML Inserimenti modifiche cancellazioni di dati Variazione dell istanza del DB

SQL, operazioni sui dati (DML) interrogazione: SELECT ListaAttributi FROM ListaTabelle [ WHERE Condizione ] modifica: INSERT, DELETE, UPDATE Maternità Paternità Madre Luisa Luisa Anna Anna Maria Maria Figlio Maria Luigi Olga Filippo Andrea Aldo Padre Figlio Sergio Franco Luigi Olga Luigi Filippo Franco Andrea Franco Aldo Persone Nome Età Andrea 27 Aldo 25 Maria 55 Anna 50 Filippo 26 Luigi 50 Franco 60 Olga 30 Sergio 85 Luisa 75 Reddito 21 15 42 35 30 40 20 41 35 87

Nome e reddito delle persone con meno di trenta anni select nome, reddito from persone where eta <= 30 Persone Nome Reddito Età Reddito Andrea 2721 21 Aldo 2515 15 Filippo Maria 55 2630 42 30 Anna 50 35 Filippo 26 30 Luigi 50 40 Franco 60 20 Olga 30 41 Sergio 85 35 Luisa 75 87 Condizione complessa select * from persone where 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 persone where nome like 'A_d%' Seleziona le persone che hanno un nome che inizia per 'A' e ha una 'd' come terza lettera

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)

Eliminazione di ennuple DELETE FROM Tabella [ WHERE Condizione ] DELETE FROM Persone WHERE Eta < 35 SQL come DCL Come definire i privilegi

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

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 utenti grant select on Department to Stefano Revoca di privilegi revoke Privileges on Resource from Users [ restrict cascade ]

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) Istruzioni fondamentali Transazioni in SQL 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

Una transazione in SQL begin transaction; update ContoCorrente set Saldo = Saldo 10 where NumeroConto = 12345 ; update ContoCorrente set Saldo = Saldo + 10 where NumeroConto = 55555 ; commit work;