Fondamenti del Modello Entità-Relazione e Struttura del Database

Classificato in Informatica

Scritto il in italiano con una dimensione di 7,27 KB

Modello Entità / RAPPORTO: Data Model

Un insieme di concetti che possono descrivere diversi livelli di astrazione della struttura di un database, che chiamiamo regime. (Livelli: Vista utente, Generale/comune, Interno/computer.)

Insieme di concetti, regole e convenzioni che ci permettono di descrivere e manipolare i dati del mondo reale che si desidera memorizzare nel database.

ISTITUZIONE (Entità)

Oggetto di cui conserviamo informazioni contenute nel database.

Tipo di Entità

  • Struttura generica: Rappresenta le occorrenze concrete di questo tipo di entità. DENOMINATA CON IL SUO NOME.
  • Rettangolo: Tipo di entità.
  • Normale o Pesante (Strong Entity): Le occorrenze di questa entità hanno esistenza propria.
  • Debole (Weak Entity): Ogni occorrenza di un'entità debole dipende da un'entità regolare da cui dipende. Rappresentata da un Doppio Rettangolo.

INTERAZIONE (Relazione)

Associazione o corrispondenza tra le entità. Graficamente è rappresentata da un diamante che contiene il nome della relazione (verbo) ed è collegata alle entità associate.

Caratteristiche della Relazione

  • Nome: Identifica la relazione.
  • Grado: Numero di soggetti coinvolti nella relazione. Può essere unaria, binaria o ternaria.
  • Tipo di Corrispondenza (Mapping Cardinality): Numero massimo di occorrenze di un'entità che possono intervenire per ogni occorrenza dell'entità che costituisce la relazione.
  • CARDINALE (Cardinalità): Numero massimo e minimo di occorrenze di questa entità che possono essere collegate alle occorrenze dei soggetti coinvolti nella relazione.
  • OPTIONAL (Opzionalità): La partecipazione ad un'associazione indica se tutte le istanze del soggetto partecipano all'associazione, o se esistono anche istanze che non sono associate. L'opzionalità si verifica quando il limite inferiore è pari a zero.
  • CONNETTIVITÀ: (Termine correlato alla cardinalità).

ATTRIBUTI

Ognuna delle funzioni che descrivono l'entità o la relazione. L'insieme dei possibili valori che può assumere un attributo è denominato dominio.

  • Semplice (Non scomponibile): Es. DNI.
  • Composito: Può essere scomposto in altri attributi. Es. Nome.
  • Identificatori (Chiavi): Distinguono in modo univoco ogni istanza di un'entità. Se ci sono diversi candidati, uno è eletto come principale e gli altri sono chiamati identificatori alternativi.
  • Descrittori: Tutti gli attributi che non sono identificatori.
  • Multivalore: Attributi che assumono più valori per ognuna delle istanze dell'entità.
  • Attributi nelle Associazioni: Quando è necessario un attributo che non descrive uno dei soggetti della relazione, esso viene rappresentato nella relazione stessa.

DIPENDENZA DI ESISTENZA E IDENTIFICAZIONE

I tipi di relazione sono classificati in base al tipo di entità che collegano.

  • Le entità regolari hanno relazioni associate regolari; le entità deboli sono associate debolmente.
  • Un tipo di relazione debole richiede che la cardinalità delle entità regolari o forti sia (1,1).
  • Unità Esistente (Existence Dependence): Al momento di un rapporto, le occorrenze dell'entità debole non possono esistere senza la presenza del soggetto regolare a cui appartiene.
  • Unità di Identificazione (Identification Dependence): Accade quando, oltre alla dipendenza dall'esistenza, l'entità debole non può essere identificata solo con le proprie caratteristiche e necessita di aggiungere la chiave dell'entità regolare da cui dipende. Si aggiunge l'ID all'etichetta del diamante della relazione.

GENERALIZZAZIONE ed EREDITARIETÀ

La Generalizzazione è il tipo di rapporto che esiste tra un'entità (super-tipo) e le entità di tipi più specifici che dipendono da essa (sotto-tipi). Si crea una gerarchia.

Rappresentazione grafica: Triangolo invertito con base parallela al contesto super-tipo e sotto-tipo.

  • Cardinalità: (1,1) sul super-tipo e (0,1) sul sotto-tipo.
  • EREDITARIETÀ: Gli attributi del super-tipo sono ereditati dai sotto-tipi.

Tipi di Generalizzazione

  • Totali: Tutte le istanze del super-tipo sono una delle istanze dei sotto-tipi. L'unione delle istanze dei sotto-tipi costituisce il super-tipo.
  • Parziali: Le istanze del super-tipo non devono appartenere a nessuno dei sotto-tipi, e l'unione dei sotto-tipi è diversa dal super-tipo.
  • Disgiuntiva o Esclusiva: Ogni istanza del super-tipo può appartenere al massimo a un solo sotto-tipo. L'intersezione delle istanze dei sotto-tipi è vuota.
  • Sovrapposta (Overlapping): Ogni istanza del super-tipo può appartenere a più sotto-tipi. L'intersezione delle istanze non può essere vuota.

Specificazione

Si verifica quando un'entità presenta determinati attributi e/o relazioni che hanno senso solo per alcuni casi. È conveniente definire dei sotto-tipi.

MODELLO RELAZIONALE

DOMINIO

Insieme contenente tutti i valori che può assumere un attributo.

RELAZIONE (Tabella)

  • Tupla: Riga o campo/colonna di una tabella o relazione. Le colonne sono conosciute come attributi e le righe come tuple.
  • Cardinalità: Numero di righe che ha una relazione.
  • Grado: Numero di colonne.

CHIAVI

  • Chiave (Key): Campo o insieme di campi che identifica univocamente una tupla.
  • Chiave Primaria (Primary Key): Campo o insieme di campi che identifica in modo univoco ed esclusivo una tupla. Può essercene solo una per ogni tabella. Questo comporta la creazione automatica di un indice primario da parte del gestore.
  • Chiavi Candidate (Candidate Keys): Campi o piccoli insiemi di campi che potrebbero essere chiavi primarie. Tutte le chiavi candidate sono potenziali chiavi primarie.

REGOLE

  1. Il contenuto della chiave primaria non è mai nullo e deve essere unico.
  2. Se un dominio o un insieme di domini definiti in una relazione R1 costituiscono una chiave primaria, se gli stessi campi sono presenti in una relazione R2, il valore di questi campi in R2 sarà o un valore presente in R1 o il suo valore sarà zero. Pertanto, in R2 verrà istituita una chiave esterna (Foreign Key) che crea un indice secondario predefinito. Questo ci permette di validare i dati contenuti nel database.

Voci correlate: