Att använda ER-modellen för större data skapar mycket komplexitet när man designar en databasmodell. För att minimera komplexiteten introducerades Generalisering Specialisering och Aggregation i ER-modellen. Dessa användes för dataabstraktion. I vilken en abstraktionsmekanism används för att dölja detaljer i en uppsättning objekt.
Generalisering
Generalisering är processen att extrahera gemensamma egenskaper från en uppsättning enheter och skapa en generaliserad enhet från den. Det är en nedifrån-och-upp-metod där två eller flera enheter kan generaliseras till en enhet på högre nivå om de har några attribut gemensamma.
Generalisering Exempel: STUDENT och FAKULTET kan generaliseras till en enhet på högre nivå som kallas PERSON som visas i diagrammet nedan. I det här fallet blir vanliga attribut som P_NAME och P_ADD en del av en högre enhet (PERSON) och specialiserad attribut som S_FEE bli en del av en specialiserad enhet (STUDENT).
Specialisering
Vid specialisering delas en enhet in i underenheter baserat på dess egenskaper. Det är en uppifrån och ned-strategi där enheten på högre nivå är specialiserad på två eller flera lägre nivåer enheter .
Specialisering Exempel: en ANSTÄLLD enhet i ett ledningssystem för anställda kan specialiseras till UTVECKLARTESTER etc. I detta fall blir vanliga attribut som E_NAME E_SAL etc. en del av en högre enhet (EMPLOYEE) och specialiserade attribut som TES_TYPE blir en del av en specialiserad enhet (TESTER).
Arv
Det är ett viktigt inslag i generalisering och specialisering. Vid specialisering delas en enhet på högre nivå in i underenheter på lägre nivå som ärver dess attribut. I generalisering kombineras liknande enheter på lägre nivå till en enhet på högre nivå som har gemensamma attribut. I båda fallen tillåter arv underenheter att återanvända moderenhetens egenskaper.
- Attribut arv: Det tillåter enheter på lägre nivå att ärva attributen för enheter på högre nivå och vice versa. I diagrammet är bilentiteten ett arv av fordonsenheten så att bilen kan förvärva fordonets attribut. Exempel: Bil kan få fordonets modellattribut.
- Släktskapsarv : Underenheter ärver också relationer från moderenheten.
- Åsidosättande arv : Underenheter kan åsidosätta eller lägga till sina egna attribut eller beteenden som skiljer sig från den överordnade.
- Deltagande arv: Deltagande arv i ER-modellering hänvisar till nedärvning av deltagande begränsningar från en enhet på högre nivå (superklass) till en enhet på lägre nivå (underklass). Det säkerställer att underklasser följer samma deltaganderegler i relationer även om attribut och relationer i sig ärvs olika.
Exempel på relation Exempel: I diagrammet har fordonsenhet en relation med cykelenhet men den skulle inte automatiskt förvärva själva relationen med fordonsenhet. Deltagande arv hänvisar endast till arvet av deltagande begränsningar inte de faktiska relationerna mellan enheter.
Aggregation
- Ett ER-diagram kan inte representera förhållandet mellan en enhet och en relation som kan krävas i vissa scenarier.
- I dessa fall aggregeras en relation med dess motsvarande enheter till en enhet på högre nivå.
- Aggregation är en abstraktion genom vilken vi kan representera relationer som entitetsuppsättningar på högre nivå.
Aggregation Exempel: en anställd som arbetar med ett projekt kan behöva vissa maskiner. Så REQUIRE relation behövs mellan relationen WORKS_FOR och entitet MACHINERY. Använda aggregering WORKS_FOR-relationen med dess enheter ANSTÄLLD och PROJEKT aggregeras till en enda enhet och relationen REQUIRE skapas mellan den aggregerade enheten och MACHINERY.
Representerar aggregation via Schema
Följ dessa steg för att representera aggregering i ett relationsschema:
1. Skapa schema för den aggregerade relationen
- Detta kommer att behandlas som en entitetsuppsättning.
- Den inkluderar primärnycklarna för de deltagande enheterna i basrelationen.
- Det inkluderar även alla beskrivande attribut för basrelationen.
2. Skapa schema för relationen på högre nivå (aggregation)
- Detta schema inkluderar: Den primära nyckeln för det aggregerade relationsschemat.
- Den primära nyckeln för den associerade entitet den relaterar till.
- Eventuella ytterligare beskrivande attribut för denna relation på högre nivå.