Prostý databázový soubor

Prostý databázový soubor (též plochý databázový soubor, anglicky flat file database) je jednoduchá databáze (většinou tabulka) uložená v textovém souboru ve formě prostého textu. Takový soubor může mít příponu například .txt, .ini, .conf, ale i .dbf apod.

Příklad prostého databázového souboru.[1]

Charakteristika editovat

Prostý databázový soubor je jednoduchá databáze, kde mezi záznamy nejsou žádné strukturální vazby a soubor neobsahuje kromě vlastních dat žádné další prvky nesouvisející s uloženými daty. Taková databáze obsahuje záznamy (věty), přičemž každý záznam obsahuje položky (pole, prvky). Terminologie se může lišit u různých produktů, které prostou databázi používají.

Prostý databázový soubor může být v podobě prostého textu, který většinou obsahuje jeden záznam na řádek,[2] nebo též jako kombinace textu a binárních dat (např. soubory typu DBF nebo typu dbm, ale i ohraničený záznam na magnetické pásce nebo na pevném disku).

Databáze jako prostý text editovat

Prostý databázový soubor v podobě prostého textu je jednoduchým zápisem dat do textového souboru. Každý záznam (věta) je typicky zapsán na samostatném řádku. Jednotlivé záznamy jsou složeny z položek, které musí být nějakým vhodným způsobem v rámci řádku odlišeny. První z možností je použití speciálního znaku, tzv. oddělovače (například v souborech CSV je oddělovačem čárka, středník nebo tabulátor). Pokud je povoleno, aby se vybraný speciální znak mohl vyskytnout i v položce, musí být použito speciálního přístupu, aby bylo zabráněno záměně tohoto znaku s významem oddělovače položek (např. pomocí escape sekvence). Druhou možností je varianta, kdy každá položka má pevně danou délku a nevyužité místo je vyplněno prázdným místem (tzv. vata, výplň, anglicky padding, například mezery, tj. bílé znaky, anglicky whitespace character).

Příklady použití editovat

V unixových operačních systémech jsou prostým databázovým souborem systémové soubory /etc/passwd, /etc/group a další, které lze upravovat v běžném textovém editoru. Seznam jmen, adres a telefonních čísel napsaných na listu papíru je také prostý databázový soubor. Může být vytvořen psacím strojem, zapsán v tabulkovém procesoru nebo v textovém procesoru (tj. včetně použití různých fontů nebo barev).

Databáze jako binární soubor editovat

Prostý databázový soubor může být kombinací textu a binárních dat (např. soubory typu DBF nebo typu dbm). Vztahy mezi daty jsou v případě DBF souboru zaznamenány v samostatně v souboru typu IDX.

Příklady použití editovat

V 80. letech 20. století byly v systémech DOS a Macintosh populární aplikace, které umožňovaly uživatelům navrhovat a používat vlastní databáze a ukládat je do prostých databázových souborů. Byly stejně populární, jako tabulkové procesory a textové editory. Mezi prvními byl program FileMaker a sharewarový program PC-File a dále i dBase II, která navíc nabízela omezené relační schopnosti umožňující propojovat data uložená ve více souborech.

Historie editovat

První výpočetní stroje sloužily ke zpracování prostých databází. Na konci 19. století dostal Herman Hollerith nápad, že údaje ze sčítání lidu v USA by mohly být reprezentovány pomocí dírek v papírových kartičkách a zpracovány ve speciálních výpočetních strojích (tzv. stroje pro hromadné zpracování dat). Jeho koncept zakoupil americký výbor pro sčítání lidu a tak byla v roce 1890 vytvořena první počítačová databáze, která se skládala z tisíců krabic plných děrných štítků.

Hollerithova firma se vyvinula v počítačového giganta IBM, který dominoval na trhu zpracování dat po většinu 20. století. Děrné štítky od IBM se svojí pevnou délkou sloupce po 80 znacích staly všudypřítomným standardem pro hromadné zpracování dat až do 70. let 20. století.

Současné implementace editovat

Příkladem moderního řešení databáze v podnikové úrovni je program C-treeACE společnosti FairCom. Ke zpracování informací z prosté databáze se často používá tabulkový procesor, ale kromě něj je dnes k dispozici jen velmi málo programů, které by umožňovaly začátečníkům vytvářet a používat univerzální prostý databázový soubor. Tyto funkce jsou implementovány v Microsoft Works (k dispozici pouze pro některé verze Windows) a Apple Works (někdy nazývané Claris Works, k dispozici pro platformu Macintosh i pro některé verze Windows). S postupem času začaly některé produkty, jako je Paradox od Borlandu a Microsoft Access, nabízet začali některé relační možnosti přímo v programovacích jazycích. Systém řízení báze dat jako je MySQL nebo Oracle zpravidla vyžaduje, aby aplikaci vytvořil programátor.

Mnoho aplikací používá k ukládání svých konfiguračních dat prosté databázové soubory a mnoho aplikací také umožňuje uživatelům ukládat a načítat jejich vlastní informace z prostých databázových souborů použitím přednastavených typů položek. Příkladem mohou být programy pro správu kolekcí knih nebo událostí. Některé malé adresářové aplikace jsou v podstatě jednoúčelové prosté databázové soubory. Od roku 2011 je jeden z nejpopulárnějších nástrojů používajících prosté databázové soubory engine s názvem SQLite, který je standardní součástí PHP5.

Populárním formátem pro ukládání dat je též XML, který umožňuje používat složité vnořené datové struktury, které data prezentují. XML je postupně nahrazován formátem JSON, YAML i dalšími strukturovanými textovými formáty.

Příklad prosté databáze editovat

Základní prvky prostého databázového souboru jsou ukázány v následujícím příkladě, jehož uspořádání dat se skládá z řad sloupců a řádků uspořádaných do formátu tabulky a používá pouze jednu tabulku.

Sloupce obsahují: jméno (jméno osoby – druhý sloupec), tým (jméno atletického týmu podporované osobou – třetí sloupec) a unikátní číselný ID (slouží k jednoznačné identifikaci záznamu – první sloupec).

Zde je příklad textové reprezentace popsaných údajů:

id jméno tým
1 Amy Modří
2 Bob Červení
3 Chuck Modří
4 Dick Modří
5 Ethel Červení
6 Fred Modří
7 Gilly Modří
8 Hank Červení 

Pro prostý databázový soubor je tento typ reprezentace dat úplným standardem, i když z textu nejsou zcela evidentní některé další aspekty:

  • Datové typy: každý sloupec ve výše uvedené tabulce databáze je obvykle omezen na určitý datový typ. Takováto omezení jsou obvykle sestavena na základě jisté dohody, která není oficiálně uvedena, ledaže by data byla převedena do systému relační databáze.
  • Oddělené sloupce: Ve výše uvedeném příkladě jsou jednotlivé sloupce odděleny prázdnými znaky. Tomu se také říká odsazení nebo „pevná šířka“ datového formátování. Jinou běžnou konvencí je oddělení sloupců pomocí jednoho či více znaků oddělovače. Pro zobrazování dat jako je uvedeno výše v textu existuje mnoho různých konvencí (viz CSV, značkovací jazyk, programovací jazyk). Použití oddělovačů přináší jistou režii, která se při vyhledávání dat projeví pokaždé. Pevná šířka dat umožňuje záznamy procházet rychleji (jako pole), avšak způsobuje větší plýtvání úložným prostorem. Oddělovače jsou tak jednoduchou formou komprese dat. Používání oddělovačů, které obsahují délku součásti (deklarativní zápis), je poměrně vzácné, ale může snížit režii spojený s prohledáváním jednotlivých polí.
  • Relační algebra: Ve výše uvedené tabulce splňuje každý řádek nebo záznam standardní definici uspořádané n-tice z relační algebry (výše uvedený příklad znázorňuje sérii několika uspořádaných trojic). V prvním řádku jsou určeny názvy polí, které jsou spojeny s hodnotami každého řádku.
  • Systém pro správu databáze: Vzhledem k formálním operacím je možné, že jsou obvykle textové soubory limitovány více, než je vyžadováno. Protože operace s textem jsou obvykle omezeny, je výše uvedený stav dat spíše mezistavem před převodem tabulky do systému správy dat (relační databáze).

Praktická implementace editovat

  • GNU Recutils, sada nástrojů a knihoven pro přístup k vlastním úpravám textové databáze zvané „recfiles“
  • SQLite, softwarová knihovna, která implementuje samostatně, bez serveru a nulové konfigurace transakční SQL databázi.
  • TextDB, souborová databáze navržená pro zvládnutí vysokého zatížení. (Poslední aktualizace: 2009)
  • Mimesis, FFDB napsaný v PHP4, který používá více souborů a hromadný způsob ukládání
  • MySQL CSV, Způsob ukládání pro MySQL 5.x.
  • Flat File Checker – Volně šiřitelé aplikace pro ověření dat pro jednotné soubory.
  • HXTT JDBC CSV/Text – HXTT JDBC nástroj jednotného souboru
  • UNIXODBC Text Driver – UNIXODBC obsahuje textový ovladač
  • CsvJdbc – JDBC ovladač pro soubory CSV
  • J-Stels CSV – JDBC ovladač pro soubory CSV

Reference editovat

  1. Údaje vložené do slovníku Archivováno 18. 2. 2012 na Wayback Machine., Americké ministerstvo dopravy, Srpen 2001.
  2. FOWLER, Glenn. cql: Flat file database query language. WTEC'94: Technická konference USENIX v zimě 1994, Technický záznam konference. 1994. 

Externí odkazy editovat

V tomto článku byl použit překlad textu z článku Flat file database na anglické Wikipedii.