Indipendenza dei dati in DBMS: fisica e logica con esempi
Cos'รจ l'indipendenza dei dati del DBMS?
L'indipendenza dei dati รจ definita come una proprietร del DBMS che consente di modificare lo schema del database a un livello di un sistema di database senza dover modificare lo schema al livello successivo superiore. L'indipendenza dei dati ti aiuta a mantenere i dati separati da tutti i programmi che ne fanno uso.
ร 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 fisica dai dati
- Indipendenza logica dei dati.
Livelli di database
Prima di apprendere l'indipendenza dei dati, รจ importante un ripasso sui livelli di database. Il database ha 3 livelli come mostrato nello schema seguente
- Fisico/Interno
- Concettuale
- Esterno

Considera un esempio di un database universitario. Ai diversi livelli ecco come apparirร lโimplementazione:
| Tipo di schema | Implementazione/Attuazione |
|---|---|
| Schema esterno |
Vista 1: Informazioni sul corso(cid:int,cname:string) Vista 2: studeninfo(id:int. nome:stringa) |
| Shema 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 fisica dei dati aiuta a separare i livelli concettuali dai livelli interni/fisici. Consente di fornire una descrizione logica del database senza la necessitร di specificare strutture fisiche. Rispetto all'indipendenza logica, รจ facile ottenere l'indipendenza fisica dei dati.
Con l'indipendenza fisica, รจ possibile modificare facilmente le strutture o i dispositivi di archiviazione fisica senza che ciรฒ influisca sullo schema concettuale. Qualsiasi modifica apportata verrebbe assorbita dalla mappa.ping tra il livello concettuale e quello interno. L'indipendenza dei dati fisici si ottiene grazie alla presenza del livello interno del database e alla successiva trasformazione dal livello concettuale del database al livello interno.
Esempi di modifiche in Indipendenza dei dati fisici
A causa dell'indipendenza fisica, nessuna delle modifiche seguenti non influirร sul livello concettuale.
- Utilizzando un nuovo dispositivo di archiviazione come disco rigido o nastri magnetici
- Modificare la 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 agli algoritmi di hashing.
- Modifica della 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 cambiare
- Viste esterne
- API o programmi esterni
Qualsiasi modifica apportata verrร assorbita dalla mappaping tra livello esterno e livello concettuale.
Rispetto allโindipendenza dei dati fisici, รจ difficile raggiungere lโindipendenza logica dei dati.
Esempi di modifiche in Indipendenza dei dati logici
A causa dell'indipendenza logica, nessuna delle modifiche seguenti non influirร sullo strato esterno.
- ร possibile aggiungere/modificare/eliminare un nuovo attributo, entitร o relazione senza riscrivere i programmi applicativi esistenti
- Unione di due record in uno solo
- Suddivisione di un record esistente in due o piรน record
Differenza tra indipendenza dei dati fisici e logici
| Logica Indipendenza dai dati | Indipendenza dai dati fisici |
|---|---|
| L'indipendenza logica dei dati riguarda principalmente la struttura o la modifica della definizione dei dati. | Principalmente interessato alla memorizzazione dei dati. |
| ร difficile poichรฉ il recupero dei dati dipende principalmente dalla struttura logica dei dati. | ร facile da recuperare. |
| Rispetto all'indipendenza logica fisica รจ difficile ottenere l'indipendenza logica dei dati. | Rispetto all'indipendenza logica รจ facile ottenere l'indipendenza fisica dei dati. |
| ร necessario apportare modifiche nel programma applicativo se vengono aggiunti o eliminati nuovi campi dal database. | Un cambiamento a livello fisico di solito non richiede cambiamenti a livello del programma applicativo. |
| La modifica a livello logico รจ significativa ogni volta che vengono modificate le strutture logiche del database. | Le modifiche apportate ai livelli interni potrebbero essere necessarie o meno per migliorare le prestazioni della struttura. |
| Preoccupato per lo schema concettuale | Preoccupato per lo schema interno |
| Esempio: Aggiungi/Modifica/Elimina un nuovo attributo | Esempio: modifica delle tecniche di compressione, algoritmi di hashing, dispositivi di archiviazione, ecc |
Importanza dell'indipendenza dei dati
- Ti aiuta a migliorare la qualitร dei dati
- La manutenzione del sistema di database diventa conveniente
- Applicazione degli standard e miglioramento della sicurezza dei database
- Non รจ necessario alterare la struttura dei dati nei programmi applicativi
- Permetti agli sviluppatori di concentrarsi sulla struttura generale del database invece di preoccuparsi dell'implementazione interna
- Ti permette di migliorare lo stato integro o indiviso
- L'incongruenza del database รจ notevolmente ridotta.
- Apportare facilmente modifiche a livello fisico รจ necessario per migliorare le prestazioni del sistema.
Sintesi
- Data Independence รจ una proprietร di DBMS che ti aiuta a cambiare il Schema del database a un livello di un sistema di database senza richiedere la modifica dello schema al livello successivo superiore.
- Due livelli di indipendenza dei dati sono 1) Fisico e 2) Logico
- L'indipendenza fisica dei dati aiuta a separare i livelli concettuali dai livelli interni/fisici
- L'indipendenza logica dei dati รจ la capacitร di modificare lo schema concettuale senza cambiare
- Rispetto allโindipendenza dei dati fisici, รจ difficile raggiungere lโindipendenza logica dei dati
- Data Independence Ti aiuta a migliorare la qualitร dei dati
