Aggregation (Informatik)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
QS-Informatik

Dieser Artikel wurde wegen inhaltlicher Mängel auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf mit, die inhaltlichen Mängel dieses Artikels zu beseitigen, und beteilige dich an der Diskussion! (+)
Begründung: Müsste oma-tauglicher werden, tlw. braucht der Artikel einfach ein paar mehr Erklärungen. Man beachte bei der Überarbeitung auch Aggregation (OLAP)! --Michileo 07:57, 2. Nov. 2011 (CET)

Eine Aggregation in der Informatik ist entweder

  • eine Verbindung zwischen Daten oder Objekten,
  • der Prozess der Erstellung von Metadaten aus Daten. Die Daten werden hierbei einer bestimmten Gruppe zugeordnet und es werden allgemeine Aussagen über die gesamte Gruppe gemacht.

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

Datenbank[Bearbeiten]

(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[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

Ä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[Bearbeiten]

Beispiele für Komposition und Aggregation in UML

In der objektorientierten Programmierung ist die Aggregation eine besondere Art der Assoziation zwischen Objekten. Sie beschreibt eine stärkere Beziehung zwischen Objekten als die allgemeine Assoziation - denn bei der Aggregation sind die assoziierten Objekte nicht mehr gleichwertig, sondern ein Objekt „ist Teil von“ einem anderen Objekt. Im Gegensatz zur Komposition (die auch eine „ist Teil von“ Assoziation beschreibt) kann das Teil-Objekt ohne das Aggregat-Objekt existieren. In der UML wird die Aggregation durch eine leere Raute, die Komposition durch eine ausgefüllte Raute symbolisiert.

Beispiel: Ehe versus Gebäude[Bearbeiten]

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

class Ehe // Ein 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[Bearbeiten]

Aggregation bedeutet im Zusammenhang mit Routingprotokollen (beispielsweise BGP, OSPF oder IS-IS), dass mehrere Routen (teilweise engl. Prefixes genannt) zu einer 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 Effizienz des Routingprotokolls zu steigern.

Diese Technologie erfordert die Verfügbarkeit von Classless Inter-Domain Routing.

Aggregation kann auch zum Steuern des Routings verwendet werden indem ein Teil einer aggregierten Route durch eine genauere Route (engl. 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[Bearbeiten]