Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Modifica del numero di tessera del cliente
Se il numero di tessera di un cliente viene modificato, a seguito dello smarrimento della vecchia tessera, è necessario riportare tale cambiamento non solo nel file dei clienti ma anche in tutti i record relativi ai noleggi effettuati dal cliente in questione.
Ridondanza ed inconsistenza
Nel corso vedremo quali strumenti gli attuali DBMS forniscono per limitare inconsistenze e ridondanze dei dati:
- a livello di rappresentazione dei dati
- a livello di strumenti di progettazione della base di dati
Difficoltà nell'accesso ai dati
La mancanza di una descrizione ad alto livello e centralizzata dei dati rende estremamente difficoltoso l'utilizzo al fine di rispondere a nuove esigenze applicative. Nuove esigenze applicative possono richiedere lo sviluppo di nuovi programmi applicativi o la modifica di quelli esistenti.
Nella videoteca, supponiamo che sia necessario stampare periodicamente la lista dei clienti VIP ordinata in ordine alfabetico.
(cliente VIP = cliente che ha accumulato un certo numero di punti sulla base dei noleggi effettuati)
Non esiste un programma per la generazione della lista dei clienti VIP, ma esiste però un programma che stampa la lista di tutti i clienti in ordine alfabetico.
Difficoltà nell'accesso ai dati:
- Per risolvere il problema si può: stampare la lista di tutti i clienti ed estrarre manualmente dalla lista quella relativa ai clienti VIP.
- Tempi molto lunghi in presenza di molti clienti.
- Richiedere che sia sviluppato un nuovo programma.
Supponiamo che dopo qualche tempo sia necessario stampare la lista di tutti i clienti VIP ordinata per numero di punti accumulati. Tale programma non esiste. Si torna al problema di partenza.
Difficoltà nell'accesso ai dati:
- Un DBMS supera queste limitazioni, mettendo a disposizione:
- Linguaggi che facilitano l'accesso ai dati secondo modalità non necessariamente note a priori.
- Strutture ausiliarie di accesso che consentono di rispondere più efficientemente.
alle richieste di utenti ed applicazioni
Problemi nell'accesso concorrente ai dati
Per migliorare le prestazioni, tutti i sistemi permettono a più utenti di eseguire accessi concorrenti ai dati
I SO forniscono meccanismi per garantire la mutua esclusione nella modifica dei dati
Tali meccanismi devono però essere estesi in un ambiente di basi di dati
L'interazione di modifiche concorrenti, se non opportunamente controllata, può causare inconsistenze dei dati e può portare utenti ed applicazioni ad agire su dati non corretti
28 14Problemi nell'accesso concorrente ai dati
Nella videoteca:
Supponiamo che esista un'applicazione che, ad intervalli regolari, conti il numero di noleggi effettuati da ogni cliente della videoteca e generi un report con queste informazioni
Supponiamo che, mentre l'applicazione è in esecuzione, un cliente per cui il conteggio è già stato effettuato, noleggi un video
In questo caso, l'esecuzione concorrente delle due applicazioni genera un
conteggio non esatto
Non permettere l'esecuzione concorrente di applicazioni degraderebbe invece in modo non accettabile le prestazioni del sistema 29
Problemi nell'accesso concorrente ai dati porzione di programma applicativo a Transazione: cui il DBMS assicura particolari proprietà durante la sua esecuzione tra cui la consistenza dei dati in presenza di transazioni concorrenti, senza che il programmatore debba preoccuparsi della gestione di tali problematiche 30 15
Problemi nell'accesso concorrente ai dati Il corso non introdurrà il concetto di transazione 31
Problemi di protezione dei dati Non tutti gli utenti devono poter accedere a tutti i dati presenti nel sistema I file system tipicamente non hanno meccanismi di controllo dell'accesso adeguati a supportare tali requisiti di protezione Questi controlli devono essere implementati a livello di programmi applicativi ma difficile verificare che tali controlli siano effettivamente e correttamente incorporati in tutti i
programmiapplicativi 32 16
Problemi di protezione dei dati
Nella videoteca: un commesso della videoteca potrebbe essere autorizzato a conoscere la data in cui un cliente ha effettuato un noleggio. Per motivi di privacy, potrebbe non potere conoscere il titolo del film che hanno noleggiato.
Problemi di protezione dei dati
È necessario disporre di meccanismi che consentano un accesso selettivo ai dati:
- solo a determinati record
- solo a determinati campi di ogni record
Un DBMS offre tali meccanismi per gestire efficacemente il controllo dell'accesso senza dover ricorrere allo sviluppo di programmi ad-hoc
Problemi di protezione dei dati
Non vedremo questi aspetti nel corso
Problemi di integrità dei dati
Per riflettere correttamente una certa realtà applicativa, è necessario che i dati rispettino determinate condizioni, note come vincoli di integrità semantica.
Un insieme di dati è semanticamente corretto se verifica tutti i vincoli di integrità semantica ad esso associati.
- file system non consentono la specifica e la verifica automatica di tali vincoli. Devono quindi essere implementati come codice applicativo.
- L'aggiunta di nuovi vincoli o la modifica di un qualche vincolo richiede costose modifiche ai programmi applicativi.
- Problemi di integrità dei dati:
- Nella videoteca:
- Esempio di vincolo: la data di restituzione di un video non deve essere antecedente alla data di noleggio.
- Il vincolo deve essere implementato in ogni programma che gestisce inserimenti e modifiche ai noleggi.
- I DBMS offrono adeguati strumenti per la specifica di vincoli e la loro verifica automatica.
- I vincoli vengono specificati dall'utente una sola volta. È poi il sistema a preoccuparsi di verificarli sui dati.
- La carta vincente dei DBMS è lo schema logico della base di dati.
Un modello dei dati è un insieme di strumenti concettuali, o formalismo, che consta di tre componenti fondamentali:
- Descrive il contenuto della base di dati tramite un formalismo ad alto livello che esula dai dettagli della sua effettiva implementazione fisica, detto modello dei dati.
- Vantaggi:
- Unica rappresentazione centralizzata e condivisa.
- No ridondanze e inconsistenze.
- Consente di introdurre un controllo centralizzato sugli stessi, minimizzando quindi i problemi di protezione dei dati.
- Il DBMS mette a disposizione linguaggi (dichiarativi) per agire sui dati rappresentati secondo il modello.
- Possibilità di interagire con i dati secondo modalità non anticipate al momento della definizione e realizzazione della base di dati.
- Ottimizza le operazioni e quindi garantisce efficienza (l'utente non si preoccupa di come i dati sono memorizzati e gestiti su disco).
- Garantisce affidabilità.
- Servizi di un DBMS:
- Esterni (invocabili dagli utenti).
- Interni al DBMS.
insieme di strutture dati
un linguaggio per specificare i dati tramite le strutture previste dal modello, per aggiornare tali strutture e per specificare vincoli su tali strutture
un linguaggio per manipolare i dati
Modello dei dati: concetti di base
Le strutture dati devono poter rappresentare i seguenti concetti:
- Insieme di "oggetti" della realtà
- Entità applicativa di interesse, aventi caratteristiche comuni
- Singolo oggetto della realtà
- Istanza di entità applicativa di interesse, modellato da una certa entità
Modello dei dati: concetti di base
Proprietà significativa di un'entità, ai fini della descrizione della realtà applicativa di interesse
Ogni entità è caratterizzata da uno o più attributi
Un attributo di un'entità assume uno o più valori per ciascuna delle istanze dell'entità, detti valori dell'attributo, in un insieme di possibili valori, detto dominio dell'attributo
concetti di base
Corrispondenza tra un certo numero di entità
Anche le associazioni possono avere degli attributi che corrispondono a proprietà dell'associazione
Corrispondenza tra istanze di associazione e le istanze di un certo numero di entità
Modello dei dati: esempio videoteca
Entità:
L'entità Cliente rappresenta l'insieme dei clienti della videoteca
Istanza di entità: anna rossi istanza di Cliente, pulp fiction istanza di Film
Attributi:
Il nome di un cliente attributo dell'entità Cliente
La data di restituzione del video noleggiato attributo dell'entità Noleggio
Il regista di un film attributo dell'entità Film
Legame tra i clienti ed i film che consigliano
Associazione: (Consiglia) potrebbe avere un attributo giudizio, che modella il giudizio espresso dai clienti della videoteca sui film da loro consigliati
Istanza di associazione: relazione che lega l'istanza di Film relativa al film "Pulp Fiction" con l'istanza di Cliente anna rossi
fiction di Quentin Tarantino con l'istanza di Cliente relativa al cliente con numero di tessera 6610 è un'istanza dell'associazione Consiglia 46 23.Modello dei dati
Qualsiasi modello dei dati deve rispondere a due domande fondamentali:
- come rappresentare le entità e i loro attributi
- come rappresentare le associazioni e i loro attributi
La maggioranza dei modelli usa strutture come il record, in cui ogni componente rappresenta un attributo. I modelli differiscono notevolmente in questo aspetto; la rappresentazione può avvenire tramite strutture, valori, puntatori.
Il modello relazionale
È basato su una singola struttura dati - la relazione. Una relazione può essere vista come una tabella con righe, dette tuple, e colonne contenenti dati di tipo specificato (ad esempio interi e stringhe).
Relazione = insieme di entità
Tupla = entità
Esempio
Attributo
Relazione
Tupla
Il modello relazionale utilizza una rappresentazione
re l'associazione. Questo approccio è noto come "associazione per valore". Nell'associazione per valore, i valori delle colonne della tabella di origine vengono copiati nelle colonne corrispondenti della tabella di destinazione. In questo modo, ogni riga della tabella di destinazione contiene una copia indipendente dei valori della riga corrispondente della tabella di origine. Per implementare l'associazione per valore, possiamo utilizzare i tag HTML per rappresentare le colonne delle tabelle.
Ecco un esempio di come potrebbe essere formattato il testo utilizzando i tag HTML:
|