Una Introduzione alle Basi di Dati Storia Concetti Modelli Struttura In Principio era la scheda… Inizialmente i sistemi informativi su computer memorizzavano le informazioni su scheda perforata I Limiti di un Sistema Informativo su scheda Non riutilizzabile Occupa molto spazio per pochi dati E’ macchinoso da trasportare, duplicare, modificare E’ sequenziale Ha dei limiti sulla dimensione del record Le operazioni di inserimento, modifica, cancellazione sono manuali Vengono introdotti i concetti di base Record fisico, campo, record logico Record fisico Cognome Campo E’ possibile rappresentare archivi correlati Studente Docente 1 Docente 2 L’apparizione delle unità a nastro e il Sistema Informativo Riutilizzabile Occupa poco spazio E’ semplice da trasportare Non ha limiti sulla dimensione del record fisico E’ sequenziale Le operazioni richiedono due unità nastro Le unità a disco Ad accesso diretto Possibile il collegamento tra più archivi contemporaneamente Riutilizzabile Occupa poco spazio E’ semplice da trasportare Non ha limiti sulla dimensione del record fisico Vengono messi a punto gli algoritmi fondamentali Accesso Sequenziale Accesso Diretto Relativo Accesso Sequenziale con Indice Tecniche di Ricerca Ricerca Binaria Indice con B-Tree Tecniche Hash La realizzazione di un programma che gestisce archivi Viene definito il “tipo record” Viene definito l’archivio (nome, supporto fisico, tipo record, organizzazione fisica) Vengono scritti i sottoprogrammi di inserimento, modifica, cancellazione, ricerca, stampa nel linguaggio di programmazione prescelto (COBOL, RPG, PL/I ) I difetti di una gestione tradizionale degli archivi Il modello dei dati è “cablato” nei programmi I controlli sono “cablati” nei programmi I programmi devono cambiare se cambia il modello logico o fisico dei dati Programmi diversi possono usare tipi record diversi per lo stesso archivio Ripetitività degli algoritmi I campi possono essere duplicati in più archivi Ridondanza, rischio di incongruenza e inconsistenza Mancanza di controllo degli accessi Difficoltà nell’accesso multiutente ai dati Data Base: cos’è Un Data Base è una collezione di dati operativi memorizzati su un supporto per computer, utilizzato dai programmi applicativi di una particolare azienda (C. Date) Un Data Base contiene informazioni collegate tra di loro ed informazioni sulle informazioni (metainformazioni in un Dizionario dei dati) in maniera da superare i difetti della gestione tradizionale degli archivi Data Base: I pregi Il modello dei dati è nel Data Base I controlli di integrità sono nel Data Base Il controllo degli accessi è nel Data Base Raramente i programmi cambiano se cambia il modello logico o fisico dei dati Programmi diversi usano lo stesso modello per lo stesso archivio I programmi applicativi non contengono gli algoritmi di base ma usano un linguaggio di interrogazione e manipolazione per accedere ai dati L’esigenza di duplicare i campi viene ridotta Meno ridondanza, meno rischio di incongruenza e inconsistenza Supporto nell’accesso multiutente ai dati Con un Data Base… La ridondanza dei dati può essere ridotta Le inconsistenze possono essere evitate Le informazioni possono essere condivise Gli standard possono essere rinforzati La sicurezza dell’informazione può essere controllata E’ possibile trovare un punto di incontro tra esigenze contrastanti La produttività può essere aumentata Data Base: I difetti Costa all’utente e alla Software House Richiede maggiori risorse di calcolo Richiede tempi di addestramento Richiede figure professionali specifiche (Data Base Administrator) Richiede per grossi data base modifiche organizzative nel centro E.D.P. Data Base Management System E’ il Sistema Software che gestisce Data Bases Nasce come insieme di sottoprogrammi Oggi è un Sistema Software complesso Interprete Del Linguaggio Sottomodello di A Area di Lavoro Utente interattivo A Gestione del Modello Logico (Dizionario) Gestione del Modello Fisico Sottomodello di B Area di Lavoro Utente interattivo B Sottomodello di C Area di Lavoro Programma C I Modelli dei dati Rappresentano la struttura delle informazioni Il modello concettuale dei dati rappresenta la struttura delle informazioni inerente al problema nel mondo reale Il modello logico dei dati rappresenta la struttura delle informazioni così come sono visibili all’utente di un DBMS Il modello fisico dei dati rappresenta la struttura delle informazioni così come risiede su memoria di massa I Modelli dei dati - Esempi I Dati Il modello logico dei dati Il Modello Concettuale – Un esempio Modelli dei Dati e Notazioni Il modello concettuale viene espresso usando la notazione Entity-Relationship di P. Chen o UML (Uniform Modeling Language) Il modello logico viene espresso usando la notazione supportata dal DBMS Il modello fisico viene deciso dal DBMS su suggerimento del programmatore o del Data Base Administrator Schema dei Dati E’ l’insieme dei modelli dei dati contenuti in un Data Base Tipi di Modelli dei Dati Gerarchico Reticolare Relazionale Entità-Relazione Orientato ad Oggetti (Semantico) Il Modello Entità-Relazione Usato per descrivere il modello concettuale delle informazioni Inventato da Peter Chen nel 1976 Ogni cosa è una Entità Ogni Entità ha delle proprietà Le Entità con le stesse proprietà fanno parte dello stesso Insieme di Entità Tra Entità ci possono essere delle Relazioni Le Relazioni possono essere 1:1, 1:n, n:n Notazione di Chen Entità Studenti Relazione Nome Fax Proprietà Dal Problema al Modello Concettuale Ogni nome diventa una entità Ogni aggettivo diventa una proprietà Ogni verbo diventa una relazione Il verbo HA può diventare una proprietà o una relazione Esempio: Uno studente ha un nome, un cognome ed un indirizzo. Ha inoltre un genitore con nome, un cognome ed un indirizzo. Studenti Cognome Nome Indirizzo n n Ha Genitori Cognome Nome Indirizzo Il Modello Gerarchico Il Modello Gerarchico – Assunzioni di Base Il Linguaggio: IMS-DL/I Data Definition Language Data Manipulation Language Cerca per chiave (Get Unique) Cerca il prossimo (Get Next) Cerca il prossimo nel padre (Get Next Within Parent) Il Modello Reticolare Il Modello Reticolare – Assunzioni di Base Il Linguaggio: Cobol Data Definition Language Data Manipulation Language Cerca in archivio (Find) Cerca owner (Find owner) Cerca member (Find member) Il Modello Relazionale Assunzioni di Base I duplicati non sono permessi L’ordine non è importante I valori sono atomici Le colonne sono omogenee Le righe sono omogenee Il Linguaggio: SQL Data Manipulation Language Data Definition Language Problemi Aperti Qualità del Modello e Normalizzazione Multiutenza e Transazione Ottimizzazione e Data Base Administrator Sicurezza e Data Base Administrator La Frattura con il linguaggio ospite I Limiti del Modello Relazionale