Sistema di gestione di basi di dati                      Data Base Management System — DBMSSistema (prodotto software) in ...
‐   La condivisione richiede un opportuno coordinamento degli accessi: controllo della       concorrenza.   Efficienza   ...
Moduli componenti un DBMSUn DBMS è quindi un sistema software complesso. Vediamo ora i tipi di componenti software chelo c...
quelle dei programmatori applicativi che utilizzano linguaggi ospite e quelle degli utenti non espertiche immettono dati s...
separatamente i sottosistemi di controllo della concorrenza e di backup/recovery. Essi sonointegrati nel processore runtim...
Upcoming SlideShare
Loading in...5
×

Dbms

595

Published on

B.2.4.2 Illustrare i componenti di un DBMS: programmi e tipi di dati

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
595
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Dbms

  1. 1. Sistema di gestione di basi di dati Data Base Management System — DBMSSistema (prodotto software) in grado di gestire collezioni di dati che siano (anche) : ‐ Grandi ( di dimensioni molto maggiori della memoria centrale dei sistemi di calcolo utilizzati) ‐ Persistenti (con un periodo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano) ‐ Condivise (utilizzate da applicazioni diverse) Garantendo : ‐ Affidabilità (resistenza a malfunzionamenti hardware e software) ‐ Privatezza (con una disciplina e controllo degli accessi) ‐ Efficienza (utilizzo al meglio delle risorse di spazio e tempo del sistema) ‐ Efficacia (rendere produttive le attività dei suoi utilizzatori) Base di dati gestita dal DBMS Il DBMS è l’unico responsabile della gestione della base di dati: i dati sono accessibili all’esterno solo tramite il DBMSCondivisione ‐ A ciascun settore o attività del sistema organizzativo corrisponde un (sotto-)sistema informativo, ed è comune che esistano sovrapposizioni fra i dati di interesse dei vari settori. ‐ Una base di dati è una risorsa integrata, condivisa fra i vari settori. L’integrazione e la condivisione permettono di ridurre la ridondanza(evitando ripetizioni) e, di conseguenza, le possibilità di incoerenza (o inconsistenza) fra i dati. ‐ Poiché la condivisione non è mai completa (o comunque non opportuna) i DBMS prevedono meccanismi di definizione della privatezza dei dati e di limitazioni all’accesso (autorizzazioni).
  2. 2. ‐ La condivisione richiede un opportuno coordinamento degli accessi: controllo della concorrenza. Efficienza  Si misura (come in tutti i sistemi informatici) in termini di tempo di esecuzione(tempo di elaborazione) e spazio di memoria(principale e secondaria).  L’efficienza è il risultato della qualità del DBMS e delle applicazioni che lo utilizzano.  I DBMS, a causa della varietà di funzioni, non sono necessariamente più efficienti dei file system.Catalogo o Dizionario dei datiNei DBMS esiste una porzione della base di dati (il catalogo o dizionario ) che contiene unadescrizione centralizzata dei dati che può essere utilizzata dai vari programmi.Contiene informazioni che riguardano: ‐ data : nomi delle tabelle, nomi degli attributi, lunghezza degli attributi, numero di record in ogni tabella ‐ relationship: legami tra dati e transazioni per la determinazione di quali transazioni sono coinvolte se ad esempio alcune definizioni dei dati vengono modificate ‐ contraints (vincoli) sui dati ad esempio il range dei valori permessi ‐ informazioni dettagliate del database fisico e della memoria, percorsi per l’accesso , file e lunghezza dei record ‐ autorizzazione agli accessi : permessi e diritti d’accesso ‐ statistiche sull’utilizzoImportanza del dizionarioè importante per 2 motivi: ‐ migliorare il controllo del DBA sulle informazioni ‐ aiuto nella documentazione del disegno del database, di ogni fase e decisione ‐ aiuto nella produzione di report di dati utilizzati ‐ promuove l’indipendenza dei dati ad es in caso di aggiunta o modifica delle strutture nel database i programmi non devono essere modificati
  3. 3. Moduli componenti un DBMSUn DBMS è quindi un sistema software complesso. Vediamo ora i tipi di componenti software chelo costituiscono e i tipi di software di sistema con cui il DBMS interagisce.Nella Figura sono illustrati, in forma semplificata, i tipici componenti di un DBMS. La figura è divisain due parti. La parte superiore rappresenta le varie tipologie di utenti di un sistema di basi di dati ele rispettive interfacce. La parte inferiore mostra i componenti interni di un DBMS, responsabilidella memorizzazione dei dati e dell’esecuzione delle transazioni.La base di dati e il catalogo del sono solitamente memorizzati su disco. L’accesso al disco ècontrollato essenzialmente dal sistema operativo, che ne pianifica l’input/output.Un gestore dei dati memorizzati, modulo del DBMS a più alto livello, controlla l’accesso alleinformazioni del DMBS memorizzate su disco, siano esse parte della base di dati o del catalogo. Analizziamo dapprima la parte della figura, che mostra le interfacce per l’amministratore (DBA),quelle degli utenti occasionali che lavorano con interfacce interattive per formulare interrogazioni,
  4. 4. quelle dei programmatori applicativi che utilizzano linguaggi ospite e quelle degli utenti non espertiche immettono dati sotto forma di parametri di transazioni predefinite. Lo staff di amministrazionelavora alla definizione della base di dati e alla sua manutenzione, modificando le definizioni permezzo del linguaggio DDL e di altri comandi privilegiati.Il compilatore DDL elabora definizioni di schema, specificate nel DDL, e memorizza descrizionidegli schemi (metadati) nel catalogo del DBMS. Il catalogo include informazioni come i nomi e ledimensioni dei file, i nomi e i tipi di dato delle voci, i dettagli di memorizzazione di ciascun file,informazioni sul mapping tra i vari schemi e vincoli, oltre a molti altri tipi di informazioni necessari aimoduli del DBMS. I moduli software del DBMS cercano, dunque, le informazioni di catalogoquando ne hanno bisogno.Utenti occasionali e soggetti che necessitano saltuariamente di estrarre informazioni dalla base didati utilizzano delle tipologie d’interfaccia che nella figura sono chiamate interfacce perinterrogazioni interattive.Non sono esplicitamente rappresentate interazioni basate su menu o form che possono generarel’interrogazione interattiva in modo automatico. Queste interrogazioni vengono trasformate in unaforma interna dal compilatore delle interrogazioni che le scompone e ne verifica la correttezzadelle operazioni rispetto al modello, ai nomi degli elementi e così via. Tale interrogazione internaviene poi ottimizzata dall’ottimizzatore delle interrogazioni. Tra l’altro, l’ottimizzatore delleinterrogazioni si occupa di riorganizzare ed eventualmente di riordinare le operazioni, eliminare leridondanze e utilizzare gli algoritmi e gli indici opportuni durante l’esecuzione. L’ottimizzatore delleinterrogazioni consulta il catalogo per ottenere informazioni statistiche e altre informazioni relativealla memorizzazione fisica dei dati, e infine genera il codice eseguibile che compie le operazioninecessarie all’interrogazione e le chiamate al processore runtime della base di dati.I programmatori applicativi scrivono programmi in linguaggi ospite come ad esempio Java vb, poipassati a un precompilatore.Il precompilatore estrae comandi DML da un programma applicativo scritto in un linguaggioospite di programmazione. Questi comandi sono inviati al compilatore DML per la compilazione incodice oggetto per l’accesso alla base di dati. Il resto del programma è inviato al compilatore dellinguaggio ospite. Quindi il codice oggetto per i comandi DML e quello per il resto del programmasono messi in collegamento (linked), formando una transazione standard il cui codice eseguibileinclude chiamate al processore di esecuzione della base di dati. Queste transazioni predefinitesono di grande utilità per gli utenti non esperti che devono semplicemente fornire i parametri delletransazioni per fare in modo che queste vengano eseguite ripetutamente come transazioniseparate. Ne è un esempio la transazione di prelievo da conto corrente bancario in cui il numero diconto e l’importo possono essere forniti come parametri.Nella parte inferiore della Figura è rappresentato il processore runtime della base di dati che sioccupa di eseguire1) i comandi privilegiati,2) i piani di esecuzione delle interrogazioni e3) le transazioni parametriche predefinite con specifici parametri. Il processore interagisce con il dizionario di sistema su cui può intervenire aggiornando lestatistiche. Interagisce con il gestore dei dati memorizzati, il quale a sua volta usa i servizi di basedel sistema operativo per realizzare operazioni di input/output di basso livello fra il disco e lamemoria principale. Si occupa degli altri aspetti relativi al trasferimento dati come la gestione deibuffer in memoria principale. Alcuni DBMS possiedono il proprio modulo di gestione dei buffer,mentre altri sfruttano le funzionalità del sistema operativo. In questa figura abbiamo rappresentato
  5. 5. separatamente i sottosistemi di controllo della concorrenza e di backup/recovery. Essi sonointegrati nel processore runtime della base di dati per scopi di gestione delle transazioni.Oggigiorno è prassi comune che il programma client che accede al DBMS venga eseguito su uncalcolatore diverso da quello su cui si trova la base di dati.Il primo è chiamato client e il secondo server della base di dati. In alcuni casi il client accede a un calcolatore intermedio, detto server delle applicazioni(application server), che a sua volta accede al server della base di dati.Il DBMS interagisce con il sistema operativo quando sono necessari accessi al disco (alla base didati o al catalogo). Se il sistema di elaborazione è condiviso da molti utenti, il sistema operativopianificherà le richieste di accesso al disco e le elaborazioni provenienti dal DBMS insieme con glialtri processi. D’altra parte, se il sistema di elaborazione è destinato principalmente al server dellabase di dati, sarà il DBMS a controllare il trasferimento delle pagine da disco ai buffer dellamemoria principale. Il DBMS interagisce anche con i compilatori per i linguaggi di programmazioneospite, e con server di applicazioni e programmi client che sono eseguiti su macchine diverseattraverso l’interfaccia di rete del sistema.

×