Lezione 8: DB e DBMS Sommario Architetture sw Basi di Dati • definizioni • Caratteristiche DBMS • Funzionalità • linguaggi Sistemi e Tecnologie Informatiche 2 1 Architettura programma applicativo Interfaccia Utente (IU) Logica Applicativa (LA) Base di Dati (DB) IU LA DB Sistemi e Tecnologie Informatiche 3 Integrazione dei dati Utilizzo e condivisione di: • • • archivi comuni a più aree funzionali processi e procedure automatizzate relative all’attività dell’azienda rapporti che la stessa intrattiene con i suoi stakeholder (clienti, fornitori, pubblica amministrazione ecc.) Sistemi e Tecnologie Informatiche 4 2 Base dati comune a più applicazioni Sistemi e Tecnologie Informatiche 5 Obiettivi dell’integrazione dei dati Ottimizzare la disponibilità delle informazioni ai responsabili di decisioni Razionalizzare i cicli di lavoro Ridurre la ridondanza dei dati Aumentare l’integrità (controllo) dei dati Ridurre i costi di acquisizione dei dati Creare i presupposti per un’integrazione funzionale o dei processi Sistemi e Tecnologie Informatiche 6 3 base di dati (database) raccolta (organizzata, persistente, condivisa, di notevoli dimensioni e varietà) di dati la cui gestione è affidata ad un sistema di elaborazione (in generale tramite un computer “database server” accessibile in un ambiente distribuito in rete a più stazioni di lavoro client) Sistemi e Tecnologie Informatiche 7 Le basi di dati sono ... persistenti: hanno un tempo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano (è la “memoria” dell‘organizzazione) condivise: ogni organizzazione (specie se grande) è divisa in settori o comunque svolge diverse attività. Ciascun settore/attività ha un (sotto)sistema informativo (non necessariamente disgiunto) grandi: dimensioni (molto) maggiori della memoria centrale dei sistemi di calcolo utilizzati. Il limite deve essere solo quello fisico dei dispositivi Sistemi e Tecnologie Informatiche 8 4 Archivi e basi di dati Gestione orario lezioni Archivio 1: orario lezioni Gestione ricevimento Archivio 2: ricevimento Sistemi e Tecnologie Informatiche 9 Problemi Ridondanza: • informazioni ripetute Rischio di incoerenza: • le versioni possono non coincidere Sistemi e Tecnologie Informatiche 10 5 Archivi e basi di dati Gestione orario lezioni Base di dati Gestione ricevimento Sistemi e Tecnologie Informatiche 11 Le basi di dati sono condivise Una base di dati e' una risorsa integrata, condivisa fra applicazioni conseguenze • Attivita' diverse su dati condivisi: • meccanismi di autorizzazione • Accessi di più utenti ai dati condivisi: • controllo della concorrenza Sistemi e Tecnologie Informatiche 12 6 garantiscono ... privatezza Si possono definire meccanismi di autorizzazione • l'utente A è autorizzato a leggere tutti i dati e • a modificare quelli sul ricevimento l'utente B è autorizzato a leggere X e a modificare Y Sistemi e Tecnologie Informatiche 13 garantiscono... affidabilità Affidabilità (per le basi di dati): • resistenza a malfunzionamenti hardware e software Una base di dati è una risorsa pregiata e quindi deve essere conservata a lungo termine Tecnica fondamentale: • gestione delle transazioni Sistemi e Tecnologie Informatiche 14 7 “Base” e “Banca” fondamento del sistema informativo aziendale ad essa associato a volte anche detta “BANCA DATI” • • deposito di preziosa risorsa aziendale anche se il termine banca dati viene preferibilmente associato a servizi informativi “di mercato” (o di intermediazione) disponibili via rete Sistemi e Tecnologie Informatiche 15 Criteri di classificazione dei dati Tipo di dato (numerico, alfanumerico,...) Formato (audio, testo, immagini) Formattazione (formattati, non formattati) Fase del processo di elaborazione (input, output) Impiego in ambito aziendale (principali, modificabili, di archivio, di inventario, variabili, di trasferimento, temporanei) Sistemi e Tecnologie Informatiche 16 8 origine delle basi dati... ridondanza • • • • duplicazione informazione in più archivi spreco risorse (spazio sui dischi) disallineamento dati, es: l’indirizzo di un cliente modificato solo in uno degli archivi clienti; un archivio con 220 dipendenti ed un altro con 199 procedure accesso dati (interrogazione o modifica) replicate (o riattivate) per tutti gli archivi contenenti la stessa informazione Sistemi e Tecnologie Informatiche 17 ... origine delle basi dati... l’economia di scala (sviluppo interfacce d’utente per tutti gli archivi) giustifica linguaggi specializzati ed ambienti di interazione sofisticati (usabilità) non tutti possono accedere a tutte le informazioni (privatezza); es: il cliente bancomat non può modificare il suo saldo vincoli di validità (consistenza e integrità); es: prima di consentire un’operazione occorre sapere se si può effettuare in quel modo (una età negativa o che decresce) Sistemi e Tecnologie Informatiche 18 9 ... origine delle basi di dati concorrenza • accesso contemporaneo ad una informazione (giacenza magazzino) e modifica credendo di disporne, non sapendo che altri sono collegati (vendita stesso unico articolo) manutenzione ed affidabilità • difficile individuazione malfunzionamenti e ripristino (in caso di guasto), non essendo centralizzati devono ripetersi su tutti gli archivi (con diverse modalità ed affidabilità) Sistemi e Tecnologie Informatiche 19 base di dati una sola rappresentazione evita ridondanza, disallineamento e inutili ripetizioni di operazioni si può controllare meglio: concorrenza su dati condivisi e rispetto vincoli di integrità l’accesso è regolato da un gestore della base dati, che assicura: efficienza, usabilità, privatezza, affidabilità dei dati Sistemi e Tecnologie Informatiche 20 10 Confronto fra organizzazioni dati Sistemi e Tecnologie Informatiche Organizzazione dei file e dei21database – 4.2.3 21 dai file ai database Svantaggi di una organizzazione orientata ai file • • • Ridondanza indesiderata Mancanza allineamento negli aggiornamento dei dati Dipendenza dei dati dai processi Organizzazione dei dati in database • Permette di rendere i dati indipendenti dai singoli programmi che vi accedono e dal supporto fisico sul quale sono memorizzati, grazie alla netta separazione tra la strutturazione logica e la memorizzazione fisica Sistemi e Tecnologie Informatiche 22 11 DataBase Management System Sistemi e Tecnologie Informatiche 23 DBMS: DataBase Management System complesso sistema s/w specializzato per sviluppare e gestire una base di dati condivisa da applicazioni ed/od utenti supera gli svantaggi causati dall’uso non integrato degli archivi gestisce in modo centralizzato ed unificato (semplice, sicuro, efficiente) i dati e le procedure per accedere alle informazioni contenute nella base dati coordina e controlla l’utilizzo contemporaneo da parte di più utenti Sistemi e Tecnologie Informatiche 24 12 Proprietà dei DBMS Indipendenza logica e fisica dei dati Ridondanza dei dati pianificata e controllata Consistenza dei dati Integrità semantica e operazionale del database (esattezza e completezza dei dati) Sicurezza dei dati Sistemi e Tecnologie Informatiche Architettura dei sistemi di25database – 4.2.6 25 funzionalità di un DBMS ambiente per la definizione delle strutture dei dati e delle procedure di accesso ambiente per la interazione da parte di un utente o di un programma sistema di gestione centralizzato dei dati separazione di aspetti logici e fisici controllo dell’accesso concorrente (simultaneo) ai dati sicurezza (guasti, autorizzazioni,...) Sistemi e Tecnologie Informatiche 26 13 DBMS Prodotti software (complessi) disponibili sul mercato; esempi: • • • • • • Access DB2 Oracle Informix Sybase SQLServer Sistemi e Tecnologie Informatiche 27 gli utenti coinvolti amministratori della base dati (dba) • programmatori sviluppatori di applicazioni • gestione globale DB, coordinano attività inter settoriali ed applicative comuni, eventualmente specializzati per settore o classe utenti tramite definizione e gestione di viste settoriali realizzano (query language, linguaggi ospite ed ambienti di interazione) in modo ottimale le funzionalità operative di uso frequente utenti finali ed occasionali • interagiscono con la base dati: • direttamente tramite viste e semplici linguaggi di interrogazione (utenti occasionali) • indirettamente, tramite applicazioni ad hoc Sistemi e Tecnologie Informatiche 28 14 il livello logico rappresentazione “logica” dell’intera base dati: facile da capire e usare per sviluppare applicazioni (comuni) indipendente da scelte fisiche (non sempre comprensibili e dettate da compatibilità tecnologica, ottimizzazione prestazioni) indipendente dalle personalizzazioni basato su un modello logico dei dati (ed un relativo linguaggio formale) Sistemi e Tecnologie Informatiche 29 le primitive dei linguaggi definizione dati (DDL: Data Definition Language) • per definire gli schemi interni, logici e fisici (strutture) e le modalità di memorizzazione (DSDL, Data Storage Description Language) amministrazione • per classificare gli utenti e concedere le autorizzazioni, per specificare salvataggi e recovery, .... manipolazione dati (DML) • per estrarre, inserire, cancellare, modificare i dati (query language), autonomo o con primitive immerse in un linguaggio ospite (C,Cobol,Java,..) interazione e visualizzazione • ambiente (grafico o multimediale) per interagire con la base dati attivando le primitive del DML Sistemi e Tecnologie Informatiche 30 15 Linguaggi per basi di dati Un altro contributo all’efficacia: la disponibilità di vari linguaggi ed interfacce linguaggi testuali interattivi interpretati (SQL) comandi (SQL) immersi in un linguaggio ospite (Pascal, Java, C ...) comandi (SQL) immersi in un linguaggio ad hoc, con anche altre funzionalità (p.es. per grafici o stampe strutturate) con interfacce amichevoli (senza linguaggio testuale) Sistemi e Tecnologie Informatiche 31 Linguaggi dichiarativi d’interrogazione SQL (Structured Query Language) Embedded SQL QBE, Query by example OQL, Object Query Language Sistemi e Tecnologie Informatiche 32 16 SQL, un linguaggio interattivo "Trovare i corsi tenuti in aule a piano terra" Corsi Corso Docente Aula Basi di dati Rossi DS3 Neri N3 Sistemi Reti Bruni N3 Controlli Bruni Aule Nome DS1 N3 G Edificio OMI Piano Terra OMI Terra Pincherle Primo G Sistemi e Tecnologie Informatiche 33 SQL, un linguaggio interattivo SELECT Corso, Aula, Piano FROM Aule, Corsi WHERE Nome = Aula AND Piano = "Terra" Corso Sistemi Reti Aula N3 N3 Piano Terra Terra Sistemi e Tecnologie Informatiche 34 17 Interazione non testuale (Access) Sistemi e Tecnologie Informatiche 35 Esempio di codice SQL immerso in linguaggio ospite write('nome della citta''?'); readln(citta); EXEC SQL DECLARE P CURSOR FOR SELECT NOME, REDDITO FROM PERSONE WHERE CITTA = :citta ; EXEC SQL OPEN P ; EXEC SQL FETCH P INTO :nome, :reddito ; while SQLCODE = 0 do begin write('nome della persona:', nome, 'aumento?'); readln(aumento); EXEC SQL UPDATE PERSONE SET REDDITO = REDDITO + :aumento WHERE CURRENT OF P EXEC SQL FETCH P INTO :nome, :reddito end; EXEC SQL CLOSE CURSOR P Sistemi e Tecnologie Informatiche 36 18 Progettazione Database 37 Sistemi e Tecnologie Informatiche MODELLI PER IL DATABASE LIVELLO CONCETTUALE Entità MODELLO E/R GERARCHICO 1970 LIVELLO LOGICO Attributi e vincoli RETICOLARE fine anni 70 MODELLO RELAZIONALE LIVELLO FISICO Più file separati File unico, FLAT FILE 14 novembre 2007 38 19 Differenze fra i modelli il modello relazionale e’ basato su valori, nel senso che le corrispondenze fra dati in relazioni diverse sono rappresentate per mezzo della presenza di valori comuni il modello reticolare e quello gerarchico sono basati su puntatori, utilizzati come riferimenti espliciti fra record di tipi diversi 14 novembre 2007 39 MODELLO GERARCHICO Il primo modello gerarchico si affermò nel 1968 si chiamava IMS (Information Management System) e fu sviluppato da IBM. Oggi resistono sui mainframe. I dati sono organizzati in record connessi tra loro secondo strutture ad albero. L’albero è formato da 2 tipi di record: il record OWNER (proprietario) e il record MEMBER (componente). Ogni record del database, che non sia la radice dell' albero, deve avere uno e un solo padre Es. il file system del sistema operativo: ogni cartella è contenuta in una cartella padre tranne che la root Limiti: non si presta a rappresentare in modo efficiente le associazioni N:M 14 novembre 2007 40 20 Esempio db gerarchico scuola docente Tanti alberi quante sono le scuole S01 D01 De Nicolo ITCS Giordano Anita S02 D07 D02 Mitolo Nicola D06 Nimeo Marini Carlo >>Ridondanza<< ITCS Dell’Olio Sicolo Lucia 14 novembre 2007 D05 Rosa D01 De Nicolo 41 Anita MODELLO RETICOLARE Si affermò CODASYL (fine anni 70) sviluppato dal gruppo di standardizzazione del linguaggio COBOL Un record puo’ avere uno o piu’ record padre e cio’ permette di evitare i problemi di ridondanza Il modello reticolare e’ così chiamato poiche’ ogni suo schema puo essere rappresentato per mezzo di un grafo (o una rete), con nodi e archi. Limiti: Complessa la gestione difficile il progetto 14 novembre 2007 42 21 Esempio db reticolare scuola S01 D02 Mitolo docente ITCS Giordano Nicola D05 S02 D01 De Nicolo Marini Carlo ITCS Dell’Olio Anita D07 Sicolo 14 novembre 2007 Lucia 43 MODELLO RELAZIONALE Lo progettò nel 1970 Edgar Codd(IBM) Insieme di tabelle messe in relazione tra loro tramite i campi Campi comuni tra tabelle stabiliscono le relazioni della base di dati OPERAZIONI RELAZIONALI La Proiezione e’ una visualizzazione "verticale" della tabella (solo alcune colonne). La Selezione e’ una visualizzazione "orizzontale" della tabella (solo alcune righe che soddisfano una condizione). Il Join e’ l' unione di record che sono memorizzati su tabelle diverse. 14 novembre 2007 44 22 Esempio db relazionale studente esame 14 novembre 2007 corso docente 45 Database orientati agli oggetti L’OODB (Object Oriented DataBase è un modello più recente di database che nasce dall’esigenza di gestire informazioni multimediali: immagini, audio, video, documenti e risorse Internet. Insieme ai dati nel database sono specificate le modalità di accesso più adatte al formato che si sta trattando: i metodi e i dati sono inglobati nelle classi proprio come prescrive il paradigma della programmazione Object Oriented. Esempi di DBMS orientati agli oggetti sono Versant, Objectstore e Poet 14 novembre 2007 46 23 Progettazione concettuale Sistemi e Tecnologie Informatiche 47 diagramma E/R (insiemi di) entità con (insiemi di) associazioni che esprimono le informazioni significative associazioni binarie, ma anche ternarie, e, in generale, k-arie (con k ≥ 2, numero di entità poste in associazione reciproca) modello grafico per descrivere (utente, documentazione) lo schema concettuale convenzioni per indicare entità, associazioni, ruoli e loro proprietà Sistemi e Tecnologie Informatiche 48 24 tipici simboli grafici AUTO ENTITÀ ASSOCIAZIONE VENDE IMMATRICOLAZIONE ANNO ATTRIBUTO E DOMINIO 49 Sistemi e Tecnologie Informatiche esempio di realtà insieme d’esemplarimodellata AUTO CLIENTE Rossi Neri Verdi ….. Lancia Y AY123xx Panda AY323yy Panda AY323ZZ …. di entità COMPRA insieme d’esemplari di associazione DIRIGE CONCESSIONARIO Rosati Lancia Fiat Magliana ….. LAVORA superiore inferiore Tizio Caio Sempronio IMPIEGATO Sistemi e Tecnologie Informatiche 50 25 schema E/R CLIENTE associazione ternaria associazione ricorsiva AUTO superiore COMPRA inferiore DIRIGE CONCESSIONARIO IMPIEGATO LAVORA associazione binaria 51 Sistemi e Tecnologie Informatiche schema E/R con attributi nome c.fiscale CLIENTE COMPRA tipo colore targa AUTO data acquisto prezzo DIRIGE nome CONCESSIONARIO LAVORA IMPIEGATO indirizzo qualifica città attributo composito (o aggregato) cap Sistemi e Tecnologie Informatiche via nome 52 26 Entity/Relationship il formalismo E/R insieme entità (AUTO) • associazione (IMPIEGATO lavora per DITTA) • corrispondenza tra due o più entità (aggregazione) attributo (il COLORE dell’AUTO) • insieme di oggetti con “proprietà comuni” rispetto alla realtà osservata (uso della classificazione) una proprietà elementare di interesse per un’entità od una associazione (ulteriore uso di aggregazione) dominio (COLORI) • l’insieme dei valori “ammissibili” per un attributo (classificazione) Sistemi e Tecnologie Informatiche 53 cardinalità è una tipica caratteristica descrittiva (concettuale e logica) per le informazioni può essere alla base di vincoli d’integrità rappresenta la variabilità numerica ammissibile nelle corrispondenze fra oggetti appartenenti a due insiemi (nell’ambito di una aggregazione) può riguardare sia gli attributi (cardinalità rispetto all’insieme dei valori) che le associazioni (cardinalità tra insiemi entità) Sistemi e Tecnologie Informatiche 54 27 chiavi e identificatori chiave (candidata) • chiave primaria • • un insieme minimo di attributi i cui valori non sono mai indefiniti (nulli) e che inoltre consentono di individuare univocamente un esemplare di entità nell’insieme tra le chiavi candidate se ne sceglie una che meglio si presta come “identificatore” (sinonimo dell’entità) detta “primaria” perché usata più frequentemente o per accedere più rapidamente ai dati nelle interrogazioni identificatore interno • attributo (spesso numerico, sintetico e di scarso interesse per l’utente) usato dal sistema per identificare l’entità (e che spesso non viene indicato nello schema) Sistemi e Tecnologie Informatiche 55 28