Bereich (Informatik) - Field (computer science)

In der Informatik können Daten, die aus mehreren Teilen bestehen, einem sogenannten Datensatz , in Felder ( Datenfelder ) unterteilt werden. Relationale Datenbanken ordnen Daten als Sätze von Datenbankeinträgen an , sogenannte Zeilen . Jeder Datensatz besteht aus mehreren Feldern ; die Felder aller Datensätze bilden die Spalten . Beispiele für Felder: Name, Geschlecht, Haarfarbe.

In der objektorientierten Programmierung ist ein Feld (auch als Datenelement oder Elementvariable bezeichnet ) ein bestimmtes Datenelement, das in eine Klasse oder ein Objekt eingeschlossen ist . Bei einem regulären Feld (auch Instanzvariable genannt ) gibt es für jede Instanz des Objekts eine Instanzvariable : beispielsweise hat eine EmployeeKlasse ein NameFeld und es gibt einen eindeutigen Namen pro Mitarbeiter. Ein statisches Feld (auch Klassenvariable genannt ) ist eine Variable, die von allen Instanzen gemeinsam genutzt wird. Felder werden durch Eigenschaften abstrahiert , wodurch sie gelesen und geschrieben werden können, als ob sie Felder wären, aber diese können in Getter- und Setter- Methodenaufrufe übersetzt werden.

Feste Länge

Felder, die eine feste Anzahl von Bits enthalten, werden als Felder mit fester Länge bezeichnet. Ein Vier-Byte-Feld kann beispielsweise eine binäre Ganzzahl von 31 Bit plus ein Vorzeichenbit (insgesamt 32 Bit) enthalten. Ein 30-Byte-Namensfeld kann den Namen einer Person enthalten, der normalerweise am Ende mit Leerzeichen aufgefüllt wird. Der Nachteil der Verwendung von Feldern mit fester Länge besteht darin, dass ein Teil des Felds möglicherweise verschwendet wird, aber dennoch Platz für den Fall der maximalen Länge benötigt wird. Auch wenn Felder weggelassen werden, ist das Auffüllen der fehlenden Felder weiterhin erforderlich, um beispielsweise feste Startpositionen innerhalb eines Datensatzes beizubehalten.

Variable Länge

Ein Feld mit variabler Länge hat nicht immer die gleiche physikalische Größe. Solche Felder werden fast immer für Textfelder verwendet, die groß sein können oder die sich in der Länge stark unterscheiden. Eine bibliografische Datenbank wie PubMed hat beispielsweise viele kleine Felder wie Veröffentlichungsdatum und Autorname, aber auch Abstracts, die in ihrer Länge stark variieren. Das Reservieren eines Felds mit fester Länge einer bestimmten Länge wäre ineffizient, da es eine maximale Länge für Zusammenfassungen erzwingen würde und weil in den meisten Datensätzen Platz verschwendet würde (insbesondere wenn viele Artikel keine Zusammenfassungen vollständig hätten).

Datenbankimplementierungen speichern im Allgemeinen Felder unterschiedlicher Länge auf besondere Weise, damit alle Datensätze eines bestimmten Typs eine einheitliche kleine Größe haben. Dies kann die Leistung verbessern. Auf der anderen Seite verwenden Daten in serialisierter Form, wie sie in typischen Dateisystemen gespeichert sind, über Netzwerke übertragen werden usw., normalerweise ganz andere Performance-Strategien. Die Wahl hängt von Faktoren wie der Gesamtgröße der Datensätze, den Leistungsmerkmalen des Speichermediums und den erwarteten Zugriffsmustern ab.

Datenbankimplementierungen speichern in der Regel Felder mit variabler Länge wie z

  • eine Folge von Zeichen oder Bytes, gefolgt von einer Endmarkierung , die innerhalb der Zeichenfolge selbst verboten ist. Dadurch wird der Zugriff auf spätere Felder im selben Datensatz langsamer, da sich die späteren Felder nicht immer im gleichen physischen Abstand vom Anfang des Datensatzes befinden.
  • ein Zeiger auf Daten an einem anderen Ort, wie z. B. ein URI , ein Datei-Offset (und vielleicht Länge) oder ein Schlüssel, der einen Datensatz an einer bestimmten Stelle identifiziert. Dies beschleunigt normalerweise Prozesse, die den Inhalt der Felder variabler Länge nicht benötigen, verlangsamt jedoch Prozesse, die dies benötigen.
  • ein Längenpräfix gefolgt von der angegebenen Anzahl von Zeichen oder Bytes. Dies vermeidet Suchen nach einem Endmarker wie bei der ersten Methode und vermeidet den Verlust der Referenzlokalität wie bei der zweiten Methode. Andererseits schreibt es eine maximale Länge vor: die größte Zahl, die mit dem Präfix (im Allgemeinen fester Länge) dargestellt werden kann. Außerdem variieren Datensätze noch in der Länge und müssen durchlaufen werden, um spätere Felder zu erreichen.

Wenn ein Feld unterschiedlicher Länge oft leer ist, kommen zusätzliche Optimierungen ins Spiel.

Beispiel

Diese Person-Java-Klasse hat 3 Felder: firstName, lastName und heightInCentemeters.

public class Person
{
	private String firstName;
	private String lastName;
	
	private int heightInCentemeters;
}

Siehe auch

Verweise