Gestione dei dati - I Archivi e data base Accesso sequenziale Accesso diretto (random) • Indice e campo chiave • Directory che identifica il posizionamento dei record Elaborazione sequenziale e diretta Lezione n. 7 Corso di Informatica Giuridica Gestione dei dati - II Gestione dei dati - III Definire il tipo di campo Confermare i dati di input Mantenere aggiornati i dati Garantire la sicurezza dei dati Creare i report Trattare le richieste di retrieval Corso di Informatica Giuridica 2 3 Definizione di dato Trattamento dei dati Query e generatori di applicazioni Generatori di report Corso di Informatica Giuridica 4 Il record Un formato di record Record o registrazione: unità logica minima di dati cui il computer può accedere Negli archivi strutturati: suddiviso in campi, ciascuno dei quali codifica una singola informazione elementare, numerica o alfanumerica Negli archivi di testo: l’intero record è costituito da una riga o paragrafo 5 Corso di Informatica Giuridica Un record Nome: Cognome: Via: Città: CAP: Corso di Informatica Giuridica Nome: Cognome: Via: Città: CAP: testo, testo, testo, testo, Numero Corso di Informatica Giuridica 15 caratteri 20 caratteri 30 caratteri 20 caratteri intero 6 File Mario Rossi Verdi, 30 Milano 204378 File strutturato: 7 file destinato a contenere un insieme di record dotati della medesima struttura (formato) Viene creato o modificato mediante apposite istruzione del linguaggio di programmazione relativo (o mediante apposite interfacce grafiche) Corso di Informatica Giuridica 8 Progettazione di una struttura di file Trattamento dei dati Stabilire un unico campo chiave (key) Non inserire più dati nello stesso campo Non creare nuovi campi quando i dati possono essere ricavati da altri dati Stabilire formati standard per i dati più frequenti 9 Corso di Informatica Giuridica Sistemi di gestione di file Differenti modi di mostrare i dati (tabelle, record, struttura, filtri) Append Update Sort Index Protect Query Structured Query Language (SQL) Natural Language Query by Example Corso di Informatica Giuridica 10 Dato come risorsa Un insieme di programmi applicativi che fornisce servizi all’utente (per esempio report) Dato ha un ciclo di vita, un valore, una necessità per qualche unità organizzativa Gestione unitaria Accesso agli archivi di dati Rapidità Aggregazione per livelli aziendali Incrocio di dati in archivi diversi Integrazione di funzioni di unità organizzative diverse Valore per proiezioni e previsioni Dato come entità più attributi Ogni programma definisce e gestisce i suoi dati Corso di Informatica Giuridica 11 Corso di Informatica Giuridica 12 Ridondanze dei dati tra più file Spazio su disco Update multipli Problemi di integrità Gestione unitaria File semplice: archivio venditori e clienti Nome venditore per cliente 324? 13 Corso di Informatica Giuridica Corso di Informatica Giuridica 14 Da Gilleson, Goldberg, Strategic planning, system analysis & database design, Wiley File composto Relazioni multiple Relazioni uno-a-uno Relazioni uno-a-molti Relazioni molti-a-molti Risposta con ripetizione del rappresentante per ogni cliente Corso di Informatica Giuridica (da Gilleson, Goldberg, Strategic planning, system analysis & database design, Wiley) 15 Corso di Informatica Giuridica 16 File semplice: relazione uno-a-uno Rappresentazione di relazioni multiple: orizzontale e verticale Problemi di spazio Ridondanza Corso di Informatica Giuridica (da Gilleson, Goldberg, Strategic planning, system analysis & database design, Wiley) 17 Corso di Informatica Giuridica (da Gilleson, Goldberg, Strategic planning, system analysis & database design, Wiley) 18 Da Gilleson, Goldberg, Strategic planning, system analysis & database design, Wiley Limiti dei sistemi di gestione di file - I Rappresentazione di relazioni multiple: record intersparsi Separazione e isolamento dei dati Ogni programma gestisce il proprio insieme di dati : gli utenti di un programma non hanno possibilità di accedere a dati utili gestiti da altri programmi Duplicazione dei dati Gli stessi dati sono gestiti da programmi diversi. Spazio di memoria sprecato e talora valori e format diversi per lo stesso dato Trovare tutte le presenze di un tipo di record Corso di Informatica Giuridica (da Gilleson, Goldberg, Strategic planning, system analysis & database design, Wiley) 19 Corso di Informatica Giuridica 20 Limiti dei sistemi di gestione di file - II Dagli archivi ai database Data dependence La struttura dei file è definita nel codice del programma La definizione dei dati era embedded nei programmi applicativi piuttosto che essere memorizzaza separatamente e indipendentemente Format incompatibili per i dati I programmi sono scritti in linguaggi diversi e non possono accedrere agli altrui file Nessun controllo sugli accessi e la manipolazione di dati se non quella imposta dal programma applicativo Database: un sistema di gestione dati integrato in cui i dati sono mantenuti in modo non ridondante e in cui l’utente può specificare con un comando unico una richiesta (query) per una varietà di dati Query fisse e proliferazione dei programmi applicativi I programmi sono scritti per funzioni particolari; ogni nuova esigenza richiede un nuovo programma DBMS - Data Base Management System Un sistema software che consente all’utente di definire, creare, e mantenere il database e fornisce accesso controllato ad esso Corso di Informatica Giuridica 21 Corso di Informatica Giuridica Approccio Database - I Database 22 Una raccolta condivisa di dati logicamente correlati (e di una loro descrizione) progettata per rispondere alle esigenze informative di un’organizzazione Data Definition Language Consente di specificare i tipi di dati, le strutture e i vincoli Un catalogo (data dictionary o metadata) fornisce la descrizione dei dati per consentire la indipendenza dai programmi Data Manipulation Language Strumento di ricerca (query) sui dati I dati logicamente correlati comprendono entità, attributi e relazioni tra le informazioni di un’organizzazione Corso di Informatica Giuridica 23 Corso di Informatica Giuridica 24 Programmi con archivi separati e database Approccio Database - II L’accesso controllato sul data base comprende un sistema di sicurezza un sistema per l’integrità un sistema per il controllo della concorrenza un sistema per il ripristino un catalogo accessibile all’utente 25 Corso di Informatica Giuridica Corso di Informatica Giuridica Esempio di DBMS Corso di Informatica Giuridica (da Gilleson, Goldberg, Strategic planning, system analysis & database design, Wiley) 26 Transazioni e database 27 Transazioni commit e rollback Caratteristiche (acid) Atomicità Consistenza Isolamento Durabilità (permanenza) Corso di Informatica Giuridica 28 Componenti dell’ambiente DBMS - II Componenti dell’ambiente DBMS - I Hardware Software dell’organizzazione e una loro descrizione in schema e sottoschema Procedure DBMS, sistema operativo, programmi applicativi, software di rete (se necessario) Dati da un pc a una rete di computer istruzioni e regole da applicare al progetto e all’uso del database e dal DBMS Persone Data Base Administrator - DBA Data administrator, programmatori applicativi Progettisti di database (sia logici che che fisico) Utenti Corso di Informatica Giuridica 29 30 Corso di Informatica Giuridica Livelli Livelli di astrazione in un database Requisiti della base di dati “CHE COSA”: analisi Progettazione concettuale Schema concettuale Progettazione logica Schema logico “COME”: progettazione Progettazione fisica Schema fisico Corso di Informatica Giuridica 31 Corso di Informatica Giuridica (da Atzeni e altri, Basi di dati, McGraw-Hill, 2002) 32 Viste e schema Evoluzione delle architetture dei DBMS Viste relazione virtuale che non esiste nel database ed è prodotta su richiesta risultato dinamico di una o più operazioni relazionali che operano su relazioni di base per produrne di nuove • Meccanismo potente per nasconder parte del database • Accesso in maniera “personalizzata”: stessi dati visti da utenti diversi in modo diverso 33 Corso di Informatica Giuridica Modello gerarchico Gerarchica Network Inverted file Relazionale Oggetti Corso di Informatica Giuridica 34 Database gerarchico Parent Child Due gerarchie, con uno o più tipi di record, interconnesse Radice Corso di Informatica Giuridica Da Bettelli, Dati, relazioni & assoicazioni, Apogeo 35 Corso di Informatica Giuridica 36 Caso di database gerarchico Database a rete Nessuna radice CODASYL Schema e subschema Navigazionale • Accesso via radice • Per rappresentare una relazione molti-a-molti occorrono due uno-a-molti e un segmento addizionale 37 Corso di Informatica Giuridica Esempio di modello reticolare 38 Corso di Informatica Giuridica Esempio di inverted file Accesso tramite tabelle Corso di Informatica Giuridica Da Bettelli, Dati, relazioni & assoicazioni, Apogeo 39 Corso di Informatica Giuridica Da Bettelli, Dati, relazioni & assoicazioni, Apogeo 40 Ricerca ad indici Modello relazionale L’abate di …. Un amico di … L’atto di vendita … Senza bolla di 5 …. Ad un ballo … 6 Ecc. 7 … abate 1, 6 amico 2, 8 atto 3, 9 ballo bolla ecc … … … … 5, 9 4 … … … … Corso di Informatica Giuridica File semplici, lineari Non è navigazionale Non ci sono puntatori Join, Select, Project Integrazione al momento della richiesta: 1 2 3 4 software power versus data structure power 8 … 9 … (Sartor) 41 Rappresentazione del modello relazionale Corso di Informatica Giuridica 42 Terminologia adottata nei RDBMS Ogni elemento è una tabella di dimensione indipendente dalle altre Da Bettelli, Dati, relazioni & assoicazioni, Apogeo Corso di Informatica Giuridica 43 Corso di Informatica Giuridica 44 Un esempio. Un database di studenti Le basi di dati relazionali 45 Corso di Informatica Giuridica Da relazione molti a molti La tabella anagrafica La tabella insegnamenti La tabella delle relazioni tra anagrafe ed insegnamenti 46 Corso di Informatica Giuridica A due relazioni uno a molti, mediante un nodo intermedio M-N Studenti Corso di Informatica Giuridica Studenti Insegnamenti 47 Corso di Informatica Giuridica Frequenta Insegnamenti 48 La tabella Studenti La tabella Insegnamenti IdInsegn CgnDocente Materia Semestre 1/1/1985 Fd1 Chiari FilDir 1 1/1/1986 Pr2 Scuri Privato 2 idStudente nome cognome dataNascita 3456 Mario Rossi 6342 Lucia Bianchi Corso di Informatica Giuridica (Sartor) 49 La tabella Frequenze (Sartor) 50 Le associazioni tra tabelle idStudente idInsegnamento 6342 Fd1 6342 Pr2 3456 Fd1 Corso di Informatica Giuridica Corso di Informatica Giuridica (Sartor) Studenti Frequenta Corsi idStudente nome cognome dataNascita 51 Corso di Informatica Giuridica idStudente idCorsi (Sartor) idCorsi docente Materia semestre 52 La chiave primaria Le principali operazioni sui database relazionali. Il Join La chiave primaria di una tabella è il campo i cui valori identificano univocamente ciascun record della tabella Crea una tabella C che riunisce due tabelle A e B presistenti Ogni record della tabella C unisce campi tratti da un record di A e da un record di B Di regola si tratta dei record che hanno il medesimo valore in un certo campo comune: se A contiene I campi α e β e B contiene I campi β e γ, il join conterrà i campi α, β e γ Ogni riga di C congiunge I campi tratta da un record di A e quelli tratti da un record di B: contiene il valore per α del record di A, il valore per β comune ai due record, il valore per γ tratto dal record di B Ad esempio, in un database di studenti, il numero di matricola può costituire la chiave primaria 53 Corso di Informatica Giuridica Esempio di Join (Sartor) 54 Le principali operazioni sui dabase relazionali. Select id Studente nome cognome data Nascita idStudente id Insegnamento 3456 Mario Rossi 1/1/1985 6342 Fd1 6342 Lucia Bianchi 1/1/1986 6342 Pr2 3456 Fd1 id Studente nome cognome data Nascita 6342 Lucia Bianchi 1/1/1986 Fd1 6342 Lucia Bianchi 1/1/1986 Pr2 3456 Mario Rossi 1/1/1985 Fd1 Corso di Informatica Giuridica Corso di Informatica Giuridica (Sartor) Data una tabella A, produce una tabella B che contiene solo alcune colonne di A Elimina le colonne che non sono rilevanti id Insegnamento 55 Corso di Informatica Giuridica 56 Select Join ancora id Studente nome cognome dataNascita id Insegnamento 6342 Lucia Bianchi 1/1/1986 Fd1 6342 Lucia Bianchi 1/1/1986 3456 Mario Rossi 1/1/1985 nome cognome idInsegna mento IdInsegn amento Cgn Docente Pr2 Lucia Bianchi Fd1 Fd1 Chiari FilDir Fd1 Lucia Bianchi Pr2 Mario Rossi Fd1 Pr2 Scuri Semestre 1 Privato 2 nome cognome id Insegnamento nome cognome id Insegnamento Cgn Docente Materia Semestre Lucia Bianchi Fd1 Lucia Bianchi Fd1 Chiari FilDir 1 Lucia Bianchi Pr2 Lucia Bianchi Pr2 Scuri Privato 2 Mario Rossi Fd1 Mario Rossi Fd1 Chiari FilDir 1 (Sartor) Corso di Informatica Giuridica 57 Select ancora Corso di Informatica Giuridica (Sartor) 58 Che cosa ho ottenuto? nome cognome idInsegna mento CgnDocente Materia Semestre Lucia Bianchi Fd1 Chiari FilDir 1 Lucia Bianchi Pr2 Scuri Privato 2 Mario Rossi Fd1 Chiari FilDir 1 Corso di Informatica Giuridica Materia nome cognome CgnDocente Materia Lucia Bianchi Chiari FilDir Lucia Bianchi Scuri Privato Mario Rossi Chiari FilDir (Sartor) 59 Ho incrociato i dati, ottenendo nuove informazioni, non attingibili (senza sforzi notevoli) dai dati di partenza Problemi per la tutela dei dati? Corso di Informatica Giuridica 60 I sistemi documentari e di information retrieval Database relazionali: normalizzazione dei dati - I Sistemi documentari (information retrieval): banche dati di testi liberi Esempio di un insieme di campi: Forniscono l’accesso ai testi (documenti) in essi contenuti Composti di unità documentali (formato = campi che identificano e descrivono il documento, più il contenuto del documento in testo libero) 61 Corso di Informatica Giuridica Database relazionali: normalizzazione dei dati - II (da Gilleson, Goldberg, Strategic planning, system analysis & database design, Wiley) (da Gilleson, Goldberg, Strategic planning, system analysis & database design, Wiley) 62 Database relazionali: normalizzazione dei dati - III Associazione tra i campi Corso di Informatica Giuridica Corso di Informatica Giuridica Esempio di record 63 Corso di Informatica Giuridica (da Gilleson, Goldberg, Strategic planning, system analysis & database design, Wiley) 64 Database relazionali: normalizzazione dei dati - III Prima forma normale Dati non normalizzati Ogni campo non è decomponibile Ogni attributo dipende dalla chiave Corso di Informatica Giuridica (da Gilleson, Goldberg, Strategic planning, system analysis & database design, Wiley) 65 Seconda forma normale - I Corso di Informatica Giuridica (da Gilleson, Goldberg, Strategic planning, system analysis & database design, Wiley) 66 Seconda forma normale - II Ridurre la ridondanza: nessun campo non-chiave è definito solo da una parte della chiave Ogni attributo dipende da tutta la chiave Corso di Informatica Giuridica (da Gilleson, Goldberg, Strategic planning, system analysis & database design, Wiley) 67 Duplicazioni: MechNo è in (a) e in (c) Corso di Informatica Giuridica (da Gilleson, Goldberg, Strategic planning, system analysis & database design, Wiley) 68 Terza forma normale - I Terza forma normale - II Ci sono campi non-chiave definiti in funzione di altri campi non-chiave Non esistono più situazioni in cui un campo non-chiave definisce un altro campo non-chiave Ogni attributo dipende solo dalla chiave Corso di Informatica Giuridica (da Gilleson, Goldberg, Strategic planning, system analysis & database design, Wiley) 69 Controllo della ridondanza Data consistency Più informazione dallo stesso insieme di dati Condivisione di dati Miglioramento della integrità dei dati Miglioramento della sicurezza Potenziamento di standard Economie di scala Corso di Informatica Giuridica (da Gilleson, Goldberg, Strategic planning, system analysis & database design, Wiley) 70 Punti critici Vantaggi dei DBMS Corso di Informatica Giuridica 71 Complessità Ampiezza Costi del software e della conversione Prestazioni Corso di Informatica Giuridica 72 Conclusioni Archivi di dati Basi di dati Normalizzazione dei dati e strutturazione di un data base Modello Entità - Relazioni Lezione n. 8 Modello entità-relazioni Corso di Informatica Giuridica 73 Semplice esempio di diagramma entità-relazioni Corso di Informatica Giuridica Esempio di diagramma entità-relazioni per il caso visto 75 Corso di Informatica Giuridica (da Gilleson, Goldberg, Strategic planning, system analysis & database design, Wiley) 76 Esempio di entità-relazioni Entità relazioni Corso di Informatica Giuridica Da Bettelli, Dati, relazioni & assoicazioni, Apogeo 77 Modello dei dati Da Bettelli, Dati, relazioni & assoicazioni, Apogeo 78 Schemi e istanze insieme di costrutti utilizzati per organizzare i dati di interesse e descriverne la dinamica componente fondamentale: meccanismi di strutturazione (o costruttori di tipo) come nei linguaggi di programmazione esistono meccanismi che permettono di definire nuovi tipi, così ogni modello dei dati prevede alcuni costruttori ad esempio, il modello relazionale prevede il costruttore relazione, che permette di definire insiemi di record omogenei Corso di Informatica Giuridica Corso di Informatica Giuridica In ogni base di dati esistono: 79 lo schema, sostanzialmente invariante nel tempo, che ne descrive la struttura : per esempio le intestazioni delle tabelle l’istanza, i valori attuali, che possono cambiare anche molto rapidamente: per esempio i contenuti di una tabella Corso di Informatica Giuridica 80 Due tipi (principali) di modelli Livelli di progettazione di basi di dati modelli logici: utilizzati nei DBMS esistenti per l’organizzazione dei dati utilizzati dai programmi indipendenti dalle strutture fisiche esempi: relazionale, reticolare, gerarchico, a oggetti modelli concettuali: permettono di rappresentare i dati in modo indipendente da ogni sistema cercano di descrivere i concetti del mondo reale sono utilizzati nelle fasi preliminari di progettazione il più noto è il modello Entity-Relationship Corso di Informatica Giuridica 81 Modello Entity-Relationship (Entità-Relazione) Corso di Informatica Giuridica Ne esistono molte versioni, (più o meno) diverse l’una dall’altra Corso di Informatica Giuridica 82 Gli elementi del modello Entità-Relazioni Il più diffuso modello concettuale (da A. Lumini, luminiDB.pdf, [email protected]) 83 Entità Relationship (relazioni o associazioni) Attributi Generalizzazione …. Corso di Informatica Giuridica 84 Entità Corso di Informatica Giuridica Rappresentazione grafica di entità 85 Relazione Corso di Informatica Giuridica Corso di Informatica Giuridica (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) 86 Rappresentazione grafica di relazione 87 Corso di Informatica Giuridica (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) 88 Nota sulle relazioni - I Corso di Informatica Giuridica (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) Nota sulle relazioni - II 89 Attributi Corso di Informatica Giuridica (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) 90 Rappresentazione grafica di attributi • Proprietà elementare di un’entità o di una relazione, di interesse ai fini dell’applicazione • Un attributo associa ad ogni occorrenza di entità o relazione un valore appartenente a un insieme detto dominio dell’attributo Corso di Informatica Giuridica 91 Corso di Informatica Giuridica (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) 92 Rappresentazione grafica di un diagramma E-R Attributi composti 93 Corso di Informatica Giuridica Cardinalità Corso di Informatica Giuridica (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) 94 Esempio - occorrenza di residenza Coppia di valori che si associa a ogni entità che partecipa a una relazione che specificano il numero minimo e massimo di occorrenze delle relazione cui ciascuna occorrenza di una entità può partecipare Corso di Informatica Giuridica (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) 95 Corso di Informatica Giuridica (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) 96 Esempio – Cardinalità di residenza Corso di Informatica Giuridica (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) Relazioni molti-a-molti 97 Relazioni uno-a-molti Corso di Informatica Giuridica (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) Corso di Informatica Giuridica (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) 98 Relazioni uno-a-uno 99 Corso di Informatica Giuridica (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) 100 Cardinalità degli attributi Corso di Informatica Giuridica (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) Identificatori o chiavi interni 101 Identificatori o chiavi esterni Corso di Informatica Giuridica (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) Corso di Informatica Giuridica (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) 102 Esempio completo 103 Corso di Informatica Giuridica (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) 104 Esercizio Corso di Informatica Giuridica Soluzione (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) 105 Generalizzazione Corso di Informatica Giuridica E è generalizzazione di E1, E2, ..., En E1, E2, ..., En sono specializzazioni (o sottotipi) di E Corso di Informatica Giuridica (da Atzeni e altri, Basi di dati, McGraw-Hill, 2002) 106 Rappresentazione grafica mette in relazione una o più entità E1, E2, ..., En con una entità E, che le comprende come casi particolari (da www.cs.unibo.it/~montesi/Corso01/P2Progettazione/) 107 Dipendente Impiegato Corso di Informatica Giuridica Funzionario (da Atzeni e altri, Basi di dati, McGraw-Hill, 2002) Dirigente 108 Tipi di generalizzazioni totale se ogni occorrenza dell'entità genitore è occorrenza di almeno una delle entità figlie, altrimenti è parziale esclusiva se ogni occorrenza dell'entità genitore è occorrenza di al più una delle entità figlie, altrimenti è sovrapposta Corso di Informatica Giuridica (da Atzeni e altri, Basi di dati, McGraw-Hill, 2002) Esempi di generalizzazioni 109 Esempio Corso di Informatica Giuridica Corso di Informatica Giuridica (da A. Lumini, luminiDB.pdf, [email protected]) 110 Progettazione concettuale (da A. Lumini, luminiDB.pdf, [email protected]) 111 Corso di Informatica Giuridica (da A. Lumini, luminiDB.pdf, [email protected]) 112 Progettazione logica e fisica - I Corso di Informatica Giuridica (da A. Lumini, luminiDB.pdf, [email protected]) Progettazione logica e fisica - II 113 Corso di Informatica Giuridica (da A. Lumini, luminiDB.pdf, [email protected]) 114