Indipendenza dei dati in DBMS: fisica e logica con esempi
โก Riepilogo intelligente
L'indipendenza dei dati รจ una proprietร dei DBMS che consente di modificare lo schema a un livello senza imporre una modifica al livello superiore. Si presenta in due forme, fisica e logica, e mantiene i dati separati dai programmi che li utilizzano.

Che cos'รจ l'indipendenza dei dati in un DBMS?
L'indipendenza dei dati รจ definita come una proprietร dei DBMS che consente di modificare lo schema del database a un livello senza dover modificare lo schema al livello superiore. L'indipendenza dei dati permette di mantenere i dati separati da tutti i programmi che li utilizzano.
ร possibile utilizzare questi dati memorizzati per l'elaborazione e la presentazione. In molti sistemi, l'indipendenza dei dati รจ una funzione essenziale per i componenti del sistema.
Tipi di indipendenza dei dati
In DBMS Esistono due tipi di indipendenza dei dati:
- Indipendenza dei dati fisici.
- Indipendenza logica dei dati.
Entrambi i tipi si basano sulla struttura a livelli di un database, quindi รจ utile esaminare prima questi livelli.
Livelli di un database
Prima di approfondire il concetto di indipendenza dei dati, รจ importante ripassare i livelli del database. Il database รจ strutturato su tre livelli, come illustrato nel diagramma seguente:
- Fisico/Interno
- Concettuale
- Esterno

Questi sono gli stessi strati descritti in dettaglio sotto Schemi DBMSConsideriamo come esempio un database universitario. Ai diversi livelli, l'implementazione si presenta in questo modo:
| Tipo di schema | Implementazione/Attuazione |
|---|---|
| Schema esterno |
Vista 1: Informazioni sul corso (cid:int, cname:string) Vista 2: student_info(id:int, name:string) |
| Schema concettuale |
Students(id: int, name: string, login: string, age: integer) Courses(id: int, cname: string, credits: integer) Enrolled(id: int, grade: string) |
| Schema fisico |
|
Indipendenza dai dati fisici
L'indipendenza dei dati fisici consente di separare il livello concettuale da quello interno o fisico. Permette di fornire una descrizione logica del database senza la necessitร di specificare le strutture fisiche. Rispetto all'indipendenza logica, l'indipendenza dei dati fisici รจ piรน facile da ottenere.
Con l'indipendenza fisica, รจ possibile modificare le strutture o i dispositivi di archiviazione fisica senza alcun effetto sullo schema concettuale. Qualsiasi modifica apportata viene assorbita dalla mappa.ping tra il livello concettuale e quello interno. L'indipendenza dei dati fisici รจ garantita dalla presenza del livello interno del database e dalla trasformazione dal livello concettuale al livello interno.
Esempi di modifiche in base all'indipendenza dei dati fisici
Grazie all'indipendenza fisica, nessuna delle modifiche seguenti influirร sul livello concettuale:
- Utilizzo di un nuovo dispositivo di archiviazione come un disco rigido o un nastro magnetico.
- Modifica della tecnica di organizzazione dei file nel database.
- Passaggio a diverse strutture dati.
- Modifica del metodo di accesso.
- Modifica degli indici.
- Modifiche alle tecniche di compressione o algoritmi di hashing.
- Modificare la posizione del database, ad esempio dall'unitร C all'unitร D.
Indipendenza dei dati logici
L'indipendenza logica dei dati รจ la capacitร di modificare lo schema concettuale senza modificare:
- Viste esterne.
- API o programmi esterni.
Qualsiasi modifica apportata viene assorbita dalla mappaping tra il livello esterno e quello concettuale. Rispetto all'indipendenza dei dati fisici, raggiungere l'indipendenza dei dati logici รจ una sfida.
Esempi di modifiche in base all'indipendenza logica dei dati
Grazie all'indipendenza logica, nessuna delle modifiche seguenti influirร sul livello esterno:
- ร possibile aggiungere, modificare o eliminare un nuovo attributo, entitร o relazione senza dover riscrivere i programmi applicativi esistenti.
- Unire due record in uno solo.
- Suddividere un record esistente in due o piรน record.
Differenza tra indipendenza dei dati fisici e logici
| Indipendenza dei dati logici | Indipendenza dai dati fisici |
|---|---|
| Si occupa principalmente della struttura o della modifica della definizione dei dati. | Principalmente interessato alla memorizzazione dei dati. |
| Difficile, poichรฉ il recupero dei dati dipende principalmente dalla struttura logica. | Facile da recuperare. |
| Rispetto all'indipendenza fisica, รจ difficile da raggiungere. | Rispetto all'indipendenza logica, รจ facile da raggiungere. |
| Se si aggiungono o si eliminano nuovi campi, รจ necessario apportare modifiche al programma applicativo. | Una modifica a livello fisico di solito non richiede una modifica a livello del programma applicativo. |
| La modifica a livello logico รจ significativa ogni qualvolta vengono modificate le strutture logiche del database. | Potrebbero essere necessarie o meno modifiche a livello interno per migliorare le prestazioni. |
| Riguarda lo schema concettuale. | Riguarda lo schema interno. |
| Esempio: aggiungere, modificare o eliminare un nuovo attributo. | Esempio: modifiche alle tecniche di compressione, agli algoritmi di hashing, ai dispositivi di archiviazione, ecc. |
Importanza dell'indipendenza dei dati
- Ti aiuta a migliorare la qualitร dei dati.
- Rende piรน conveniente la manutenzione dei sistemi di database.
- Applica gli standard e migliora la sicurezza dei database.
- Non รจ necessario modificare le strutture dati nei programmi applicativi.
- Consente agli sviluppatori di concentrarsi sulla struttura generale del database piuttosto che sull'implementazione interna.
- Riduce notevolmente le incongruenze del database.
- Consente di apportare modifiche a livello fisico per migliorare le prestazioni del sistema.
