Zovšeobecnenie a špecializácia sú presne opačné. Ďalej budeme diskutovať rozdiely medzi zovšeobecňovaním a špecializáciou pomocou porovnávacieho grafu.
Porovnávacia tabuľka
Základ pre porovnanie | zovšeobecnenie | špecializácie |
---|---|---|
základné | Pokračuje postupom zdola nahor. | Postupuje sa zhora nadol. |
funkcie | Generalizácia extrahuje spoločné črty viacerých entít na vytvorenie novej entity. | Špecializácia rozdeľuje entitu na vytvorenie viacerých nových entít, ktoré zdedí nejakú funkciu štiepiacej entity. |
subjekty | Subjekt vyššej úrovne musí mať entity nižšej úrovne. | Subjekt vyššieho stupňa nemusí mať subjekty nižšej úrovne. |
veľkosť | Zovšeobecnenie znižuje veľkosť schémy. | Špecializácia zvyšuje veľkosť schémy. |
prihláška | Generalizačné entity na skupine subjektov. | Špecializácia sa uplatňuje na jednu entitu. |
výsledok | Zovšeobecnenie vedie k vytvoreniu jedinej entity z viacerých subjektov. | Špecializácia vedie k vytvoreniu viacerých subjektov z jednej entity. |
Definícia zovšeobecnenia
Generalizácia, tento pojem sa často používa pri navrhovaní akejkoľvek relačnej schémy. Ak sa navrhovanie uskutočňuje postupom zdola nahor, je uvedené ako zovšeobecnenie. Ak sa entity, ktoré sa rozhodli vytvoriť schému, zdieľajú niektoré podobné funkcie, potom sa skombinujú, aby vytvorili subjekt vyššej úrovne.
Vo všeobecnosti hovoríme, ak niektoré entity nižšej úrovne majú spoločné charakteristiky, potom sú klubované, aby vytvorili novú entitu vyššej úrovne, ktorá sa bude ďalej skombinovať s niektorými entitami na vytvorenie novej entity vyššej úrovne. Pri generalizácii nikdy nemôže existovať entita na vysokej úrovni bez akejkoľvek entity nižšej úrovne.
Zovšeobecnenie sa vždy uplatňuje na skupinu entít a ak je prehľadané, zdá sa, že sa zmenšuje veľkosť schémy.
Predstavme si príklad zovšeobecnenia. Ak vás žiadam, aby ste pomenovali nejaký nábytok, potom je obyčajné povedať študijný stôl, jedálenský stôl, počítačový stôl, kreslo, skladacia stolička, kancelárska stolička, manželská posteľ, samostatné lôžko a zoznam je tak ďalej.
Nábytková entita je všeobecná entita všetkých tých subjektov, o ktorých sme diskutovali vyššie.
Definícia špecializácie
Špecializácia je postup navrhovania, ktorý prebieha spôsobom zhora nadol . Špecializácia je práve naopak. V špecializácii rozdelíme entitu na vytvorenie viacerých entit nižšej úrovne. Tieto novovzniknuté entity nižšej úrovne zdedí niektoré črty subjektov vyššej úrovne.
Môže sa stať, že subjekt vyššej úrovne sa nemusí ďalej rozdeliť, a preto nemusí mať žiaden subjekt nižšej úrovne. Špecializácia sa vždy uplatňuje na jednu entitu, a ak je prehľadná, zvyšuje veľkosť schémy.
Letus prerokúva špecializáciu pomocou príkladu. Vezmime entitu Animal a aplikujeme na ňu špecializáciu. Jednotlivé zviera sa môže ďalej rozlievať do obojživelníkov, plazov, vtákov, cicavcov, zoznam je dlhý, ale to stačí na vysvetlenie špecializácie.
Špecializácia tak zvyšuje počet entít, ktoré zvyšujú veľkosť schémy.
Kľúčové rozdiely medzi zovšeobecňovaním a špecializáciou v DBMS
- Základným rozdielom medzi zovšeobecňovaním a špecializáciou je to, že generalizácia je prístup zdola nahor. Špecializácia je však prístup zhora nadol.
- Generalizačný klub všetky entity, ktoré majú spoločné vlastnosti na vytvorenie novej entity. Na druhej strane špecializácia preniesla entitu tak, aby vytvorila niekoľko nových entít, ktoré zdedia niektoré vlastnosti premenenej entity.
- Pri zovšeobecňovaní musí vyššia entita mať niektoré nižšie entity, zatiaľ čo v špecializácii nemusí mať vyšší subjekt žiadny nižší subjekt.
- Generalizácia pomáha pri znižovaní veľkosti schémy, zatiaľ čo špecializácia je práve naproti tomu zvyšuje počet entít, čím sa zvyšuje veľkosť schémy.
- Zovšeobecnenie sa vždy uplatňuje na skupinu subjektov, pričom špecializácia sa vždy uplatňuje na jednu entitu.
- Zovšeobecnenie vedie k vytvoreniu jediného subjektu, zatiaľ čo špecializácia vedie k vytvoreniu viacerých nových entít.
záver:
Zovšeobecnenie a špecializácia sú navrhovacie postupy a obe sú rovnako dôležité pre návrh schémy. Ktorý z nich bude závisieť od požiadavky používateľa.