Database Organizzazione di archivi mediante basi di dati ing. Alfredo Cozzi 1 Il database è una collezione di dati logicamente correlati e condivisi, che ha lo scopo di soddisfare i fabbisogni informativi di una specifica organizzazione. I dati, congiuntamente con la loro descrizione, sono gestiti da un unico sistema, chiamato DBMS (Data Base Management System), che ne permette la gestione e ne regola gli accessi. Un DBMS deve essere in grado di: - Permettere la creazione di una nuova base di dati (mediante un apposito linguaggio di definizione dei dati DDL) - Facilitare gli utenti nell’inserimento, cancellazione e variazione dei dati del DB (mediante un linguaggio di manipolazione dei dati DML) - Rendere possibile l’estrazione di informazioni dal DB (mediante un linguaggio di interrogazione QL) 2 Inoltre un DBMS deve avere le seguenti caratteristiche: • • • • • • • • • Facilità di accesso Indipendenza dalla struttura logica dei dati Indipendenza dalla struttura fisica dei dati Eliminazione della ridondanza Eliminazione dell’inconsistenza Integrità dei dati Utilizzo da parte di più utenti Controllo della concorrenza Sicurezza dei dati 3 Modelli per il database Entità/Associazioni (E/R Entity/Relationship) è il modello maggiormente diffuso per la progettazione concettuale. Permette di rappresentare gli aspetti significativi della porzione di mondo reale che si vuole modellare mediante opportuni schemi, le entità, gli attributi, che rappresentano le caratteristiche delle entità individuate, e infine le associazioni che individuano le correlazioni logiche tra le entità individuate. 4 Clienti Nome(pk) Via Città cap N Possedere > 1 Conto NumConto(pk) Saldo 1 < N Variare Movimento NumReg(pk) Data Casuale importo Nel modello si evidenziano 3 entità: Cliente, Conto, Movimento L’entità cliente è caratterizzata dagli attributi: Nome, Via, Città, Cap Il modello descrive anche 2 associazioni: una tra Cliente e Conto indicata con Possedere e la seconda tra Movimento e Conto di nome Variare 5 Tipi di modelli per la base di dati • Gerarchico • Reticolare • Relazionale 6 Modello gerarchico Il modello gerarchico è particolarmente adatto per rappresentare situazioni nelle quali è possibile fornire all’insieme dei dati una struttura nella quale ci sono entità che stanno in alto e entità che stanno in basso, secondo uno schema ad albero, nel quale i nodi rappresentano le entità e gli archi rappresentano le associazioni. Un DB gerarchico consiste in una collezione di record collegati da archi che rappresentano le associazioni. 7 Modello reticolare Nel modello reticolare le entità rappresentano i nodi e le associazioni rappresentano gli archi di uno schema a grafo orientato: si tratta di un’estensione del modello di albero gerarchico, essendo consentite anche associazioni tra entità che stanno in basso, e non solo dall’alto verso il basso come avviene nel modello gerarchico 8 Modello relazionale Il modello relazionale rappresenta il database come un insieme di tabelle. Esso viene considerato attualmente il modello più semplice ed efficace, perché è più vicino al modo consueto di pensare i dati, e si adatta in modo naturale alla classificazione e alla strutturazione dei dati 9 La gestione del database Il DBMS (Data Base Management System) è il software che consente di costruire e gestire una base di dati, realizzandola nella pratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un modello logico dei dati. Il DBMS costituisce quindi un’interfaccia tra gli utenti di un database con le loro applicazioni e le risorse costituite dall’hardware e dagli archivi di dati presenti in un sistema di elaborazione 10 Le funzioni di un DBMS • • • • • Implementazione del modello logico sul sistema di elaborazione (definizione dei dati derivati dallo schema logico, definizione dei sottoschemi(viste), organizzazione fisica dei dati su supporti di memorizzazione) Manipolazione e interrogazione sulla base di dati (inserimento modifica e cancellazione dei dati nel database, interfaccia tra programmi degli utenti e la base di dati, accesso ai contenti del database per le interrogazioni) Controllo dell’integrità dei dati (integrità dei dati in relazione ai valori che possono assumere, integrità definite dall’utente Sicurezza e protezione (garanzia di sicurezza dei dati contro i danni causati da malfunzionamenti di componenti Hw e sw, protezione dei dati da eventuali danneggiamenti offrendo la possibilità di attivare procedure di recovery, autorizzazione degli utenti che accedono alla base di dati, controllo degli accessi in modo concorrente) Supporto alle transazioni (garanzia che tutte le operazioni che compongono la transizione siano eseguite) 11 L’architettura a tre livelli dei sistemi per database Vista 1 Vista 2 Vista 3 Schema logico del database Schema fisico del database Database 12 Organizzazione fisica dei dati Caratteristiche dell’architettura a 3 livelli • Realizza meccanismi di astrazione dei dati e assicura l’indipendenza dei dati ( i livelli superiori non sono influenzati dai cambiamenti che avvengono nei livelli inferiori dell’architettura dei dati) • Semplifica la visione del database da parte degli utenti in quanto essi vedono solo le informazioni alle quali sono interessati limitando la possibilità di errore 13 I linguaggi del database • DDL (data definition Language): linguaggio per la descrizione dei dati, delle tabelle e delle viste, delle associazioni tra tabelle, dei vincoli di integrità e dei controlli relativi alla sicurezza • DML (data manipulation language): linguaggio per il trattamento dei dati contenuti nel database (inserimento, modifica e cancellazione di dati) • QL (query language): linguaggio per le interrogazioni alla base di dati (consente il ritrovamento dei dati che interessano, sulla base dei criteri richiesti dall’utente) 14 Gli utenti di un DB • DBA (database administrator): responsabile della gestione del database con compito di implementare il modello logico del DB, gestire i dati (controllo di inserimento, modifiche e cancellazione), autorizzazione degli accessi, definizione delle viste, manutenzione del DB nel tempo, controllo della disponibilità degli spazi di memoria di massa • Programmatori: utilizzano il linguaggio DML per utilizzare i dati del DB per le applicazioni, usano i comandi che sono un’estensione dei linguaggi tradizionali di programmazione • Utenti finali: accedono al DB attraverso i comandi di QL o mediante interfacce sw che presentano su video finestre, menu e icone 15 Gli utenti di un DB 16 Lo sviluppo del progetto informatico 17 La conoscenza degli obiettivi La prima fase del processo di sviluppo, detta analisi dei requisiti, riguarda la conoscenza degli obiettivi. Inoltre occorre la conoscenza globale dell’ambito del progetto (il sistema esistente). Bisogna conoscere quali sono gli archivi informatizzati già presenti nel sistema per evitare duplicazione di dati Il risultato di questa prima fase è la documentazione dell’area del progetto e una serie di ipotesi di prodotto 18 L’analisi La fase di analisi ha l’obiettivo di determinare e di descrivere tutte le componenti del progetto. Il risultato di questo lavoro diventa la base e la guida di tutto il progetto. Questa fase del processo di sviluppo tratta la definizione di 3 aspetti fondamentali: - dati (le informazioni che caratterizzano il progetto) - funzione (le funzionalità richieste al progetto) - flusso dei dati (le modalità di acquisizione e di uscita dei dati rispetto alle funzioni La documentazione dei dati prevede che ogni tipologia di dati abbia un nome e una descrizione. Inoltre si definisce il formato, la dimensione e l’obbligatorietà. Documentare il flusso dei dati tre le funzioni significa abbinare, a ogni funzione, quali dati utilizza in input e quali dati produce in output 19 La progettazione di dettaglio L’obiettivo della fase di progettazione è definire e descrivere dettagliatamente le caratteristiche del sistema informatico del progetto. I risultati principali di questa fase sono: - le specifiche per la creazione degli archivi elettronici - le specifiche per lo sviluppo dei moduli sw del progetto I prodotti di questa fase sono molteplici: - gli archivi del progetto (i dati si concretizzano in strutture di archivi tracciato record) - i moduli applicativi ( i modulo sw devono essere documentati con le specifiche informatiche indicanti il linguaggio di programmazione da usare e gli archivi elettronici da elaborare) - il formato dei report e delle interfacce (la descrizione degli output cartacei che i moduli sw producono - il sistema di comunicazione (nel caso di sistema informatico distribuito i protocolli di rete e il criterio di collegamento tra gli archivi) - i controlli (i controlli che devono essere previste nei moduli applicativi per garantire la sicurezza 20 La transizione L’obiettivo della transizione è quello di definire le modalità di passaggio dal sistema esistente al sistema del nuovo progetto (decidere cosa fare al momento dell’attivazione del progetto per garantire all’utente il minore disagio possibile) Le attività da eseguire sono: -definizione del piano di rilascio (pianificare le attività necessarie per la partenza del nuovo progetto) - definizione del piano di formazione (determina la necessità di formazione degli utenti del sistema, corsi di formazione, la pubblicazione di un manuale) - definizione del piano di migrazione dei dati (le specifiche da produrre consentono di generare i dati di partenza del nuovo progetto) - definizione del piano di installazione (occorre analizzare le componenti informatiche generali, le apparecchiature e il sw di sistema necessari, le persone che devono attivarsi per contribuire all’installazione) 21 Realizzazione La fase della realizzazione genera il prodotto del progetto. Trattandosi di un progetto informatico il prodotto è costituito da moduli sw (programmi) e dagli archivi utilizzati dai programmi stessi. I programmi sviluppati devono essere provati per garantire la qualità del sw (unit test eseguiti dalla persona che ha sviluppato il sw). Gli obiettivi delle prove sono: - verificare la logica del programma rispetto alle specifiche - verificare la correttezza e la completezza degli archivi di output - verificare le prestazioni del programma in termini di tempi di elaborazione 22 La documentazione L’obiettivo della fase di documentazione è fornire a tutti gli utenti del nuovo sistema il materiale documentativo da consultare nel corso dell’attività lavorativa. Il prodotto della documentazione è composto dal manuale per l’utente. Il manuale deve descrivere le funzionalità del progetto con un opportuno indice. La descrizione deve essere di facile consultazione e di dimensione ridotta Le fasi di documentazione, prove e formazione, hanno in comune la caratteristica di essere a corredo del progetto per ottimizzare l’ambiente in cui si deve operare. 23 Testing La finalità specifica di questa fase è quella di verificare il grado di aderenza del progetto alle necessità indicate dall’utente-committente e di rimuovere eventuali errori presenti nel sw (system test). Per raggiungere questo obiettivo occorre creare un ambiente, detto sistema di prova, che simuli la situazione effettivamente in essere al momento dell’attivazione del progetto. Predisposto l’ambiente di prova, inizia la vera attività di test. Il risultato finale delle prove consiste nella certificazione del progetto. Le tecniche di colloquio possono essere distinte in: - tecniche black-box (non si considera la struttura interna del sw, ma soltanto le sue funzionalità) - tecniche white-box (controlla l’esecuzione corretta delle singole istruzioni e delle strutture di controllo) 24 La formazione Obiettivo della fase di formazione è quello di mettere in condizione tutti gli utenti del nuovo sistema di operare conoscendo le caratteristiche del progetto. Il prodotto di questa fase è l’erogazione di corsi rivolti agli utenti del sistema. 25 L’esercizio o produzione L’obiettivo di questa fase è attivare il progetto presso gli utenti, controllare che i processi elaborativi producano i risultati attesi e verificare globalmente il sistema. Per consolidare il progetto è opportuno assistere e verificare le prime sessioni di elaborazione, attraverso attività di consulenza su casi pratici, rimozione di situazioni anomale e verifica degli output 26 Modellazione dei dati Lo sviluppo della base di dati dell’applicazione passa attraverso 3 fasi: - Progettazione concettuale - Progettazione logica - Progettazione fisica 27 Progettazione concettuale La progettazione concettuale è la sintesi tra la visione degli utenti e la visione dei progettisti dell’applicazione. Deve possedere 2 caratteristiche antitetiche: da una parte deve essere assolutamente precisa per non lasciare dubbi in merito alla caratteristica della base di dati, dall’altro deve essere espressa tramite formalismi sufficientemente semplici da permettere la lettura e la comprensione anche da parte di utenti non tecnici. Il modello Entità/Associazione presenta tali caratteristiche. 28 Modellazione dei dati Modellare i dati significa costruire una rappresentazione semplificata della realtà osservata o di un problema aziendale, individuandone gli elementi caratterizzati e i legami intercorrenti tra essi. La progettazione del modello di dati avviene a livelli diversi: - Il livello concettuale rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema - il livello logico rappresenta il modo attraverso il quale i dati sono organizzati negli archivi elettronici: descrive quindi la composizione e il formato dei dati nel loro aspetto di struttura logica di dati. Il livello logico viene derivato dal livello concettuale applicando alcune sempli regole di trasformazione - Il livello fisico rappresenta l’effettiva installazione degli archivi elettronici: esso indica l’ubicazione dei dati nelle memorie di massa. Il livello fisico è quindi l’implementazione del livello logico sui supporti per la registrazione fisica dei dati (partizione, puntatori, blocchi fisici, cluster, indici). 29 Modello concettuale Il modello concettuale viene definito attraverso lo schema dei dati: una rappresentazione sintetica degli elementi fondamentali che caratterizzano la realtà osservata. Questa rappresentazione è indipendente da: - i valori che vengono assegnati ai dati - le applicazioni degli utenti che utilizzano i dati - le visioni parziali dei dati da parte degli utenti 30 Modello Entità/Associazione Il modello Entità/Associazione è il modello più utilizzato nella progettazione concettuale. Introdotto nel 1976 dal matematico Chen, è uno strumento per analizzare le caratteristiche di una realtà in modo indipendente dagli eventi che in essa accadono. Il risultato di questo lavoro è la definizione di una rappresentazione grafica, detta schema E/R(Entity/Relationship), che mette in evidenza gli aspetti fondamentali del modello concettuale, con i dati caratterizzanti e le associazioni tra essi. Gli elementi di un modello entità/associazioni sono: - Entità - associazioni - attributi 31 L’entità L’entità è un oggetto che ha un significato anche quando viene considerato in modo isolato ed è di interesse per la realtà che si vuole modellare. Esempi di entità sono una persona, un modello di automobile, un movimento contabile…….. Nella rappresentazione grafica le entità sono identificate con un rettangolo contenente all’interno il nome dell’entità. studente automobile persona 32 L’associazione L’associazione (relationship) è un legame che stabilisce un’iterazione tra entità. La rappresentazione grafica usata per indicare un associazione è una linea con un simbolo che unisce le due entità interessate; il nome dell’associazione compare sulla linea con un simbolo che indica la punta della freccia per indicare il senso di lettura della associazione. persona Possedere automobile Di norma i nomi delle entità sono sostantivi mentre i nomi delle associazioni sono verbi 33 Grado di un associazione Le associazioni hanno un grado. Il grado è dato dal numero di entità che partecipano all’associazione. L’associazione tra automobile e persona è un associazione di grado 2 (associazione binaria). Ci sono associazioni tra un’entità e se stessa (associazioni ricorsive). L’associazione in figura è un esempio di associazione ricorsiva nella quale l’entità Dipendente partecipa all’associazione Coordinatore nel duplice ruolo di Supervisore e Collaboratore Coordinatore Supervisore Dipendente Collaboratore 34 Gli attributi Le proprietà delle entità e delle associazioni sono descritte attraverso gli attributi. Esempi di attributi per l’entità Automobile sono: Modello, Produttore, Cilindrata, PrezzoListino. Le caratteristiche di ogni attributo sono il formato, la dimensione e l’opzionalità: - Il formato di un attributo indica il tipo di valori che assume (carattere, numerico, data/ora) - la dimensione indica la quantità massima di caratteri o cifre inseribili - l’opzionalità indica la possibilità di non essere sempre valorizzato: l’attributo è obbligatorio se deve avere valore non nullo, facoltativo se sono accettati valori nulli Il valore nullo (Null) rappresenta un’informazione mancante (da non confondere col numero 0). L’insieme dei possibili valori assunti da un attributo si chiama dominio dell’attributo (valori omogenei tra loro cioè dello stesso tipo). 35 Attributi Gli attributi sono elencati nella parte inferiore del rettangolo che rappresenta l’entità Automobile Modello Produttore Cilindrata PrezzoListino 36 Chiave Si indica con il termine chiave o chiave primaria (primary key) un insieme minimale di attributi che permettono di distinguere tra loro le istanze di una stessa entità. Esempi di chiavi sono il codice di un prodotto, la matricola di un dipendente (La chiave primaria di un entità viene riconosciuta dalla presenza dell’acronimo {PK} accanto all’attributo chiave) Persona CodiceFiscale {PK} Nome Cognome DataNascita Indirizzo 37 Le associazioni tra entità La molteplicità di un associazione è il numero di possibili istanze di un’entità che viene messo in corrispondenza con un’istanza dell’altra entità che partecipa all’associazione. Il numero minimo e massimo di possibili istanze viene rappresentato mediante una coppia di valori separati da punti: 1..1, 0..1, 1..N. Al valore minimo e massimo sono associati gli importanti concetti di obbligatorietà e cardinalità dell’associazione: - il valore minimo assume uno dei due valori 0 e 1. Lo 0 indica che la partecipazione è facoltativa, mentre il valore 1 indica che la partecipazione è obbligatoria. - il valore massimo definisce la cardinalità della partecipazione all’associazione. Esso assume uno dei due valori 1 o N per indicare una o molte partecipazioni all’associazione 38 La cardinalità può essere a uno oppure a molti e pertanto le associazioni tra due entità si classificano in: - associazione uno a uno, indicata con 1:1 - associazione uno a molti, indicata con 1:N - associazione molti a molti, indicata con N:N 39 Associazione 1:1 Un associazione si dice uno a uno o biunivoca quando ogni istanza della prima entità si deve associare a una sola istanza della seconda entità e viceversa. Per es. l’associazione tra l’entità Studente e l’entità Diploma, in una scuola superiore, è biunivoca perché a ogni studente corrisponde un solo diploma e viceversa a un diploma corrisponde un solo studente. Consideriamo le entità Classe e Docente e l’associazione Coordinatore che collega un docente con la classe di cui è coordinatore. Ogni classe deve essere coordinata da un Docente e ogni Docente può coordinare una sola classe: Docente 1 1 Classe Coordinatore 40 Associazione 1:N (uno a molti) Un associazione si dice uno a molti, o semplice, e si indica con 1:N, quando ogni istanza della prima entità si può associare a una o più istanze della seconda entità, mentre a ogni istanza della seconda entità si deve associare una sola istanza della prima. Per es. nella gestione dei movimenti su un conto corrente, ogni conto può effettuare una o più operazioni, ma ogni movimento deve riferirsi a un solo conto corrente. ContoCorrente 1 N Movimento Effettuare 41 Associazione N:N (molti a molti) Un associazione si molti a molti, o complessa, e si indica con N:N, se a ogni istanza della prima entità si possono associare a una o più istanze della seconda entità e a ogni istanza della seconda entità si possono associare una o più istanze della prima. Consideriamo per es. le entità Docente e Classe e l’associazione Insegnare che associa i docenti di una scuola alle classi dove insegnano: ogni docente insegna in più classi e in ogni classe insegnano più docenti Docente N N Classe Insegnare 42 Regole di lettura Ogni <nome dell’entità di partenza> deve/può <nome dell’associazione> un solo/uno o più <nome dell’entità di arrivo> Per es. l’associazione tra l’entità Fornitore e l’entità Prodotto viene letta: ogni fornitore può fornire uno o più prodotti, ogni prodotto deve essere fornito da un solo fornitore Fornitore 1 N Prodotto Fornire 43 La normalizzazione delle relazioni La normalizzazione consente di creare tabelle ben definite, che facilitano le operazioni di aggiunta, modifica e cancellazione delle informazioni, e che rendono possibili i cambiamenti nella struttura del modello con l’evolvere delle esigenze aziendali e degli utenti del database. Nel seguito della trattazione verranno utilizzate le seguenti definizioni: - la chiave o chiave primaria, è l’insieme di uno o più attributi che identificano in modo univoco una n-upla (riga della tabella) - la chiave candidata è ogni insieme minimale di uno o più attributi che possono svolgere la funzione di chiave (ci possono essere molte chiavi candidate, ma una sola chiave candidata) - l’attributo non-chiave è un campo che non fa parte della chiave primaria. 44 Prima forma normale Una relazione è in prima forma normale quando rispetta i requisiti fondamentali del modello relazionale che sono: - tutte le righe della tabella contengono lo stesso numero di colonne - gli attributi rappresentano informazioni elementari - i valori che compaiono in una colonna sono dello stesso tipo, cioè appartengono allo stesso dominio - ogni riga è diversa da tutte le altre, cioè non ci possono essere due righe con gli stessi valori nelle colonne - l’ordine con il quale le righe compaiono nella tabella è irrilevante Gli attributi devono essere informazioni non ulteriormente scomponibili (cioè non 45 devono avere sottoattributi) Prima forma normale Per es. nella relazione: Dipendenti (Matricola, Nome, Indirizzo, FamiliariACarico) L’attributo FamiliariACarico non è elementare, in quanto non è costituito da un gruppo di attributi ripetuti dello stesso tipo (i nomi dei familiari). La relazionenon è in prima forma normale. La relazione può essere convertita in due tabelle: Dipendenti (Matricola, Nome, Indirizzo) Familiari (CodiceFam, NomeFam, MatricolaDip) Risulta più facile aggiungere eventuali nuovi attributi (es. età, sesso..) 46 Seconda forma normale Una relazione è in seconda forma normale quando è in prima forma normale e tutti i suoi attributi non chiave dipendono dall’intera chiave, cioè non possiede attributi che dipendono soltanto da una parte della chiave. La seconda forma normale elimina la dipendenza parziale degli attributi dalla chiave e riguarda il caso di relazioni con chiavi composte (formate da più attributi). La relazione Inventario: Inventario (Prodotto, Magazzino, Quantità, IndirizzoMagazzino) non è in seconda forma normale; infatti l’attributo IndirizzoMagazzino dipende funzionalmente dall’attributo Magazzino, che rappresenta una porzione di chiave. La soluzione consiste nel costruire nuove relazioni, togliendo dalla relazione di partenza gli attributi che dipendono solo parzialmente dalla chiave primaria. R1 (Magazzino, IndirizzoMagazzino) R2 (Prodotto, Magazzino, Quantità) 47 Terza forma normale Una relazione è in terza forma normale quando è in seconda forma normale e tutti gli attributi non-chiave dipendono direttamente dalla chiave (viene eliminata la dipendenza transitiva degli attributi dalla chiave). Per es. si consideri la gestione anagrafica di un’associazione di studenti di scuole diverse. Studenti (Nome, scuola, telefonoScuola) Il nome è l’attributo chiave e il telefono della scuola dipende dalla scuola. Nella relazione è presente un attributo non chiave (telefonoScuola) che dipende da un altro attributo non-chiave (scuola). Si possono avere anomalie nell’agiornamento e inconsistenza dei dati per il fatto che il telefono della scuola è ripetuto per ogni studente appartenente a quella scuola. La normalizzazione in 3FN si ottiene scomponendo la relazione di partenza in due nuove relazioni, nelle quali gli atributi dipendono direttamente dalla chiave. Studenti (Nome, scuola) Istituti (scuola, telefonoScuola) 48 L’integrità referenziale L’integrità referenziale è un insieme di regole del modello relazionale che garantiscono l’integrità dei dati quando si hanno relazioni associate tra loro attraverso la chiave esterna; queste regole servono per rendere valide le associazioni tra le tabelle e per eliminare gli errori di inserimento, cancellazione o modifica dei dati collegati tra loro. L’integrità referenziale viene rispettata quando per ogni valore non nullo della chiave esterna, esiste un valore corrispondente della chiave primaria nella tabella associata. Per es. nel db relazionale che contiene la tabella dei Clienti e la tabella degli Ordini, il codice del cliente della tabella Ordini è associato alla chiave della tabella Clienti. Clienti (Codice, RagioneSociale, Indirizzo) Ordini (NumeroOrdine, DataOrdine, CodiceCliente) Applicare l’integrità referenziale al db significa garantire che un valore, presente nella tabella Ordini per la chiave esterna CodiceCliente, abbia un corrispondente valore di Codice in una delle righe della tabella Clienti. Inoltre non si deve consentire la cancellazione di un cliente dalla tabella Clienti se ci sono righe nella tabella Ordini che si riferiscono ad esso. 49 L’integrità referenziale Quando viene applicata l’integrità referenziale, è necessario osservare le seguenti regole pratiche: - non è possibile immettere un valore nella chiave esterna della tabella associata, se tale valore non esiste tra le chiavi della tabella primaria - non è possibile eliminare una n-pla dalla tabella primaria, se esistono righe legate ad essa attraverso la chiave esterna nella tabella correlata - non si può modificare il valore alla chiave nella tabella primaria se ad essa corrispondono righe nella tabella correlata 50