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 Indipendenza fisica, puoi facilmente modificare le strutture o i dispositivi di archiviazione fisica con un effetto sullo schema concettuale. Qualsiasi cambiamento apportato verrebbe assorbito dalla mappatura tra il livello concettuale e quello interno. L'indipendenza fisica dei dati è ottenuta dalla presenza del livello interno del database e quindi dalla 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 cambiamento apportato verrà assorbito dalla mappatura tra il livello esterno e quello 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.
Sommario
- 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