Camuso Dot It
accelera il tuo apprendimento
HOME Esercizi Videolezioni
Videoesercizi Links

Tecniche tradizionale di gestione degli archivi

 

DOMANDE (alcuni modi di porre la stessa)

RISPOSTA (TRACCIA)

01 Che cosa si intende per tecniche/strumenti tradizionali di gestione degli archivi? Sono quelle che NON fanno uso di sistemi (D. B. M. S.) specificamente progettati per gestire grosse moli di dati in modo sicuro ed efficiente. Esempi di file tradizionali sono: file sequenziali, tipizzati e binari.
Quali tecniche di gestione degli archivi ha a disposizione il programmatore quando non può o non vuole utilizzare i DBMS?

-

DOMANDE (alcuni modi di porre la stessa)

RISPOSTA (TRACCIA)

02  Ora che sono disponibili i dbms ha ancora senso utilizzare le tecniche/strumenti tradizionali? Perché? Usare le tecniche tradizionali (file e di testo, tipizzati, binari) senza un dbms ha senso in tutte quelle situazioni in cui utilizzare un dbms sarebbe assolutamente sproporzionato e addirittura controproducente. Un dbms, infatti, usa notevoli risorse in termini di RAM, spazio aggiuntivo sui supporti di memorizzazione di massa (per gli indici, per rappresentare le associazioni ecc.), potenza di calcolo (per mantenere aggiornati gli indici durante le operazioni di inserimento, modifica, cancellazione; per assicurare tutti i controlli automatici di integrità, per gestire l'accesso contemporaneo da parte di più utenti al database eccetera). Se non ci sono tutte queste esigenze nulla può battere in velocità ed in compattezza un agile archivio di testo o tipizzato.
È sempre più conveniente utilizzare un dbms invece di un file di testo?
Si impiega meno tempo a leggere un elenco da disco utilizzando un file di testo o ad una tabella di un dbms? Se la lettura deve procedere in modo strettamente sequenziale il file di testo è più veloce (vedi sopra).

 

DOMANDE (alcuni modi di porre la stessa)

RISPOSTA (TRACCIA)

03  Quali sono i punti deboli delle tecniche/strumenti tradizionali di gestione degli archivi? Nota: ciascuno dei punti che seguono è sviluppato con una domanda/risposta a parte.

Ridondanza dei dati che può portare ad una perdita di sincronizzazione di una o più delle copie di un dato con conseguente perdita di consistenza. Dipendenza logica e dall'organizzatore fisica dei dati da parte delle applicazioni. Nessun meccanismo per gestire l'accesso contemporaneo da parte di più utenti ai dati. Nessun meccanismo per garantire l'integrità dei dati. Nessun meccanismo di ripristino automatico ad uno stato consistente delle informazioni dopo un crash di sistema. Scarsa efficienza nelle ricerche in base ad un qualunque campo. Scarsa efficienza nelle operazioni di modifica e cancellazione. Scarsa interoperabilità con altri sistemi software. Nessun meccanismo di protezione logica dei dati. Nessun meccanismo per differenziare i diritti dei diversi utenti che vogliono accedere ai dati. Nessun supporto per l'organizzazione dell'archiviazione e l'accesso in modo distribuito. Nessun meccanismo di pubblicazione dei dati per il Web. Nessun linguaggio specifico per il trattamento dei dati che faciliti le operazioni, logica procedurale/ imperativa con comandi orientati al singolo record che presuppongono per l'utente competenze nell'ambito della programmazione. Per maggiori informazioni riguardo queste problematiche consultate la sezione relativa ai DBMS.

Nota: il che non vuol dire che con le tecniche/strumenti tradizionali non si possono affrontare queste problematiche; la differenza sta nel fatto che il dbms offre a costo zero al programmatore servizi e controlli che diversamente dovrebbero essere programmati tutte le volte che servono dal programmatore stesso (ammesso che abbia le competenze necessarie).
 

Perché sono stati introdotti i dbms?
Quali sono i vantaggi rispetto alle tecniche/strumenti tradizionali introdotti dai dbms? Consentono di azzerare o di ridurre al minimo la ridondanza dei dati. Assicurano l'indipendenza logica e dall'organizzazione fisica dei dati. Hanno meccanismi automatici e sicuri per gestire l'accesso contemporaneo ai dati, l'integrità, il ripristino automatico, efficienza nelle ricerche/modifiche/cancellazione, possibilità di interoperare con altre applicazioni, sistema di gestione dei privilegi a seconda del tipo di utente, capacità di funzionare in rete, comandi per la pubblicazione Web e linguaggi specifici e non procedurali ma dichiarativi per la gestione dei dati con comandi orientati ai set (insiemi) di record.



 

DOMANDE (alcuni modi di porre la stessa)

RISPOSTA (TRACCIA)

04  Che cosa si intende per indipendenza logica nell'ambito dei dbms? Il non essere costretti in molte situazioni a modificare le applicazioni nel caso cambi la struttura logica dei dati: aggiunta di un campo ad una tabella, modifica dell'ampiezza di un campo, stabilire una nuova associazione, togliere in campo ad una tabella.

Con i linguaggi tradizionali (Cobol, pascal, C) la struttura di una tabella, infatti, è descritta direttamente all'interno del file e sorgente. E questo per tutti i file sorgente che utilizzano quella tabella: penso sia abbastanza ovvio che aggiungere o togliere un campo alla struttura comporti la modifica di tutti questi file del sorgente; questo ovviamente non vuol dire essere indipendenti dalla struttura logica degli archivi!
 

 
   


 

DOMANDE (alcuni modi di porre la stessa)

RISPOSTA (TRACCIA)

05  Che cosa si intende per indipendenza fisica dall'hardware? E per indipendenza dall'organizzare fisica? Iniziamo con il dire che si tratta di una domanda trabocchetto... Il rischio è quello di riferire la domanda alla questione dell'indipendenza dall'organizzazione fisica (vedi più avanti) che è, potremmo dire, un livello intermedio tra l'indipendenza logica e l'indipendenza fisica dalla hardware.

Indipendenza dall' hardware significa non essere costretti a riscrivere parte dei programmi quando viene modificata la configurazione hardware del sistema d'elaborazione (ad esempio il supporto di memorizzazione di massa utilizzato). Questo tipo di indipendenza (fisica dall'hardware) non è assicurato grazie al DBMS ma dal sistema operativo sottostante grazie all'utilizzo combinato dei driver e di quel modulo del sistema operativo conosciuto con il nome di file system.

Esiste invece indipendenza dall'organizzazione fisica (del database) quando una modifica alla struttura fisica dei dati non costringe ad apportare modifiche al codice dei nostri programmi. Per struttura fisica si intende come il DBMS sfruttando i servizi del file system organizza i dati sui supporti di memorizzazione di massa. Esempi di modifiche alla struttura fisica: passare dall'utilizzo di record logici (vedi sezione sui supporti fisici) a lunghezza variabile a quella lunghezza fissa,  da files ad accesso sequenziale a files ad accesso diretto, cambiare la tecnica di indicizzazione (vedi domande specifiche sulle tecniche di indicizzazione).
 

 

 

DOMANDE (alcuni modi di porre la stessa)

RISPOSTA (TRACCIA)

06  Che cosa si intende per ridondanza? Quali problemi comporta? Perché affligge più facilmente banche dati gestiti con tecniche/strumenti tradizionali? Per ridondanza si intende la duplicazione di un dato negli archivi. Il caso più semplice, ovviamente, è quello della ripetizione all'interno dello stesso archivio che è però anche il più semplice da tenere sotto controllo (controllo per duplicati durante l'inserimento di un nuovo record).

Le cose si complicano quando la duplicazione coinvolge diversi archivi. Questo avviene di solito perché l'informatizzazione del sistema operativo aziendale avviene in momenti diversi per i vari reparti. Per motivi economici l'introduzione dall'elaboratore elettronico ha inizialmente interessato quei reparti aziendali che maggiormente avrebbero beneficiato dell'informatizzazione (di solito compiti ripetitivi su grandi moli di dati come la fatturazione o la stampa delle buste paga). Solo in un secondo momento lo strumento informatico si è diffuso a 'macchia d'olio'. E nei casi in cui la certa informazione poteva servire sia d'un reparto che ad un altro poteva capitare che un certo archivio venisse duplicato per praticità, scarsa lungimiranza, ignoranza o addirittura pigrizia. Ad esempio l'elenco dei prodotti potrebbe essere presente negli archivi per la gestione del magazzino ma anche della sezione marketing; oppure l'elenco dei clienti potrebbe essere duplicato in alcune delle possibili filiali in cui è stata strutturata l'azienda. Pensate cosa accadrebbe in questo ultimo esempio nel caso cambiasse l'indirizzo di un cliente e solo uno degli archivi venisse correttamente aggiornato: alcune comunicazioni anche molto importanti potrebbero non essere più recapitate al cliente!

I dati non più sincronizzati diventano così incongruenti perdendo così la loro consistenza (non sono cioè più affidabili e quindi inutilizzabili).
 

Che cosa si intende per dato consistente? Che cosa si intende per dati incongruenti?

 

DOMANDE (alcuni modi di porre la stessa)

RISPOSTA (TRACCIA)

07   Che cosa si intende per accesso concorrente alle informazioni? La possibilità da parte di più processi (riconducibili ad applicazioni mandate in esecuzione da uno o più utenti) di accedere in lettura e/o scrittura ad uno stesso record o, al limite, ad uno stesso campo dello stesso record. È chiaro che se non esiste un meccanismo di arbitraggio i dati possono diventare inconsistenti. Pensate infatti al classico esempio della prenotazione dell'ultimo posto per un volo aereo da parte di due agenzie viaggi in contemporanea; se non esistesse nessun controllo e fosse consentito l'accesso contemporaneo alle applicazioni di prenotazione mandate in esecuzione nelle due agenzie ciascuna potrebbe essere convinta di stare prenotando per sé l'ultimo posto rimasto.


 

 

 

DOMANDE (alcuni modi di porre la stessa)

RISPOSTA (TRACCIA)

08   Che cosa si intende per integrità dei dati? L'integrità deve essere intesa sotto un duplice aspetto: quello dell'integrità fisica e quello dell'integrità logica. Il primo aspetto è anche il più facile da capire: un dato è integro dal punto di vista fisico quando il suo valore è stato perfettamente memorizzato ed è recuperabile senza problemi. Minacce all'integrità fisica di un dato sono rappresentate ad esempio da: avarie dei supporti di memorizzazione di massa, errori introdotti durante la trasmissione, parziali registrazioni dovute alla mancanza di alimentazione elettrica, corruzione dei dati legati ad eventi esterni (come forti campi magnetici), sovrapposizione di scritture causate dall'accesso concorrente ai dati non arbitrato (vedi domanda precedente).

Le problematiche legate all'integrità dei dati sono strettamente collegate con quelle della sicurezza, ed in particolare la sicurezza dal punto di vista fisico. Da un punto di vista logico invece sicurezza significa garantire che un dato possa essere letto o modificato solo dai processi con un sufficiente privilegio. L'insieme delle contromisure pensate per garantire la sicurezza fisica vanno sotto il nome di protezione fisica. L'insieme delle contromisure pensate per garantire la sicurezza logica vanno soprannome di protezione logica.

Il secondo aspetto (integrità logica) fa riferimento alla correttezza dei dati che deriva o dalla validità del loro valore (pensiamo ad un campo per memorizzare l'età che non deve poter assumere valori negativi o troppo grandi) o dall'univocità del loro valore (pensiamo al codice identificativo di un prodotto o di un cliente oppure al codice fiscale) o dall'associazione con altri dati (pensiamo al codice numerico che identifica la nazione di un atleta e che cosa succederebbe se questo codice cambiasse e ci dimenticassimo di aggiornare quello dell'atleta...).


 

Che cosa si intende per sicurezza fisica dei dati? E per sicurezza logica? E per protezione fisica/logica?


N o v i t à


Tutte le videolezioni sono ora su youtube (per ricevere notifiche di nuove videolezioni ISCRIVITI al mio canale) VAI su youtube


Mappa cliccabile di tutte le playlist clic qui