INDIPENDENZA LOGICA E FISICA DEI DATABASE Nell' organizzazione dei database possiamo dunque evidenziare tre livelli di astrazione: LIVELLO INTERNO(->SCHEMA INTERNO) : rappresenta la descrizione fisica delle strutture degli archivi, orientato a valutazione di carattere tecnico ed economico, tecnologia hardware e software. LIVELLO LOGICO/CONCETTUALE(->SCHEMA LOGICO/CONCETTUALE): a cui fanno riferimento l' analisi concettuale e quella logica dei dati. LIVELLO ESTERNO(->SOTTOSCHEMI o VISTE) : è detto anche livello applicativo e descrive come i dati sono visti dalle applicazioni e degli utenti,differenti utenti possono avere differenti visioni a seconda dell' uso e delle autorizzazioni. Proprio in virtù di questa suddivisione progettuale i DATABASE, con particolare riferimento ai db relazionali,godono di due potentissime proprietà Indipendenza fisica dei dati significa che l'amministratore del database può modificare lo schema fisico del database senza alterare lo schema logico o le viste. L'unica dichiarazione che può essere modificata è quella relativa alle corrispondenze esistenti tra il livello fisico ed il livello logico. L'organizzazione fisica di un database è di norma modificata in modo da migliorare l'efficienza dei programmi applicativi; l'indipendenza fisica dei dati permette di modificare lo schema fisico senza riscrivere i programmi applicativi, in quanto questi fanno riferimento allo schema logico del database, essa consente quindi di eseguire i programmi applicativi come se niente fosse cambiato. L'Indipendenza logica dei dati consiste nella possibilità di cambiare lo schema logico senza modificare le viste degli utenti. L'indipendenza logica dei dati permette di effettuare, in gran parte dei casi, delle modifiche nello schema logico del database senza richiedere alcun cambiamento nelle viste interessate. L'unico caso di cambiamento dello schema che richieda anche modifiche nella vista di utente consiste nella cancellazione di informazioni che corrispondano ad informazioni presenti nella vista. Si osservi che, necessariamente, ogni modifica fatta a livello logico comporterà delle modifiche a livello fisico. LIVELLO ESTERNO (utenti e programmi) DML DCL DDL esterno LIVELLO LOGICO/CONCETTUALE DDL Indipendenza logica Indipendenza fisica LIVELLO FISICO DMCL DML ... Data Definition Language DCL ... Data Control Language DML ... Data Manipulation Language DMCL ... Device Media Control Language, linguaggio per la gestione dei dati su disco. Definisce la corrispondenza tra lo schema e le strutture fisiche di memorizzazione. Può essere un sottoinsieme del DDL. DCL: Fornisce e revoca agli utenti i permessi necessari per poter usare i comandi DDL e DML. Es.: Create user, Drop User, Set Password, Grant ( per fornire uno o più permessi ad un utente su un oggetto- es. tabella- del DB), Revoke(per revocare uno o più permessi ad un determinato utente). DDL: Create Database, Alter Database (non esiste standard sql), Drop Database, Create Table, Drop Table, Create Index, Drop Index Alter table + add + modify + drop DDL esterno: Definisce i sottoschemi o viste. DML: Select Insert, Update, Delete, Begin Transition, Commit, Rollback Transazione: blocco di istruzioni strettamente correlate tra loro. Se si verifica un errore non verrà annullata solo l' ultima istruzione, ma l' intera transazione. In tal modo l' integrità dei dati sarà garantita.