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
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
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
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
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
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
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
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.
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...
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
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)
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.
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.
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




                           Nel caso non si
                         visualizzassero le
                         relazioni usate lo
                              strumento
                             indicato per
                          tracciare la linea
                             dalla chiave
                             primaria alla
                              secondaria
                           corrispondente.
Relazioni fra tabelle in un
    database MYSQL
   Da adesso in poi sarà possibile
   procedere al popolamento del
    database in maniera sicura...
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.
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.
Fine


       22

Php e database: creare relazioni fra tabelle

  • 1.
    Relazioni fra tabellein 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 tabellein 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 tabellein 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 tabellein 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 tabellein 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 tabellein 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 tabellein 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 tabellein 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 tabellein 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 tabellein 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 tabellein 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 tabellein 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 tabellein un database MYSQL Le chiavi esterne si definiscono passando dalla visualizzazione delle relazioni
  • 15.
    Relazioni fra tabellein un database MYSQL In questa finestra andremo a definire le relazioni esterne delle chiavi.
  • 16.
    Relazioni fra tabellein un database MYSQL In questa finestra andremo a definire le relazioni esterne delle chiavi.
  • 17.
    Relazioni fra tabellein un database MYSQL Per verificare se tutto è andato bene si può usare il Designer.
  • 18.
    Relazioni fra tabellein 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 tabellein un database MYSQL Da adesso in poi sarà possibile procedere al popolamento del database in maniera sicura...
  • 20.
    Relazioni fra tabellein 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 tabellein 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.
  • 22.