Přeskočit na obsah

Data (informatika)

Z Wikipedie, otevřené encyklopedie

Data jsou v informatice veškeré informace v digitální (číselné) podobě určené k počítačovému zpracování. Data (např. číslo, text, obrázek, zvuk, zdrojový kód atd.) jsou zapsány (kódovány) v podobě posloupností čísel (bajtů) a uloženy např. v operační paměti počítače nebo na záznamovém médiu (pevný disk, CD, paměťová karta, internetový server ap.). Stejným způsobem je kromě dat uložený sled instrukcí tvořící počítačový program, který určuje, jak má počítač data zpracovávat.

Data se sice zapisují jako posloupnosti bajtů, ale lidsky přítulnější je uvažovat na vyšší úrovni abstrakce - např. data jsou obrázek, který je uložen v nějakém formátu. K datům (bajtům, bitům) taktéž potřebujeme informaci, co reprezentují (představte si dobře zkomprimovaný soubor); k tomu se používají metadata. Data se často shlukují a strukturují a databáze je nástroj pro uchovávání a zpracovávání větších množství dat. Operační systém počítače pracuje se soubory a stará se o ně prostřednictvím souborového systému.

V jiném pojetí se za data považuje binární soubor, který není lidmi čitelný, na rozdíl od lidmi čitelných textových souborů.[1] Ale (moderní) datové formáty jako SGML, XML a JSON dovolují zachycovat data ve více (či méně) lidsky čitelné podobě.

Celkový objem digitálních dat v roce 2007 byl odhadnut na 281 bilionů GB.[2][3]

Data vs. program

Počítače v podstatě provádějí tok instrukcí, který dostanou. Řada instrukcí k vykonání úlohy (nebo úloh) se nazývá počítačový program, na nízké úrovni pak vykonatelný kód. Ten je pak vykonáván počítačem a je zapsán ve strojovém kódu. Části paměti, používané programem, které nejsou vykonávány procesorem, obsahují data. Obvykle se data měnit můžou a program se nemění. Striktní oddělení programu a dat (na nízké úrovni) je pragmatický přístup, který slouží i jako ochrana proti chybám softwaru a před úmyslnou snahou program změnit, resp. "vykonávat" data.

Typicky, různé soubory jsou používány na uchování programů nebo dat a rozlišují se konvencí pomocí přípon za tečkou. Spustitelné soubory obsahují programy; všechny ostatní soubory jsou datové. Přesto, spustitelné soubory mohou také obsahovat vestavěná data. V některých případech některé spustitelné soubory mají datový segment, který obsahuje konstanty a inicializační hodnoty, což jsou data. Knihovny (DLL) obsahují jak vykonatelné části, tak datové informace.

Například: uživatel může nejprve instruovat operační systém, aby načetl textový editor z jednoho souboru a následně editovat textový dokument uložený v jiném souboru. V tomto příkladě dokument obsahuje data. Pokud textový editor obsahuje i kontrolu pravopisu, pak jeho slovník (seznam slov) bude také obsahovat data. Algoritmus používaný kontrolou překlepů, navrhující opravy, by byl považován za programový kód.

Hranice mezi programem a daty může být (někomu) nejasná. Stejný soubor nebo část paměti může být podle způsobu použití data nebo program. Například interpret je program, kde vstupní data do interpretu jsou sama o sobě programový kód, jen nejsou vyjádřena v přirozeném počítačovém jazyce. V mnoha případech bude interpretovaný program v lidsky čitelné podobě (textový soubor), s nímž lze manipulovat v textovém editoru jako s přirozeným textem.

O vykonatelném kódu se často mluví i v případě, že je interpretován. Z technického pohledu jde o data interpretu, například shellu (sh, BAT). Ale protože ten interpret může podle těch dat vykonat skoro cokoli, z pohledu uživatele šlo o vykonání programu. Kompilátor, když generuje strojové instrukce, tak jsou to pro něj data. A JIT kompilátor taková data vygeneruje a pak je následně vykoná.

von Neumannova architektura

V běžně používané von Neumannově architektuře můžeme bajty použít jako data nebo program. Kompilátor generuje budoucí spustitelný kód jako data a ta se pak spustí. Interpret čte data, která někteří uživatelé chápou jako zdroják (což není kód, ale jeho abstrakce), a při jeho interpretaci vykonává interpret svoje instrukce. Na nízké úrovni je bajt data neodlišitelný od bajtu kódu, na vyšší úrovni programovacích jazyků se pro shodný formát programu i dat používá pojem homoikonicita (angl. homoiconicity).

Formát

Formát dat (v širokém smyslu, nejen souborů) je často standardizován, aby se počítače a programy domluvily. A aby se v tom vyznali i uživatelé, tak různé formáty souborů mají svoje konvenční přípony.

Neveřejné (binární) formáty nutily uživatele používat programy určitého výrobce. Otevřené formáty, často textové, odstraňují do určité míry tuto nepříjemnost.

Data v programovacích jazycích mají typ. Jednoduchý vestavěný nebo složený. Typ taky určuje, jak se kódují data do bitů (nebo bajtů) a teda jak se mají chápat bajty dat.

Klíče a hodnoty dat, struktury a persistence

Klíče v datech poskytují kontext pro hodnoty. Data vždy obsahují nějaký klíč bez ohledu na jejich strukturu. Klíče jsou v datech a datových strukturách nezbytným prvkem, který dává datům jejich význam. Bez klíče, který je přímo nebo nepřímo spojen s hodnotou, nebo s kolekcí hodnot ve struktuře, přestávají mít hodnoty význam a přestávají být daty. Nutno říct, že je potřeba, aby byla alespoň klíčová komponenta spojena s hodnotou, aby se na to dalo pohlížet jako na data. Data mohou být v počítačích reprezentována různými způsoby, viz následující příklady:

RAM

  • Hlavní paměť počítače nebo RAM je organizovaná jako pole sad elektronických spínačů nebo adres, které začínají na nule. Každá adresa může uložit byte (obyvkle 8, 16, 32 nebo 64 bitů v závislosti na architektuře procesoru). Proto má každá hodnota uložená v RAM adresu, která je rovna odchylce od počáteční adresy. Např. na adrese 0+n, kde n je zmiňovaná odchylka.

Klíče

  • Datové klíče nemusí být přímou hardwarovou adresou v paměti. Nepřímé, abstraktní a logické klíče mohou být uloženy společně s hodnotami, aby utvořily datové struktury. Datové struktury mají předdefinované odchylky (nebo linky nebo cesty) od začátku struktury, ve kterých jsou hodnoty dat uloženy. Proto se datový klíč skládá z klíče a odchylky (nebo linků nebo cest) struktury. Když se taková struktura opakuje, ukládání variací datových hodnot a klíčů ve stejné opakující se struktuře, na výsledek může být pohlíženo tak, že připomíná tabulku, v které je každý element opakující se struktury považován za sloupec a každé opakování struktury se považuje za řádek. V takové organizaci dat je datový klíč obvykle hodnotou (nebo složením hodnot v několika sloupcích) v některém sloupci.

Periferní úložiště

  • Až do příchodu nevolatilních počítačových pamětí jako jsou USB flash disky, se jako persistentní datové úložiště tradičně využívalo zapisování dat do externích blokových zařízení jako jsou magnetické pásky a diskové jednotky. Tyto zařízení typicky hledají adresu na magnetickém médiu a potom čtou nebo zapisují bloky dat předem deinfované velikosti. V tomto případě je hledaná adresa na médiu datovým klíčem a bloky jsou datové hodnoty. První datové souborové systémy, nebo systémy operující s diskovou jednotkou rezervovaly sousedící bloky na diskové jednotce pro datové soubory. V těchto systémech se soubory mohou zaplnit. Může jim dojít místo ještě před tím, než se všechna data na jednotku stihnou zapsat. Ne tolik využíváný prostor pro data byl zarezervován neproduktivně, aby se předešlo vzniku této situaci. To bylo známé jako syrový disk. Pozdější souborové systémy představily oddíly. Ty rezervovaly bloky diskových dat pro oddíly a používaly alokované bloky více ekonomicky dynamickým přiřazováním blooků oddílu souborům, pro které to bylo potřeba. Aby toho bylo možné dosáhnout, tak musel souborový systém udržovat informace o tom, které bloky byly nebo nebyly využívány datovými soubory v katalogu nebo alokační tabulce pro soubory. Přes to, že to vedlo k lepšímu využití místa na diskové jednotce, tak z toho vzešla fragmentace souborů napříč celým diskem a současně snížení výkonu díky vysoké latenci. Moderní souborové systémy přeorganizovávají fragmentované soubory dynamicky, aby optimalizovaly čas přístupu k souborům. Další vývoj v souborových systémech vedl k virtualizaci diskových jednotek. Například tak, že jako logický disk může být definováno několik oddílů z různých fyzických diskových jednotek.

Reference

  1. file(1) [online]. 2004-12-04 [cit. 2007-03-19]. (OpenBSD Manual Pages). Dostupné online. 
  2. Paul, Ryan. Study: amount of digital info > global storage capacity. arstechnica.com. Ars Technica, March 12, 2008. Dostupné online [cit. 2008-03-12]. 
  3. Gantz, John F. et al. The Diverse and Exploding Digital Universe [online]. International Data Corporation via EMC, 2008 [cit. 2008-03-12]. Dostupné online. 

Související články

V tomto článku byl použit překlad textu z článku Data (computing) na anglické Wikipedii.