DATABASE Sono strumenti informatici con i quali è possibile memorizzare e gestire numerose quantità di informazioni di un’ organizzazione, in modo: Semplice; Efficiente, nell’ uso del processore e della memoria; Efficace; Sicuro; Solido; Condiviso. Un Sistema Informativo comprende strumenti automatici, risorse umane e materiali, procedure manuali, norme organizzative orientate alla gestione delle informazioni di un’ organizzazione. Un Sistema Informatico (SI), anche chiamato EDP, è un sottoinsieme del Sist. Informativo e si dedica alla gestione automatica delle informazioni, rappresentate da dati digitali. Componenti software: Archivio e Applicazione informatica.
DATABASE Applicazione 1 Applicazione 2 Dati applicazione 1 Possibili accessi multipli Utente DB Definizione dati Applicazione La definizione dei dati e i dati stessi sono salvati all’interno dello stesso DB. L’ applicazione e i suoi dati sono diventati indipendenti l’uno dall’altro. (Esempio)
DBMS (DataBase Management System) La teoria dei DB introduce una nuova metodologia di gestione degli archivi, con l’obiettivo di superare i limiti della metodologia precedente. Presenta caratteristiche di indipendenza logica ed indipendenza della struttura fisica dei dati. E’ il sistema di gestione del database nel suo complesso. Funzioni: Gestire grandi quantità di dati con l’obiettivo dell’efficienza; Condivisione= necessità di coordinare gli accessi; Persistenza= assicurare l’affidabilità dei dati nel tempo.
DBMS (DataBase Management System) Progettare un DB consta di 5 passi: Analisi del problema; Progettazione concettuale, utilizzando il modello Entità-Relazione; Progettazione logica, utilizzando vari modelli: gerarchico, reticolare, relazionale, a oggetti, XML; Progettazione fisica e implementazione; Realizzazione applicazioni/ procedure, utilizzando linguaggi di programmazione e di interrogazione. Modellazione dei dati comprende 1,2 e 3; consiste nella progettazione delle tabelle del DB. Modellazione funzionale comprende 4 e 5; consiste nell’ implementazione delle tabelle e nella creazione delle funzioni che accedono ai dati. Modello E-R risponde a : ‘COSA deve essere rappresentato?’ Modello logico risponde a : ‘COME sono organizzati i dati?’
MODELLI LOGICI PER LE BASI DI DATI Modello Gerarchico I dati sono organizzati secondo strutture ad albero che rappresentano la gerarchia degli elementi dell’archivio. La radice è il record principale da cui partono uno o più sottoalberi; ogni elemento è denominato segmento e il tipo di relazione realizzata tra segmenti padri e figli è 1:N (1 a molti). «ogni padre può avere più figli, ma ogni figlio può avere solo un padre» Dipendenti Bianchi Vittori Zaccarian Figli Claudia Luigi Giancarlo Mario Simona Dipendenti Bianchi Vittori Zaccarian Figli Claudia Luigi Giancarlo Mario Simona
MODELLI LOGICI PER LE BASI DI DATI Modello Reticolare La base del modello è la struttura a grafo, dove mediante puntatori è possibile accedere ai dati più facilmente rispetto al modello gerarchico. E’ rappresentato con un insieme di vertici (o nodi) e un insieme di coppie di vertici (o connessioni). È possibile stabilire connessioni N:N realizzate attraverso record connettori. Paziente Angelo Giulio Antonio Esame clinico Radiografia Ecografia TAC 6 6 5 5 4
MODELLI LOGICI PER LE BASI DI DATI Modello Relazionale Usa come struttura dati la relazione (o tabella), che è composta da: Le colonne sono i Campi (o proprietà); Ogni riga corrisponde a un Record. L’informazione è contenuta nei campi e non in strutture fisiche come i puntatori. Realizza l’indipendenza dei dati; la rappresentazione logica dei dati non fa alcun riferimento a quella fisica. Scontrino Numero Data Importo 15/10/2012 5,00 16/10/2012 6,50 17/10/2012 12,00 Entità Campi Tracciato record Record
MODELLI LOGICI PER LE BASI DI DATI Modello a oggetti di database (object-oriented) Si fondano sugli stessi principi della programmazione ad oggetti, nella quale ogni oggetto può essere caratterizzato da proprietà e da metodi. Quindi memorizzano nel DB non solo i dati ma anche le operazioni che possono essere eseguiti su di essi. Modello XML XML è simile al HTML, da cui eredita i tag, che in questo linguaggio non sono preimpostati, sono molteplici e descrivono quanto racchiuso tra le parentesi <>, come definito dal programmatore. Ha una struttura di tipo gerarchico. <?xml version="1.0" encoding="utf-8" ?> <system.serviceModel> <services> <service name="MvcApplication1.RecuperaService"> <host> <baseAddresses> <add baseAddress="http://localhost:8732//RecuperaService/" /> </baseAddresses> </host> </service> </services> </system.serviceModel>
MODELLO ENTITA’ - RELAZIONE Entità : oggetto principale di interesse per la realtà che vogliamo modellare. Può essere classificata definendo il tipo di entità attraverso un nome. Viene rappresentata graficamente con un rettangolo, nel quale l’intestazione è il nome dell’entità, mentre le relazioni sono linee che collegano i rettangoli. Entità forte: non ha bisogno di altre entità per essere identificata. Entità debole: richiede altre entità per essere identificata. Esempio. Paziente --> e. forte; Esame clinico --> e. debole. Entità associativa: è usata per associare 2 o più entità allo scopo di risolvere un’associazione multipla (es. una relazione N:N). Esempio. Paziente ed Esame clinico; Referto è e.associativa. Istanza : riferita ad un’entità, consiste in un singolo oggetto descritto dall’entità. E’ l’analogo di un singolo record all’interno di un file. Attributi : descrivono le entità con le quali sono associati. Una particolare istanza di un attributo è detta valore.
MODELLO ENTITA’ - RELAZIONE Dominio di un attributo : collezione di tutti i possibili valori, omogenei tra loro, che un attributo può avere. I diversi valori assunti dagli attributi determinano le diverse istanze dell’entità. Per ogni attributo è necessario individuare: Il formato; La dimensione; L’ opzionalità a. obbligatorio : esempio è nome di Persona; a. facoltativo : è ammesso il valore nullo (es. titolo universitario); Gli attributi sono classificati in : Identificatori: sono detti chiavi e permettono di distinguere fra loro le istanze di una stessa entità; Descrittori: descrivono una caratteristica non unica di un’istanza di un’entità. Scontrino Numero {PK} Data Importo Entità Identificatore chiave Descrittori
MODELLO ENTITA’ - RELAZIONE Relazione: rappresenta un’ associazione tra una o più entità. Ha 2 versi con specifici significati. Ogni verso ha un’entità di partenza, una di arrivo e una descrizione dell’ associazione. Studente Cellulare (E’ posseduto) Possiede Le relazioni sono classificate in termini di grado, cardinalità, direzione, esistenza. Grado: n° di entità associate nella relazione; si ottengono rel. binarie, ternarie, n-arie. Esempio binaria ricorsiva: Giocatori Capitano Cardinalità: 1:1 1:N (N grande) N:N (o M) Donna Figlio Atleta Gara Nazione Capitale
MODELLO ENTITA’ - RELAZIONE Direzione: indica l’entità ‘padre’ da cui trae origine la relazione con l’entità ‘figlio’. Studente Scuola Padre Figlio Ospitare Esistenza: obbligatoria: se un’istanza di un’entità deve necessariamente esserci affinché sia inclusa nella relazione. opzionale: se l’istanza di un’entità non è richiesta. Persona Automobile facoltativa obbligatoria I nomi degli attributi devono essere scritti al singolare, così come il nome dell’entità !
CHIAVI PRIMARIE E CHIAVI ARTIFICIALI Una chiave primaria è un attributo o un insieme di attributi che identifica univocamente una specifica istanza di un’entità. Per identificarla, un attributo deve avere le seguenti caratteristiche: Deve essere specificato il suo valore per ogni istanza dell’entità; Il valore deve essere unico per ogni istanza dell’entità; Il valore non deve cambiare o diventare nullo nel corso del tempo utile. Le chiave candidate diventano, con la scelta, chiave primaria e chiavi alternative. Chiave primaria si indica con (pk) a fianco della chiave. Esempio. (schema relazionale) Impiegati (CodFiscale(pk), Nome, Telefono) Impiegati (CodFiscale, Nome, Telefono) Una chiave artificiale è formata da un attributo privo di un significato proprio che viene aggiunto agli altri per ottenere un codice univoco per ogni istanza. Esempio: attributo di tipo contatore. È ammessa quando nessun attributo ha tutte le proprietà di una chiave primaria e quando quest’ultima è grande e complessa.
MIGRAZIONE DI CHIAVI, CHIAVI ESTERNE E COMPOSTE Migrazione di chiave primaria Le entità deboli ereditano l’ intera chiave primaria dall’ entità padre. Paziente ID_Paziente(pk) Esame ID_Esame(pk) Entità forte Entità debole Scrittura nello schema relazionale: Esami (ID_Esame(pk), ID_Paziente(pk)) Una chiave composta è una chiave primaria formata da due o più attributi. Una chiave esterna è un attributo che completa una relazione attraverso l’identificazione dell’ entità padre. Fornisce un metodo per mantenere l’integrità referenziale dei dati e per navigare tra le diverse istanze di un’ entità. Utilizza la notazione (fk) iniziali di «foreign key». Ogni relazione «1 a molti» nel modello deve essere supportata da una chiave esterna.
MODELLO ENTITA’ - RELAZIONE Persona Cod. Fiscale (pk) Nome Cognome Data_Nascita Indirizzo Automobile Modello (pk) Produttore Cilindrata Prezzo_Listino Acquistare Data_Acquisto Prezzo_Acquisto Nome_associazione attributi_associazione
MODELLO ENTITA’ - RELAZIONE Persona Cod. Fiscale(pk) Nome Cognome Data_Nascita Indirizzo Automobile Modello(pk) Produttore Cilindrata Prezzo_Listino Acquisto Cod.Fiscale(pk) Modello(pk) Data_Acquisto Prezzo_Acquisto Entità debole Entità forte L’ entità Acquisto eredita le chiavi primarie di Persona e Automobile ed assume significato solo in abbinamento alle altre due entità. Per evitare di avere entità deboli si aggiunge un attributo, in genere un numero progressivo assegnato automaticamente (es.: Contatore).
CHIAVI ESTERNE Città Continente Nazione ID_Città(pk) id_Nazione(fk) id_Continente(fk) Continente ID_Continente(pk) appartiene Nazione ID_Nazione(pk) forma Nel caso di chiavi primarie artificiali si scrive: ID + <nome entità>. Nel caso di chiavi esterne artificiali si scrive: id + <nome entità>. Nel caso di p.k. definita con «codice», la f.k. si scrive: cod + <nome entità>. Nel caso di p.k. definita con un generico codice, la f.k.si scrive: cod + <p.k.>. Esempio: p.k. = alunno; f.k. = codAlunno. Il tipo di dato, la lunghezza e il formato della chiave esterna devono essere uguali a quelli della corrispondente chiave primaria.
NOMI DELLE CHIAVI Entità con chiavi artificiali Impiegato ID_Impiegato(pk) Solo con chiave primaria id_Reparto(fk) Con chiave primaria e c. esterna Entità con chiavi artificiali Schema relazionale Impiegati [ID_Impiegato(pk),……, id_Reparto(fk)] Schema relazionale Impiegati [ID_Impiegato,……, id_Reparto*] Entità con chiavi non artificiali Impiegato CodFiscale(pk) Entità con chiave primaria Nazionalità(fk) Entità con chiave primaria e c. esterna Schema relazionale Impiegati [CodFiscale(pk),……., Nazionalità(fk)] Schema relazionale Impiegati [CodFiscale,……, Nazionalità*]
ATTRIBUTI CHE DESCRIVONO RELAZIONI Utente Utente(pk) Libro Libro(pk) Prende in prestito Utente Utente(pk) Libro Libro(pk) Prestito CodLibro(pk) CodUtente(pk) Data_Inizio Data_Fine Eseguire Trattare
Esercizi. Descrivere graficamente l’associazione Coordinare tra le entità Docente e Classe, il grado, la cardinalità, la direzione e l’esistenza delle relazioni ed inserendo gli attributi alle entità. Descrivere graficamente l’associazione Effettuare tra le entità ContoCorrente e Movimento, il grado, la cardinalità, la direzione e l’esistenza delle relazioni ed inserendo gli attributi alle entità. Proporre e descrivere graficamente associazioni valide tra le entità Artista, Città, Museo e Opera, inserendo gli attributi, una chiave primaria per ogni entità, inoltre il grado, la cardinalità, la direzione e l’esistenza delle relazioni.
REGOLE PRATICHE PER PROGETTARE UN DATABASE Un’ entità è considerata un qualunque oggetto per il quale è necessario salvare alcuni attributi oppure che deve essere rappresentato in un DB. I nomi delle entità da rappresentare devono: essere unici; avere un significato per l’ utente finale; contenere un numero minimo di parole per la descrizione. Gli attributi sono oggetti che descrivono un’ entità. Devono essere atomici, ovvero presentare un singolo fatto o una singola informazione. MATRICI TRA ENTITA’ E ATTRIBUTI Matrice entità – entità: indica le relazioni occorrenti tra le entità selezionate. Matrice entità – attributo: indica l’assegnazione degli attributi alle entità. E’ possibile individuare il tracciato record. A partire dalla matrice e-e si devono individuare le relazioni tra entità e classificarle in termini di: cardinalità, opzionalità, direzione, dipendenza (grado).
LE REGOLE DI LETTURA OGNI + <nome dell’entità di partenza> + { deve ; può } + <nome dell’associazione> + { un solo ; uno o più } + <nome dell’entità di arrivo>. Esempio. Persona Automobile Acquistare Ogni persona può acquistare una o più automobili. Ogni automobile deve essere acquistata da una sola persona. Entità Opzionalità Cardinalità
AFFINARE LO SCHEMA DI BASE Le entità devono partecipare alle relazioni Unificare le relazioni uno a uno: esempio Cittadino – Tessera Sanitaria Semplificare le relazioni molti a molti: sostituirle con un’entità associativa; esempio Utente – Libro. Eliminare le relazioni ridondanti: esempio Città – Nazione – Continente. Trasformare relazioni complesse in relazioni binarie: sostituirle con un’entità associativa, le entità originali vengono relazionate a questa nuova entità. Conoscenza Progetto necessita Impiegato possiede impegna Conoscenza Progetto Impiegato Conos/Impieg/Prog