ASPITALIA.IT

Sito dedicato alla tecnologia web di Microsoft. Da ASP a ASP.NET trovate articoli e tutorial interessanti adatti anche a chi si av...

Leggi la Descrizione
HTML.IT

Uno dei migliori siti di programmazione presenti sul Web. Se volete iniziare a programmare in qualsiasi linguaggio, html.it &egrav...

Leggi la Descrizione
YoungPortal.it

Portale ricco di risorse per sviluppatori Delphi, asp.net, java. Da poco attiva la nuova sezione SUBSONIC che cerca di andare inco...

Leggi la Descrizione
Introduzione alle Basi di Dati

Visitatori: 749

Qualsiasi applicazione Informatica gestisce ed elabora una più o meno grossa quantità di Dati.
Inutile dire che i progressi delle tecnologie informatiche di progettazione e realizzazione del software sono in continua evoluzione, ma è senza dubbio dopo l’avento delle basi di dati che lo sviluppo di applicazioni ha avuto un incremento considerevole.
Un Database può essere definito come un archivio strutturato di dati gestito tramite un sistema di database management. Un database ben progettato deve rispettare i seguenti obiettivi:

- Atomicità
- Coerenza/Consistenza
- Isolamento
- Persistenza

Per atomicità si intende che le operazioni critiche (si pensi alle operazioni su un conto corrente bancario) devono avvenire in “blocco”, ovvero tutte o niente. In questo caso si parla di transazioni eseguite sul database. Se una transazione non può essere eseguita interamente deve essere possibile ripristinare lo stato precedente del database (operazione di rollback). Per Coerenza/Consistenza dei dati si intende che devono essere definite opportune regole che impediscano di commettere errori di natura logica nella gestione dei dati (in tale contesto si inseriscono i vincoli di integrità dei dati che vedremo più avanti). Per isolamento si intende la gestione della concorrenza, ovvero l’accesso contemporaneo di più utenti agli stessi dati (per esempio tutti potranno leggerli ma non modificarli contemporaneamente). Infine la persistenza indica che i dati devono essere sempre disponibili anche in presenza di guasti.

DBMS

I Sistemi che consentono di creare e gestire database vengono indicati con il termine di DBMS (Data Base Management System). Un DBMS oltre a consentire la gestione dei dati consente di definire i livelli di accesso ai dati stessi e cioè creare utenti e ruoli ed assegnare ai ruoli i permessi di scrittura, lettura, creazione di tabelle, cancellazione di tabelle, etc. I DBMS più diffusi sono Oracle, MS SQL Server, Sybase, MySQL e altri ancora.

Integrità Referenziale dei Dati

In questo articolo introduttivo non scenderemo nel dettaglio di quello che comporta l’integrità referenziale dei dati ma cercheremo di dare un’idea di ciò che essa rappresenta. Un database contiene in generale diverse tabelle che nella maggior parte dei casi non sono indipendenti tra loro. Che cosa intendiamo per dipendenza tra alcuni dati? Semplicemente che l’esistenza di alcuni non può prescindere dall’esistenza di altri. Facciamo un esempio: supponiamo di avere un database contenente due tabelle, studenti ed esami. La tabella esami contiene le informazioni sullo studente che ha sostenuto l’esame, la data e il voto. Problematiche relative all’integrità referenziale dei dati sono:

- Può esistere un esame sostenuto da uno studente non presente nella tabella studenti?
- E’ possibilire eliminare uno studente che ha già sostenuto esami? E se si cosa devo fare con gli esami?

Per evitare questi problemi ci vengono in contro i vincoli di integrità referenziale che un database ben progettato deve rispettare. Tramite i vincoli di integrità possiamo specificare che “non è possibile eliminare uno studente per cui esistono esami sostenuti”, oppure “elimina lo studente e i suoi esami”. E’ possibile cioè definire delle regole che devono essere rispettate nella gestione logica dei dati. Nei prossimi articoli affronteremo l’argomento in modo dettagliato.

Gestione dei Dati e Modelli di Dati

La gestione dei dati può essere osservata tramite una modellazione a 3 livelli:

- livello fisico o di gestione della memorizzazione dei dati
- livello logico o livello di strutturazione dei dati
- livello di presentazione dei dati

Il livello fisico riguarda la memorizzazione fisica dei dati ed è gestito dal DBMS.
Il livello logico riguarda la strutturazione dei dati e la definizione delle relazioni tra gli stessi.
Il livello di presentazione, detto anche livello o vista utente riguarda le modalità di accesso ai dati da parte dell’utente.

In questo corso ci occuperemo principalmente del secondo livello, quello ogico e in particolare affronteremo lo studio del Modello E/R entità relazione che ha rivoluzionato il modo di vedere e progettare i dati.

Introduzione al Modello E/R

Il modello E/R si basa su due concetti fondamentali:

- Entità
- Relazione

Esso si basa sull’individuazione delle entità del sistema che si vuole informatizzare e la definizione delle relazioni che intercorrono tra gli stessi.
Per capirci meglio nell’esempio presedente, “studente” ed “esame” potevano essere viste come due entità di un sistema “università” da informatizzare.
Quale può essere una relazione che intercorre tra queste due entità? Sicuramente una potrebbe essere “supera” ovvero studente > supera > esame e un “attributo” della relazione potrebbe essere il voto ricevuto.
Forse siamo andati troppo veloce introducendo il concetto di “attributo”, ma siamo sicuri che avete compreso il concetto. Un attributo è una proprietà che può essere assegnata ad una entità o ad una relazione. Gli attributi di uno studente potrebbero essere:

- matricola
- nome
- cognome
- data_nascita
- comune_nascita

etc..A questo punto vogliamo mettervi alla prova?

ESISTE SECONDO VOI UN ATTRIBUTO TRA QUELLI SOPRA INDICATI CHE IDENTIFICA UNIVOCAMENTE LO STUDENTE ALL’UNIVERSITA’?

Come? Avete risposto “nome”? ovvio che no..esisteranno centinaia di studenti con lo stesso nome e la stessa cosa vale per il cognome, il comune di nascita.
Cosa pensate di MATRICOLA? Ovvio che la matricola identifica univocamente lo studente e viene definita CHIAVE della tabella, ovvero quel valore che è unico in ogni tabella e individua una ed una sola riga (o studente in questo caso()della tabella.

Un concetto legato a quello di relazione è la “cardinalità”. Essa indica quali corrispondenze ci sono tra le entità che essa lega.
Facciamo un esempio: per la relazione studente > supera > esame
possiamo sicuramente dire che “uno studente può superare più esami” e che “un esame può essere superato da più studenti”. Ora esistono le seguenti cardinalità di relazione:

- uno-a-uno
- uno-a-molti
- molti-a-molti

secondo voi a quale categoria appartiene la nostra relazione? Sicuramente alla terza.
Se invece avessimo avuto;

professore > insegna > materia

la categoria sarebbe stata la seconda perché un professore può insegnare più materie, ma una materia è insegnata da un unico professore. Avremo modo di approfondire il modello E/R nei prossimi articoli.

Indice degli articoli