Estratto del documento

DBMS

Prodotti software (complessi) disponibili sul mercato; esempi:

DB2

Oracle

SQLServer

MySQL

PostgreSQL

Access

esempi di dimensioni molto grandi

500 Gigabyte (dati transazionali)

10 Terabyte (dati decisionali)

500 Terabyte (dati scientifici)

100 miliardi di record

L'importanza dell'organizzazione nelle basi di dati

L’organizzazione di una base di dati è fondamentale per due motivi principali:

Per garantire alcune proprietà essenziali del sistema.

Per evitare che i dati si trasformino in un insieme caotico di stringhe e numeri

incomprensibili.

Dal punto di vista tecnologico, una base di dati è un insieme di dati gestiti da un

DBMS (Database Management System), ovvero un software che consente di:

Interrogare i dati

Aggiornarli

Scriverli

Garantirne la persistenza

Tra i DBMS più noti ci sono Access, MySQL, PostgreSQL, Oracle, e molti altri.

Questi sistemi sono progettati per gestire grandi quantità di dati in modo efficiente e

sicuro. Caratteristiche fondamentali di una base di dati

Una base di dati ben progettata deve essere:

1. Grande

Le basi di dati devono poter contenere una quantità significativa di informazioni,

soprattutto se supportano attività complesse o se vengono riutilizzate da più sistemi

informativi. Anche se non è una buona pratica, in alcune piccole aziende lo stesso

DBMS viene usato per gestire dati di sistemi informativi diversi.

2. Persistente

La persistenza è cruciale. Immagina di lavorare in banca e perdere tutti i dati delle

operazioni appena spegni il computer: sarebbe un disastro. I dati devono essere:

Memorizzati correttamente

Ritrovabili

Tracciabili

Protetti da corruzione o errori

3. Condivisa

Le basi di dati devono essere accessibili a più unità organizzative, come dipartimenti

aziendali, enti pubblici o università. Questo implica:

Regole di accesso ben definite

Distribuzione controllata delle informazioni

Coordinamento tra utenti e sistemi

Garantendo:

privatezza

affidabilità

efficienza

efficacia

Esempio pratico: dati universitari

Supponiamo di avere una base di dati che contiene informazioni su corsi universitari.

Vediamo nomi come Nicola Mori per Chimica, Mario Bruni per Fisica 1 e Fisica 2, con

orari e aule.

Questi dati possono apparire in più tabelle. Ma se vengono memorizzati in modo

ridondante, cioè duplicati in più punti, si creano problemi:

Disallineamenti: se aggiorniamo un dato in una tabella ma dimentichiamo di

farlo nell’altra.

Spreco di spazio: ogni duplicazione occupa memoria inutile, che su larga scala

può diventare molto costosa.

Ridondanza: un problema da evitare

Se ogni campo occupa anche solo pochi byte, moltiplicato per milioni di record duplicati,

lo spazio consumato diventa enorme. Per questo motivo è essenziale:

Normalizzare i dati

Unificare le informazioni comuni

Evitare duplicazioni attraverso relazioni e strutture ben progettate

Conclusione

Una base di dati non è solo un contenitore di informazioni: è un sistema complesso che

deve essere progettato con attenzione per garantire:

Sicurezza

Efficienza

Accessibilità

Coerenza

Problemi:

Ridondanza: informazioni ripetute. Questo può creare confusione, perché

non si sa quale versione sia quella “giusta” o più aggiornata..

Rischio di incoerenza: le versioni delle informazioni non coincidono:

magari un dato è stato modificato, ma non ovunque.

Se chi analizza i dati è lo stesso che li ha inseriti, può accorgersene subito.

Ma se un altro operatore ci mette mano dopo molto tempo, senza sapere cosa è

successo prima, può fare fatica a capire dove sta l’errore.

Se ci sono due versioni contrastanti, quale si considera

valida?

Quella inserita per prima? Quella più recente?

Se si ha accesso a un log (registro delle modifiche), si può ricostruire la storia.

Ma senza log, si rischia di prendere decisioni basate su dati sbagliati.

Conseguenze

L’incoerenza può portare a errori gravi, soprattutto in contesti dove la precisione è

fondamentale (sanità, contabilità, sicurezza…).

Serve un sistema che:

Eviti la duplicazione inutile.

Tracci ogni modifica.

Permetta di risalire facilmente alla fonte e al momento dell’inserimento.

Soluzioni possibili

Implementare un sistema di versionamento dei dati.

Obbligare l’uso di log automatici.

Limitare l’accesso alla modifica solo a chi ha competenze specifiche.

Introdurre controlli incrociati e verifiche periodiche.

Condivise:

Una base di dati è una risorsa integrata, condivisa fra applicazioni.

Conseguenze autorizzazione

attività diverse su dati condivisi: meccanismi di concorrenza.

Accessi di più utenti ai dati condivisi: controllo della

Privatezza:

Sì possono definire meccanismi di autorizzazione:

l’utente A è autorizzato a leggere tutti i dati e a modificare X

l’utente B è autorizzato a leggere i dati X e a modificare Y

Affidabilità:

(Per le basi di dati):

Resistenza a malfunzionamenti HW e SW.

una base di dati è una risorsa pregiata e quindi deve essere conservata a lungo

termine.

tecnica fondamentale: gestione delle transizioni.

Transazione

Insieme di operazioni da considerare indivisibile (“atomico”), corretto anche in

presenza di concorrenza e con effetti definitivi.

Le transazioni sono: atomiche

Una sequenza di operazioni correlate:

trasferimento di fondi da un conto A ad un conto B: o si fanno il

prelevamento da A e il versamento su B o nessuno dei due

deve essere eseguita per intero o per niente:

o si fanno il prelevamento da A e il versamento su B o nessuno dei due

Le transazioni sono: concorrenti

L'effetto di transazioni concorrenti deve essere coerente

se due assegni emessi sullo stesso conto corrente vengono incassati

contemporaneamente

si deve evitare di trascurarne uno

se due agenzie rischiedono lo stesso posto (libero) su un treno

si deve evitare di assegnarlo due volte

I risultati delle transazioni sono permanenti

La conclusione positiva di una transazione corrisponde ad un impegno (in inglese

commit) a mantenere traccia del risultato in modo definitivo, anche in presenza di

guasti e di esecuzione concorrente

I DBMS debbono essere...efficienti

Cercano di utilizzare al meglio le risorse di spazio di memoria (principale e secondaria)

e tempo (di esecuzione e di risposta)

I DBMS, con tante funzioni, rischiano l'inefficienza e per questo ci sono grandi

investimenti e competizione

L’efficienza è anche il risultato della qualità delle applicazioni

I DBMS debbono essere...efficaci

Cercano di rendere produttive le attività dei loro utilizzatori, offrendo funzionalità

articolate, potenti e flessibili:

il corso è in buona parte dedicato ad illustrare come i DBMS perseguono l'efficacia

se i dati fossero memorizzati esattamente come appaiono nelle tabelle senza una

strutturazione ottimizzata, si rischierebbe una proliferazione di informazioni

duplicate. Questo non solo porta a problemi di spazio, ma rende difficile mantenere

la coerenza in presenza di aggiornamenti multipli, soprattutto quando sistemi

differenti interagiscono senza un controllo centralizzato.

Considerazioni

Verificare la coerenza dei dati memorizzati

Evitare la duplicazione per ridurre sprechi di spazio

Circostanze Speciali

Se si riscontra una duplicazione e incoerenza dei dati, valutare l'adozione di

sistemi di unione e controllo centralizzato per garantire l'integrità dei dati.

Utilizzo del Log nel DBMS

Il concetto di log viene presentato come un sistema di tracciamento fondamentale

per monitorare gli eventi all'interno del DBMS. Il log tiene traccia delle operazioni

eseguite, segnando cosa, quando e da chi è stato effettuato ogni intervento.

Il log permette di ricostruire la sequenza delle operazioni sul database, facilitando

l'individuazione e la correzione degli errori, specialmente quando questi emergono in

momenti successivi all'operazione originale.

Quindi viene utilizzato per monitorare e verificare le modifiche e per accedere

regolarmente al log per identificare eventuali discrepanze

Se l'accesso al log non è disponibile, diventa difficile risalire agli errori e potrebbe

essere necessario implementare soluzioni alternative di tracciamento.

Atomicità, Commit e Rollback nelle Transazioni

Viene evidenziato il concetto di atomicità nelle transazioni, che garantisce che un

insieme di operazioni venga eseguito come un'unica unità indivisibile. Questo

meccanismo si basa sui comandi commit e rollback per confermare o annullare

l'operazione in caso di errori.

Punti chiave

Atomicità delle operazioni

Commit per rendere definitive le modifiche

Rollback per annullare operazioni incomplete

Gestione della concorrenza tra processi

Spiegazione

Si è discusso dell'esempio del trasferimento fondi su conti bancari, in cui se due

operazioni si sovrappongono, si potrebbe verificare un prelievo errato se la

transazione non fosse atomica. Il DBMS blocca l'accesso degli altri processi fino al

completamento della transazione, garantendo così l'integrità dell'operazione.

Considerazioni

Garantire che le transazioni siano completate integralmente

Verificare il meccanismo di commit per rendere definitive le modifiche

Circostanze Speciali

Se operazioni concorrenti tentano di modificare lo stesso dato, il sistema deve

garantire il blocco fino al completamento della transazione per evitare errori.

Efficienza e Ottimizzazione nella Gestione del Database

È importante l'efficienza nei DBMS, sia in termini di tempo di risposta che di utilizzo

dello spazio di archiviazione. Vengono citate tecniche come il caching e strumenti di

compattazione dei dati per ottimizzare le prestazioni.

Punti chiave

Caching per memorizzare in memoria centrale le informazioni più richieste

Ottimizzazione dello spazio attraverso la compattazione dei dati

Gestione rapida degli accessi multipli

Spiegazione

Per evitare ritardi e inefficienze quando più utenti accedono contemporaneamente al

database, il DBMS implementa meccanismi che migliorano le performance

complessive. Questi includono tecniche di caching e tool specifici per ottimizzare la

memorizzazione dei dati, garantendo tempi di accesso accettabili anche in sistemi di

grandi dimensioni.

Considerazioni

Monitorare le performance e il tempo di risposta del DBMS

Implementare sistemi di caching per ridurre i tempi di accesso

Circostanze

Anteprima
Vedrai una selezione di 5 pagine su 16
Basi di dati  Pag. 1 Basi di dati  Pag. 2
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Basi di dati  Pag. 6
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Basi di dati  Pag. 11
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Basi di dati  Pag. 16
1 su 16
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher giada180407 di informazioni apprese con la frequenza delle lezioni di Basi di dati e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Messina o del prof Villari Massimo.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community