DOMANDE (alcuni modi di porre la stessa) |
RISPOSTA (TRACCIA) |
01 Definizione di DBMS | Software specificamente progettato per la gestione di grosse quantità di dati in modo semplice, flessibile ed efficiente garantendo nel contempo l'integrità dei dati stessi e la loro sicurezza. |
-
DOMANDE (alcuni modi di porre la stessa) |
RISPOSTA (TRACCIA) |
02 Come viene affrontato il problema della ridondanza dai moderni DBMS? | Essendo possibile con un DBMS fornire una vista logica agli utenti come se ciascuno avesse un suo DBMS 'ritagliato' esattamente sulle proprie esigenze e non essendoci problemi a condividere in un ambiente distribuito le informazioni anche con forme di interscambio in tempo reale tra diversi DBMS, semplicemente vengono a cadere i presupposti che in passato potevano causare ridondanza. In alcune situazioni, comunque, si accetta un certo grado di ridondanza pianificata e controllata al fine di massimizzare le prestazioni: ad esempio una parte del data base potrebbe essere replicata presso le diverse filiali di un'azienda (o sui portatili dei dipendenti 'mobile' cioè itineranti) per azzerare i tempi di trasmissione di informazioni sulla rete; di solito si tratta in questo caso di dati piuttosto stabili nel tempo e per i quali il rischio connesso all'utilizzo di informazioni non aggiornate al 100% è basso (periodicamente, tipicamente di notte o comunque i momenti di bassa attività, i data base delle filiali vengono sincronizzati con quello della sede centrale). |
DOMANDE (alcuni modi di porre la stessa) |
RISPOSTA (TRACCIA) |
03 Come viene affrontato il problema della dipendenza logica con i DBMS? | L'architettura software di un DBMS prevede sempre una stratificazione che
isola i livelli superiori dalle modifiche apportate in quelle inferiori. In
particolare possiamo individuare al livello più esterno, quello a contatto
con le applicazioni, le cosiddette viste logiche (viste esterne).
Potete pensare ad una vista come alla risultato di un'istruzione select permanente: alle applicazioni sembrerà di accedere ad una struttura di
tabelle che in realtà è il risultato di una interrogazione anche molto
complessa; all'applicazione verranno resi visibili solo i campi
indispensabili e per i quali si è in possesso del necessario privilegio di
accesso. Quindi le viste offrono alle applicazioni una struttura virtuale,
parziale e personalizzata dei dati occupandosi dello scambio e
dell'interfacciamento con il livello sottostante: il livello logico.
E' a questo livello che viene definita la struttura logica del data base: le
tabelle, la struttura in campi di ciascuna tabella, i tipi dei campi, i
vincoli, le associazioni tra le tabelle. La descrizione viene mantenuta nel data dictionary (dizionario dei dati) insieme ai vincoli di
integrità che devono essere fatti rispettare ed ai profili degli utenti
(credenziali di accesso, diritti). E' grazie al fatto che la descrizione
stessa dei dati (si parla di meta dati) è mantenuta interna la DB
stesso che si riesce a realizzare efficacemente l'indipendenza logica.
Ma è ad un altro livello, quello dell'organizzazione fisica, che il DBMS si occupa di tradurre la struttura logica in files registrati su supporti di memorizzazione di massa. Grazie a questo livello le scelte su dove sul come organizzare i blocchi fisici di bytes attraverso i servizi messi a disposizione dal file system del sistema operativo ospite (file di testo o ad accesso diretto? indicizzati come?) non comportano, nel caso queste scelte mutassero nel tempo, modifiche alla struttura logica. Detto in altre parole: se in una tabella sono presenti il campo identificatore ed una descrizione il fatto che i dati siano stati memorizzati inizialmente su di un file di testo per poi passare in un secondo momento alla memorizzazione su un file ad accesso diretto non comporta modifiche alla struttura logica (la descrizione della tabella non cambia: avrà lo stesso nome, lo stesso numero di campi dello stesso tipo e della stessa dimensione, gli stessi vincoli ecc.); di conseguenza non muterà neppure la vista logica (esterna) e quindi, che è ciò che interessa veramente al programmatore, neppure le applicazioni.
|
E quello
della dipendenza dall'organizzazione fisica?
Cos'è una vista logica? ... esterna ? Cos'è il livello logico? Cos'è il data dictionary? A cosa deve la sua importanza? Cosa sono i meta dati? |
|
DOMANDE (alcuni modi di porre la stessa) |
RISPOSTA (TRACCIA) |
04 Come viene affrontato dai DBMS il problema dell'accesso concorrente ai dati? | Garantendo regole di accesso che impediscono ad un processo di leggere/modificare/ cancellare un dato in fase di modifica da parte di un altro processo. È invece consentito di solito leggere un dato che anche altri leggono. Si parla di locking dei dati (dall'inglese 'to lock' = bloccare). Possiamo catalogare il locking per portata e per tipo. Nel primo caso (portata) distinguiamo un lock a livello di tabella (il processo che lo comanda estende il tipo di lock a tutta la tabella), di record (lock esteso ad solo record di una tabella) e di campo (lock che interessa singolo campo di un record di una tabella; questo livello di granularità così fine, a differenza dei primi due, non è messo disposizione da tutti i DBMS). Nel secondo caso (tipo) distinguiamo tra lock in scrittura (accesso esclusivo: nessun altro processo può accedere al dato) e lock in lettura (accesso condiviso: gli altri processi possono leggere ma non modificare il dato). |
Cos'è il
locking?
Come si cataloga il locking? Cosa si intende per portata del locking ? ... per tipo di locking ? Cosa si intende per accesso esclusivo e quando lo si comanda? ... accesso condiviso ? |
|
DOMANDE (alcuni modi di porre la stessa) |
RISPOSTA (TRACCIA) |
05 Come viene affrontato dai DBMS il problema dell'integrità dei dati? | A più livelli. Integrità di entità (identità, univocità della chiave primaria): i le DBMS impedisce che possono essere inseriti due record con lo stesso valore di chiave primaria. Integrità di univocità: il data base administrator configura la struttura logica di una tabella specificando che per un certo campo non sono messi duplicati. Integrità di dominio: in relazione ad un certo campo si impone un intervallo di valori ammissibili. Integrità referenziale: interviene nel momento in cui viene stabilita una associazione uno a molti tra due tabelle (al limite tra una tabella e quella intermedia nel caso di associazioni molti a molti); l'obiettivo è quello di impedire che si vengano a creare situazioni inconsistenti fra la tabella lato uno e la tabella lato molti; si può allora imporre che non si possa inserire nel lato molti un record senza avere prima già inserito quello che gli corrisponde nel lato uno (presenza di un ks senza il corrispondente kp); oppure che non si possa cancellare il record lato uno se sono presenti record nel lato molti oppure che non si possa fare ma cancellando in automatico tutti i record del lato molti; infine che non si possa modificare il valore di una chiave primaria o che non si possa fare modificando in automatico tutti i record correlati con una chiave esterna nell'altra tabella. Integrità in concomitanza di più operazioni di aggiornamento collegate ( transazioni): normalmente l'azione di un utente o di un processo che interagisce con un DBMS e sul relativo data base non si esaurisce con una semplice e singola operazione di scrittura su una sola tabella; anzi, di solito sono diverse le tabelle interessate da un aggiornamento. Pensate ad esempio all'operazione di prelievo di soldi da un banco: minimo dovranno essere aggiornate le tabelle delle entrate e delle uscite ed il record del conto corrente da cui si preleva e, se si tratta di un trasferimento da conto conto, il record del conto corrente che riceve. Cosa accadrebbe se nel mezzo di queste operazioni il Bancomat andasse in avaria o se semplicemente venisse a mancare l'alimentazione elettrica? Si tratta di una tipica situazione che può portare ad una inconsistenza : il saldo del conto da cui sono stati prelevati i soldi potrebbe già essere stato diminuito e quello che avrebbe dovuto essere aumentato potrebbe risultare inalterato! La soluzione consiste nel passare dal concetto di singola operazione a quello di transazione intesa come un gruppo di operazioni che vengono trattate come un tutto unico (atomicità) nel senso che il sistema deve garantire che una volta iniziata la transazione essa sia completata (cioè siano completate tutte le operazioni che la compongono) oppure essere in grado di ritornare alla situazione del data base prima dell'inizio della transazione interrotta (si parla di operazione di roll back, letteralmente riavvolgimento, con un nastro che ritorna all'inizio ). Il DBMS è in grado di ritornare sui suoi passi consultando dei file (files di log = file di registro) su cui tiene traccia delle modifiche apportate durante l'esecuzione delle istruzioni che compongono la transazione; dopo un crash di sistema il DBMS alla ripartenza controlla se esistono dei files di log che identificano transazioni non completate: ripercorrendo letteralmente indietro le indicazioni memorizzate sui file di log ( si parla anche di sistema capace di ripristino automatico). Per identificare una sistema di memorizzazione sicuro dal punto di vista delle transazioni è stato coniato l'acronimo ACID: atomicity, consistency, isolation, durability. Nell'ordine: atomicità (blocco di operazioni trattate come un'unica entità), consistenza (una transazione porta il data base da una situazione consistente iniziale ad una finale essa stessa consistente), isolamento (deve essere assicurato che un errore durante l'esecuzione di una transazione non ha ripercussioni sulle altre), persistenza (una volta validate, si parla di commit da parte di un utente, le modifiche devono intendersi acquisite in modo permanente nel data base. |
Che cosa
si intende per integrità di entità?... integrità di univocità... dominio...
referenziale?
Che cos'è una transazione? Cosa indica la sigla ACID? Che cosa si intende per atomicità di una operazione che coinvolge un data base? Cosa indica il termine consistenza riferito ad una transazione? ... isolamento? ... persistenza?... roll back?... files di log...commit Cosa si intende per capacità di ripristino automatico? |
DOMANDE (alcuni modi di porre la stessa) |
RISPOSTA (TRACCIA) |
06 Che cosa si intende per sicurezza fisica? Come viene affrontato dai DBMS il problema della sicurezza fisica ? E cosa si intende per protezione dal punto di vista fisico? | Per sicurezza fisica dei dati si intende la loro integrità fisica e
per protezione le contromisure contro le possibili minacce.
Iniziamo con il dire che buona parte delle contromisure contro la corruzione fisica di un dato possono essere assicurate anche senza la presenza di una DBMS: quest'ultimo se presente può però efficacemente interfacciarsi con alcuni servizi messi a disposizione dalla sistema operativo ospite o da applicazioni specifiche che a loro volta potrebbero pilotare hardware specifico. Auto monitoraggio delle periferiche: alcune periferiche (ad esempio gli hard disk) sono dotate di sistema hw/sw in grado di predire quando la periferica andrà in avaria consentendo un salvataggio dei dati ed una sostituzione preventiva della periferica stessa. Per gli hard disk una di queste tecnologie è la S.M.A.R.T. RAID: La filosofia alla base di questa tecnica è l'utilizzo combinato di più dischi meno capienti e più economici invece di un più caro unico disco con la stessa capacità congiunta e pari prestazioni. Sono individuati diversi livelli RAID. (wikipedia) Il sistema RAID 0 (zero) divide i dati (si parla di striping) equamente tra due o più dischi con nessuna informazione di parità o ridondanza (wikipedia). Con la tecnica precedente potrebbe, caso in vero più raro, guastarsi però il controller cioè l'elettronica di controllo che pilota entrambi i dischi di un sistema configurato con mirroring: è prevista allora è tecnica duplexing che prevede anche il raddoppio del controller. Il raid livello 4 prevede invece di distribuire un file suddiviso blocchi su più dischi (striping) aggiungendo su un ulteriore disco a questo dedicato le informazioni di parità che consentirebbero di ricostruire il blocco memorizzato su uno degli hard disk in caso di avaria. Raid livello 5: è una variante del precedente in cui le informazioni sulla parità non sono memorizzate su un disco dedicato ma distribuite su tutti dischi. UPS: si tratta dei cosiddetti gruppi di continuità elettrica. Sono dispositivi in grado di attivarsi quando viene a mancare l'alimentazione elettrica da rete continuando ad alimentare il sistema informatico. Si va dai modelli casalinghi in grado di fornire potenza solo per i minuti necessari al salvataggio dei dati ed allo spegnimento del PC a quelli molto più ingombranti e costosi utilizzati dai centri elaborazione dati. Sono quasi sempre controllati da software in grado di capire lo stato di salute delle batterie in modo da suggerirne la sostituzione ed in grado di spegnere correttamente il computer quando le batterie sono quasi esaurite a causa di un prolungato periodo di mancanza di elettricità. BACKUP: (copia dei dati di sicurezza) è l'operazione con la quale l'utente o un servizio del sistema operativo (eventualmente sollecitato da altri software come una DBMS) provvede alla copia dei dati su supporto spesso esterno (hard disk, nastro, nastro DAT, unità ottiche come CD, DVD ecc. vi suggerisco anche di consultare la parte relativa ai supporti di memorizzazione di massa); l'opzione più efficace è quella che prevede il backup automatico (gli utenti umani hanno la sgradevole caratteristica di dimenticarsene o di essere pigri...); per non rallentare le normali attività lavorative il backup viene di solito effettuato di notte e comunque in periodi di inattività. ALTRI accorgimenti contro calamità naturali: camere a prova d'incendio, di inondazione, di scoppio, edifici costruiti con criteri antisismici, backup remoto (i dati vengono salvati non in locale ma su unità poste anche a migliaia di chilometri di distanza; una modalità che si sta diffondendo anche a livello casalingo prevede il salvataggio dei dati remoto utilizzando Internet). |
Cosa si intende per SMART? ... RAID... UPS... BACKUP... mirroring... duplexing... striping ... |
DOMANDE (alcuni modi di porre la stessa) |
RISPOSTA (TRACCIA) |
07 Che cosa si deve intendere per sicurezza logica? E per protezione logica? Come viene affrontata questa problematica nell'ambito dei DBMS? | Per sicurezza logica si intende la garanzia che ai dati possa accedere o utente od un processo che ne ha il diritto (si parla anche di possedere il necessario livello di privilegio) e per protezione le contromisure contro le possibili minacce. I meccanismi e le tecnologie volte a garantire la sicurezza logica agiscono a più livelli anche indipendenti dal software DBMS. In un ideale percorso dall'esterno verso l'interno del DBMS possiamo infatti identificare: tecnologie di autenticazione per l'accesso ai locali che ospitano il sistema informatico (tesserini identificativi, tastierini per l'immissione di password, porte protette da sistemi con riconoscimento delle impronte vocali, impronte retiniche, impronte digitali, tratti facciali, DNA ecc. (in generale si parla di sistemi di riconoscimento biometrici) il tutto eventualmente abbinato alla presenza personale di sorveglianza; una volta ottenuto l'accesso ad un terminale (tastiera e video) potremmo trovare ulteriori protezioni con riconoscimento biometrico (ormai comuni le tastiere predisposte per il riconoscimento dell'impronta digitale); più semplicemente da BIOS è sempre possibile impostare una password di accesso al PC (oltre che una password per l'accesso alla finestra di configurazione dello stesso BIOS dalla quale potremmo ovviamente modificare le password stesse...); segue una fase di identificazione a livello di sistema operativo (login) cioè, per intenderci, i classici user name e password di Windows; infine il DBMS stesso consente di creare una gerarchia di utenti della data base con differenti diritti: ogni profilo che identifica un utente è a sua volta protetto da un nome utente e da una password; in questo modo è possibile regolare in modo capillare chi può compiere operazioni di lettura, modifica, cancellazione sui dati; infine il programmatore stesso potrebbe implementare una sistema di controllo degli accessi, sempre basato su password, a livello di applicazione (memorizzando personalmente su una tabella le password opportunamente codificate secondo un suo algoritmo di cifratura od usando uno di quelli ormai collaudati e riconosciuti a livello mondiale). Infine prevedendo anche la possibilità che nonostante tutti questi sistemi il data base possa essere sottratto (ad esempio rubando l'hard disk) è possibile imporre da sistema operativo e/o DBMS la cifratura dei dati in modo che non possono essere facilmente (nulla è impossibile avendo a disposizione sufficienti risorse di calcolo) decodificati. |
Che cosa sono i sistemi di riconoscimento biometrici? A cosa serve la cifratura dei dati? |
DOMANDE (alcuni modi di porre la stessa) |
RISPOSTA (TRACCIA) |
08 Che differenza c'è tra data base e DBMS? | Il data base è l'archivio/i che contiene/contengono i dati (non è detto che il singolo archivio corrisponda ad una tabella) mentre il DBMS è il software di gestione del data base.
|
DOMANDE (alcuni modi di porre la stessa) |
RISPOSTA (TRACCIA) |
09 Cosa offrono i DBMS in merito alla interoperabilità? | Funzioni di import/export dello schema dei dati e dei dati stessi
(testo, XML). Librerie per l'accesso diretto usando linguaggi
tradizionali. Driver ODBC, ADO .NET, JDBC o per altri standard di
accesso generalizzato ai dati (via SQL) che consentono al DBMS di restituire
recordset anche ad altre applicazioni (ad esempio Excel) o ad altri DBMS. |
Che tipo
di supporto è offerto dai DBMS per lo scambio dei dati?
|
DOMANDE (alcuni modi di porre la stessa) |
RISPOSTA (TRACCIA) |
10 Cosa offrono i DBMS per differenziare i privilegi di accesso dei diversi utenti? | Possibilità di creare credenziali per gli utenti (locali e/o remoti)
ammessi nel sistema definendone i profili e stabilendo (comando SQL grant=concedi) chi può fare cosa e su cosa (chi può leggere/scrivere
la tal tabella, ad esempio). |
Che cos'è un profilo utente? A cosa serve il comando SQL grant? |
DOMANDE (alcuni modi di porre la stessa) |
RISPOSTA (TRACCIA) |
11 Che tipo di supporto offrono i DBMS per l'utilizzo delle reti informatiche ? | Consentono di stabilire connessioni remote (LAN, Internet) secondo
precisi protocolli sulle quali accettare comandi SQL e restituire eventuali
risultati. Sono anche in grado di suddividere gli archivi su più host
remotamente distribuiti fornendo una vista logica centralizzata. Per motivi
di efficienza potrebbe anche essere consentita la replica in diversi
siti remoti di una stessa tabella garantendo la sincronizzazione pianificata
tra le diverse repliche (di solito in momenti di nessuna o poca attività).
La replica/sincronizzazione dei dati consente di inserire nel sistema un
certo grado di ridondanza controllata e pianificata (per motivi di
efficienza) |
Cosa consente di fare una connessione remota? Cosa si in tende per replica dei dati? Che relazione c'è tra replica dei dati e ridondanza? A cosa serve la sincronizzazione dei dati? |
DOMANDE (alcuni modi di porre la stessa) |
RISPOSTA (TRACCIA) |
12 Che linguaggi si usano con un DBMS? | DDL (definizione dello schema), DML (manipolazione dei
dati), QL (interrogazione), DMCL (gestione dei supporti di
memorizzazione), CL (profili utente e diritti). SQL ha
istruzioni che ricadono in tutte queste categorie. Si tratta di linguaggi
dichiarativi (quindi non procedurali) in cui l'utente non programma
passo passo come arrivare al risultato ma si limita a descrivere
(dichiarare) i risultati che vuole. I comandi sono inoltre orientati alla
manipolazione non di un singolo record per volta (record oriented)
ma di interi insiemi (set) di record (set oriented). |
Cosa si intende per linguaggio dichiarativo? Cosa significa record oriented? Cosa significa set oriented? SQL come linguaggio è record oriented? | |
13 Quali comandi SQL ricadono nell'ambito DDL? A quale tipologia di linguaggio per data base appartiene l'istruzione SQL create table ( oppure drop table oppure alter table)? |
Quelli che permettono di definire la struttura delle tabelle o di modificarla: create table, drop table, alter table ... |
14 Quali comandi SQL ricadono nell'ambito DML? A quale tipologia di linguaggio per data base appartiene l'istruzione SQL insert into ( oppure update oppure delete) |
Quelli che permettono di modificare il contenuto del data base: insert into, update, delete |
15 Quali comandi SQL ricadono nell'ambito QL? A quale tipologia di linguaggio per data base appartiene l'istruzione SQL select? |
Quelli che permettono di interrogare il data base ed estrarre informazioni anche correlate / aggregate / raggruppate tra loro: select ... where ... group by |
Tutte le videolezioni sono ora su youtube (per ricevere notifiche di nuove videolezioni ISCRIVITI al mio canale) VAI su youtube
Mappa di tutte le playlist clic qui