Dane (informatyka)
W informatyce dane (traktowane jako liczba pojedyncza, mnoga lub jako rzeczownik masowy ) to dowolna sekwencja jednego lub więcej symboli ; dane są pojedynczym symbolem danych. Dane wymagają interpretacji, aby stać się informacją . Dane cyfrowe to dane, które są reprezentowane przy użyciu binarnego systemu liczbowego składającego się z jedynek (1) i zer (0), zamiast reprezentacji analogowej . W nowoczesnych (po 1960) systemach komputerowych wszystkie dane są cyfrowe.
Dane istnieją w trzech stanach: dane w spoczynku , dane w tranzycie i dane w użyciu . Dane w komputerze są w większości przypadków przenoszone jako dane równoległe . Dane przenoszone do lub z komputera w większości przypadków są przenoszone jako dane szeregowe . Dane pochodzące z urządzenia analogowego, takiego jak czujnik temperatury, mogą być konwertowane na postać cyfrową za pomocą przetwornika analogowo-cyfrowego . Dane reprezentujące wielkości , znaki lub symbole, na których operacje są wykonywane przez komputer , są przechowywane i rejestrowane na magnetycznych , optycznych , elektronicznych lub mechanicznych nośnikach zapisu i przesyłane w postaci cyfrowych sygnałów elektrycznych lub optycznych. Dane wchodzą i wychodzą z komputerów za pośrednictwem urządzeń peryferyjnych .
Fizyczne elementy pamięci komputera składają się z adresu i bajtu/słowa do przechowywania danych. Dane cyfrowe są często przechowywane w relacyjnych bazach danych , takich jak tabele lub bazy danych SQL, i ogólnie mogą być reprezentowane jako abstrakcyjne pary klucz/wartość. Dane można organizować w wiele różnych typów struktur danych , w tym tablice, wykresy i obiekty . Struktury danych mogą przechowywać dane wielu różnych typów , w tym liczby , ciągi znaków , a nawet inne struktury danych .
Charakterystyka
Metadane pomagają tłumaczyć dane na informacje. Metadane to dane o danych. Metadane mogą być dorozumiane, określone lub podane.
Dane dotyczące fizycznych zdarzeń lub procesów będą zawierały element czasowy. Ten składnik czasowy może być dorozumiany. Dzieje się tak w przypadku, gdy urządzenie takie jak rejestrator temperatury odbiera dane z czujnika temperatury . Po odebraniu temperatury zakłada się, że dane mają odniesienie czasowe w chwili obecnej . Tak więc urządzenie rejestruje datę, godzinę i temperaturę razem. Gdy rejestrator danych podaje temperatury, musi również zgłaszać datę i godzinę jako metadane dla każdego odczytu temperatury.
Zasadniczo komputery wykonują sekwencję instrukcji, które otrzymują w postaci danych. Zbiór instrukcji do wykonania określonego zadania (lub zadań) nazywamy programem . Program to dane w postaci zakodowanych instrukcji do sterowania działaniem komputera lub innej maszyny. W nominalnym przypadku program wykonywany przez komputer będzie składał się z kodu maszynowego . Elementy pamięci , którymi manipuluje program, ale które w rzeczywistości nie są wykonywane przez jednostkę centralną (CPU), również są danymi. Najistotniejsze jest to, że pojedyncza baza danych jest wartością przechowywaną w określonej lokalizacji. Dlatego możliwe jest, aby programy komputerowe działały na innych programach komputerowych, manipulując ich danymi programowymi.
Aby przechowywać bajty danych w pliku, należy je serializować w formacie pliku . Zazwyczaj programy są przechowywane w specjalnych typach plików, różniących się od tych używanych do innych danych. Pliki wykonywalne zawierają programy; wszystkie inne pliki są również plikami danych . Jednak pliki wykonywalne mogą również zawierać dane wykorzystywane przez program wbudowany w program. W szczególności niektóre pliki wykonywalne mają segment danych , który nominalnie zawiera stałe i początkowe wartości zmiennych, z których oba można uznać za dane.
Granica między programem a danymi może stać się niewyraźna. Na przykład interpreter to program. Dane wejściowe do interpretera same w sobie są programem, a nie programem wyrażonym w natywnym języku maszynowym . W wielu przypadkach interpretowany program będzie czytelnym dla człowieka plikiem tekstowym , który jest przetwarzany za pomocą edytora tekstu . Metaprogramowanie podobnie obejmuje programy manipulujące innymi programami jako danymi. Programy takie jak kompilatory , linkery , debuggery , aktualizatory programów , skanery antywirusowe i tym podobne wykorzystują inne programy jako swoje dane.
Na przykład użytkownik może najpierw poinstruować system operacyjny , aby załadował program edytora tekstu z jednego pliku, a następnie użyć uruchomionego programu do otwarcia i edycji dokumentu przechowywanego w innym pliku. W tym przykładzie dokument byłby traktowany jako dane. Jeśli edytor tekstu zawiera również moduł sprawdzania pisowni , wówczas słownik (lista słów) modułu sprawdzania pisowni również będzie traktowany jako dane. Algorytmy używane przez moduł sprawdzania pisowni do sugerowania poprawek byłyby albo danymi kodu maszynowego , albo tekstem w jakimś interpretowalnym języku programowania .
W alternatywnym użyciu pliki binarne (które nie są czytelne dla człowieka ) są czasami nazywane danymi w odróżnieniu od tekstu czytelnego dla człowieka .
Całkowitą ilość danych cyfrowych w 2007 roku oszacowano na 281 miliardów gigabajtów (281 eksabajtów ).
Klucze i wartości danych, struktury i trwałość
Klucze w danych zapewniają kontekst dla wartości. Niezależnie od struktury danych, zawsze obecny jest kluczowy składnik. Klucze w danych i strukturach danych są niezbędne do nadania znaczenia wartościom danych. Bez klucza, który jest bezpośrednio lub pośrednio powiązany z wartością lub zbiorem wartości w strukturze, wartości stają się bez znaczenia i przestają być danymi. Oznacza to, że musi istnieć kluczowy komponent powiązany z komponentem wartości, aby można go było uznać za dane. [ potrzebne źródło ]
Dane mogą być reprezentowane na komputerach na wiele sposobów, zgodnie z poniższymi przykładami:
Baran
- Pamięć o dostępie swobodnym (RAM) przechowuje dane, do których procesor ma bezpośredni dostęp. Procesor może manipulować danymi tylko w lub pamięci swojego procesora . Jest to przeciwieństwo przechowywania danych, w którym procesor musi kierować przesyłaniem danych między urządzeniem pamięci masowej (dyskiem, taśmą ...) a pamięcią. RAM to tablica liniowych ciągłych lokalizacji, które procesor może odczytywać lub zapisywać, dostarczając adres dla operacji odczytu lub zapisu. Procesor może działać w dowolnym miejscu w pamięci w dowolnym czasie iw dowolnej kolejności. W pamięci RAM najmniejszym elementem danych jest bit binarny . Możliwości i ograniczenia dostępu do pamięci RAM zależą od procesora. Ogólnie pamięć główna jest zorganizowana jako tablica lokalizacji zaczynających się od adresu 0 ( szesnastkowo 0). Każda lokalizacja może przechowywać zwykle 8 lub 32 bity w zależności od architektury komputera .
Klucze
- Klucze danych nie muszą być bezpośrednim adresem sprzętowym w pamięci. Pośrednie , abstrakcyjne i logiczne kody kluczy mogą być przechowywane w powiązaniu z wartościami w celu utworzenia struktury danych . Struktury danych mają z góry określone przesunięcia (lub łącza lub ścieżki) od początku struktury, w której przechowywane są wartości danych. Dlatego klucz danych składa się z klucza do struktury oraz przesunięcia (lub łączy lub ścieżek) do struktury. Gdy taka struktura się powtarza, przechowując warianty wartości danych i kluczy danych w ramach tej samej powtarzalnej struktury, wynik można uznać za podobny do tabeli, w której każdy element powtarzającej się struktury jest traktowany jako kolumna, a każde powtórzenie struktury jest traktowany jako wiersz tabeli. W takiej organizacji danych kluczem danych jest zazwyczaj wartość w jednej (lub złożona z wartości w kilku) kolumnach.
Zorganizowane powtarzające się struktury danych
- Tabelaryczny widok powtarzających się struktur danych to tylko jedna z wielu możliwości . Powtarzające się struktury danych mogą być zorganizowane hierarchicznie , tak że węzły są połączone ze sobą w kaskadzie relacji rodzic-dziecko. Wartości i potencjalnie bardziej złożone struktury danych są połączone z węzłami. Zatem hierarchia węzłów zapewnia klucz do adresowania struktur danych powiązanych z węzłami. Ta reprezentacja może być traktowana jako odwrócone drzewo . Typowym przykładem są np. nowoczesne komputerowe systemy operacyjne systemów plików ; a XML jest inny.
Dane posortowane lub uporządkowane
- Dane mają pewne nieodłączne cechy, gdy są sortowane według klucza . Wszystkie wartości podzbiorów klucza pojawiają się razem. Podczas sekwencyjnego przechodzenia przez grupy danych z tym samym kluczem lub podzbiorem zmian klucza, jest to określane w kręgach przetwarzania danych jako przerwa lub przerwa kontrolna . W szczególności ułatwia agregację wartości danych na podzbiorach klucza.
Pamięć urządzeń peryferyjnych
- Aż do pojawienia się masowych pamięci nieulotnych, takich jak flash , trwałe przechowywanie danych było tradycyjnie osiągane poprzez zapisywanie danych na zewnętrznych urządzeniach blokowych, takich jak taśma magnetyczna i dyski twarde . Urządzenia te zwykle wyszukują lokalizację na nośniku magnetycznym, a następnie odczytują lub zapisują bloki danych o z góry określonym rozmiarze. W tym przypadku poszukiwana lokalizacja na nośniku to klucz danych, a bloki to wartości danych. Wcześnie używane systemy plików surowych danych dyskowych lub systemy operacyjne dysków zarezerwowały ciągłe bloki na dysku dla plików danych . W tych systemach pliki mogły się zapełniać, a miejsca na dane zabrakło, zanim wszystkie dane zostały w nich zapisane. W ten sposób wiele niewykorzystanej przestrzeni danych zostało bezproduktywnie zarezerwowane, aby zapewnić odpowiednią ilość wolnego miejsca dla każdego pliku. Późniejsze systemy plików wprowadziły partycje . Zarezerwowali bloki miejsca na dane na dysku dla partycji i wykorzystali przydzielone bloki bardziej ekonomicznie, dynamicznie przypisując bloki partycji do pliku w razie potrzeby. Aby to osiągnąć, system plików musiał śledzić, które bloki były używane lub nieużywane przez pliki danych w katalogu lub tabeli alokacji plików. Chociaż umożliwiło to lepsze wykorzystanie miejsca na dane na dysku, skutkowało to fragmentacją plików na dysku i towarzyszącym temu narzutem na wydajność z powodu dodatkowego czasu wyszukiwania w celu odczytania danych. Nowoczesne systemy plików dynamicznie reorganizują pofragmentowane pliki, aby zoptymalizować czas dostępu do plików. Dalszy rozwój systemów plików doprowadził do wirtualizacji napędów dyskowych, tj. gdzie dysk logiczny można zdefiniować jako partycje z wielu dysków fizycznych.
Zindeksowane dane
- Pobieranie małego podzbioru danych ze znacznie większego zestawu może oznaczać nieefektywne sekwencyjne przeszukiwanie danych. Indeksy to sposób na skopiowanie kluczy i adresów lokalizacji ze struktur danych w plikach, tabelach i zestawach danych, a następnie uporządkowanie ich przy użyciu odwróconych struktur drzewiastych w celu skrócenia czasu potrzebnego do odzyskania podzbioru oryginalnych danych. Aby to zrobić, klucz podzbioru danych do pobrania musi być znany przed rozpoczęciem pobierania. Najpopularniejszymi indeksami są metody indeksowania B-drzewa i dynamicznego klucza mieszającego . Indeksowanie wiąże się z nakładami związanymi z archiwizacją i pobieraniem danych. Istnieją inne sposoby organizowania indeksów, np. sortowanie kluczy i stosowanie algorytmu wyszukiwania binarnego .
Abstrakcja i pośredniość
- Programowanie zorientowane obiektowo wykorzystuje dwie podstawowe koncepcje zrozumienia danych i oprogramowania:
- Taksonomiczna struktura rang klas , będąca przykładem hierarchicznej struktury danych; I
- w czasie wykonywania tworzenie odniesień do struktur danych w pamięci obiektów, które zostały utworzone z biblioteki klas .
Dopiero po utworzeniu instancji obiekt określonej klasy istnieje. Po wyczyszczeniu odwołania do obiektu obiekt również przestaje istnieć. Lokalizacje pamięci, w których były przechowywane dane obiektu, są śmieciami i są przeklasyfikowane jako nieużywana pamięć dostępna do ponownego użycia.
Dane bazy danych
- Pojawienie się baz danych wprowadziło kolejną warstwę abstrakcji do trwałego przechowywania danych. Bazy danych używają metadanych i protokołu ustrukturyzowanego języka zapytań między systemami klienta i serwera , komunikując się przez sieć komputerową , używając dwufazowego systemu rejestrowania zatwierdzania, aby zapewnić kompletność transakcji podczas zapisywania danych.
Równoległe rozproszone przetwarzanie danych
- Nowoczesne, skalowalne i wydajne technologie utrwalania danych, takie jak Apache Hadoop , opierają się na masowo równoległym rozproszonym przetwarzaniu danych na wielu komputerach w sieci o dużej przepustowości. W takich systemach dane są rozproszone na wielu komputerach i dlatego każdy konkretny komputer w systemie musi być reprezentowany w kluczu danych, bezpośrednio lub pośrednio. Umożliwia to rozróżnienie między dwoma identycznymi zestawami danych, z których każdy jest przetwarzany w tym samym czasie na innym komputerze.