Il modello relazionale

Dopo aver determinato lo schema E/R si deve progettare lo schema relazionale del data base.

Le singole entità vengono rappresentate in tabelle, così come un semplice archivio di informazioni viene memorizzato in un file. In altri termini una tabella può essere pensata come se fosse un file e il data base contiene un insieme di file.

Il DBMS provvede a rendere indipendente il modo in cui sono memorizzati i dati dal modo in cui vengono presentati.

Le righe della tabella sono dei record, mentre le colonne della tabella sono dei campi.

Nel modello relazionale:

  1. una tabella ha un numero fisso di colonne per tutte le righe,

  2. i campi di una riga rappresentano informazioni elementari, ovvero non ulteriormente scomponibili.

  3. i valori che possono essere assunti da un campo appartengono ad uno stesso tipo

  4. non ci possono essere due record uguali, devono differire almeno in un campo

  5. l'ordine di presentazione dei record è irrilevante

Il modello relazionale si costruisce dallo schema E/R secondo il procedimento seguente:

  1. Ogni Entità è una tabella,

  2. Ogni attibuto di un'entità è un campo della tabella,

  3. Il campo che è diverso per ogni record è la chiave primaria della tabella,

  4. Una relazione 1:1 viene trasformata in un'unica tabella che contiene i campi di entrambe le tabelle,

  5. La relazione 1:N viene costruita aggiungendo ai campi della tabella che si trova dal lato 'molti' il campo che ha il ruolo chiave primaria nella tabella dal lato 'uno'.
    Questo campo, aggiunto nella tabella dal lato 'molti', è detto chiave esterna.

  6. La relazione N:N viene costruita aggiungendo un terza tabella tra le due entità associate. I campi di questa tabella sono le chiavi primarie delle due tabelle, oltre agli eventuali attributi che appartengono alla relazione.


Esempio di relazione uno a molti

Si consideri il curriculum degli studenti. Le entità sono lo studente e le classi frequentate.

Gli attributi dell'entità studente sono, oltre alla chiave primaria (ad esempio IDStudente) il cognome, il nome, ecc., mentre gli attributi dell'entità classe frequentata (oltre ad una chiave primaria IDClasse, ad esempio) sono: l'anno scolastico, la sigla della classe, la media dei voti e l'esito.

Per stabilire l'associazione, si deve aggiungere, alla tabella classi frequentate, un campo che contiene il valore della chiave primaria della tabella Studenti:

Studente1 ———— N Classi frequentate
IDStudenteIDClasse
CognomeAS
NomeSigla
Data NascitaEsito
Luogo NascitaMedia voti
matricolaIDStudente

IDStudente è chiave primaria nella tabella Studenti, mentre è chiave esterna nella tabella Classi frequentate.

Esempio di record:
(nella tabella studenti)

IDStudenteCognomeNomeData Nascita...
1RossiUgo01/01/1990...
2VerdiGino02/01/1990...
3BianchiLuca03/01/1990...
...............

(nella tabella classi frequentate)

IDClasseAnno Scol.SiglaEsitoMediaIDStudente
12006/20071APromosso7.501
22007/20082APromosso7.751
32008/20093APromosso7.501
42007/20081BPromosso6.502
52008/20092BPromosso6.502
..................

Dall'esempio si vede che i record 1, 2 e 3 della tabella Classi frequentate si riferiscono allo studente con chiave primaria=1.

I record 4 e 5 della tabella classi frequentate si riferiscono allo studente con chiave primaria=2.


Esempio di relazione Molti a Molti

Per ottenere un elenco dei professori di una classe si può osservare che un professore insegna in più classi e in una classe insegnano più professori.

Per realizzare una relazione N:N tra le due entità, Professore e Classe, si deve inserire una terza tabella i cui campi sono le chiavi primarie delle due tabelle.

Professore 1 ——— N ProfCls N ——— 1 Classe
IDProf IDProf IDCls
Cognome IDCls Sigla Classe
Nome ...
...

La relazione è di grado 1 dal lato delle entità Professore e Classe.

Esempio di record:


(nella tabella Professore)

IDProfCognomeNome...
1EcoUmberto...
2MainardiDanilo...
3TozziMario...
............

(nella tabella Classe)

IDClsSigla...
11A...
22A...
33A...
.........

(nella tabella ProfCls)

IDProfIDCls
12
13
22
......

Da quest'ultima tabella si vede che il professore Eco, con chiave primaria=1, insegna nelle classi con chiavi primarie 2 e 3, cioè 2A e 3A, Mentre nella classe 2A insegnano 2 professori.