I DATA BASE:Generalità e schema E/R (appunti NON esaustivi ) Introduzione Con il termine base di dati si indica: 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 gestire (inserire-modificare-eliminare) e 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. 1 - 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 …). 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 2 Relazionale 3) Livello fisico, è l’effettiva installazione degli archivi elettronici, cioè è l’implementazione del livello logico. 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) (Livello CONCETTUALE) Prima di tutto sono individuati i dati che sono significativi, ed è definito lo schema concettuale rappresentativo della realtà (Modello E/R). 2) (Livello LOGICO) Vengono poi definite le strutture logiche di dati che saranno utilizzare da utenti e programmi (tabelle e associazioni) 3) (Livello FISICO)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à, 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 2 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. 3 Prende il nome di chiave primaria (o Identificatore Univoco) 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). 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 . 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. Rappresentazione grafica Schema Concettuale Attributo 1: tipo1 Tipo associazione (cardinalità) Attributo 2: tipo2 Nome Entità 1 1 Nome Associazione Attributo 1: tipo1 N Attributo 2: tipo2 Nome Entità 2 Attributo 3: tipo3 Attributo 1: tipo1 Attributo 2: tipo2 Identificatore UNIVOCO Eventuali attributi associazione 4