php e database: creare relazioni fra tabelle
DESCRIPTION
Continua il corso di introduzione alla getsione di database MySQL con PHP. Le chiavi esterne e le relazioni fra tabelle.TRANSCRIPT
Stefano Floris, Versione gennaio 2012a
Realizzare programmi gestionali in ambiente WEB con HTML e PHP
Pubblicato su www.troppocurioso.altervista.org
Veniamo adesso alla parte conclusione del percorso.
Relazioni fra tabelle in un database MYSQL
Per vedere una copia del testo della licenza visita il sito http://www.creativecommons.it/Licenze
Stefano Floris, 2011www.troppocurioso.altervista.org
Questa opera è sotto licenza creativa (di tipo copyleft)
Attribuzione-Non commerciale-Condividi allo stesso modo Generico.
Relazioni fra tabelle in un database MYSQL
Autore
Pensiamo ad un esempio semplificato, molto
semplificato dello Schema E/R di una gestione di una biblioteca (non del
prestito ma solo dell'archivio dei libri)
Testo
Editore
Argomento
1
N
N
1
1
N
Relazioni fra tabelle in un database MYSQL
Autore
Stabiliamo, a scopo didattico, i seguenti
vincoli: un libro è scritto da un solo autore, un libro
è editato da una sola casa editrice.
Testo
Editore
Argomento
1
N
N
1
1
N
Relazioni fra tabelle in un database MYSQL
Autore
Testo
Editore
Argomento
1
N
N
1
1
N
Cognome e nome
Codice
Codice
Denominazione
Codice
Descrizione
CodiceTitolo
Stabiliamo, a scopo didattico, i seguenti
vincoli: un libro è scritto da un solo autore, un libro
è editato da una sola casa editrice.
Definiamo quindi gli attributi piu' importanti.
Relazioni fra tabelle in un database MYSQL
Autore
Testo
Editore
Argomento
1
N
N
1
1
N
Cognome e nome
Codice
Codice
Denominazione
Codice
Descrizione
CodiceTitolo
Stabiliamo, a scopo didattico, i seguenti
vincoli: un libro è scritto da un solo autore, un libro
è editato da una sola casa editrice.
Definiamo quindi gli attributi piu' importanti.
Abbiamo usato la convenzione del pallino pieno (●) per indicare le
chiavi primarie...
Relazioni fra tabelle in un database MYSQL
Autore
Testo
Editore
Argomento
1
N
N
1
1
N
Cognome e nome
Codice
Codice
Denominazione
Codice
Denominazione
CodiceTitolo
Stabiliamo, a scopo didattico, i seguenti
vincoli: un libro è scritto da un solo autore, un libro
è editato da una sola casa editrice.
Definiamo quindi gli attributi piu' importanti.
Abbiamo usato la convenzione del pallino pieno (●) per indicare le
chiavi primarie...
e il quadrato pieno per
gli attributi normali
(■)
Relazioni fra tabelle in un database MYSQL
Nome Descrizione Tipo/Dimensione Chiave NoteCod_A Codice autore Numerico intero PKCogNom_A Cognome /Nome Alfanumerico (40)
SCHEMA LOGICO
Autori
Iniziamo la stesura dello schema logico.
Relazioni fra tabelle in un database MYSQL
Nome Descrizione Tipo/Dimensione Chiave NoteCod_A Codice autore Numerico intero PKCogNom_A Cognome /Nome Alfanumerico (40)
SCHEMA LOGICO
Autori
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...
Relazioni fra tabelle in un database MYSQL
Nome Descrizione Tipo/Dimensione Chiave NoteCod_A Codice autore Numerico intero PKCogNom_A Cognome /Nome Alfanumerico (40)
SCHEMA LOGICO
Autori
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
Relazioni fra tabelle in un database MYSQL
Nome Descrizione Tipo/Dimensione Chiave NoteCod_A Codice autore Numerico intero PKCogNom_A Cognome /Nome Alfanumerico (40)
SCHEMA LOGICO COMPLETO 1/2Autori
Nome Descrizione Tipo/Dimensione Chiave NoteCod_E Codice editore Numerico intero PKDenom_E Denominazione Alfanumerico (30)
Editori
Argomenti
Nome Descrizione Tipo/Dimensione Chiave NoteCod_Ar Codice argomento Numerico intero PKDescriz_Ar Descrizione Alfanumerico (15)
Relazioni fra tabelle in un database MYSQL
Nome Descrizione Tipo/Dimensione Chiave NoteCod_T Codice testo Numerico intero PKTitolo_T Titolo Alfanumerico (50)Cod_TA Codice Autore Numerico intero EKCod_TE Codice Editore Numerico intero EKCod_TAr Codice Argomento Numerico intero EK
SCHEMA LOGICO COMPLETO 2/2
Testi
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.
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.
Relazioni fra tabelle in un database MYSQL
Le chiavi esterne si definiscono
passando dalla visualizzazione delle relazioni
Relazioni fra tabelle in un database MYSQL
In questa finestra andremo a definire le
relazioni esterne delle chiavi.
Relazioni fra tabelle in un database MYSQL
In questa finestra andremo a definire le
relazioni esterne delle chiavi.
Relazioni fra tabelle in un database MYSQL
Per verificare se tutto è andato bene si
può usare il
Designer.
Relazioni fra tabelle in un database MYSQL
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.
Da adesso in poi sarà possibile procedere al popolamento del database in maniera sicura...
Relazioni fra tabelle in un database MYSQL
...vale a dire che il DBMS controllerà che le relazioni fra
chiavi primarie e chiavi esterne siano rispettate.
Da adesso in poi sarà possibile procedere al popolamento del database in maniera sicura...
Relazioni fra tabelle in un database MYSQL
...vale a dire che il DBMS controllerà che le relazioni fra
chiavi primarie e chiavi esterne siano rispettate.
Da adesso in poi sarà possibile procedere al popolamento del database in maniera sicura...
Per capire cosa intendo dire, provate ad inserire un titolo di un libro indicando un codice di una
casa editrice che non esiste.
Relazioni fra tabelle in un database MYSQL
22
FineFine