Utilizziamo cookie tecnici e di profilazione (anche di terze parti) per migliorare la tua esperienza su questo sito. Continuando la navigazione accetti l'utilizzo dei cookie; in alternativa, leggi l'informativa e scopri come disabilitarli.

Progettazione concettuale (SCHEMI E-R)

 

  1. Individuare le entità

  2. Individuare gli attributi (semplici, multipli, composti)

  3. Individuare il dominio degli attributi (tipo, eventuale dominio, NULL?)

  4. Per ogni entità individuare le chiavi candidate e la chiave primaria.

  5. Individuare le associazioni tra le entità (1:1, 1:N, N:N).

  6. Per le associazioni N:N verificare se è il caso di aggiungere attributi.

 

Progettazione Logica

  1. Una tabella per ogni entità, con il nome al plurale

  2. Per ogni associazione 1:1 si aggiunge una delle due chiavi primarie come chieve esterna nell'altra.

  3. Per ogni associazione 1:N si aggiunge la chiave primaria della entità dal lato 1 alla tabella dell'entità dal lato N come chiave esterna. Verificare se può essere NULL. (Esempio: persone imbarcate su una nave: metto la chiave di nave in persona, può essere NULL).

  4. Per ogni associazione N:N si crea una nuova tabella con le chiavi primarie delle due entità e gli eventuali attributi della relazione. Solitamente la chiave primaria è composta dalle due chiavi esterne.

Regole sulle chiavi:

  1. Chiave candidata e/o primaria: univoca, not null (a livello di sviluppo della tabella le chiavi candidate non scelte come primarie mantengono i vincoli di unicità e not null). Se possibile la chiave primaria deve essere SEMPLICE (non composta), numerica meglio ancora.

  2. Chiavi esterne: possono essere NULL o NOT NULL, potrebbero, in certi casi, essere univoche.

Regole di integrità referenziale (ci si riferisce ai dati contenuti nelle tabelle)

  1. i valori delle chiavi primarie devono essere univoci (banale)

  2. i valori delle chiavi esterne devono essere compresi nell'insieme dei valori della chiave primaria della tabella referenziata.

Influenzano gli inserimenti, modifiche e cancellazione dei dati.

Insert: prima metto i dati nella tabella referenziata (Navi, per esempio) e poi inserisco o modifico i record della tabella referente (Persone): per dire che una persona è imbarcata su una nave, la nave deve esistere)

Delete: per rispettare il vincolo di integrità referenziale deve prestare attenzione a diversi casi:

  1. cancello una nave: che succede alle persone che erano imbarcate?

    1. Non posso cancellare la nave fintanto che c'è qualcuno imbarcato

    2. Cancello anche tutte le persone imbarcate (ON DELETE CASCADE nella definizione della chiave esterna)

    3. Metto NULL nella chiave esterna di Persone per ognuna delle persone imbarcate sulla nave (ON DELETE NULL ????)

    4. Metto il valore di default per quella chiave esterna (ON DELETE DEFAULT ???), quasi mai usato.

  2. cancello una persona: non faccio nulla sulla tabella Navi.

    Update: le regole sono le stesse perchè cancello i vecchi valori e inserisco i nuovi, però posso indicare regole diverse rispetto alla Delete.