Obor (informatika) - Field (computer science)

V informatice lze data, která mají několik částí, známých jako záznam , rozdělit na pole ( datová pole ). Relační databáze uspořádají data jako sady databázových záznamů , takzvané řádky . Každý záznam se skládá z několika polí ; pole všech záznamů tvoří sloupce . Příklady polí: jméno, pohlaví, barva vlasů.

V objektově orientovaném programování je pole (nazývané také datový člen nebo členská proměnná ) konkrétní část dat zapouzdřená v rámci třídy nebo objektu . V případě pravidelného pole (nazývaného také proměnná instance ) existuje pro každou instanci objektu proměnná instance : například Employeetřída má Namepole a na zaměstnance připadá jedno jednoznačné jméno. Statické pole (nazývané také proměnná třídy ) je jedna proměnná, kterou sdílejí všechny instance. Pole jsou abstrahována vlastnostmi , které jim umožňují číst a zapisovat, jako by to byla pole, ale lze je přeložit do volání metody getter a setter .

Pevná délka

Pole, která obsahují pevný počet bitů, se nazývají pole pevné délky. Pole se čtyřmi bajty může například obsahovat 31bitové binární celé číslo plus znaménkový bit (celkem 32 bitů). Pole se jménem o velikosti 30 bajtů může obsahovat jméno osoby, které je na konci obvykle vyplněno mezerami. Nevýhodou použití polí pevné délky je, že některá část pole může být zbytečná, ale pro případ maximální délky je stále zapotřebí prostor. I když jsou pole vynechána, je pro udržení pevných počátečních pozic v záznamu například stále vyžadováno vyplnění chybějících polí.

Variabilní délka

Pole proměnné délky nemá vždy stejnou fyzickou velikost. Taková pole se téměř vždy používají pro textová pole, která mohou být velká, nebo pole, jejichž délka se značně liší. Například bibliografická databáze, jako je PubMed, má mnoho malých polí, jako je datum vydání a jméno autora, ale také obsahuje abstrakty, jejichž délka se velmi liší. Vyhrazení pole o určité délce s pevnou délkou by bylo neefektivní, protože by vynucovalo maximální délku abstraktů a protože ve většině záznamů by se plýtvalo místem (zvláště pokud mnoha článkům abstrakty zcela chyběly).

Implementace databáze běžně ukládají různě dlouhá pole zvláštními způsoby, aby všechny záznamy daného typu měly jednotnou malou velikost. Může to pomoci výkonu. Na druhou stranu data v serializovaných formách, jako jsou uložena v typických souborových systémech, přenášených napříč sítěmi atd. Obvykle používají zcela odlišné výkonnostní strategie. Volba závisí na faktorech, jako je celková velikost záznamů, výkonnostní charakteristiky paměťového média a očekávané vzorce přístupu.

Implementace databáze obvykle ukládají pole s proměnnou délkou způsoby, jako je

  • sekvence znaků nebo bajtů, za kterou následuje koncová značka, která je v řetězci zakázána. Díky tomu je pomalejší přístup k pozdějším polím ve stejném záznamu, protože pozdější pole nejsou vždy ve stejné fyzické vzdálenosti od začátku záznamu.
  • pointer na data v nějakém jiném místě, jako je URI , soubor offset (a možná i délku) nebo klíč identifikující záznam v nějakém zvláštním místě. To obvykle zrychluje procesy, které nepotřebují obsah polí s proměnnou délkou, ale zpomaluje procesy, které to dělají.
  • délka prefix následovaný zadaný počet znaků nebo bytů. Tím se zabrání hledání koncového markeru jako v první metodě a zabrání se ztrátě referenční lokality jako v druhé metodě. Na druhé straně ukládá maximální délku: největší číslo, které lze reprezentovat pomocí předpony (obecně pevná délka). Kromě toho se záznamy stále liší v délce a je nutné je procházet, abyste se dostali do pozdějších polí.

Pokud je pole s proměnnou délkou často prázdné, přicházejí na řadu další optimalizace.

Příklad

Tato java třída Person má 3 pole: firstName, lastName a heightInCentemeters.

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

Viz také

Reference