Paolo Camagni Riccardo Nikolassy INFORMATICA PER L’AZIENDA Edizione BLU AMMINISTRAZIONE, FINANZA E MARKETING Nuova Edizione OPENSCHOOL Sistemi informativi, web e database Edizione OPENSCHOOL 1 LIBRODITESTO 2 E-BOOK+ 3 RISORSEONLINE 4 PIATTAFORMA HOEPLI INFORMATICA PER L’AZIENDA PAOLO CAMAGNI RICCARDO NIKOLASSY Informatica per l’azienda EDIZIONE BLU Nuova Edizione OPENSCHOOL Amministrazione, Finanza e Marketing Sistemi informativi, web e database EDITORE ULRICO HOEPLI MILANO Copyright © Ulrico Hoepli Editore S.p.A. 2015 Via Hoepli 5, 20121 Milano (Italy) tel. +39 02 864871 – fax +39 02 8052886 e-mail [email protected] www.hoepli.it Tutti i diritti sono riservati a norma di legge e a norma delle convenzioni internazionali Presentazione Il testo è destinato all’insegnamento dell’Informatica, previsto dal nuovo ordinamento per l’articolazione Amministrazione, Finanza e Marketing degli Istituti Tecnici settore Economico, dove la materia è svolta nel terzo e quarto anno di studio. La novità dell’opera, concepita secondo le recenti indicazioni ministeriali, è l’integrazione tra testo cartaceo e risorse digitali, con materiali multimediali che completano l’esposizione e stimolano l’interesse degli studenti. Il testo cartaceo è snello ed essenziale ed è in stretta sinergia con la parte digitale, con il sito www.hoepliscuola.it e, a discrezione del docente, con la piattaforma didattica. Questa nuova edizione, inoltre, recepisce le indicazioni ricevute dai docenti che hanno in uso la precedente edizione; in particolare sono state aggiornate e arricchite le sezioni che riguardano l’azienda. Le unità di apprendimento concernenti il progetto dei database e il linguaggio HTML sono state ristrutturate e revisionate, arricchendo i contenuti e riorganizzando la presentazione degli argomenti. Il volume si articola in unità, ognuna suddivisa in più lezioni. Ciascuna lezione ha una struttura innovativa e cerca di essere una reale guida per l’apprendimento; essa, infatti, risulta essenziale nei contenuti ma ricca di esempi e di procedure guidate: per ogni esempio vengono proposte soluzioni guidate passo passo. Metodologia e strumenti didattici Le finalità e i contenuti dei diversi argomenti affrontati sono descritti dagli obiettivi generali e dalle indicazioni In questa lezione impareremo; alla fine di ogni lezione, per lo studente sono presenti esercizi, anche interattivi, di valutazione delle conoscenze e delle competenze raggiunte, suddivisi in domande a risposta multipla, a completamento, esercizi con procedure guidate. Caratteristiche della nuova edizione La Nuova Edizione Openschool consente di: ◗◗ scaricare gratuitamente il libro digitale arricchito (eBook+) che permette in particolare di: eseguire tutte le esercitazioni a risposta chiusa in modo interattivo; accedere ai diversi video tutorial; accedere alle gallerie di immagini; scaricare gli approfondimenti tematici, le lezioni e le unità integrative. ◗◗ disporre di ulteriori esercitazioni online utilizzabili a discrezione del docente per classi virtuali gestibili attraverso la piattaforma didattica. Aspetti caratterizzanti ◗◗ Testo pienamente in linea con le recenti indicazioni ministeriali in merito alle nuove caratteristiche tecniche e tecnologiche dei libri misti e digitali e al loro stretto coordinamento con la piattaforma didattica. ◗◗ Totale duttilità di utilizzo in funzione delle scelte didattiche o dotazioni tecnologiche: • il libro cartaceo + CD-ROM consente di svolgere lezioni complete e attività di laboratorio con l’apparato offline presente nel CD-ROM; • l’eBook+, le risorse online e la piattaforma offrono il pieno supporto per una didattica multimediale, a discrezione delle scelte del docente. ◗◗ Lezioni autoconclusive ricche di esempi ed esercizi, adatte a essere svolte in una lezione o al massimo due. ◗◗ Teoria ridotta al minimo per privilegiare l’aspetto pratico. Materiali online Sul sito www.hoepliscuola.it sono disponibili numerose risorse online. In particolare, per lo studente: approfondimenti, utili integrazioni del testo e un numero elevato di esercizi sia per il recupero e il rinforzo sia per l’approfondimento degli argomenti trattati. Per il docente, una sezione riservata presenta alcune unità didattiche per l’approfondimento delle tematiche affrontate e un insieme di schede aggiuntive per la verifica dei livelli di apprendimento degli studenti, nonché lezioni (sotto forma di presentazioni in PowerPoint), utilizzabili efficacemente anche con le LIM. Materiali ed esercizi possono essere usati anche per creare attività didattiche fruibili tramite la piattaforma didattica accessibile dal sito. CD-ROM per lo studente Il CD-ROM per lo studente allegato al volume contiene i file degli esempi, nonché il materiale necessario per eseguire le procedure guidate passo passo degli esercizi svolti e da svolgere e le simulazioni informatiche di fine lezione e di fine unità. Contiene gli esempi dei codici presenti nel libro di testo. Struttura dell’opera ZOOM SU... Piccole sezioni di approfondimento OSSERVAZIONI Un aiuto per comprendere e approfondire PROCEDURE STEP BY STEP Esposizioni semplici ed essenziali mediante procedimenti passo-passo PROVA ADESSO! Per mettere in pratica, in itinere, quanto appreso nella lezione ESERCIZI Ampia sezione di esercizi per la verifica delle conoscenze e delle competenze VII L’eBook+ riproduce le pagine del libro di testo in versione digitale e interattiva. È utilizzabile su tablet, LIM e computer e consente di annotare, sottolineare ed evidenziare il testo, salvando il proprio lavoro per poterlo consultare e sincronizzare sui diversi dispositivi. Apposite icone attivano i contributi digitali integrativi. APPROFONDIMENTI Contenuti, lezioni e unità integrative eBook+ ESERCIZI AGGIUNTIVI Esercizi per il recupero e l’approfondimento VIDEO Video tutorial per esemplificare azioni e procedimenti ESERCIZI Esercizi interattivi di varia tipologia con funzione di autocorrezione IMMAGINI E GALLERIE DI IMMAGINI Per esemplificare e rappresentare visivamente i contenuti LINK Rimandi interni al volume per navigare agevolmente tra i contenuti L’OFFERTA DIDATTICA HOEPLI L’edizione Openschool Hoepli offre a docenti e studenti tutte le potenzialità di Openschool Network (ON), il nuovo sistema integrato di contenuti e servizi per l’apprendimento. Edizione OPENSchOOl + LIBRO DI TESTO Il libro di testo è l’elemento cardine dell’offerta formativa, uno strumento didattico agile e completo, utilizzabile autonomamente o in combinazione con il ricco corredo digitale offine e online. Secondo le più recenti indicazioni ministeriali, volume cartaceo e apparati digitali sono integrati in un unico percorso didattico. Le espansioni accessibili attraverso l’eBook+ e i materiali integrativi disponibili nel sito dell’editore sono puntualmente richiamati nel testo tramite apposite icone. + + eBOOK+ RISORSE OnLInE PIATTAFORMA DIDATTICA L’eBook+ è la versione digitale e interattiva del libro di testo, utilizzabile su tablet, LIM e computer. Aiuta a comprendere e ad approfondire i contenuti, rendendo l’apprendimento più attivo e coinvolgente. Consente di leggere, annotare, sottolineare, effettuare ricerche e accedere direttamente alle numerose risorse digitali integrative. Scaricare l’eBook+ è molto semplice. È suffciente seguire le istruzioni riportate nell’ultima pagina di questo volume. Il sito della casa editrice offre una ricca dotazione di risorse digitali per l’approfondimento e l’aggiornamento. Nella pagina web dedicata al testo è disponibile MyBookBox, il contenitore virtuale che raccoglie i materiali integrativi che accompagnano l’opera. Per accedere ai materiali è suffciente registrarsi al sito www.hoepliscuola.it e inserire il codice coupon che si trova nella terza pagina di copertina. Per il docente nel sito sono previste ulteriori risorse didattiche dedicate. La piattaforma didattica è un ambiente digitale che può essere utilizzato in modo duttile, a misura delle esigenze della classe e degli studenti. Permette in particolare di condividere contenuti ed esercizi e di partecipare a classi virtuali. Ogni attività svolta viene salvata sul cloud e rimane sempre disponibile e aggiornata. La piattaforma consente inoltre di consultare la versione online degli eBook+ presenti nella propria libreria. È possibile accedere alla piattaforma attraverso il sito www.hoepliscuola.it. Indice UNITÀ DI APPRENDIMENTO 1 Progetto di database L1 Introduzione ai database Generalità ............................................................................................... 2 Archivi e applicazioni informatiche ............... 5 Dati, archivi e database ..................................................... 6 Funzioni di un DBMS............................................................ 9 Architettura standard a tre livelli per DBMS (ANSI/SPARC)............................................ 11 Verifichiamo le conoscenze ..................................... 13 L2 Progettazione concettuale e logica Generalità ........................................................................................... 14 Analisi e progettazione concettuale ............. 16 Modellazione logica.............................................................. 17 Implementazione e realizzazione................... 18 Modelli logici per le basi di dati ..................... 18 Conclusioni ...................................................................................... 22 Verifichiamo le conoscenze ..................................... 24 Verifichiamo le competenze ................................... 26 L3 Il modello E-R: entità e relazioni Il modello E-R .............................................................................. 27 Entità ....................................................................................................... 29 Istanze ................................................................................................... 30 Relazioni (o associazioni) .......................................... 31 Classificazione delle relazioni ............................. 37 Verifichiamo le conoscenze ..................................... 44 Verifichiamo le competenze ................................... 45 L4 Il modello E-R: attributi e chiavi Classificazione degli attributi ............................... 47 Attributi chiave .......................................................................... 49 Rappresentazione grafica delle proprietà attributi ................................................. 57 Domini ..................................................................................................... 58 Verifichiamo le conoscenze ..................................... 62 Verifichiamo le competenze ................................... 63 L5 Il progetto di un database: definizione del modello E-R Introduzione ................................................................................... 64 Ristrutturazione dei requisiti ............................... 65 Nominare gli oggetti ............................................................ 68 Definizione degli oggetti ............................................... 69 La documentazione del progetto: matrici tra entità e attributi ................................. 71 Individuare le relazioni.................................................. 73 Conclusione..................................................................................... 74 Esempio riepilogativo: corsi estivi di recupero................................................... 75 Verifichiamo le conoscenze ..................................... 79 Verifichiamo le competenze ................................... 80 L6 Il progetto di un database: dallo schema E-R al modello relazionale Introduzione ................................................................................... 81 Ristrutturazione del diagramma E-R ........ 81 Fase di traduzione del modello E-R nel modello relazionale.............................................................. 84 Un esempio completo: gestione di dati di un archivio fotografico..................... 90 Verifichiamo le competenze ................................... 96 L7 I database relazionali Struttura dei dati e terminologia .................... 98 Proprietà delle tabelle relazionali .............. 102 Relazioni e chiavi ............................................................... 104 Conclusioni: schema logico, fisico e tracciato record ............................................ 107 Verifichiamo le conoscenze ................................. 108 Verifichiamo le competenze ............................... 109 XI L8 Le regole di integrità L’integrità dei dati .............................................................. 111 Regole di inserzione, cancellazione e modifica ......................................... 112 Verifichiamo le conoscenze ................................. 120 L9 Operazioni relazionali Manipolazione di dati relazionali ................................................................ 122 Esempio riepilogativo ................................................... 129 Verifichiamo le conoscenze ................................. 132 Verifichiamo le competenze ............................... 133 L10 La normalizzazione delle tabelle Normalizzazione ................................................................... 134 Prima forma normale .................................................... 137 Seconda forma normale ............................................ 139 Terza forma normale ..................................................... 142 Verifichiamo le conoscenze ................................. 146 Verifichiamo le competenze ............................... 146 AREA digitale ◗◗ Esercizi ◗◗ Immagini ◗◗ Tappe storiche dei database ◗◗ Tipologie di relazioni ad anello ◗◗ Diagrammi UML: regole di lettura ◗◗ UnÕaltra forma grafica di rappresentazione attributi ◗◗ UML vs E-R ◗◗ Esercizi per il recupero La sicurezza ................................................................................ 151 Architettura e organizzazione ......................... 151 Database di rete .................................................................... 152 Verifichiamo le conoscenze ................................. 154 L2 Il DBMS Microsoft Access Gli oggetti di Access ....................................................... 156 I vincoli e la normalizzazione.......................... 165 La relazione uno a molti.......................................... 166 Verifichiamo le conoscenze ................................. 168 Verifichiamo le competenze ............................... 168 L3 Estrarre le informazioni con Microsoft Access La ricerca dei dati nella tabella.................................................................................. 171 Le interrogazioni sui database: le query .............................................................................................. 172 Le query su più tabelle in relazione................................................................................... 175 Le query di aggiornamento.................................. 176 Le query di raggruppamento ............................. 177 Il riepilogo dei dati con i report ................... 179 Verifichiamo le conoscenze ................................. 183 Verifichiamo le competenze ............................... 183 L4 Esempi di database aziendali con Access La gestione del magazzino .................................. 190 La fatturazione........................................................................ 194 Verifichiamo le competenze ............................... 199 L5 Un DBMS di rete: MySQL UNITÀ DI APPRENDIMENTO 2 DBMS locali e di rete L1 La gestione dei database mediante DBMS Database e DBMS ................................................................ 148 I livelli di astrazione ....................................................... 150 XII Architettura di MySQL L’ambiente HeidiSQL L’installazione di MySQL e HeidiSQL L’installazione e l’avvio di HeidiSQL La creazione del database e delle tabelle di HeidiSQL La creazione di un vincolo relazionale Verifichiamo le conoscenze Verifichiamo le competenze Puoi scaricare la lezione 5 anche da hoepliscuola.it AREA digitale ◗◗ Esercizi ◗◗ Archivi e DBMS ◗◗ Sistemi centralizzati e distribuiti ◗◗ Data warehouse e azienda ◗◗ Esercizi per il recupero UNITÀ DI APPRENDIMENTO 3 Reti di computer e programmazione statica nel web L1 Reti di computer e reti di comunicazione Le reti di computer.......................................................... 202 Le topologie di rete .......................................................... 204 Il modello ISO/OSI e Internet ......................... 204 I dispositivi di rete ............................................................ 206 Gli indirizzi IP ......................................................................... 207 I protocolli e il routing................................................ 209 La rete Internet ..................................................................... 210 L’architettura del web .................................................. 211 I servizi di Internet .......................................................... 212 I domini, il DNS e la registrazione di siti ................................................... 214 Proxy ...................................................................................................... 215 Verifichiamo le conoscenze ................................. 216 Verifichiamo le competenze ............................... 216 L2 Introduzione all’HTML Il web ..................................................................................................... 217 L’HTML ............................................................................................... 218 La creazione di una pagina ............................... 222 La sintassi HTML ................................................................ 223 L’intestazione di un documento ................... 224 Il corpo del documento (tag <body>) ............................................................................... 226 I paragrafi e la formattazione del testo . 228 La definizione del carattere ................................ 232 Verifichiamo le conoscenze ................................. 234 Verifichiamo le competenze ............................... 234 L3 Inseriamo immagini ed elenchi nella pagina Le immagini ................................................................................ 236 Le liste ................................................................................................. 239 Verifichiamo le conoscenze ................................. 242 Verifichiamo le competenze ............................... 242 L4 Le tabelle e gli hyperlink Le tabelle ......................................................................................... 245 I collegamenti ipertestuali (link) ................ 249 Le mappe sensibili ............................................................ 251 Verifichiamo le conoscenze ................................. 254 Verifichiamo le competenze ............................... 255 L5 Multimedialità e moduli nelle pagine web Gli oggetti multimediali ............................................ 257 Inserire applet Java ......................................................... 260 Moduli e server web ........................................................ 261 Il modulo di immissione form ......................... 261 Gli elementi che compongono i moduli (campi) .................................................................. 263 Come disabilitare i controlli ............................ 267 Verifichiamo le conoscenze ................................. 269 Verifichiamo le competenze ............................... 270 L6 Introduzione ad HTML 5 Novità di HTML 5 rispetto al passato .............................................................. 272 La struttura di un documento HTML 5.0 ................................. 273 Immagini e oggetti multimediali.................. 280 Verifichiamo le conoscenze ................................. 283 Verifichiamo le competenze ............................... 284 L7 Introduzione ai fogli di stile I fogli di stile............................................................................... 286 Gli stili ................................................................................................. 287 XIII L’applicazione degli stili............................................ 289 L’applicazione degli stili in cascata ............ 293 Classi e psudoclassi ......................................................... 293 Il selettore id.............................................................................. 298 Verifichiamo le conoscenze ................................. 299 Verifichiamo le competenze ............................... 299 Il sistema azienda: tre classificazioni....... 337 Le aziende di produzione: il sistema produttivo ...................................................... 338 Conclusioni .................................................................................. 340 Verifichiamo le conoscenze ................................. 342 L8 Il box model CSS Introduzione ............................................................................... 343 Il sistema informativo .................................................. 344 L’informazione come risorsa organizzativa................................... 346 Incertezza e decisioni .................................................. 346 Il sistema informatico .................................................. 348 Il ciclo di vita di un sistema informativo.. 350 Esempi di sistemi informativi .......................... 352 Verifichiamo le conoscenze ................................. 354 Il box model ................................................................................ 301 La proprietà overflow ................................................... 305 Il posizionamento dei box ..................................... 307 Verifichiamo le competenze ............................... 313 L9 Il layout con i fogli di stile L’impaginazione dei siti web.............................. 315 Le strategie di layout..................................................... 316 Layout multicolonna ..................................................... 321 Verifichiamo le competenze ............................... 328 AREA digitale ◗◗ Esercizi ◗◗ Immagini ◗◗ Video ◗◗Usare i frame ◗◗Il fuoco dei campi modulo ◗◗Le versioni di CSS ◗◗Le unità di misura delle proprietà ◗◗Creare box con i bordi tondi ◗◗Come posizionare i contenuti di un sito web ◗◗Layout elastico UNITÀ DI APPRENDIMENTO 4 Azienda e informazione digitale L1 Conosciamo l’azienda e le funzioni aziendali Introduzione ............................................................................... 332 Il sistema azienda............................................................... 333 Le funzioni aziendali ..................................................... 335 XIV L2 Sistemi informativi e informatici L3 E-commerce: il mercato del terzo millennio E-commerce: il commercio elettronico ......................................... 355 Cenni storici ............................................................................... 356 Le tappe nell’evoluzione dell’e-commerce..................................................................... 358 Come funziona l’e-commerce .......................... 359 Segmenti di e-commerce......................................... 360 La tassazione ............................................................................. 363 Vantaggi e svantaggi dell’acquisto su un sito e-commerce ............................................... 363 Vantaggi e svantaggi della vendita su un sito e-commerce ............................................... 364 E-commerce oggi: balzo del 17% nel 2013............................................... 365 Sistemi di pagamento online ........................... 366 Sicurezza delle transazioni online ............. 368 Verifichiamo le conoscenze ................................. 371 L4 Conosciamo le forme di comunicazione commerciale La comunicazione commerciale Il risultato della comunicazione commerciale Forme tecniche della comunicazione Verifichiamo le conoscenze L5 Conosciamo le forme di pubblicità La comunicazione pubblicitaria Perché le aziende fanno pubblicità La campagna pubblicitaria Pubblicità e comunicazione digitale Verifichiamo le conoscenze L6 Social network: una nuova opportunità Introduzione ............................................................................... 372 Social Network Analysis (SNA) ..................... 373 Cenni storici ............................................................................. 374 Social network e marketing informatico........................................... 376 Dal web 1.0 al web 3.0: social forum e web semantico ......................... 378 Verifichiamo le conoscenze ................................. 382 Puoi scaricare la lezioni 4-5 anche da hoepliscuola.it AREA digitale ◗◗ Esercizi ◗◗ Classificazione delle attività economiche Ateco 2007 (fonte ISTAT) ◗◗ L’impresa e gli stakeholder ◗◗ Classificazione delle tecnologie dell’informazione ◗◗ Microsoft Project ◗◗ Legge 196/03 ◗◗ Modelli classici di sviluppo di sistemi informatici ◗◗ E-commerche: i numeri e i trend in Europa ◗◗ Social Networking APPENDICE Progettazione di pagine web L1 Progettare pagine web: Dreamweaver Ambiente di lavoro Impostazione del sito Definizione di una cartella remota Caratteristiche della pagina Elementi di base Livelli (layer) Immagini interattive Comportamenti Frame L2 Modelli e animazioni nelle pagine web Moduli Inserimento dei campi Stili Creazione di una nuova pagina Dreamweaver e XML Dreamweaver e le animazioni L3 Usabilità e accessibilità dei siti web La fase di progettazione Principi di usabilità Prima regola: guardare gli altri Il test di usabilità L’accessibilità Come utilizzare il coupon per scaricare la versione digitale del libro (eBook+)...... 384 XV UNITÀ DI APPRENDIMENTO Progetto di database 1 L1 L2 L3 L4 L5 Introduzione ai database Progettazione concettuale e logica Il modello E-R: entità e relazioni Il modello E-R: attributi e chiavi Il progetto di un database: definizione del modello E-R L6 Il progetto di un database: dallo schema E-R allo schema relazionale L7 I database relazionali L8 Le regole di integrità L9 Operazioni relazionali L10 La normalizzazione delle tabelle Conoscenze • • • • Comprendere le necessità dei database Conoscere i vantaggi di un DBMS Utilizzare modelli per descrivere processi aziendali Individuare le entità e le relazioni tra le entità all’interno di una situazione complessa • Acquisire la conoscenza degli aspetti funzionali e organizzativi di una base di dati • Conoscere il concetto di dipendenza funzionale • Comprendere le motivazioni alla base della normalizzazione Competenze • • • • Utilizzare lo schema concettuale dei dati E-R Utilizzare il modello logico dei dati Utilizzare gli operatori relazionali Rispettare le regole di integrità Abilità • • • • AREA digitale ◗◗ Esercizi ◗◗Immagini ◗◗Tappe storiche dei database ◗◗Tipologie di relazioni ad anello ◗◗Diagrammi UML: regole di lettura ◗◗Un’altra forma grafica di rappresentazione attributi ◗◗UML vs E-R ◗◗Esercizi per il recupero Applicare le gerarchie di generalizzazione Utilizzare le potenzialità di una base di dati relazionale Applicare le regole di normalizzazione Progettare basi di dati relazionali Esempi proposti Consulta il CD-ROM in allegato al volume Soluzioni (prova adesso, esercizi, verifiche) Puoi scaricare il file anche da hoepliscuola.it LEZIONE 1 Introduzione ai database In questa lezione impareremo... ◗◗ i◗limiti◗degli◗archivi◗classici ◗◗ in◗che◗cosa◗consiste◗un◗DBMS ◗◗ le◗caratteristiche◗e◗le◗prestazioni◗di◗un◗DBMS ■■ Generalità In ogni applicazione informatica, dalla più complessa alla più semplice, vengono trattate informazioni ed è necessario che queste informazioni vengano memorizzate in modo permanente per essere successivamente utilizzate in successive elaborazioni. La memorizzazione delle informazioni in fle di record mediante un linguaggio di programmazione è un’operazione complessa, laboriosa e pesante da un punto di vista computazionale; inoltre le tecniche classiche di organizzazione degli archivi su memoria di massa non sempre corrispondono adeguatamente alle strutture dei dati che devono essere rappresentati, che aumentano di complessità con l’aumento delle dimensioni della situazione che deve essere gestita. ESEMPIO Si pensi alle differenze dimensionali e di complessità tra la gestione dei dati archiviati in una agenda telefonica personale di un telefono cellulare e quelli di una contabilità aziendale. Inoltre in ogni azienda sono sempre molteplici le esigenze e le necessità di memorizzare ed elaborare le informazioni che solitamente sono tra loro totalmente disomogenee: si pensi alla gestione degli stipendi e alla pianifcazione della produzione, alle contabilità e al magazzino ecc. 2 Introduzione ai database Lezione 1 Ogni programma (funzionalità) avrà la necessità di avere una propria organizzazione dei dati che generalmente risulta di diffcile modifcabilità e adattabilità alle altre situazioni e attività. Per affrontare in modo semplice, organico e fessibile tutte le situazioni che quotidianamente si incontrano nelle aziende è necessario utilizzare strumenti più potenti per gestire le informazioni: questi strumenti sono i database. Attraverso i database è possibile memorizzare e gestire in modo fessibile ed effciente le informazioni che sono “il vero patrimonio di ogni organizzazione”. Ogni applicazione software presente in ciascuna organizzazione deve poter facilmente: ◗■ ricercare e recuperare le informazioni in base a determinati criteri di ricerca; ◗■ selezionarle e raggrupparle secondo esigenze operative; ◗■ aggiungerne di nuove; ◗■ modifcarle aggiornandone il valore nel tempo; ◗■ cancellare quelle che non hanno più contenuto informativo utile. ESEMPIO Per avere un’idea di che cosa s’intende per informazione che deve essere elaborata basta pensare ai dati che devono essere gestiti dall’uffcio anagrafe di un Comune, oppure alla contabilità di una grande azienda, alla gestione delle vendite o alla gestione dei conti correnti di una banca, alle prenotazioni di un albergo o di un’agenzia turistica o di un aeroporto. AREA digitale Schemi di database aziendale Zoom su... PROGETTO DI DATABASE Il progetto di database si fonda sulla teoria delle basi di dati che studia come organizzare al meglio grandi quantità di informazioni per poterle gestire in modo: ◗■ semplice, in quanto le informazioni devono essere facilmente utilizzate da applicazioni e utenti differenti; ◗■ efficiente, perché l’utilizzo delle risorse deve essere ottimizzato rispetto al tempo e allo spazio: – effciente utilizzo del processore; – effciente utilizzo della memoria; ◗■ efficace, nel senso che le informazioni devono essere rappresentative della realtà che si vuole analizzare; ◗■ sicuro, in quanto le operazioni sui dati sono permesse solo a utenti autorizzati; ◗■ solido: deve resistere a disfunzioni ed errori, come guasti al computer o alla rete oppure all’errore di un operatore che chiede un dato inesistente; ◗■ condiviso: deve permettere a più utenti di accedere contemporaneamente ai dati. 3 UdA 1 Progetto di database Da quanto detto possiamo dare una prima defnizione di base di dati BASE DI DATI Una base di dati o database può essere considerata come una raccolta di dati progettati in modo tale da poter essere utilizzati in maniera ottimizzata da differenti applicazioni e da utenti diversi. In questa lezione si vuole presentare la teoria comune a tutti i database e descrivere i principi fondamentali che ne guidano la creazione e la gestione. Nella prossima lezione viene fatta una classifcazione delle diverse tipologie di database esistenti per soffermarsi ad analizzare il modello relazionale che, tra tutti i tipi di database, è sicuramente quello più utilizzato oggi in tutti gli ambienti di sviluppo software: ha il grosso vantaggio di basarsi su una teoria matematica ben nota e consolidata, largamente conosciuta e utilizzata in tutto il mondo. Indipendentemente dal produttore del database, che sia Oracle oppure Microsoft, la teoria che sta alla base è la stessa e quindi, una volta acquisita, permette di utilizzare qualsiasi tipo di database relazionale. Necessità dei database Abbiamo detto che le informazioni necessarie a un’organizzazione sono gestite da un sistema informativo. SISTEMA INFORMATIVO Un sistema informativo è un insieme organizzato di strumenti automatici, procedure manuali, risorse umane e materiali, norme organizzative, orientato alla gestione delle informazioni rilevanti per un’organizzazione. Quindi ogni informazione e in qualunque formato essa sia fa parte del sistema informativo aziendale. SISTEMA INFORMATICO Un sistema informatico (spesso chiamato EDP, Electronic Data Processing) è un sottoinsieme del sistema informativo che si dedica alla gestione automatica delle informazioni, rappresentate mediante dati digitali. In prima analisi il sistema informatico (SI) è costituito dagli archivi elettronici in cui sono memorizzati tutti i dati relativi all’azienda e cioè: ◗■ dai supporti fsici per la memorizzazione dei dati; ◗■ dalle procedure di interrogazione per la ricerca delle informazioni (applicazioni); ◗■ dagli strumenti di comunicazione tra i terminali degli operatori. In base alla loro natura possiamo individuare due componenti nel SI: ◗■ archivi e applicazioni: componente software; ◗■ supporti fsici e strumentazione: componente hardware. Noi ci occuperemo della componente software. 4 Introduzione ai database Lezione 1 ■■ Archivi e applicazioni informatiche ARCHIVIO E APPLICAZIONE INFORMATICA Defniamo: ◗■ archivio: l’insieme dei dati che vengono salvati su un supporto di memorizzazione; ◗■ applicazione informatica: la componente del sistema informatico (SI) che utilizza dati in esso immagazzinati per compiere una funzione specifca all’interno dell’organizzazione cui il SI appartiene. Analizziamo una generica azienda che non utilizzi i database e dove siano presenti diverse applicazioni informatizzate: lo schema di elaborazione tradizionale è rappresentato in fgura, dove dati e applicazioni si presentano strutturati in modo autonomo e disgiunto: Applicazione 1 Applicazione 2 Applicazione 3 Dati Applicazione 1 Dati Applicazione 2 Dati Applicazione 3 Ogni singola applicazione opera su un insieme di dati memorizzati secondo una struttura defnita all’interno dell’applicazione stessa dall’analista e dal programmatore; ogni applicazione viene realizzata in modo da rendere massima l’effcienza della stessa indipendentemente dalle presenza o meno delle altre applicazioni. In un sistema di questo tipo ogni applicazione opera in maniera del tutto indipendente o quasi dalle altre applicazioni, facendo uso dei propri dati e dei propri programmi. Le varie applicazioni risultano essere isolate le une dalle altre anche se fanno parte dello stesso sistema: in particolare questo comporta dei problemi quando è necessaria la condivisione di dati da parte di due o più applicazioni oppure quando un’applicazione utilizza i dati forniti da un’altra applicazione, come ad esempio la fatturazione e la contabilità. ESEMPIO Un “classico” problema si verifca nel caso frequente in cui due applicazioni differenti lavorano utilizzando i dati da uno stesso fle e una di esse ha bisogno di apportare delle modifche alla struttura dei dati (per esempio deve aggiungere un nuovo campo in un record): sarà necessario modifcare anche la descrizione dei dati interna all’altra applicazione, anche se quest’ultima non utilizza il campo che è stato aggiunto. 5 UdA 1 Progetto di database A volte l’operazione di modifca contemporanea di tutte le applicazioni che utilizzano uno stesso fle non è sempre facilmente eseguibile e capita spesso di dover arrivare a duplicare i fle, con conseguenze facilmente intuibili! Si può per esempio arrivare al caso estremo in cui gli stessi dati vengono ripetuti tante volte quante sono le applicazioni che devono usarli con conseguente spreco di memoria e con il rischio di introdurre inconsistenze ed errori. Applicazione 1 Applicazione 2 Inoltre l’accesso ai dati avviene solo tramite le applicazioni che li hanno generati, cioè tramite programmi specializzati, limitando di conseguenza le possibilità di estrarre ulteriori informazioni dagli stessi mediante elaborazioni autonome: per ottenere risultati diversi da quelli previsti dall’applicazione è necessario realizzare nuove procedure specifche per le nuove richieste con notevole dispendio di tempo e denaro. Dati Applicazione 1 Dati Applicazione 2 ■■ Dati, archivi e database Per cercare una soluzione ai problemi sopra individuati si è pensato a un sistema in grado di “contenere” tutti i dati necessari alle diverse applicazioni, in modo da averne una sola copia, unica e sempre aggiornata, disponibile a tutti i programmi; questo sistema deve essere inoltre in grado di permettere l’accesso simultaneo (concorrente) a più utenti, anche con applicazioni diverse e scritte in linguaggi di programmazione diversi. Questo sistema deve essere in grado di offrire “una interfaccia” molto semplice verso i dati e mettere a disposizione uno specifco linguaggio per rendere possibile questa operazione: inoltre deve poter permettere di modifcare la struttura dei dati senza che le applicazioni “già funzionanti” ne risentano in qualche modo, cioè “non se ne accorgano neppure”. Lo strumento che abbiamo appena decritto è proprio il database: il database è quindi composto dall’insieme degli archivi (tabelle) di tutte le applicazioni aziendali e raccoglie univocamente tutti i dati, li organizza e li gestisce. La principale caratteristica del database è quella di considerare solo i dati, cioè di separare completamente i dati dalle applicazioni. Nei programmi che gestiscono dati scritti fno a ora abbiamo sempre defnito come prima cosa il tipo di dato strutturato che rappresenta il record e questo nuovo tipo di dato viene successivamente utilizzato per memorizzare le informazioni nell’archivio ed elaborarle estraendone informazioni. Senza rendercene conto abbiamo effettuato la separazione della “manipolazione” dei dati dalla loro defnizione. Un passo fondamentale nella defnizione dei dati di un database consiste nella descrizione di come sono formati i record, ovvero il numero, il nome e i tipi di dato che essi contengono, oltre ad altre informazioni complementari. Dato che ogni applicazione deve utilizzare gli stessi archivi e, come detto prima, deve essere possibile modifcare il formato dei record senza modifcare le applicazioni, nasce la necessità di “includere” la descrizione dei dati con i dati stessi, in modo che qualunque programma li possa interpretare correttamente. 6 Introduzione ai database Lezione 1 ESEMPIO Se si prova ad aprire un qualunque fle di dati con un editor di testo si scopre che non è più possibile (o è diffcoltoso) interpretare i dati che vi sono salvati. Questo signifca che la massa dei dati, presa in modo autonomo dalla loro defnizione, diviene sostanzialmente inutile. Nei database la defnizione dei dati e i dati stessi sono salvati all’interno dello stesso database. Lo schema di progettazione per le applicazioni con un archivio convenzionale risulta molto diverso rispetto allo schema di progettazione con un database, in quanto nel secondo caso sia i dati sia la loro defnizione sono salvati all’interno dello stesso contenitore (il database). Se si usano archivi convenzionali la defnizione dei dati è parte integrante dell’applicazione. Archivio Utente Applicazione Definizione dati Con l’utilizzo di un database la defnizione della struttura dei dati è indipendente dall’applicazione. DataBase Utente Definizione dati Applicazione Nel secondo caso è però necessario stabilire una interfaccia che tra le diverse applicazioni e i dati, in grado di interpretare la defnizione della loro struttura, possa recuperarne la posizione fsica e li possa gestire. Questo componente si chiama DBMS DBMS Si defnisce DBMS (Database Management System) il sistema di gestione del database visto nel suo complesso. Il DBMS si preoccupa di gestire interamente i dati, compresa la loro defnizione e il modo in cui vengono fsicamente archiviati. DATI DBMS Utente Applicazione Database 7 UdA 1 Progetto di database Nel seguito della trattazione vedremo più in dettaglio tutte le funzioni di un DBMS: vediamo un esempio che ci permette meglio di comprendere la necessità di separazione tra dati (e loro defnizione) e applicazioni. ESEMPIO Un cliente chiede un’applicazione per la gestione di un magazzino. È importante che gli utenti dell’applicazione possano lavorare su parti diverse della gestione (carico/scarico) contemporaneamente. Chi si occupa del carico (arrivo della merce) utilizza un PC da tavolo tradizionale. Chi invece si occupa dello scarico (vendita della merce) utilizza un terminale a radiofrequenza per leggere i codici a barre degli oggetti che vengono prelevati dal magazzino. Nella sua forma più semplice, possiamo pensare che l’applicazione per il nostro cliente possa essere gestita con una classica applicazione con i fle. Resta tuttavia il problema dei terminali a radiofrequenza: questi sono dei piccoli computer a tutti gli effetti che, però, non offrono la stessa fessibilità propria dei PC tradizionali e con ogni probabilità supporteranno un linguaggio di programmazione (per esempio, Java o C#) diverso da quello nel quale è stata scritta l’applicazione del PC fsso. A questo punto è chiaro come poter tenere ben distinte l’applicazione e i dati (con la loro defnizione) diventa non solo importante, ma indispensabile: se così non fosse, fornire l’applicazione al nostro cliente diventerebbe o impossibile o perlomeno molto più oneroso. Analizziamo ora un ulteriore insieme di vantaggi che si ottengono utilizzando i database, partendo da un secondo esempio. ESEMPIO Supponiamo di voler registrare le informazioni relative agli ordini di materiale elettrico fatti da alcuni clienti di un’impresa. In base alle più tradizionali tecniche di gestione degli archivi è possibile strutturare i dati in due archivi, Clienti e Ordini, contenenti rispettivamente le informazioni relative ai clienti e quelle relative agli ordini fatti dai clienti. Clienti Cod_Cliente Cognome Nome Indirizzo Città 010 Rossi Pino Via Milano, 15 Como 020 Verdi Giuseppe Via Italia,1 Milano 030 Neri Piero Via Colombo,3 Varese Ordini Cod_Cliente 8 Cod_Articolo Descrizione Prezzo Quantità 010 M03 Lampadina 1000 W 2,00 3 010 M12 Deviatore 3,00 1 010 M04 Antenna 25,00 3 020 M03 Trasformatore 60,00 2 020 M03 Lampadina 1000 W 2,00 2 020 M12 Deviatore 3,00 1 030 M03 Trasformatore 60,00 2 Introduzione ai database Lezione 1 Possiamo subito individuare alcuni problemi legati al tipo di organizzazione dell’archivio: ◗■ esistono dati ripetuti: la descrizione dell’articolo viene ripetuta per ogni movimento (ridondanza dei dati); ◗■ nascono problemi di incongruenza dei dati a causa della ridondanza: se un dato di un articolo viene modifcato, tale modifca dovrà essere apportata a tutti i record che hanno quell’articolo (si pensi, per esempio, al caso dell’aumento di prezzo della lampadina oppure alla modifca della descrizione di un prodotto); ◗■ nascono problemi di inconsistenza a causa dell’incongruenza: si potrebbero avere due valori diversi per lo stesso dato senza poter quindi risalire al valore corretto (se venisse aggiornato solo un prezzo della lampadina non si è in grado di sapere “effettivamente” quanto costa una lampadina!). Questi problemi nascono dal fatto che i dati contenuti negli archivi non sono organizzati in modo integrato tra loro. Vanno ad aggiungersi a quelli prima descritti in merito alle applicazioni, cioè: ◗■ impossibilità di modifcare la struttura di un record senza generare di conseguenza a cascata un insieme di modifche in tutti i programmi che utilizzano quel fle (dipendenza logica); ◗■ scarsa fessibilità in caso di nuove esigenze che potrebbero essere irrealizzabili a causa della struttura degli archivi: l’organizzazione scelta per memorizzare i dati vincola il programmatore nell’uso delle operazioni che si possono effettuare sugli archivi (dipendenza fsica); ◗■ i dati contenuti negli archivi possono inoltre essere trattati solo elaborando i fle record per record. La teoria dei database introduce una nuova metodologia di organizzazione degli archivi di dati con l’obiettivo di superare i limiti appena descritti. ■■ Funzioni di un DBMS Abbiamo detto che il DBMS (Database Management System) si preoccupa di gestire interamente i dati, compresi la loro defnizione e il modo in cui vengono fsicamente archiviati. Il DBMS si colloca tra i programmi applicativi e i fle e si occupa di gestire i dati, inserendoli fsicamente sui supporti magnetici e recuperandoli da essi man mano vengono richiesti dalle applicazioni che operano sulla base di dati. Programma 1 Programma 2 Programma 3 DBMS Database 9 UdA 1 Progetto di database Possiamo riassumere le caratteristiche fondamentali di un DBMS in pochi punti; in generale possiamo dire che un DBMS deve: ◗■ gestire grandi quantità di dati: i dati hanno dimensioni maggiori della memoria centrale e i DBMS devono gestire i dati in memoria secondaria; ◗■ garantire la condivisione dei dati che devono poter essere usati da applicazioni e utenti diversi secondo proprie modalità; ◗■ garantire la persistenza dei dati che devono durare nel tempo, oltre le singole applicazioni. Inoltre un DBMS deve offrire all’utente diverse funzionalità che lo aiutano nella gestione e lo sviluppo di applicazioni che fanno uso del database (per esempio interfacce grafche per l’amministrazione). Tralasciando questo ultimo aspetto, che dipende dal produttore del DBMS, possiamo approfondire i punti precedenti Gestione Gestire una grande quantità di dati non signifca solo riuscire a manipolare grandi spazi su disco o su memoria, quanto piuttosto prestare particolare attenzione ai problemi di effcienza. Quando in un insieme di archivi sono disponibili milioni di dati, la loro utilità viene meno se ogni volta che bisogna accedere a un particolare dato è necessario attendere un tempo indefnito. I ritmi lavorativi odierni ci impongono di sviluppare applicazioni che abbiano bisogno solo di pochi secondi per fornire una soluzione o un’elaborazione. Il DBMS, pertanto, non deve assolutamente rappresentare un collo di bottiglia nei tempi di elaborazione. Allo stesso tempo, tuttavia, il DBMS deve permettere a più utenti di consultare i dati. Anche se questo requisito potrebbe sembrare piuttosto banale, a una più attenta rifessione si capiDBMS IN COMMERCIO sce quanto complicato sia il lavoro di un DBMS. Elenchiamo di seguito alcuni dei DBMS Zoom su... Condivisione presenti oggi in commercio. Gestire grandi quantità di dati, garantendo velocità di elaborazione e contemporaneamente permettere a più utenti di condividere le stesse informazioni, non solo sono attività che possono diventare incompatibili tra di loro, ma introducono anche la necessità di coordinare gli accessi per evitare di fornire a un utente dati errati o non aggiornati. 1 Commerciali: ◗■ Oracle ◗■ MS SQL Server ◗■ MS Access ◗■ IBM DB2 ◗■ Sybase ◗■ Informix ◗■ Ingres Persistenza 2 Open source: ◗■ MySQL ◗■ PostgreSQL La persistenza dei dati, inoltre, richiede che il DBMS compia ancora un’altra operazione, ovvero fornisca quei meccanismi che permettono di assicurare l’affdabilità dei dati. Infatti, più utenti signifca anche più possibilità che utenti male intenzionati o incauti accedano a dati su cui non hanno privilegi di accesso. Il DBMS deve allora anche gestire il controllo degli accessi per assicurare che i dati siano visibili solo da particolari utenti o gruppi di utenti. Non illustreremo nel dettaglio il funzionamento di un DBMS, ma ci limiteremo a usarlo. 10 Introduzione ai database Lezione 1 ■■ Architettura standard a tre livelli per DBMS (ANSI/SPARC) L’architettura standard per il DBMS (Database Management System) è articolata su tre livelli: ◗■ schema esterno: descrizione di una porzione della base di dati di interesse in un modello logico (“viste” parziali, derivate, anche in modelli diversi); ◗■ schema logico: descrizione dell’intera base di dati nel modello logico adottato dal DBMS; ◗■ schema interno (o fsico): rappresentazione dello schema logico per mezzo di strutture fsiche di memorizzazione. utente utente Schema esterno utente Schema esterno utente utente Schema esterno Schema logico Schema interno Dati L’utente non accede allo schema logico nella sua interezza ma solamente a quella porzione che interessa alla sua applicazione, dato che “al di sopra dello stesso database” vengono mandate in esecuzione diverse applicazioni: anche all’interno della singola applicazione viene utilizzata sempre una “parte” del database, che prende il nome di vista. ESEMPIO In questo esempio possiamo osservare come le prime due tabelle contengono i dati rispettivamente di materie scolastiche e delle aule della scuola. MATERIE AULE Corso Docente Aula Nome Edifcio Piano Fisica Verdi IN1 LAB1 Centrale Terra Chimica Rossi IN1 LAB2 Ala_Est Primo Informatica Bianchi LAB1 IN1 Ala_Nord Primo Sistemi Gialli LAB2 La terza tabella è “ricavata” dalle altre due: non è una tabella che fsicamente è memorizzata nel database, ma una particolare vista dei dati presenti. MATERIE/AULE Corso Aula Edifcio Piano Informatica LAB1 Centrale Terra Sistemi LAB2 Ala_Est Primo Fisica IN1 Ala_Nord Primo 11 UdA 1 Progetto di database Come conseguenza della articolazione in più livelli si ha che l’accesso alla base di dati avviene solo tramite il livello esterno, mediante una vista o direttamente al livello logico, e si ottengono due forme di indipendenza dei dat: ◗■ fsica: il livello logico e quello esterno sono indipendenti da quello fsico; una relazione è utilizzata nello stesso modo qualunque sia la sua realizzazione fsica; ◗■ logica: il livello esterno è indipendente da quello logico e aggiunte o modifche alle viste non richiedono modifche al livello logico così come modifche allo schema logico che lascino inalterato lo schema esterno sono trasparenti. Concludiamo questa introduzione ai database sintetizzando i vantaggi e gli svantaggi che si hanno con l’adozione dei DBMS. I vantaggi: ◗■ i dati divengono una risorsa comune; ◗■ la gestione centralizzata offre la possibilità di standardizzazione e di effettuare “economia di scala”; ◗■ viene reso disponibile un insieme di servizi integrati; ◗■ vengono ridotte le ridondanze e le inconsistenze dei dati; ◗■ i dati sono indipendenti dalle applicazioni; Gli svantaggi: ◗■ aumento del costo dei prodotti di gestione e amministrazione dell’archivio; ◗■ notevoli costi per effettuare la transizione dai sistemi presenti verso i database; ◗■ riduzione della effcienza per la mancanza di scorporabilità delle funzionalità che sono integrate. AREA digitale Tappe storiche dei database 12 Introduzione ai database Lezione 1 Verifichiamo le conoscenze 1. Risposta multipla 1 In un sistema informatico quali tra i seguenti sono componenti software? a. archivi b. strumentazione c. applicazioni d. supporti fsici 2 Che cosa significa l’acronimo EDP? a. Electronic Data Program b. Electronic Disk Processing c. Electronic Data Processing d. Electronic Disk Program 3 Quali delle seguenti affermazioni sui database sono vere? a. un database è una specie di memoria digitale intelligente b. un database permette di migliorare la compressione dei dati c. nei database la defnizione dei dati e i dati sono salvati all’interno dello stesso database d. in un database è possibile integrare i programmi con i dati 4 Per quali dei seguenti scopi può essere utilizzato un database? a. per la scrittura di un documento lungo e strutturato come un libro b. per gestire i proprio contatti c. per la gestione di una biblioteca d. per migliorare le prestazioni del computer 5 Qual è il più importante vantaggio dei DB? a. l’applicazione e i suoi dati sono indipendenti b. i dati occupano meno spazio su disco c. i DBMS gestiscono più velocemente i dati d. facilitano la duplicazione dei fle 6 Che cosa significa DBMS? a. Database Management Software b. Database Mirroring System c. Database Multiuser System d. Database Management System 2. Vero o falso In un database l’applicazione e i suoi dati sono indipendenti l’uno dagli altri. I database risolvono i problemi di inconsistenza causati dell’incongruenza dei dati. I database risolvono i problemi di incongruenza dei dati a causa della ridondanza. I database risolvono i problemi di inconsistenza a causa della ridondanza. I database hanno minor indipendenza logica rispetto agli archivi tradizionali. I DBMS sono componenti hardware. Oracle è un database open source. L’architettura standard per il DBMS è a quattro livelli. Lo schema logico descrive l’intera base di dati nel modello logico adottato dal DBMS. L’indipendenza dei dati è indispensabile solo a livello logico. VF VF VF VF VF VF VF VF VF VF AREA digitale 1 2 3 4 5 6 7 8 9 10 13 LEZIONE 2 Progettazione concettuale e logica In questa lezione impareremo... ◗◗ ◗◗ ◗◗ ◗◗ le◗fasi◗della◗progettazione◗di◗un◗databse che◗cos’è◗lo◗schema◗concettuale◗dei◗dati in◗che◗cosa◗consiste◗il◗modello◗logico◗dei◗dati i◗diversi◗modelli◗logici◗esistenti ■■ Generalità Ciò che fnora è stato defnito genericamente come “analisi” o “progettazione” di un database segue delle fasi e delle regole ben precise. Progettare un database signifca in dettaglio progettare le strutture, prima logiche e quindi fsiche, di un database in modo che possano accogliere nel modo migliore possibile i dati di cui un utente ha bisogno. Tipicamente questo viene fatto in diversi passi: 1. analisi del problema; 2 progettazione concettuale del database (modello E-R); 3 progettazione logica del database (schema logico); 4 progettazione fisica e implementazione; 5 realizzazione delle applicazioni. Ognuno di questi passi presenta delle insidie: per esempio, ciò che si cela dietro il semplice passo “implementazione” racchiude tutta la fase di sviluppo del database, dell’applicazione, i test di funzionamento di entrambi, il collaudo ecc. 14 Progettazione concettuale e logica Lezione 2 I cinque passi che abbiamo appena descritto sono raggruppabili in due gruppi. Le prime tre fasi possono essere considerate la vera modellazione dei dati, che è composta dalla progettazione concettuale e dalla progettazione logica, mentre le ultime due possono essere considerate come la modellazione funzionale dell’applicazione: ◗■ il modello concettuale descrive cosa deve essere rappresentato; ◗■ il modello logico descrive come sono organizzati i dati. Noi ci occuperemo della modellazione dei dati, seguendo lo schema rappresentato nella fgura seguente. Fatture Progettazione concettuale Progettazione logica Ordini dei clienti Città Continente appartiene Indirizzi dei clienti Fatture Ordini Nazione appartiene forma Città ID_Città (pk) id_Nazione (fk) id_Continente (fk) Continente appartiene ID_Continente (pk) Clienti Nazione appartiene Archivio prodotti in magazzino Requisiti ID_Nazione (pk) id_Continente (fk) forma Modello concettuale (COSA) Magazzino Modello logico (COME) È quindi lecito affermare che la modellazione dei dati consiste nella progettazione delle tabelle del database, mentre la modellazione funzionale consiste nell’implementazione delle tabelle e nella creazione delle funzioni che accedono ai dati. Modellazione dei dati Come già sappiamo, in informatica l’astrazione è uno degli aspetti più importanti perché ci permette di creare dei modelli su cui in seguito vengono costruite le applicazioni. La fase di analisi di ogni progetto, indipendentemente dalla sua complessità, serve proprio per modellare il problema e quindi adottare una soluzione tecnica: questa stessa metodologia viene applicata ai dati del database. MODELLO DI DATI Un modello di dati consiste in una rappresentazione astratta delle strutture dei dati di un database. L’atto di creazione di un modello prende il nome di modellazione dei dati (in inglese data modeling). La modellazione dei dati serve per tradurre i dati dal punto di vista dell’utente al punto di vista dell’applicazione/database, cioè per trasportarli dal mondo reale al mondo informatico. 15 UdA 1 Progetto di database ■■ Analisi e progettazione concettuale L’analisi preliminare per la modellazione dei dati avviene solitamente cercando di capire le esigenze del cliente o il dominio dell’applicazione, cioè quali informazioni devono essere salvate e in che modo queste informazioni vengono manipolate dall’utente. Le tecniche di analisi del problema sono già state dettagliatamente descritte e utilizzate in altri corsi e mantengono la loro validità anche per il progetto dei database: naturalmente bisognerà prestare maggiore attenzione al dato e quindi spesso la tecnica bottom-up è da preferirsi a quella top-down. Al termine della analisi inizia la prima fase di modellazione, che è quella concettuale; ci sono sostanzialmente due modi per effettuarla, utilizzando altrettanti modelli: ◗■ modello Entità-Relazione; ◗■ modello a Oggetti. Benché quest’ultimo stia cominciando a rivelarsi interessante da un punto di vista commerciale e non solamente accademico, la stragrande maggioranza delle applicazioni esistenti fa uso di un approccio Entità-Relazione (E-R): per questo motivo noi lo utilizzeremo nei nostri progetti e lo descriveremo nel dettaglio a partire dalla prossima lezione. Il frutto della modellazione dei dati consiste nel diagramma Entità-Relazione (diagramma E-R) che rappresenta in modo grafco e facilmente leggibile le strutture dei dati. Può capitare di dover lavorare a progetti di una certa portata che includono programmatori o analisti di altri Paesi: la comunicazione tra colleghi può risultare diffcile a causa delle barriere linguistiche. Il modello Entità-Relazione, viceversa, è assolutamente indipendente dal linguaggio scritto o parlato e permette quindi di comunicare agevolmente la struttura del database. Di norma al modello Entità-Relazioni viene affancato un documento tecnico che descrive in maggior dettaglio e usando un linguaggio naturale i concetti rappresentati grafcamente dal modello Entità-Relazione. Come si impara anche dopo il primissimo progetto al quale si lavora, la fase di modellazione dei dati è sicuramente una delle più diffcili, laboriose e “noiose” tra quelle di creazione di un’applicazione che si interfaccia a un database e viene “naturale” tentare di ridurla al minimo per iniziare “al più presto” a programmare. Una “parziale giustifcazione” del fatto che si tende a ridurre i tempi di modellazione è il fatto che in un mondo ideale si ha sempre il tempo per fare qualsiasi cosa e produrre software di qualità mentre nel mondo reale i tempi di sviluppo sono generalmente molto stretti e la fase di modellazione ne occupa una buona parte. Tempi di sviluppo e costi creano solitamente qualche attrito tra i reparti tecnici e i reparti commerciali delle aziende di sviluppo software. Se vi siete chiesti anche voi se non sia possibile saltare a piè pari la modellazione concettuale dei dati, allora provate a rispondere a questa domanda: chi si fderebbe a passare su un ponte sapendo che chi l’ha costruito non disponeva dei piani di costruzione? 16 Progettazione concettuale e logica Lezione 2 Lo scopo del modello Entità-Relazione consiste nel rendere in modo grafco tutti gli oggetti che fanno parte di un database in modo che il fusso delle informazioni possa essere seguito e verifcato prima di sviluppare l’applicazione. In secondo luogo, il modello può essere usato dagli sviluppatori per creare il database fsico e tutti gli oggetti che ne fanno parte. Una cattiva modellazione ha impatti che possono essere devastanti dal punto di vista dell’applicazione che usa i dati, fno a rendere il flusso dei dati completamente inutilizzabile. Anche se la modellazione richiede tempo, se viene eseguita in modo corretto permette di sviluppare l’applicazione più velocemente e in modo più flessibile, così da agevolare eventuali modifche successive del flusso delle informazioni Zoom su... PROGETTO CONCETTUALE Riassumendo, un buon progetto concettuale è caratterizzato da: 1 correttezza: uso corretto degli strumenti; 2 completezza: tutti gli aspetti rilevanti della realtà devono essere modellati; 3 chiarezza: il modello deve essere leggibile e rappresentare le informazioni in maniera comprensibile; 4 indipendenza dallo strumento informatico che verrà utilizzato. ■■ Modellazione logica Una volta realizzato il modello concettuale si procede con la defnizione del modello logico dei dati, che consiste in uno schema realizzato in funzione delle caratteristiche del sistema di gestione del database che si intende utilizzare (la determinazione delle strutture dei dati, il linguaggio per sviluppare le applicazioni). Il modello logico è “più vicino” alla rappresentazione informatica dei dati e lo si ottiene con la traduzione dello schema concettuale applicando un insieme di regole ben defnite. Possiamo dire che deve essere: ◗■ indipendente dalle strutture fsiche; ◗■ utilizzato dai programmi applicativi. Possiamo elencare in ordine cronologico i diversi tipi di modelli logici: ◗■ gerarchico: rappresentabile tramite un albero (anni ‘60); ◗■ reticolare: rappresentabile tramite un grafo (anni ‘60); ◗■ relazionale: attualmente il più diffuso, rappresentabile mediante tabelle e relazioni tra esse (anni ‘70); ◗■ a oggetti: estensione alle basi di dati del paradigma “Object-Oriented”, tipico della programmazione a oggetti (anni ‘80); ◗■ XML: molto utilizzato come strumento per l’esportazione di dati tra diverse applicazioni (anni ‘90). Questi modelli saranno tutti brevemente descritti in questa lezione: inoltre il modello relazionale, dato che è quello che abbiamo adottato, verrà studiato a partire dalla prossima lezione. 17 UdA 1 Progetto di database ■■ Implementazione e realizzazione In questa ultima fase viene fsicamente realizzato il database (o sistema informativo) sul computer e consiste nel: ◗■ completamento, o modifca, dello schema logico in funzione dell’organizzazione fsica dei dati e dei meccanismi per operare su di essi (partizioni, puntatori, blocchi fsici, cluster, indici); ◗■ progetto e realizzazione delle procedure atte a soddisfare le richieste specifcate nel progetto utilizzando gli strumenti informatici di alto livello (linguaggi di programmazione e di interrogazione). Ricapitolando, possiamo schematizzare le tre fasi della progettazione di un database visualizzando il “prodotto” di ciascuna di esse: ◗■ modellazione concettuale: diagramma E/R; ◗■ modellazione logica: tabelle e tracciati record; ◗■ implementazione: defnizione fsica delle tabelle. Concettuale Logico Modello E-R Tabelle Fisico Memorie di massa ■■ Modelli logici per le basi di dati Descriviamo sinteticamente gli aspetti fondamentali che caratterizzano i diversi tipi di modelli logici di database prima introdotti. Modello gerarchico dei database Il primo modello ad affermarsi sul mercato è stato il modello di database gerarchico. Nel modello gerarchico i dati sono organizzati secondo strutture ad albero che rappresentino la gerarchia degli elementi presenti nell’archivio. La radice è il record principale del database da cui partono uno o più sottoalberi a esso simili: naturalmente il numero dei fgli è variabile. Ogni elemento prende il nome di segmento e il modello gerarchico permette di rappresentare i dati sfruttando la relazione tra segmenti padre e segmenti fgli, realizzando quella che prende nome di relazione 1 a N (e si indica 1:N) o relazione uno-a-molti, dove ogni padre può avere molti fgli, ma ogni fglio può avere un solo padre. 18 Progettazione concettuale e logica Lezione 2 Vediamo un esempio di un modello gerarchico. ESEMPIO Supponiamo di avere un archivio con i dati dei dipendenti di un’azienda, dove nella tabella principale abbiamo come campi nome, cognome, qualifca. Oltre ai dati dei dipendenti nell’archivio troviamo memorizzati anche i dati dei fgli dei dipendenti (per esempio, i campi nome, sesso, data di nascita). La tabella dipendenti è composta dal segmento padre e la tabella fgli dal segmento fglio. Naturalmente un dipendente può avere più fgli, quindi si crea la gerarchia dipendenti-fgli. D1 F1 Gloria Femmina Rossi Paolo 05/05/1997 Impiegato F2 Claudia Femmina 10/04/1999 Nel database ogni dipendente avrà un suo albero. Un esempio di modello gerarchico che utilizziamo ogni giorno è l’organizzazione dei fle del nostro fle system, organizzato in directory e sottodirectory. Questo modello era usato nei primi DBMS per mainframe; in seguito i DBMS reticolari hanno sostituito quelli gerarchici per poi essere sostituiti da quelli relazionali (anche chiamati RDBMS). In un database organizzato secondo il modello gerarchico è semplice recuperare le informazioni quando i dati sono proprio di natura gerarchica, come nell’esempio precedente, mentre è molto complesso estrarre i dati secondo altri criteri (per esempio per estrarre tutte le fglie femmine dei dipendenti è necessario visitare tutti gli alberi). I principali svantaggi del modello gerarchico consistono nel fatto che: ◗■tra lo schema logico e la realizzazione fsica esiste una dipendenza stretta e vincolante; ◗■le operazioni di ricerca non sono effcienti in quanto sono visite ad alberi generici e solo nel caso siano di tipo gerarchico sarebbero di semplice realizzazione. Modello reticolare dei database Alla base del modello reticolare ci sono le strutture dati a grafo, dove mediante puntatori è possibile accedere ai dati più facilmente, senza i vincoli rigidi della struttura gerarchica. Possiamo quindi vedere il modello reticolare come un’estensione del modello gerarchico, dove non esiste alcuna radice ma ogni nodo può essere il punto di partenza per raggiungere un determinato campo. Nel modello reticolare ogni elemento è costituito da un record che può connettersi con altri N record: è quindi possibile stabilire delle relazioni multiple del tipo N con N (N:N), impossibili nel modello gerarchico. Per poter realizzare le connessioni tra i diversi record vengono utilizzati particolari record che prendono il nome di record connettori. 19 UdA 1 Progetto di database Vediamo un esempio dove rappresentiamo i Docenti e le Classi nelle quali insegnano: il modello reticolare è il seguente: D1 Bianchi Inglese Lun 1a ora D2 Verdi Italiano Lun 2a ora C1 III Info 1 Lun 3a ora C2 III Info 2 D3 Rossi Informatica Lun 2a ora Lun 4a ora Lun 3a ora C3 IV Info 1 Risulta molto complesso portare delle modifche al database una volta che è stato realizzato in quanto si rischia di dover riscrivere tutte le applicazioni che già lo utilizzano. I principali svantaggi del modello reticolare sono i seguenti: ◗■i link sono realizzati con i puntatori, quindi esiste uno spreco di spazio per le memorie esterne; ◗■per realizzare due reticoli indipendenti è necessario duplicare i dati introducendo un’inutile ridondanza; ◗■se i dati non sono tra loro direttamente connessi la loro ricerca è diffcoltosa; ◗■è estremamente rigido in caso di modifche successive alla sua creazione. Modello relazionale Il modello relazionale, che sarà ampiamente descritto nel seguito della trattazione, è stato defnito da Edgar F. Codd all’inizio degli anni ‘70 con l’obiettivo di non duplicare inutilmente le informazioni: il modello relazionale consiste in un insieme di tabelle che possono essere connesse tra loro mediante, appunto, relazioni. Alla base del modello relazionale c’è il concetto matematico di relazione tra insiemi. Il modello relazionale usa come struttura dati fondamentale la relazione (o tabella), e per operare sul database defnisce un numero ristretto di operazioni fondamentali. Agenti Ordini 20 Clienti Righe Articoli Progettazione concettuale e logica Lezione 2 Ogni tabella è composta da righe e colonne: ◗■ le colonne sono i diversi campi (o proprietà); ◗■ ogni riga corrisponde a un record. I principali vantaggi del modello relazionale sono: ◗■ l’indipendenza dei dati; ◗■ il fatto che la rappresentazione logica dei dati non fa alcun riferimento a quella fsica; ◗■ l’informazione è contenuta nei campi e non in strutture fsiche come i puntatori. Zoom su... INDIPENDENZA Con indipendenza dei dati, come vedremo in seguito, si intende: 1 indipendenza dalla struttura fsica: modifche apportate alla rappresentazione fsica dei dati (per esempio uso di una struttura di accesso piuttosto di un’altra) non comportano modifche ai programmi applicativi esistenti; 2 indipendenza dalla struttura logica: modifche apportate alla rappresentazione logica dei dati non devono comportare modifche alle applicazioni esistenti che operano sul database, cioè deve essere possibile apportare modifche alla struttura della base di dati senza modifcare il software applicativo. Il modello relazionale è attualmente il modello logico di dati più utilizzato e sarà descritto e studiato a partire dalle prossime lezioni. Tra i DB relazionali ricordiamo MySQL, SAPDB, Firebird, Access, Oracle. Modello a oggetti dei database (object-oriented) I database a oggetti sono la nuova frontiera nella ricerca sui database per le caratteristiche di estendibilità proprie della programmazione object-oriented: hanno la possibilità di defnire nuovi tipi di dati e comportamenti che vengono inglobati nell’oggetto stesso (classe); trovano utilizzo soprattutto nelle applicazioni multimediali che inglobano grande quantità di dati non numerici, come, per esempio, immagini, suoni o flmati. I DBMS a oggetti prendono il nome di ODBMS (Object DBMS, oppure OODBMS Object Oriented DBMS): la tendenza odierna è quella di aggiungere alle caratteristiche dei sistemi a oggetti i vantaggi del modello relazionale, generando sistemi ibridi che uniscano i pregi di entrambi i modelli (ORDBMS, Object-Relational Database Management System). I database object-oriented si fondano sugli stessi principi della programmazione a oggetti e quindi memorizzano nel database non solo i dati ma anche le operazioni che possono essere eseguite sugli stessi (metodi). Tra i primi ODBMS ricordiamo Jasmine, sviluppato dalla Fujitsu insieme alla Computer Associates verso la fne degli anni ’90 e integrato in Visual Object, uno dei primi linguaggi visuali che offriva la possibilità di creare delle classi per interfacciare in modo nativo il database Jasmine. Oggi il più famoso tra gli ORDBMS è PostgreSQL: è completamente opensource ed è probabilmente il più robusto del mondo Linux/Unix. 21 UdA 1 Progetto di database È stato progettato e realizzato all’università della California a Berkeley sotto il nome di Postgres, ma venne poi ripreso da un gruppo esterno di sviluppatori che gli diedero il nome attuale, gli aggiunsero un dialetto sql e lo rilasciarono opensource. Modello XML (eXtensible Markup Language) L’XML non è proprio un modello di database, ma viene ricordato perché è divenuto uno strumento fondamentale per effettuare lo scambio delle informazioni tra DBMS diversi. È un linguaggio simile all’HTML, con il quale condivide i markup (comunemente detti tag) ma nel linguaggio XML i tag sono “liberi” e descrivono quanto racchiuso tra le parentesi <>, come defnito dal programmatore. Vediamo di seguito un esempio dove defniamo un archivio utenti e ne inseriamo i singoli record. Vediamo un esempio di codice XML: <?xml version=”1.0” encoding=”UTF-8”?> <utenti> <utente> <nome>Mario</nome> <cognome>Rossi</cognome> <indirizzo>via Pascoli,2</indirizzo> <cap>22100</indirizzo> <citta>Como</indirizzo> </utente> <utente> <nome>Giuseppe</nome> <cognome>Verdi</cognome> <indirizzo>via Da Vinci,3</indirizzo> <cap>20100</indirizzo> <citta>Milano</indirizzo> </utente> </utenti> La prima riga indica la versione di XML in uso e specifca la codifca UTF-8 per la corretta interpretazione dei dati. Mentre l’HTML ha un insieme ben defnito e ristretto di tag, con l’XML è invece possibile defnirne di propri a seconda delle esigenze: poiché ha una struttura gerarchica, pare un “ritorno alle origini” dei modelli di dati. ■■ Conclusioni Riassumiamo le funzionalità principali di un DBMS, indipendentemente dal modello che adotta; sono tre e possono essere riassunte in una defnizione. DBMS Un DBMS è un sistema software che gestisce efficientemente grandi quantità di dati, persistenti e condivisi. 22 Progettazione concettuale e logica Lezione 2 Quindi un DBMS deve avere: ◗■ la capacità di gestire dati non volatili, cioè in modo permanente; ◗■ la capacità di accedere in modo effciente a grandi quantità di dati. La persistenza e la condivisione richiedono che un DBMS fornisca dei meccanismi per garantire l’affdabilità dei dati (fault tolerance), per il controllo degli accessi e per il controllo della concorrenza (accesso ai dati contemporaneo da parte di più utenti e/o applicazioni). Quindi deve inoltre garantire: ◗■ la consistenza dei dati: devono essere signifcativamente ed effettivamente utilizzabili nelle applicazioni aziendali; ◗■ la sicurezza dei dati: deve impedire che il database si danneggi; ◗■ la segretezza e confdenzialità: i dati devono poter essere consultati e/o modifcati soltanto da chi sia debitamente autorizzato; ◗■ l’integrità dei dati: deve garantire la conservazione dei dati senza perdite. Zoom su... SICUREZZA Le problematiche connesse alla sicurezza hanno avuto negli ultimi anni un’importanza fondamentale soprattutto nei database connessi a Internet, dove è necessario proteggere i dati “appetibili” per gli hacker, che cercano di impossessarsi di dati che molto spesso assumono il carattere di estrema confdenzialità (numeri di carte di credito, dati fnanziari, strategici ecc.) oppure di acquisire il completo controllo della macchina se non addirittura della intera infrastruttura di rete. Tutti i più moderni DBMS adottano un’architettura di sicurezza basata su tre differenti livelli di protezione: 1 autenticazione: è la fase più delicata dove l’utente che vuole accedere ai dati viene accreditato mediante la verifca dell’identità attraverso la richiesta di una password segreta e personale; 2 autorizzazione: è la fase seguente l’autenticazione nella quale il sistema assegna i diritti all’utente per le risorse alle quali può avere accesso (lettura, scrittura ecc.); 3 auditing: in questa fase si adottano i mezzi idonei per garantire l’integrità delle informazioni e per identifcare e riconoscere possibili abusi. 23 UdA 1 Progetto di database Verifichiamo le conoscenze 1. Risposta multipla 1 La modellazione dei dati consiste: a. nell’analisi del problema b. nella progettazione delle tabelle del database c. nell‘implementazione delle tabelle d. nella creazione delle funzioni che accedono ai dati 4 L’acronimo ORDBMS significa: a. object-relational database management software b. object-relative database management software c. object-relative database management system d. object-relational database management system 2 La modellazione funzionale consiste: a. nell’analisi del problema b. nell‘implementazione delle tabelle c. nella progettazione delle tabelle del database d. nella creazione delle funzioni che accedono ai dati 5 La fase di autorizzazione all’accesso di un DB è la fase: a. in cui si verifca l’identità attraverso la password segreta b. seguente l’autenticazione c. in cui si assegna la password all’utente d. precedente all’autenticazione 3 Nel modello gerarchico le relazioni possono essere: a. 1 a 1 b. 1 a molti (1-N) c. molti a 1 (N-1) d. molti a molti (N-M) 2. Ordinamento AREA digitale 1 Ordina le operazioni da effettuare nel progetto di un database: a. progettazione fsica e implementazione b. progettazione concettuale del database (modello E-R) c. analisi del problema d. realizzazione delle applicazioni e. progettazione logica del database (schema logico) 24 2 Ordina cronologicamente i seguenti modelli di DBMS: a. XML b. reticolare c. gerarchico d. a oggetti e. relazionale 3. Vero o falso 1 2 3 4 5 6 7 8 9 10 L’indipendenzapermettediscrivereprogrammisenzaconoscerelestrutturefsichedeidati. L’indipendenzapermettediscrivereprogrammiconoscendosololoschemaconcettuale. L’indipendenzapermettediformulareinterrogazionisenzaconoscerelestrutturefsiche. DatocheiDBsonocondivisiaumental’effcienzadeiprogrammicheliutilizzano. DatocheiDBsonocondivisisiriducelaridondanzael’inconsistenza. Ilfattochelebasididatisianopersistentinegarantiscel’affdabilità. Ilfattochelebasididatisianopersistentifavoriscel’effcienzadeiprogrammi. DatocheiDBsonocondivisisiriducelaridondanzael’inconsistenza. IprogettistidellabasedidatirealizzanoilDBMS. IprogettistidelleapplicazioniutilizzanoiDBcomeprogettatidalprogettistadelDBMS. VF VF VF VF VF VF VF VF VF VF Progettazione concettuale e logica Lezione 2 4. Completamento Completa le frasi seguenti scegliendo tra le parole proposte. 1 Il modello concettuale descrive ............................................................................................................. deve essere rappresentato. cosa • quando • dove • perché • come 2 2 Il modello logico descrive ............................................................................................................. sono organizzati i dati. cosa • quando • dove • perché • come 3 La modellazione dei .............................................................. consiste nella progettazione delle .............................................................. del database. dati • tabelle • schema • relazioni • entità 4 La modellazione funzionale consiste nell’implementazione delle ............................................................................................................. e nella creazione delle funzioni che accedono ai dati. tabelle • relazioni • entità • funzioni • associazioni 5 Nei database la defnizione dei dati e i dati stessi sono salvati all’interno .............................................................................................................. del programma • del database • dello schema • dell’oggetto • dell’applicazione 6 Un modello di dati consiste in una rappresentazione astratta delle ............................................................................................................. dei dati di un database. regole • strutture • tipologie • applicazioni • funzioni 7 L’atto di creazione di un modello prende il nome di ............................................................................................................. dei dati. modellazione • rappresentazione • raffigurazione • progettazione 8 Il modello logico deve essere ...................................................................................... dalle strutture fsiche e ...................................................................................... dai programmi applicativi. corrispondente • dipendente • indipendente • conforme • collegato • utilizzato • modificato • gestito 10 Alla base del modello reticolare ci sono le strutture dati a grafo, dove mediante ...................................................................................... è possibile accedere ai dati più facilmente, senza i vincoli rigidi della struttura gerarchica. file • albero • lista • grafo • puntatori 11 L’idea innovativa del modello relazionale di rappresentare le informazioni per mezzo di una struttura, chiamata ......................................................................................, ha come fondamento il concetto matematico di ...................................................................................... . archivio • tabella • file • relazione • associazione • funzione 12 Con un database object-oriented gli oggetti memorizzati nel database contengono sia .................................................................................. sia le ...................................................................................... possibili su tali dati: si fondano sugli stessi principi della OOP. definizioni • dati • file • relazione • associazione • operazioni • fisica • ricorsione • OOP • definizione AREA digitale 9 Il modello di database gerarchico prevede che i dati siano organizzati secondo strutture ad ........................................................, che si suppone rifettano una gerarchia esistente tra gli ...................................................................................... che appartengono al database. file • albero • lista • grafo • puntatore • entità • relazioni • dati • elementi • oggetti 25 UdA 1 Progetto di database Verifichiamo le competenze 1. Problemi 1 Rappresenta con il modello gerarchico la situazione Medici – Pazienti 2 Rappresenta con il modello gerarchico la situazione Cantanti – Canzoni 3 Rappresenta con il modello gerarchico la situazione Squadra – Calciatori 4 Rappresenta con il modello gerarchico la situazione Alunni – Esami 5 Rappresenta con il modello gerarchico la situazione Squadra di calcio – Incontri 6 Rappresenta con il modello reticolare la situazione Fatture – Prodotti 7 Rappresenta con il modello reticolare la situazione Pazienti – Esami clinici 8 Rappresenta con il modello reticolare la situazione Automobili – Colori – Marche 9 Rappresenta con il modello reticolare la situazione Squadre – Incontri 10 Rappresenta con il modello XML la situazione Alunni – Voti 11 Rappresenta con il modello XML la situazione Docenti – Materie 12 Rappresenta con il modello XML la situazione Genitori – Figli 13 Rappresenta con il modello XML la situazione Mammiferi – Felini – Gatti 14 Rappresenta con il modello XML la situazione Nonni – Genitori – Figli 15 Rappresenta con il modello XML la situazione Preside – Docenti – Studenti 16 Rappresenta con il modello XML la situazione Primario – Medici – Infermieri 26