# Modello ER (superiori)
### MODELLO E/R

Il modello E/R cioè Entità Associazione (Entity–relationship) nasce nel 1976 dall'idea di Peter Chen un Informatico che lavorava presso il MIT Sloan School of Management e serve per rappresentare il livello concettuale nello sviluppo di un Database, l'obiettivo del modello E/R è di poter descrivere una qualsiasi realtà indipendentemente dall'applicativo che la utilizzerà.
Gli elementi alla base di questo modello sono le:
* Entità: cioè gli elementi importanti della realtà che si vuole descrivere.
* Associazione: che rappresentano i collegamenti logici fra due entità:
e poi gli attributi di entità e associazioni. Se pensiamo che la realtà da descrivere sia la Scuola allora le entità possono essere gli studenti, i compiti, le materie, gli insegnanti. naturalmente la scelta delle entità all'interno della stessa Scuola poteva essere vista in chiave amministrativa e allora le cose importanti sarebbero state: Impiegati, CedoliniStipendi, Fatture etc. . Gli attributi dell'entità Studenti sono elementi significativi dell'entità stessa ad esempio: nome dello studente, cognome dello studente, telefono, data di nascita, e matricola dello studente sono attributi dell'entità studenti, la matricola possiamo indicarla come IDstudente (che rappresenta anche la chiave primaria e può essere un numero progressivo attribuito dalla scuola ad ogni suo iscritto).
(immagine delle entità che manca)
* Per rappresentare un'entità basta scriverne il nome e racchiuderla in un rettangolo, mentre per rappresentare le associazioni bisogna indicare tre cose : il grado , l'opzionalità e il verbo che descrive l'associazione .Per il grado che può essere dei seguenti tipi:
* 1:1 (uno a uno) questo è per esempio il legame fra un automobilista e la sua patente, ogni automobilista ha una patente e a ogni patente corrisponde un solo automobilista
* 1:N o N:1 (uno a molti, molti a uno) in questo caso un esempio è il legame fra studenti e compiti, ad ogni studente corrisponde uno o più compiti, mentre a un singolo compito corrisponde un solo studente
* N:N (molti a molti), in questo caso pensiamo al legame fra studenti e libri di una biblioteca, uno studente può aver letto uno o più libri, mentre ogni libro può essere stato letto da 1 o più studenti
* si usa la seguente rappresentazione grafica
* Il grado di una associazione modello ER
* mentre l'opzionalità si descrive indicando se quella associazione è obbligatoria o meno, determina in che ordine si devono inserire i dati nelle tabelle, se dico uno studente può leggere uno o più libri, quel può indica che posso inserire i dati degli studenti prima di aver inserito i libri, mentre se dico un lavoratore deve (obbligatoriamente) essere iscritto a un sindacato questo comporta che prima devo costruire la tabella dei sindacati e solo dopo inserire i lavoratori, e quando inserisco il singolo lavoratore devo specificare a quale sindacato appartiene.
* I casi sono allora 2 :
* ci deve essere un elemento associato (graficamente rappresentato da una linea continua)
* ci può essere un elemento associato (graficamente rappresentato da una linea tratteggiata)
* L'opzionalità nel modello ER
* Per indicare il verbo che descrive l'associazione lo si scrive all'interno di un rombo, vedi figura, posso leggere l'associazione fra 2 entità partendo dalla prima verso la seconda e viceversa
* Simbologia modello relazionale
Peter Chen ha descritto inoltre come trasformare questo modello nelle tabelle concrete di diversi database, queste regole si chiamano regole di derivazione. Nella pratica ogni entità diventerà poi una tabella, nella quale gli attributi diventano i titoli delle colonne, mentre le righe conterranno i dati che si riferiscono agli elementi dell'entità detti istanze, ad esempio Luca Rossi è un'istanza dell'entità studenti.
Con altra terminologia possiamo dire che ogni tabella corrisponde ad un archivio del database , le righe sono i record( insieme di dati uniti logicamente tra loro), e le colonne sono i campi del record.
La tabella viene poi popolata con i dati che si desidera immettere nei vari campi, dei quali campi il più importante è di sicuro la chiave primaria cioè quel campo o insieme di campi che identifica univocamente il singolo record, se il record descrive una persona possiamo usare come chiave primaria il suo codice fiscale.