1. Relazioni fra tabelle in un
database MYSQL
Veniamo adesso alla parte
conclusione del percorso.
Stefano Floris, Realizzare programmi gestionali in ambiente
Versione gennaio 2012a WEB con HTML e PHP
Pubblicato su
www.troppocurioso.altervista.org
2. Questa opera è sotto licenza
creativa (di tipo copyleft)
Attribuzione-Non commerciale-
Condividi allo stesso modo Generico.
Per vedere una copia del testo della licenza visita il sito
http://www.creativecommons.it/Licenze
Stefano Floris, 2011
www.troppocurioso.altervista.org
3. Relazioni fra tabelle in un
database MYSQL
Pensiamo ad un esempio
semplificato, molto
semplificato dello Schema
E/R di una gestione di
una biblioteca (non del Autore Editore
prestito ma solo 1
dell'archivio dei libri) 1
N
Testo
N
N
Argomento
1
4. Relazioni fra tabelle in un
database MYSQL
Stabiliamo, a scopo
didattico, i seguenti
vincoli: un libro è scritto
da un solo autore, un libro Autore Editore
è editato da una sola
casa editrice. 1
1
N
Testo
N
N
Argomento
1
5. Relazioni fra tabelle in un
database MYSQL
Codice Cognome e Denominazione
Stabiliamo, a scopo nome
didattico, i seguenti Codice
vincoli: un libro è scritto
da un solo autore, un libro Autore Editore
è editato da una sola
casa editrice. 1
1
Definiamo quindi gli
N
attributi piu' importanti.
Codice
Titolo Testo
N
N
Codice
Argomento
1
Descrizione
6. Relazioni fra tabelle in un
database MYSQL
Codice Cognome e Denominazione
Stabiliamo, a scopo nome
didattico, i seguenti Codice
vincoli: un libro è scritto
da un solo autore, un libro Autore Editore
è editato da una sola
casa editrice. 1
1
Definiamo quindi gli
N
attributi piu' importanti.
Abbiamo usato la convenzione del Codice
pallino pieno (●) per indicare le Titolo Testo
chiavi primarie... N
N
Codice
Argomento
1
Descrizione
7. Relazioni fra tabelle in un
database MYSQL
Codice Cognome e Denominazione
Stabiliamo, a scopo nome
didattico, i seguenti Codice
vincoli: un libro è scritto
da un solo autore, un libro Autore Editore
è editato da una sola
casa editrice. 1
1
Definiamo quindi gli
N
attributi piu' importanti.
Abbiamo usato la convenzione del Codice
pallino pieno (●) per indicare le Titolo Testo
chiavi primarie... N
N
e il
quadrato
pieno per
gli Codice
attributi Argomento
normali 1
(■) Denominazione
8. Relazioni fra tabelle in un
database MYSQL
SCHEMA LOGICO
Autori
Nome Descrizione Tipo/Dimensione Chiave Note
Cod_A Codice autore Numerico intero PK
CogNom_A Cognome /Nome Alfanumerico (40)
Iniziamo la stesura dello
schema logico.
9. Relazioni fra tabelle in un
database MYSQL
SCHEMA LOGICO
Autori
Nome Descrizione Tipo/Dimensione Chiave Note
Cod_A Codice autore Numerico intero PK
CogNom_A Cognome /Nome Alfanumerico (40)
Iniziamo la stesura dello
schema logico.
I nomi dei campi non
corrispondono necessariamente ai
nomi assegnati nello schema E/R.
Spesso si indica un riferimento
alla tabella di appartenenza...
10. Relazioni fra tabelle in un
database MYSQL
SCHEMA LOGICO
Autori
Nome Descrizione Tipo/Dimensione Chiave Note
Cod_A Codice autore Numerico intero PK
CogNom_A Cognome /Nome Alfanumerico (40)
Iniziamo la stesura dello
schema logico.
I nomi dei campi non
corrispondono necessariamente ai
nomi assegnati nello schema E/R.
Spesso si indica un riferimento
alla tabella di appartenenza...
...così risulta evidente che Cod_A è un campo della
tabella Autori e Cod_E è un campo della tabella Editori
11. Relazioni fra tabelle in un
database MYSQL
Autori
SCHEMA LOGICO COMPLETO 1/2
Nome Descrizione Tipo/Dimensione Chiave Note
Cod_A Codice autore Numerico intero PK
CogNom_A Cognome /Nome Alfanumerico (40)
Editori
Nome Descrizione Tipo/Dimensione Chiave Note
Cod_E Codice editore Numerico intero PK
Denom_E Denominazione Alfanumerico (30)
Argomenti
Nome Descrizione Tipo/Dimensione Chiave Note
Cod_Ar Codice argomento Numerico intero PK
Descriz_Ar Descrizione Alfanumerico (15)
12. Relazioni fra tabelle in un
database MYSQL
SCHEMA LOGICO COMPLETO 2/2
Testi
Nome Descrizione Tipo/Dimensione Chiave Note
Cod_T Codice testo Numerico intero PK
Titolo_T Titolo Alfanumerico (50)
Cod_TA Codice Autore Numerico intero EK
Cod_TE Codice Editore Numerico intero EK
Cod_TAr Codice Argomento Numerico intero EK
La sigla PK indica che il campo è
chiave primaria (Primary key),
mentre EK indica una chiave
esterna.
Le chiavi esterne non sono
espressamente indicate nello
schema E/R. Si desumono dalle
relazioni.
13. Relazioni fra tabelle in un
database MYSQL
Una volta messo a punto lo SCHEMA LOGICO, si
può mettere mano al DBMS e creare le tabelle.
Ecco, per
esempio come si
presenta la
tabella testi dopo
la sua creazione.
14. Relazioni fra tabelle in un
database MYSQL
Le chiavi esterne
si definiscono
passando dalla
visualizzazione
delle relazioni
15. Relazioni fra tabelle in un
database MYSQL
In questa finestra
andremo a
definire le
relazioni esterne
delle chiavi.
16. Relazioni fra tabelle in un
database MYSQL
In questa finestra
andremo a
definire le
relazioni esterne
delle chiavi.
17. Relazioni fra tabelle in un
database MYSQL
Per
verificare
se tutto è
andato
bene si
può usare
il
Designer.
18. Relazioni fra tabelle in un
database MYSQL
Nel caso non si
visualizzassero le
relazioni usate lo
strumento
indicato per
tracciare la linea
dalla chiave
primaria alla
secondaria
corrispondente.
19. Relazioni fra tabelle in un
database MYSQL
Da adesso in poi sarà possibile
procedere al popolamento del
database in maniera sicura...
20. Relazioni fra tabelle in un
database MYSQL
Da adesso in poi sarà possibile
procedere al popolamento del
database in maniera sicura...
...vale a dire che il DBMS
controllerà che le relazioni fra
chiavi primarie e chiavi esterne
siano rispettate.
21. Relazioni fra tabelle in un
database MYSQL
Da adesso in poi sarà possibile
procedere al popolamento del
database in maniera sicura...
...vale a dire che il DBMS
controllerà che le relazioni fra Per capire cosa intendo dire,
chiavi primarie e chiavi esterne provate ad inserire un titolo di un
siano rispettate. libro indicando un codice di una
casa editrice che non esiste.