logo

Generalizacja, specjalizacja i agregacja w modelu ER

Używanie modelu ER do większych danych stwarza dużą złożoność przy projektowaniu modelu bazy danych. Aby zminimalizować złożoność, w modelu ER wprowadzono Generalizację, Specjalizację i Agregację. Wykorzystano je do abstrakcji danych. W którym mechanizm abstrakcji służy do ukrywania szczegółów zbioru obiektów. 

Uogólnienie

Generalizacja to proces wydobywania wspólnych właściwości ze zbioru bytów i tworzenia z nich uogólnionej jednostki. Jest to podejście oddolne, w którym dwa lub więcej bytów można uogólnić na byt wyższego poziomu, jeżeli mają one wspólne cechy.

Generalizacja Specjalizacja i agregacja w modelu ER' title=Uogólnienie

Przykład: STUDENT i WYDZIAŁ można uogólnić na jednostkę wyższego poziomu zwaną OSOBĄ, jak pokazano na poniższym schemacie. W tym przypadku wspólne atrybuty, takie jak P_NAME i P_ADD, stają się częścią wyższego podmiot (OSOBA) i wyspecjalizowana atrybuty jak S_FEE stać się częścią wyspecjalizowanego podmiotu (STUDENT). 



tablica Java do wyświetlenia

Specjalizacja

W ramach specjalizacji jednostka jest dzielona na podjednostki w oparciu o jej cechy. Jest to podejście odgórne, w którym jednostka wyższego poziomu specjalizuje się w dwóch lub większej liczbie jednostek niższego poziomu podmioty .

3d w autocadzie
Generalizacja Specjalizacja i agregacja w modelu ER' loading='lazy' title=Specjalizacja

Przykład: jednostka EMPLOYEE w systemie zarządzania pracownikami może zostać wyspecjalizowana w DEVELOPER TESTER itp. W tym przypadku wspólne atrybuty, takie jak E_NAME E_SAL itp., stają się częścią wyższej jednostki (EMPLOYEE), a wyspecjalizowane atrybuty, takie jak TES_TYPE, stają się częścią wyspecjalizowanej jednostki (TESTER). 

Dziedzictwo

Jest to ważna cecha generalizacji i specjalizacji. W specjalizacji jednostka wyższego poziomu jest dzielona na podjednostki niższego poziomu, które dziedziczą jej atrybuty. Uogólniając, podobne byty niższego poziomu są łączone w byt wyższego poziomu, który posiada wspólne atrybuty. W obu przypadkach dziedziczenie umożliwia podjednostkom ponowne wykorzystanie właściwości jednostki nadrzędnej.

  1. Dziedziczenie atrybutów: Umożliwia jednostkom niższego poziomu dziedziczenie atrybutów jednostek wyższego poziomu i odwrotnie. Na diagramie jednostka Samochód jest dziedzictwem jednostki Pojazd, zatem Samochód może nabyć atrybuty Pojazdu. Przykład: Samochód może uzyskać atrybut Model pojazdu.
  2. Dziedziczenie związku : Jednostki podrzędne dziedziczą również powiązania jednostki dominującej.
  3. Nadpisywanie dziedziczenia : Podelementy mogą zastąpić lub dodać własne atrybuty lub zachowania inne niż element nadrzędny.
  4. Dziedziczenie partycypacyjne: Dziedziczenie uczestnictwa w modelowaniu ER odnosi się do dziedziczenia ograniczeń uczestnictwa z jednostki wyższego poziomu (nadklasy) na jednostkę niższego poziomu (podklasę). Zapewnia to, że podklasy przestrzegają tych samych zasad uczestnictwa w relacjach, chociaż same atrybuty i relacje są dziedziczone w różny sposób.
Generalizacja Specjalizacja i agregacja w modelu ER' loading='lazy' title=Przykład relacji

Przykład: Na diagramie encja Pojazd ma relację z encją Cyklu, ale sama relacja z encją Pojazdu nie nabyłaby automatycznie. Dziedziczenie partycypacji odnosi się jedynie do dziedziczenia ograniczeń uczestnictwa, a nie rzeczywistych relacji między podmiotami.

Zbiór

  • Diagram ER nie jest w stanie przedstawić relacji pomiędzy jednostką a relacją, która może być wymagana w niektórych scenariuszach.
  • W takich przypadkach relacja z odpowiadającymi jej podmiotami jest agregowana w jednostkę wyższego poziomu.
  • Agregacja jest abstrakcją, dzięki której możemy reprezentować relacje jako zbiory encji wyższego poziomu.
Generalizacja Specjalizacja i agregacja w modelu ER' loading='lazy' title=Zbiór

Przykład: Pracownik pracujący nad projektem może potrzebować pewnych maszyn. Zatem potrzebna jest relacja REQUIRE pomiędzy relacją WORKS_FOR a jednostką MACHINERY. Używając agregacji relacja WORKS_FOR z jej jednostkami PRACOWNIK i PROJEKT jest agregowana w jedną całość i tworzona jest relacja REQUIRE pomiędzy zagregowaną jednostką a MASZYNĄ.

zestaw vs mapa

Reprezentowanie agregacji poprzez schemat

Aby przedstawić agregację w schemacie relacyjnym, wykonaj następujące kroki:

1. Utwórz schemat dla zagregowanej relacji

  • Będzie to traktowane jak zbiór jednostek.
  • Zawiera klucze podstawowe podmiotów uczestniczących w relacji podstawowej.
  • Zawiera także wszelkie atrybuty opisowe relacji podstawowej.

2. Utwórz schemat relacji wyższego poziomu (agregacja)

  • Schemat ten obejmuje: Klucz podstawowy schematu relacji zagregowanej.
  • Klucz podstawowy powiązanej jednostki, do której się odnosi.
  • Wszelkie dodatkowe atrybuty opisowe tej relacji wyższego poziomu.