L'utilizzo del modello ER per dati più grandi crea molta complessità durante la progettazione di un modello di database. Pertanto, per ridurre al minimo la complessità, la specializzazione e l'aggregazione della generalizzazione sono state introdotte nel modello ER. Questi sono stati utilizzati per l'astrazione dei dati. In cui viene utilizzato un meccanismo di astrazione per nascondere i dettagli di un insieme di oggetti.
Generalizzazione
La generalizzazione è il processo di estrazione di proprietà comuni da un insieme di entità e di creazione di un'entità generalizzata da esso. È un approccio dal basso verso l'alto in cui due o più entità possono essere generalizzate a un'entità di livello superiore se hanno alcuni attributi in comune.
Generalizzazione Esempio: STUDENTE e FACOLTA' possono essere generalizzati a un'entità di livello superiore chiamata PERSONA, come mostrato nel diagramma seguente. In questo caso attributi comuni come P_NAME e P_ADD diventano parte di un superiore entità (PERSONA) e specializzato attributi come S_FEE entrano a far parte di un ente specializzato (STUDENTE).
Specializzazione
Nella specializzazione un'entità viene suddivisa in sottoentità in base alle sue caratteristiche. Si tratta di un approccio top-down in cui l'entità di livello superiore è specializzata in due o più entità di livello inferiore entità .
Specializzazione Esempio: un'entità DIPENDENTE in un sistema di gestione dei dipendenti può essere specializzata in DEVELOPER TESTER ecc. In questo caso attributi comuni come E_NAME E_SAL ecc. diventano parte di un'entità superiore (EMPLOYEE) e attributi specializzati come TES_TYPE diventano parte di un'entità specializzata (TESTER).
Eredità
È una caratteristica importante della generalizzazione e della specializzazione. Nella specializzazione un'entità di livello superiore è divisa in sottoentità di livello inferiore che ne ereditano gli attributi. In generalizzazione, entità simili di livello inferiore vengono combinate in un'entità di livello superiore che possiede attributi comuni. In entrambi i casi l'ereditarietà consente alle sottoentità di riutilizzare le proprietà dell'entità madre.
- Eredità degli attributi: Consente alle entità di livello inferiore di ereditare gli attributi di entità di livello superiore e viceversa. Nel diagramma l'entità Auto è un'eredità dell'entità Veicolo, quindi l'Auto può acquisire attributi del Veicolo. Esempio: l'auto può acquisire l'attributo Modello del veicolo.
- Eredità delle relazioni : anche le sottoentità ereditano le relazioni dell'entità madre.
- Sostituzione dell'ereditarietà : le sottoentità possono sovrascrivere o aggiungere i propri attributi o comportamenti diversi da quelli principali.
- Eredità di partecipazione: L'ereditarietà della partecipazione nella modellazione ER si riferisce all'ereditarietà dei vincoli di partecipazione da un'entità di livello superiore (superclasse) a un'entità di livello inferiore (sottoclasse). Garantisce che le sottoclassi aderiscano alle stesse regole di partecipazione nelle relazioni sebbene gli attributi e le relazioni stesse vengano ereditati in modo diverso.
Esempio di relazione Esempio: Nel diagramma l'entità Veicolo ha una relazione con l'entità Ciclo ma non acquisirebbe automaticamente la relazione stessa con l'entità Veicolo. L'ereditarietà della partecipazione si riferisce solo all'ereditarietà dei vincoli di partecipazione e non alle effettive relazioni tra entità.
Aggregazione
- Un diagramma ER non è in grado di rappresentare la relazione tra un'entità e una relazione che potrebbe essere richiesta in alcuni scenari.
- In questi casi una relazione con le sue entità corrispondenti viene aggregata in un'entità di livello superiore.
- L'aggregazione è un'astrazione attraverso la quale possiamo rappresentare le relazioni come insiemi di entità di livello superiore.
Aggregazione Esempio: un dipendente che lavora su un progetto può aver bisogno di alcuni macchinari. Pertanto è necessaria la relazione REQUIRE tra la relazione LAVORO_FOR e l'entità MACCHINA. Utilizzando l'aggregazione la relazione LAVORO_PER con le sue entità DIPENDENTE e PROGETTO viene aggregata in un'unica entità e viene creata la relazione RICHIESTA tra l'entità aggregata e MACCHINARIO.
Rappresentazione dell'aggregazione tramite schema
Per rappresentare l'aggregazione in uno schema relazionale attenersi alla seguente procedura:
1. Creare uno schema per la relazione aggregata
- Questo verrà trattato come un set di entità.
- Include le chiavi primarie delle entità partecipanti nella relazione di base.
- Include anche eventuali attributi descrittivi della relazione di base.
2. Creare uno schema per la relazione di livello superiore (aggregazione)
- Questo schema include: La chiave primaria dello schema di relazione aggregato.
- La chiave primaria dell'entità associata a cui si riferisce.
- Eventuali attributi descrittivi aggiuntivi di questa relazione di livello superiore.