BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo...

28
BASI DATI: modello relazionale INFORMATICA Lezione III - Informatica 1 15/04/2013

Transcript of BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo...

Page 1: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

BASI DATI: modello relazionale

INFORMATICA

Lezione III - Informatica 1 15/04/2013

Page 2: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Il modello relazionale

Il modello relazionale fu introdotto da Codd

(1970) e si basa su una semplice ed uniforme

struttura dati chiamata relazione, ed ha una

solida base teorica

La relazione del modello relazionale NON è la

relazione degli schemi E/R

Si introduce tale modello in quanto la maggior

parte dei DBMS sono relazionali (e.g. Oracle,

Access, MySQL)

15/04/2013 Lezione III - Informatica 2

Page 3: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Concetti fondamentali

15/04/2013 Lezione III - Informatica 3

Il modello relazionale rappresenta una base di dati come un insieme di

relazioni

Informalmente,

una relazione è (praticamente) una tabella

ciascuna riga della relazione è detta tupla

l’intestazione di una colonna della tabella è chiamata attributo

il tipo di dato che mi specifica ciò che può apparire in ciascuna colonna è detto

dominio

Per semplicità (e per non fare confusione) useremo il termine (improprio)

tabella al posto del termine (corretto) relazione

Page 4: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Algoritmo di conversione E/R in

relazionale

15/04/2013 Lezione III - Informatica 5

Algoritmo per realizzare lo schema relazionale a partire dallo

schema E/R:

1. Per ogni entità E dello schema E/R, crea una

relazione R che include tutti gli attributi di E

Page 5: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Algoritmo di conversione E/R in

relazionale

15/04/2013 Lezione III - Informatica 6

2. Per ogni relazione 1:1 dello schema E/R esistente

fra le due entità E1 ed E2, trasforma le due

relazioni R1 e R2 (di E1 ed E2) in una unica

relazione R12 unendone tutti gli attributi

preferendo una chiave primaria sull’altra

Page 6: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Algoritmo di conversione E/R in

relazionale

15/04/2013 Lezione III - Informatica 7

3. Per ogni relazione 1:n dello schema E/R esistente fra le

due entità E1 ed E2, aggiungi la chiave primaria della

relazione E2 come attributo nella relazione E1 (chiave

esterna)

Page 7: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Algoritmo di conversione E/R in

relazionale

15/04/2013 Lezione III - Informatica 8

4. Per ogni relazione n:m dello schema E/R, crea

una relazione R i cui attributi sono le chiavi

primarie dell’entità in relazione (chiavi

esterne)

Page 8: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Lo schema relazionale del questionario

Sulla base del passo (1) del precedente algoritmo, ottengo le due relazioni

(notate l’uso del plurale)

1. studenti(matricola, sesso, eta)

2. questionari (r1, r2, r3, r4, r5, r6, r7, r8, r9)

Il passo (2) ci impone – siccome le due entità sono in relazione 1:1 – di

unirle in una unica relazione

1. questionari_studenti(matricola, sesso, eta, r1, r2, r3, r4, r5, r6, r7, r8, r9)

15/04/2013 Lezione III - Informatica 9

Page 9: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Lo schema relazionale dello studio

ambientale

Passo (1)

1. patologie(codice,DRG, diagnosi principale)

2. pazienti(numero, eta, sesso)

3. sedi_elettorali (numero, distanza, votanti)

15/04/2013 Lezione III - Informatica 10

Page 10: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Lo schema relazionale dello studio

ambientale

Passo (2) : Non c’è nessuna relazione di tipo 1:1

15/04/2013 Lezione III - Informatica 11

Page 11: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Lo schema relazionale dello studio

ambientale

Passo (3) : C’è una unica relazione di tipo 1:n (e.g. risiede)

1. pazienti(numero, eta, sesso, numero_sede_elettorale)

15/04/2013 Lezione III - Informatica 12

Page 12: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Lo schema relazionale dello studio

ambientale

Passo (4) : C’è una unica relazione di tipo n:m (e.g. soffre)

1. soffre(codice patologia, numero_paziente)

15/04/2013 Lezione III - Informatica 13

Page 13: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Lo schema relazionale dello studio

ambientale

Si ottiene quindi

1. patologie(codice,DRG, diagnosi principale)

2. sedi_elettorali (numero, distanza, votanti)

3. pazienti(numero, età, sesso, numero_sede_elettorale)

4. soffre(codice patologia, numero paziente)

15/04/2013 Lezione III - Informatica 14

Page 14: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Dallo schema E/R allo schema

relazionale

15/04/2013 Lezione III - Informatica 15

A partire dallo schema E/R, è possibile costruire la base di dati sotto forma di tabelle, utilizzando un algoritmo «grafico»

Dallo schema E/R, si creano gruppi di entità e/o relazioni come segue:

A partire da una entità o relazione dello schema E/R, si aggregano nel gruppo tutte le relazioni/entità legate con cardinalità unaria massima

Ogni entità o relazione non aggregata deve diventare un nuovo gruppo

I gruppi individuati corrispondono alle tabelle da creare

Gli attributi di ciascuna tabella variano a seconda del «contenuto» del gruppo

Page 15: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Algoritmo «grafico» (1)

Partiamo da una qualunque entità e incorporiamo le

relazioni/entità quando la cardinalità è di tipo (1,1)

15/04/2013 Lezione III - Informatica 16

Page 16: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Algoritmo «grafico» (2)

Anche l’altra entità e la relazione stessa è stata

“inglobata” ottenendo un’unica relazione

1. questionari_studenti(matricola, sesso, eta, r1, r2, r3, r4,

r5, r6, r7, r8, r9)

15/04/2013 Lezione III - Informatica 17

Page 17: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Algoritmo «grafico» (3)

15/04/2013 Lezione III - Informatica 18

Per completare questo passo, è inoltre

importante specificare il tipo di dato che verrà

usato per memorizzare le istanze dei vari

attributi

questionari_studenti(matricola; sesso; eta; r1;

r2; r3; r4; r5; r6; r7; r8; r9)

matricola: int

sesso: char(1)

eta: int

r1 ... r9: int

Page 18: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Algoritmo «grafico»: analisi geografica

Partiamo dall’entità «paziente» e procediamo con le

relazioni...

15/04/2013 Lezione III - Informatica 19

Page 19: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Algoritmo «grafico» analisi geografica

La relazione «risiede» è stata aggregata all’entità

«paziente» in un gruppo 15/04/2013 Lezione III - Informatica 20

Page 20: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Primo blocco

Entità patologia

Relazione patologie(codice, drg, diagnosi_principale)

15/04/2013 Lezione III - Informatica 21

Page 21: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Secondo blocco

Entità sede_elettorale

Relazione: sedi_elettorali (numero, distanza, votanti)

15/04/2013 Lezione III - Informatica 22

Page 22: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Quarto blocco

Relazione soffre

soffre(numero_paziente,codice_patologia)

15/04/2013 Lezione III - Informatica 23

Page 23: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Conversioni delle entità singole

Per le entità singole patologia e sede elettorale, si creano due relazioni

1. patologie(codice, drg, diagnosi principale)

2. sedi_elettorali (numero, distanza, votanti)

15/04/2013 Lezione III - Informatica 24

Page 24: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Conversioni dei gruppi

Per l’entità paziente e la relazione risiede, si crea una

relazione

1. pazienti(numero, sesso, eta, numero_sede_elettorale)

dove numero_sede_elettorale è una chiave esterna 15/04/2013 Lezione III - Informatica 25

Page 25: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Conversioni delle relazioni singole

Per la relazione singola soffre, si crea una relazione

1. soffre(codice patologia, numero paziente) dove la coppia_codice

patologia e numero_paziente è la chiave primaria

15/04/2013 Lezione III - Informatica 26

Page 26: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Lo schema relazionale

15/04/2013 Lezione III - Informatica 27

Abbiamo identificato quindi quattro tabelle:

1. patologie(codice; drg; diagnosi principale) codice: int

drg: char(3)

diagnosi_principale: char(50)

2. sedi_elettorali (numero; distanza; votanti) numero: int

distanza: float

votanti: int

3. pazienti(numero; sesso; eta; numero_sede_elettorale) numero: int

sesso: char(1)

eta: int

numero_sede_elettorale: int (stesso tipo di sedi_elettorali.numero)

4. soffre(codice patologia; numero paziente) codice patologia: int (stesso tipo di patologie.codice)

numero paziente: int (stesso tipo di pazienti.numero)

Page 27: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Lo schema relazionale

Abbiamo identificato quindi quattro relazioni:

1. patologie(codice, drg, diagnosi principale)

2. sedi_elettorali (numero, distanza, votanti)

3. soffre(codice patologia, numero paziente)

4. pazienti(numero, sesso, eta, numero sede elettorale)

Sono ovviamente le stesse che abbiamo trovato

utilizzando l’algoritmo non grafico.

15/04/2013 Lezione III - Informatica 28

Page 28: BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo schema relazionale 15 Lezione III - Informatica 15/04/2013 A partire dallo schema E/R,

Esercizio

15/04/2013 Lezione III - Informatica 29

Si progetti lo schema Entità-Relazione e lo schema relazionale di una base di dati in cui si vogliono memorizzare le seguenti informazioni relative ad un archivio di informazioni su campionati:

un insieme di squadre, ove per ciascun anno siano individuati i giocatori in organico e l'allenatore;

un insieme di partite, con la data, l'arbitro, le squadra ospitante e quella ospitata.

le partite in cui hanno giocato i singoli giocatori, i goal realizzati, le ammonizioni e le espulsioni accumulate, le giornate di squalifica

dei giocatori si vogliono registrare gli infortuni subiti durante le partite, il tipo di infortunio e il tempo di fermo a seguito dell’infortunio stesso