fondamenti di informatica parte 2 appunti per le Scuole di Specialita’ in Medicina, a.a. 2003-05 di anna maria carminelli gregori Programma: parte 2 Data Base e Data Base Management System: motivazioni; progettazione di D.B. & utilizzo di D.B.M.S. in vari ambienti: single _user & multi_user; problema della consistenza di dati e soluzioni; modelli di dati e sistemi relazionali; esempi con uso di Access . AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 2 Argomenti: basi di dati e i suoi 2 Aspetti fondamentali: 1. Progettazione della base di dati; 2. Utilizzo del Sistema di Gestione di Basi di Dati. AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 3 Che cos'e' il D.B. ? in prima approssimazione: e’ un insieme di dati persistenti (archivi= file su disco), usabili da 1 o piu’ utenti, organizzati in modo “integrato” ( organizzazione integrata, correlata), eliminando ripetizioni di informazioni (ridondanza 0) indipendentemente dal loro volume. AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 4 L’organizzazione integrata permette: accessi piu’ facili, piu’ rapidi, incrociati ai dati … ma come si ottiene ? Con una Progettazione del data base BEN FATTA e usando strutture di dati adeguate! AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 5 … perche’ strutturare i dati ? Le motivazioni si possono cosi’ sintetizzare: elaborazione +efficiente algoritmo piu’ efficente; “ +razionale indipendenza “fisica” e “logica” dei dati ossia indipendenza dallo loro posizione sul disco e dallo loro rappresentazione. … ma come si fa ? con filtri di rappresentazione aggiuntivi! La maggiore razionalita’ si puo’ anche semplicemente intendere come la possibilita’ di svincolarsi dalla sequenzialita’ fisica: cio’ e’ necessario quando i dati devono apparire con sequenzialita’ diverse; AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 6 Modelli o tipi di dati e Criteri di scelta: Esistono molteplici tipi e modelli di strutture informative o strutture dati con modelli omogenei e non, lineari, gerarchici … I criteri di scelta sono basati su parametri di valutazione come: Caratteristiche del modello strutturale (es. sequenziale come un testo? gerarchico come un organigramma?) Memoria disponibile e sua permanenza/volatilita’ (es. dimensioni e tipo di memoria: centrale o di massa ?); Operazioni da effettuare e loro frequenza (ricerche? solo copie ?) AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 7 Operazioni sulle strutture Accesso al singolo elemento della struttura per interrogazioni e/o per aggiornamenti; Inserzione di un nuovo elemento; Cancellazione di un elemento; Ricerca di un elemento di data chiave=campo identificatore (+oltre); Ordinamento degli elementi; Copiatura di elementi; AnnaMaria Carminelli Gregori: …. fondamenti di informatica parte 2. 8 Modelli di strutture In base alle risposte date ed alla operazioni da fare si sceglie un modello ... Tabella; lista; albero; File sequenziale; File ad accesso diretto; …. AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 9 L’ elemento di una struttura informativa e’ chiamato record e si compone di campi o attributi . Per es. Targa, Modello, Cilindrata, Peso, … sono tutte caratteristiche (= CAMPI) di un record relativo al tipo AUTOMOBILE; il campo che identifica un record AUTOMOBILE e’ Targa: questo si assume come chiave del record. Un record con i campi indicati ed un file di tanti record ognuno relativo ad una data automobile sono esempi di strutture informative presenti anche in d.b. AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 10 Aspetti del d.b. Progettazione del d.b. Cosa si vuole ottenere (i Desiderata); Cosa occorre memorizzare per ottenere i Desiderata. QUESTO E’ L’ ASPETTO PIU’ IMPORTANTE DEL data base AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 11 Utilizzo del d.b. Ma dopo la fase di progettazione, come si costruisce, come si aggiorna, come si usa un d.b. ? Con Software dedicato ossia con un Sistema di Gestione di Basi di Dati (SGBD) o Data Base Management System (DBMS) che si colloca tra i programmi applicativi. Come usare i DBMS a disposizione ? (manuali, help in linea…) AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 12 D.B. single-user (privato) & multiusers single-user: archivio personale per esempio la cantina di Date (diapositiva seguente) e db11.mdb D.B. multi-users: per rappresentare le informazioni che interessano un insieme di utenti appartenenti per esempio ad un Ente. AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 13 14 D.B. multi-users: Sorgono problemi come: moltiplicando il numero degli utenti si moltiplica il numero degli archivi ? l’ utente x puo’ accedere e modificare l’ archivio dell’ utente y? ...... ma chi e’ l’ utente ? AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 15 l’ utente puo’ essere una persona, ma anche un processo (programma in esecuzione) che lavora in modo concorrente con altri; cio’ pone i problemi: della consistenza dei dati; “ protezione e riservatezza dei dati; degli accessi concorrenti ai dati (parziale, totale serializzazione dei processi ?) AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 16 Soluzione razionale ? Software adeguato !! D.B.M.S. sempre +complesso!! Occorre un sistema di gestione automatica … ma di cosa? NON di archivi tradizionali, ma di informazioni di interesse fondamentale da mantenere consistenti tra loro permettendone o vietandone l’ accesso. NOTA: informazione codificata dato !! AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 17 Esempio: la cantina di Date trasformata per essere utile a molti utenti diventerebbe: 1 file contenente record con: il nome e code del vino, il code del proprietario, gli anni di imbottigliamanto ed uso (ready); 1 file contenente record con: il nome ed i dati del proprietario (RISERVATO); 1 file di collegamento tra i 2 precedenti. AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 18 Definizione di d.b. e caratteristiche: insieme di dati fondamentali organizzati in file di interesse per l’utente (o per il Sistema Informativo in cui il d.b. deve essere introdotto); che possono avere grandi dimensioni; “ “ essere condivisi tra +utenti anche con accessi simultanei; devono essere affidabili, consistenti tra loro, persistenti, non ridondanti: per questo sono necessarie procedure di salvataggio e ripristino (backup & recovery) in caso di malfunzionamento; AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 19 I dati fondamentali devono anche rispondere a requisiti di privatezza (si usano meccanismi di controllo che salvaguardino da azioni non autorizzate), di efficienza (pari al COSTO di un programma ossia al suo "running time“ tempo di esecuzione) e di efficacia (rendimento produttivo ottimale per le attivita’ degli utenti). Obiettivo primario (virtuale): una modifica nell’ ambiente da automatizzare deve produrre una modifica nel d.b. AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 20 Obiettivo primario/ Obiettivo sperimentato Obiettivo sperimentato raggiungibile con un buon progetto: una modifica nell’ ambiente da automatizzare non deve propagarsi in un numero incontrollato di modifiche del d.b. ESSENZIALE un’ attivita’ di progettazione ben fatta in modo da non avere problemi di consistenza come per esempio il disallineamento di informazioni. AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 21 DBMS= Data Base Management Systems: sistema software per gestire archivi anche di notevole dimensioni, persistenti e condivisibili. Presenta una organizzazione logica dei dati (interessante per l' utente) che si basa su una organizzazione fisica degli archivi. L'Organizzazione logica dei dati segue un modello di dati che "e' un insieme di concetti per organizzare i dati e descriverne la AnnaMaria Carminelli Gregori: struttura". fondamenti di informatica parte 2. 22 Il modello puo’ essere di tipo gerarchico (anni '60) con strutture ad albero; reticolare o CODASYL (da Conference on Data Systems Languages, l' organizzazione che lo propose negli anni '70) con strutture reticolari; relazionale (il piu' importante e diffuso) con la struttura “relation” (relazione) intuitivamente rappresentata in forma tabellare (ideato da E.F. Codd e presentato in un articolo del CACM del Giugno 1970 ...). Questi sono modelli usati nei DBMS. AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 23 DB & DBMS: dove si usano ? Generalmente in Sistemi Informativi aziendali. Sistema Informativo = Insieme organizzato di Risorse e Procedure di natura diversa (umana e materiale) che interagiscono tra loro, finalizzato alla GESTIONE dell' INFORMAZIONE in un’ azienda. (GESTIONE dell' INFORMAZIONE = raccolta, registrazione, trasmissione, elaborazione dell' INFO) Se la GESTIONE delle informazioni (modellate in strutture dati per es. aggregandole) e’ automatica il Sistema si puo’ dire Sistema Informatico. AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 24 In dettaglio: il Progetto di D.B. e la sua introduzione in un Sistema Informatico: 3 Fasi –Analisi: 1.1 analisi del preesistente ossia del sistema informativo in uso (automatico o no): struttura, finalita’, funzioni, attivita’ effettive, interfacce tra aree funzionali, settori e procedure da automatizzare, possibilita’ e convenienza, dati e loro tipo, volume, privatezza … 1.2 definizione dei requisiti del nuovosistema informatico . AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 25 Fasi –Progettazione costruzione del progetto di tipo semantico, concettuale del d.b. –Realizzazione definizione conforme al progetto concettuale del progetto logico e fisico del d.b. detti anche schema logico e schema fisico relativo alla memorizzazione fisica dei dati. AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 26 Schema logico I modelli di dati si usano per rappresentare i tipi di dati che compaiono nello Schema logico di un d.b. descrizione sintetica di tutti i tipi di dati, delle interrelazioni o legami tra i tipi di dati, dei vincoli tra i tipi di dati. Puo’ essere realizzato solo dopo approfondita analisi dell’ ambiente dove il d.b. deve essere inserito. Il D.B.M.S. si riferisce allo schema logico per controllare accessi e aggiornamenti dei dati. AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 27 Un esempio di schema logico e’ estratto dal testo “Data Model” di TsichritzisLochovsky e rappresenta lo schema logico relazionale di un “Medical d.b.” Hospital (Hosp_code,Name,Address,Phone#, #beds) Ward (Hosp_code, Ward_code, Name, #beds) Doctor (Hosp_code, Doctor#, Name,Speciality) Patient (Registration#, Diagnosis_code, Diagno_inf) Attending_Doctor(Doctor#, Registration#) …. AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 28 Modello relazionale: lo schema visto e’ “di tipo relazionale” ossia realizzato per un R(elational)DBMS; caratteristica essenziale del Modello Relazionale e’ che, “un Sistema Relazionale e’ percepito dall’ utente come un insieme di tabelle”. Struttura fondamentale Relazione intesa come costrutto matematico, ma schematizzata come tabella; Aspetto fondamentale Rappresentazione in forma tabellare dei dati e delle loro interrelazioni AnnaMaria Carminelli Gregori: permanenti; fondamenti di informatica parte 2. 29 RELAZIONE: _ pone in corrispondenza piu’ dati Esempio: generalita’ di individui come: (Paolo, Rossi, 1/2/73, Vicenza) o (Romolo, Remo, 25/12/97, Roma) o ... Relazione Generalita’(Nome,Cognome, data,Citta’) | Nome Cognome data Citta’ | | Paolo Rossi 1/ 2/73 Vicenza | | Romolo Remo 25/12/97 Roma | | Gennaro Vero 1/ 1/79 Napoli | |____________________________________| AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 30 Istanza e Schema della relazione REL ______________________________ | nome-1 nome-2 .......nome-n | |_____________________________| | x1 y1 z1 | | x2 y2 z2 | | ... ... ... Istanza di REL = | = contenuto della tabella | xk yk zk | |_____________________________| riga = ennupla = tupla =record; colonna = attributo Schema della tabella = schema della relazione REL(nome-1, nome-2, ....nome-n) AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 31 CHIAVE DI UNA RELAZIONE: _ insieme di attributi che identifica una tupla univocamente: nello schema si sottolinea ! _ non e’ ridondante _ unica per ciascuna tupla _ detta anche chiave primaria. Esempio chiave strutturata: _ nome, cognome, data di nascita NOT NULL !!!! CAMPI MAI NON DEFINITI ! Esempio chiave semplice: codice fiscale. AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 32 SEMANTICA DELLA RELAZIONE: ENTITA' E LEGAME TRA ENTITA’ Entita' = oggetti fondamentali del Sistema Informativo esaminato. Attributi di Entita' = proprieta' tipiche di Entita’, loro caratteristiche. LEGAME tra Entita’o inter-relazione: collegamento tra 2 relazioni. Vedere Esempio schema di un “Medical d.b.” AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 33 ? Esiste sempre una chiave in una relazione ? SI ! LA CHIAVE PRIMARIA Relazione = Insieme “matematico”=> indipendente ordine tuple ordine di caricamento indirizzo (o posizione) tupla nell'archivio corrispondenza tra C (chiave) e I (indirizzo) rappresentata dalle coppie (c,i) AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 34 Esempio corrispondenza chiave_indirizzo Campo Chiave c Campi Dettaglio 1a tupla Cai ======= 2a tupla Bia ======= 3a tupla Zizi ======= ..............................................……….....……. 10a tupla Ada ======= Corrispondenza chiave_indirizzo INDICE SU CHIAVE CHIAVE INDIRIZZO CHIAVE INDIRIZZO Cai 1 Ada 10 Bia 2 Bia 2 Zizi 3 Cai 1 ......................……….. ......................……….. Ada 10 AnnaMaria Carminelli Gregori: Zizi 3 fondamenti di informatica parte 2. 35 ORDINAMENTO LOGICO DELL'ARCHIVIO _archivio A puo’ avere una o piu’ chiavi usate per l’ ordinamento; _L’ ordinamento logico di A rispetto a chiave c è la _sequenza delle coppie {c,i} ordinate rispetto alla chiave c = =indice sequenziale rispetto alla chiave c ESEMPIO INDICE SEQUENZIALE: gia’ visto AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 36 Operazioni su singola relazione = tabella memorizzata in archivio (file) operazioni sulle relazione trattate con lo stile tipico del modello relazionale ma tradotte in OPERAZIONI DEFINITE SU archivi del tipo: _apertura archivio _chiusura archivio _aggiunta record _ricerca record _modifica record _cancellazione record _ripristino record _compattamento archivio _ordinamento logico dell'archivio AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 37 Significato di operazioni come CANCELLAZIONE RECORD cancellazione fisica: operazione lunga, eseguita periodic. con nuova numerazione record cancellazione logica: record contrassegnato come cancellato non visibile in normali operazioni & non stampato COMPATTAMENTO ARCHIVIO _esegue copia archivio _non copia record cancellati logicamente AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 38 ordinamento rispetto ad altri campi Archivio B CHIAVE1 CITTA’ DETTTAGLIO 1a tupla Cai Roma ======= 2a tupla Bia Milano ======= 3a tupla Zizi Napoli ======= 4a tupla Roi Milano ======= .................…………......................................... 10a tupla Ada Firenze ======= AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 39 Ordinamento rispetto a citta’ CITTA’ INDIRIZZO Firenze 10 Milano 2, 4 Napoli 3 ........................ Roma 1 ORDINAMENTO rispetto attributo NON chiave primaria => piu’ record con uguali valori dell'attributo AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 40 Esempio: progetto di un D.B. privato e suo uso in RDBMS ENTITA' presenti: Medici Relazione Medico Malati Relazione Malato LEGAMI tra le ENTITA' presenti: 1 medico cura N malati 1 malato consulta M medici Inter_relazione N:M Relazione Med_Mal AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 41 Istanze e Schemi delle relazioni Medico (Codice, Nome, Specialita’, TempoPieno) |Codice Nome Specialita’ TempoPieno | | 0010 Rossi x T | | 0015 Verdi x T | | 0159 Neri x T | |____________________________________| AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 42 Istanze e Schemi delle relazioni Malato(#Mal, Nome, Diagnosi) |#Mal Nome Diagnosi | | 001 Pippo ma ? | | 002 Peppo se... | | 003 Pupa xy | |______________________| AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 43 Istanze e Schemi delle relazioni Med_Mal (Codice, #Mal) |Codice #Mal | | 0010 001 | | 0010 003 | | 0015 002 | | 0159 001 | | 0159 002 | Seguono esempi in Access come: db1mediciconv.mdb AnnaMaria Carminelli Gregori: fondamenti di informatica parte 2. 44