Dziedzina (informatyka) - Field (computer science)

W informatyce dane składające się z kilku części, zwane rekordami , można podzielić na pola ( pola danych ). Relacyjne bazy danych porządkują dane w postaci zbiorów rekordów bazy danych , tzw. wierszy . Każdy rekord składa się z kilku pól ; pola wszystkich rekordów tworzą kolumny . Przykłady pól: imię, płeć, kolor włosów.

W programowaniu obiektowym , o polu (zwany również członkiem dane lub zmienny element ) jest szczególnym kawałek danych obudowane w klasie lub obiektu . W przypadku zwykłego pola (nazywanego również zmienną instancji ) dla każdej instancji obiektu istnieje zmienna instancji : na przykład Employeeklasa ma Namepole i ma jedną odrębną nazwę na pracownika. Pole statyczne (zwane również zmienną klasową ) to jedna zmienna, która jest współdzielona przez wszystkie instancje. Pola są abstrahowane przez właściwości , które umożliwiają ich odczytywanie i zapisywanie tak, jakby były polami, ale można je przetłumaczyć na wywołania metod pobierających i ustawiających .

Poprawiona długość

Pola zawierające stałą liczbę bitów są nazywane polami o stałej długości. Na przykład czterobajtowe pole może zawierać 31-bitową binarną liczbę całkowitą plus bit znaku (w sumie 32 bity). 30-bajtowe pole imienia i nazwiska może zawierać imię osoby, zwykle uzupełnione spacjami na końcu. Wadą stosowania pól o stałej długości jest to, że pewna część pola może zostać zmarnowana, ale nadal wymagana jest przestrzeń dla przypadku o maksymalnej długości. Ponadto w przypadku pominięcia pól wypełnienie brakujących pól jest nadal wymagane, aby na przykład zachować stałe pozycje początkowe w rekordzie.

Zmienna długość

Pole o zmiennej długości nie zawsze ma ten sam rozmiar fizyczny. Takie pola są prawie zawsze używane w przypadku pól tekstowych, które mogą być duże lub pól o bardzo zróżnicowanej długości. Na przykład bibliograficzna baza danych, taka jak PubMed, zawiera wiele małych pól, takich jak data publikacji i nazwisko autora, ale zawiera również streszczenia, które różnią się znacznie długością. Zarezerwowanie pola o stałej długości o pewnej długości byłoby nieefektywne, ponieważ wymuszałoby maksymalną długość streszczenia, a także ponieważ miejsce byłoby marnowane w większości rekordów (szczególnie, gdyby w wielu artykułach brakowało całkowicie streszczenia).

Implementacje bazodanowe zwykle przechowują pola o różnej długości w specjalny sposób, aby wszystkie rekordy danego typu miały jednakowy, mały rozmiar. Może to poprawić wydajność. Z drugiej strony dane w postaciach serializowanych, takich jak przechowywane w typowych systemach plików, przesyłane przez sieci itd., zwykle wykorzystują zupełnie inne strategie wydajności. Wybór zależy od takich czynników, jak całkowity rozmiar rekordów, charakterystyka wydajności nośnika pamięci oraz oczekiwane wzorce dostępu.

Implementacje baz danych zazwyczaj przechowują pola o zmiennej długości w taki sposób, jak:

  • sekwencja znaków lub bajtów, po której następuje znacznik końcowy, który jest zabroniony w samym ciągu. Sprawia to, że dostęp do późniejszych pól w tym samym rekordzie jest wolniejszy, ponieważ późniejsze pola nie zawsze znajdują się w tej samej fizycznej odległości od początku rekordu.
  • wskaźnik do danych w innej lokalizacji, takich jak URI , pliku offsetowego (a może długości) lub klucza identyfikującego rekord w jakimś specjalnym miejscu. Zwykle przyspiesza to procesy, które nie potrzebują zawartości pól o zmiennej długości, ale spowalnia procesy, które to robią.
  • długość prefiksu następuje przez określoną liczbę znaków lub bajtów. Pozwala to uniknąć szukania znacznika końcowego, jak w pierwszej metodzie, i pozwala uniknąć utraty lokalizacji odniesienia, jak w drugiej metodzie. Z drugiej strony narzuca maksymalną długość: największą liczbę, którą można przedstawić za pomocą przedrostka (zazwyczaj o stałej długości). Ponadto rekordy wciąż różnią się długością i muszą być przeszukiwane, aby dotrzeć do późniejszych pól.

Jeśli pole o różnej długości jest często puste, w grę wchodzą dodatkowe optymalizacje.

Przykład

Ta klasa java Person ma 3 pola: FirstName, lastName i heightInCentemeters.

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

Zobacz też

Bibliografia