Share to: share facebook share twitter share wa share telegram print page

 

Aggregation (Informatik)

Eine Aggregation in der Informatik ist entweder

Für die Untergebiete der Informatik gibt es jedoch noch weitere Bedeutungen.

Semantische Datenmodellierung

Um komplexe Informationssysteme zu modellieren, werden Objekte in mehreren Abstraktionshöhen betrachtet. Die Aggregation ist, neben der Generalisierung, eine Methode komplexere Objekte zu betrachten. So wird, in Anlehnung an die Mereologie, eine Beziehung zwischen zusammengesetzten Objekten und ihren Bestandteilen berücksichtigt. Bei dieser Beziehung von Teilen zu einem Ganzen können verschiedene Möglichkeiten vorkommen:

  • Kann ein Teil ohne das Ganze weiterbestehen? Z.B. wenn ich ein Auto aus dem System entferne, können die Bestandteile weiter existieren.
  • Überlebt das Ganze die Entfernung eines Teiles? Ist ein Auto ohne Motor noch ein Auto? Und ohne ein Rad?
  • Kann ein Teil an mehreren Ganzen teilhaben? Z.B. ich kann mich in mehrere Vorlesungen einschreiben.
  • Ein Ganzes kann verschiedenartig geteilt werden. Z.B. ein menschlicher Körper besteht aus Kopf, Gliedern und Oberkörper oder aus Atmungssystem, Kreislauf und Verdauungssystem.

Andererseits kann eine Aggregation homogen oder heterogen sein. Bei einer homogenen Aggregation, auch Gruppierung genannt, sind alle Teile vom gleichen Typ. So z. B. eine Klasse von Schülern. Bei einer heterogenen Aggregation, auch Komposition genannt, ist die Anzahl der Teile meistens vorbestimmt und jeder Teil ist von einer anderen Art. So, ein Auto oder ein menschlicher Körper.

Datenbank

(SQL-)Anfragen an ein Datenbankmanagementsystem geben meist Mengen von Datensätzen zurück. Jedoch können durch Aggregatfunktionen auch zusammengefasste Informationen ermittelt werden. Ein einfaches Beispiel ist die Errechnung eines Durchschnittsalters aus einer Personentabelle.

Beispiel: Durchschnittsalter Bei einer vorhandenen Personentabelle mit den Spalten Name und Alter soll das Durchschnittsalter errechnet werden.

Personen
Name Alter
Hans 25
Herbert 37
Helmut 56

Mit SELECT Name, Alter FROM Personen können alle Datensätze erhalten werden. Eine Aggregation (das Errechnen des Durchschnittsalters) könnte per programmierter Anwendungslogik nachträglich durchgeführt werden.

Die modifizierte Anfrage SELECT AVG(Alter) FROM Personen (AVG steht für average, dt. Durchschnitt) gibt das Durchschnittsalter sofort zurück (in diesem Fall 39 1/3).

„is-part-of“-Beziehung

Eine andere Verwendung des Begriffs Aggregation ist auch beim Entity-Relationship-Modell zu finden. So können hier mehrere Einzelobjekte logisch zu einem Gesamtobjekt zusammengefasst werden. Dies geschieht mit der „is-part-of“-Beziehung.

OLAP

Ähnliche Verwendung findet Aggregation auch im Bereich der OLAP-Systeme. Hier gilt das gleiche Prinzip wie bei den einfachen Aggregatsfunktionen von SQL. Jedoch handelt es sich dort um die Verdichtung ganzer Datenwürfel.

Objektorientierte Softwareentwicklung

Beispiele für Komposition und Aggregation in UML

In der objektorientierten Programmierung spezifiziert die Aggregation eine Assoziation zwischen Objekten. Im Gegensatz zur Komposition (die ebenfalls eine „ist-Teil-von“-Assoziation beschreibt) kann das Teil-Objekt ohne das Aggregat-Objekt existieren; Es wird also nicht automatisch beim Löschen des Aggregat-Objekts mitgelöscht. In der UML wird die Aggregation durch eine leere, die Komposition durch eine ausgefüllte Raute auf der Seite der Aggregat-Klasse symbolisiert.

Beispiel: Ehe versus Gebäude (C++)

Aggregation: Eine Ehe besteht aus zwei Ehepartnern, die auch nach einer Scheidung der Ehe als eigenständige Personen fortbestehen.

class Ehe // Beispiel einer Aggregation.
{
private:
    Person& _partner1; // Enthaltener Teil.
    Person& _partner2; // Enthaltener Teil.

public:
    // Initialisierender Konstruktor.
    Ehe (Person& partner1, Person& partner2)
        : _partner1(partner1), _partner2(partner2)
    { }
};

Komposition: Im Unterschied dazu besteht ein Gebäude aus Stockwerken, die nach dessen Abriss nicht eigenständig fortbestehen.

class Gebaeude // Beispiel einer Komposition.
{
private:
    std::vector<Stockwerk> _stockwerke; // Enthaltene Teile.

public:
    // Initialisierender Konstruktor.
    Gebaeude(std::size_t anzahlStockwerke)
        : _stockwerke(anzahlStockwerke)
    {
        if (anzahlStockwerke < 1)
            throw std::logic_error("Das Gebäude muss mindestens 1 Stockwerk haben.");
    }
};

Routing

Aggregation bedeutet im Zusammenhang mit Routingprotokollen (beispielsweise BGP, OSPF oder IS-IS), dass mehrere spezifischere Routen (teilweise englisch Prefixes genannt) zu einer weniger spezifischen Route zusammengefasst werden können, ohne dass die enthaltene Ziel-Information dadurch inhaltlich verändert wird. Sinn dieser Maßnahme ist, die Anzahl der zu verwaltenden Routen zu minimieren und damit die Stabilität des Routingprotokolls zu steigern.

Das Prinzip der Routen-Aggregierung basiert auf Classless Inter-Domain Routing.

Aggregation kann auch zum Steuern des Routings verwendet werden, indem ein Teil einer aggregierten Route durch eine genauere Route (englisch more specific) ebenfalls propagiert wird. Die genauere Route gewinnt hier für das spezifischere Ziel, während der übrige Bereich der aggregierten Route folgt.

Siehe auch

Kembali kehalaman sebelumnya


Index: pl ar de en es fr it arz nl ja pt ceb sv uk vi war zh ru af ast az bg zh-min-nan bn be ca cs cy da et el eo eu fa gl ko hi hr id he ka la lv lt hu mk ms min no nn ce uz kk ro simple sk sl sr sh fi ta tt th tg azb tr ur zh-yue hy my ace als am an hyw ban bjn map-bms ba be-tarask bcl bpy bar bs br cv nv eml hif fo fy ga gd gu hak ha hsb io ig ilo ia ie os is jv kn ht ku ckb ky mrj lb lij li lmo mai mg ml zh-classical mr xmf mzn cdo mn nap new ne frr oc mhr or as pa pnb ps pms nds crh qu sa sah sco sq scn si sd szl su sw tl shn te bug vec vo wa wuu yi yo diq bat-smg zu lad kbd ang smn ab roa-rup frp arc gn av ay bh bi bo bxr cbk-zam co za dag ary se pdc dv dsb myv ext fur gv gag inh ki glk gan guw xal haw rw kbp pam csb kw km kv koi kg gom ks gcr lo lbe ltg lez nia ln jbo lg mt mi tw mwl mdf mnw nqo fj nah na nds-nl nrm nov om pi pag pap pfl pcd krc kaa ksh rm rue sm sat sc trv stq nso sn cu so srn kab roa-tara tet tpi to chr tum tk tyv udm ug vep fiu-vro vls wo xh zea ty ak bm ch ny ee ff got iu ik kl mad cr pih ami pwn pnt dz rmy rn sg st tn ss ti din chy ts kcg ve 
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9