I DATA BASE:Generalità e schema E/R (appunti NON esaustivi ) Introduzione Con il termine basi di dati s’indicano un insieme di archivi di dati organizzati con l’obiettivo di raggiungere una grande efficienza nel trattamento e nel ritrovamento dei dati ovvero la possibilità di ritrovare facilmente le informazioni desiderate, attraverso criteri di ricerca diversi. Deve essere anche garantita la consistenza degli archivi, cioè, i dati devono essere significativi (…) ed utilizzabili (Es: i dati relativi agli importi una fattura (conto corrente, proprietà ....)devono poter essere collegati al relativo cliente (correntista, padrone ...) ). I dati contenuti nei database devono quindi, essere protetti da manomissioni, danni e perdite. La sicurezza significa impedire che il database sia danneggiato da interventi accidentali o non autorizzati; L’integrità significa garantire che le operazioni effettuate da altri utenti autorizzati non provochino una perdita di consistenza ai dati. Per la creazione e gestione dei database esistono degli applicativi appositi detti DBMS (Data Base Management System). Bisogna, però, fare una precisazione tra diverse figure che utilizzano i database: Gli utenti finali del database, che utilizzano le informazioni contenute negli archivi; Gli amministratori del database (DBA) si occupano della progettazione e della manutenzione degli archivi. Inoltre precisiamo che: Il database è formato dall’insieme degli archivi; Il DBMS è il sistema informatico con cui si può gestire un database. Limiti nell’organizzazione tradizionale degli archivi (cartacei realizzati tramite File ) e loro superamento Le tecniche di gestione delle basi di dati nascono per superare i problemi e i limiti che nascono nelle tradizionali organizzazioni degli archivi in modo non integrato. Il problema principale di un archivio è la ridondanza. La ridondanza dei dati si ha quando questi sono “copiati” più volte all’interno dell’archivio (o di più archivi). Questa può provocare diversi problemi: - L’incongruenza, cioè il mancato aggiornamento di tutti i dati (copie di dati), contenuti negli archivi; - L’inefficienza dei dati, cioè i dati aziendali non sono più affidabili. Fra i limiti individuati nell’organizzazione tradizionale ricordiamo: - I programmi sono legati agli archivi che essi gestiscono, al variare della struttura di un archivio devono variare i programmi che lo utilizzano; - Alcuni dati presenti più volte in archivi diversi come campi di record diversi: si ha ridondanza; - L’accesso ai dati è determinato dal tipo di organizzazione assegnata agli archivi, dalle chiavi e dall’ordine con cui i campi compaiono all’interno del record. - Ogni programma che modifica i dati di un file si deve occupare di controllare la validità dei dati immessi Per eliminare questo problema si utilizzano delle tecniche, che servono appunto a creare delle relazioni tra i vari record in modo da non dover “duplicare” l’informazione (utilizzo di chiavi primarie …). 1 La nuova tipologia di gestione dei database presenta le seguenti caratteristiche fondamentali: Indipendenza dalla struttura fisica dei dati, i programmi applicativi sono indipendenti dei dati fisici; Indipendenza dalla struttura logica dei dati, i programmi applicativi sono indipendenti dalla struttura logica; Utilizzo da parte di più utenti, i dati organizzati in un unico database possono essere utilizzati più utenti e la multiutenza (accesso contemporaneo) è gestita dal DBMC Eliminazione della ridondanza, gli stessi dati non compaiono più volte in archivi diversi; Eliminazione della inconsistenza, i database non può presentare campi uguali con valori diversi in archivi diversi; Facilità di accesso; Integrità dei dati, controlli per evitare anomalie dei dati; Sicurezza dei dati, procedure per impedire l’accesso non autorizzato; Uso di linguaggi per la gestione del database, attraverso comandi per la manipolazione e l’interrogazione alla base dati. La progettazione del database I contenuti dei database rappresentano i dati della realtà da modellare. Modellare i dati significa costruire una rappresentazione semplificata della realtà osservata, individuandone gli elementi caratterizzati e i legami intercorrenti tra loro. La progettazione di un database avviene su 3 livelli: 1) Livello concettuale, rappresenta la realtà dei dati attraverso un modello chiamato Il modello concettuale: E’ definito attraverso uno schema dei dati; questa rappresentazione grafica è indipendente da: o I valori che saranno assegnati ai dati; o Le applicazioni degli utenti del database; o (Le visioni parziali dei dati da parte di particolari utenti.) Questo metodo consente al database di evolvere nel tempo insieme alla realtà per la quale è stato progettato e creato. Il modello concettuale rappresenta un patrimonio importante per le aziende, poiché descrive i tutti dati esistenti in azienda. 2) Livello logico, descrive la composizione ed il formato dei dati nel loro aspetto di struttura logica di dati attraverso il Il modello logico: Nel passaggio dal modello concettuale al modello logico l’insieme dei dati è dotato di una struttura che deve facilitarne: o La manipolazione dei dati; o L’interrogazione, la possibilità di ritrovare i dati. in pratica programmatori e/o utenti finali utilizzano (creano, vedono, modificano) i dati secondo il modello logico. Esistono 3 tipi di modelli logici: Gerarchico Reticolare Relazionale 3) Livello fisico, è l’effettiva installazione degli archivi elettronici, cioè è l’implementazione del livello logico. 2 Le strutture del modello logico sono implementate selle memorie di massa realizzando in pratica il modello fisico della base di dati (di cui il programmatore e l’utente finale possono totalmente disinteressarsi). L’attività di progettazione consente prima di tutto di costruire una rappresentazione della realtà in modo indipendente dalla struttura dei dati. Riassumendo: 1) Prima di tutto sono individuati i dati che sono significativi, ed è definito lo schema concettuale rappresentativo della realtà (Modello E/R). 2) Vengono poi definite le strutture logiche di dati che saranno utilizzare da utenti e programmi (tabelle e associazioni) 3) infine tali strutture sono implementate (automaticamente dal DBMS) memorizzandole su un supporto fisico di registrazione e si ottiene, quindi, il database. LIVELLO CONCETTUALE: Il modello entità/associazioni Il modello entità/associazioni (entity/relationship) è uno strumento per analizzare le caratteristiche di una realtà in modo indipendente dagli eventi che in essa accadono, per costruire un modello concettuale dei dati. Risultato di questo lavoro di analisi è la rappresentazione grafica detta schema E/R, che mette in evidenza gli aspetti fondamentali del modello concettuale con i dati caratterizzanti e le associazioni tra essi. Gli elementi di un modello E/R sono: - Entità - Attributi - Associazioni L’entità è un oggetto che ha un significato anche quando è considerato in modo isolato ed è di interesse per la realtà che si vuole modellare; Le entità si classificano definendone il tipo di entità attraverso un nome. Le istanze sono i singoli elementi che appartengono ad un'unica entità. Per esempio: gli studenti di una scuola sono racchiusi tutti nell’entità Studenti. La rappresentazione grafica dell’entità è identificata da un rettangolo. L’associazione è un legame che stabilisce un’interazione tra le entità. Ogni associazione ha 2 versi con specifici significati diversi. La rappresentazione grafica dell’associazione è identificata da una linea. Gli attributi rappresentano le proprietà delle entità e talvolta delle associazioni. Le caratteristiche di ogni attributi sono: - Il formato, il tipo di valore che assume; - l’opzionalità, la possibilità di non essere inserito. Il valore nullo rappresenta un’informazione mancante. L’insieme dei possibili valori assunti da un attributo si chiama dominio dell’attributo. Prende il nome di chiave primaria l’insieme di uno o più attributi, che consentono di distinguere un’istanza dall’altra per la stessa entità (identificano in maniera univoca l’istanza) . La rappresentazione grafica delle chiavi primarie è costituita dal post-fisso “PK” per tutti gli attributi o dalla sottolineatura dell’ (degli) attributo (i). 3 Le associazioni tra entità Un’associazione può essere obbligatoria (deve essere sempre presente), oppure opzionale (può non essere presente). La rappresentazione grafica dell’associazione obbligatoria è una linea continua, invece, per quella opzionale la linea è tratteggiata. Il grado di un verso dell’associazione è la caratteristica che indica quante istanze dell’entità di arrivo si associano all’istanza dell’entità di partenza. Il grado può essere possono essere di 3 tipi: 1) Associazione 1:N (uno a molti) o semplice ad un elemento di E1 corrispondono più elementi di E2, mentre, ad ogni elemento di E2 corrisponde un e un solo elemento dell’insieme E1. 2) Associazione 1:1 (uno a uno) o biunivoca; ad ogni elemento dell’insieme E1 corrisponde uno e un solo elemento dell’insieme E2 3) Associazione N:N (molti a molti) o complessa; ad ogni elemento dell’insieme E1 possono corrispondere più elementi dell’insieme E2 e viceversa. Le associazioni molti a molti sono poco pratiche, perciò sono scomposte in più associazioni uno a molti. Rappresentazione grafica Schema Concettuale Tipo (cardinalità) associazione Nome Entità 1 Attributo 1: tipo1 Attributo 2 :tipo2 Attributo 3 .tipo3 1 Nome Associazione N Nome Entità 2 Attributo 1: tipo1 Attributo 2 :tipo2 Attributo 1: tipo1 Attributo 2 :tipo2 Eventuali attributi associazione 4