:盽紈カ碔禥¦程か芖畐砆緄睫初琕
Databáze (neboli datová základna, té? databanka) je systém soubor? s pevnou strukturou záznam?. Tyto soubory jsou mezi sebou navzájem propojeny pomocí klí??. V ?ir?ím smyslu jsou sou?ástí databáze i softwarové prost?edky, které umo?ňují manipulaci s ulo?enymi daty a p?ístup k nim. Tento software se v ?eské odborné literatu?e nazyvá systém ?ízení báze dat (S?BD). Bě?ně se ozna?ením databáze – v závislosti na kontextu – myslí jak ulo?ená data, tak i software (S?BD).
Historie
[editovat | editovat zdroj]P?edch?dcem databází byly papírové kartotéky. Umo?ňovaly uspo?ádávání dat podle r?znych kritérií a zat?i?ování novych polo?ek. Ve?keré operace s nimi prováděl p?ímo ?lověk. Správa takovych kartoték byla v mnohém podobná správě dne?ních databází.
Dal?ím krokem bylo p?evedení zpracování dat na stroje. Za první velké strojové zpracování dat lze asi pova?ovat s?ítání lidu ve Spojenych státech v roce 1890. Pamě?ovym médiem byl děrny ?títek a zpracování sebranych informací probíhalo na elektromechanickych strojích. Elektromechanické stroje se vyu?ívaly pro ú?ely zpracování dat dal?í p?lstoletí.
Velkym impulsem pro dal?í rozvoj databází byl p?ekotny vyvoj po?íta?? v 50. letech. Ukázalo se, ?e p?vodně univerzální pou?ívání strojového kódu procesor? je (nejen) pro databázové úlohy neefektivní, a proto se objevil po?adavek na vy??í jazyk pro zpracování dat.
V roce 1959 se konala konference zástupc? firem, u?ivatel? a amerického ministerstva obrany, jejím? závěrem byl po?adavek na univerzální databázovy jazyk. Vysledkem byla o rok později na konferenci CODASYL publikovaná první verze jazyka COBOL, ktery byl po mnoho dal?ích let nejroz?í?eněj?ím jazykem pro hromadné zpracování dat.
V roce 1965 na konferenci CODASYL byl vytvo?en vybor Database Task Group (DBTG), ktery měl za úkol vytvo?it koncepci databázovych systém?. Za?aly vznikat první sí?ové S?BD na sálovych po?íta?ích. Jedním z prvních pr?kopník? databází byl Charles Bachman.
V roce 1971 vydal vybor zprávu The DBTG April 1971 Report, kde se objevily pojmy jako schéma databáze, jazyk pro definici schématu, subschéma a podobně. Byla zde popsána celá architektura sí?ového databázového systému.
Ve stejné době byly vyvíjeny i hierarchické databáze. Jedním z prvních S?BD byl IMS, ktery byl vyvinut firmou IBM pro program letu na Měsíc Program Apollo. Systém IMS pat?í stále k nejroz?í?eněj?ím na sálovych po?íta?ích.
V roce 1970 za?ínají zve?ejněním ?lánku E. F. Codda první rela?ní databáze, které pohlí?ejí na data jako na tabulky. Kolem roku 1974 se vyvíjí první verze dotazovacího jazyka SQL. Vyvoj této technologie po 10 letech p?inesl vykonově pou?itelné systémy, srovnatelné se sí?ovymi a hierarchickymi databázemi.
V 90. letech se za?ínaly objevovat první objektově orientované databáze, jejich? filozofie byla p?ebírána z objektově orientovanych jazyk?. Tyto databáze měly podle p?edpoklad? vytla?it rela?ní systémy. P?vodní p?edpoklady se v?ak nenaplnily a vznikla kompromisní objektově-rela?ní technologie.
Databázové modely
[editovat | editovat zdroj]Z hlediska zp?sobu ukládání dat a vazeb mezi nimi m??eme rozdělit databáze do základních typ?:
- Hierarchická databáze
- Sí?ová databáze
- Rela?ní databáze
- Objektová databáze
- Objektově rela?ní databáze
Databázové objekty
[editovat | editovat zdroj]Pojem ?databáze“ je ?asto zjednodu?ován na to, co je ve skute?nosti databázovy systém (databázovy stroj) nebo té? systém ?ízení báze dat. Ten neobsahuje pouze tabulky – ty jsou jedny z mnoha tzv. databázovych objekt? (někdy té? databázovych entit). Pokro?ilej?í databázové systémy dále obsahují:
- pohledy neboli views – SQL p?íkazy, pojmenované a ulo?ené v databázovém systému. Lze z nich vybírat (aplikovat na ně p?íkaz SELECT) jako na ostatní tabulky.
- indexy pro ka?dou tabulku. Klí?e jsou definovány nad jednotlivymi sloupci tabulek (jeden klí? jich m??e zahrnovat i více) a jejich funkce je vést si v tabulkách rychlé LUT (look-up tables – ?po?adníky“) na sloupce, nad nimi? byly definovány, vylou?it duplicitu v záznamech nebo zaji??ovat fulltextové vyhledávání.
- spou?tě?e neboli triggers - mechanizmus nad jednotlivymi ?ádkami tabulky (p?ípadně samotnou tabulkou), ktery se vyvolá po změně, odstranění nebo p?idání ?ádky, p?ípadně smazání tabulky a provede p?edprogramovanou akci (nap?íklad kontrolu integrity dat, doplnění hodnot...)
- u?ivatelem definované procedury a funkce – některé databázové stroje podporují ukládání pojmenovanych kus? kódu, které provedou v databázi nad danymi tabulkami ur?itou sekvenci p?íkaz? (procedury) nebo navíc vrátí nějaky vysledek (u?ivatelské funkce). Mohou mít parametry, které se vět?inou dělí na vstupní (IN), vystupní (OUT) a vstupně-vystupní (INOUT).
- události, té? (po?e?těně) ?eventy“ – de facto procedury, spou?těné v ur?ity (u?ivatelem definovany) datum a ?as nebo opakovaně s definovatelnou periodou. Mohou slou?it k údr?bě, promazávání do?asnych dat ?i kontrolování referen?ní integrity.
- formulá?e – některé databázové systémy jako nap?. Microsoft Access umo?ňuje u?ivatel?m vytvá?et vstupní formulá?e pro vizuálně p?ívětivé zadávání hodnot. U?ivatel si m??e nap?. nadefinovat rozlo?ení jednotlivych vstupních polí z dané tabulky, popisky atd.
- sestavy nebo té? reporty – podobně jako u formulá?? sestavy umo?ňují u?ivateli definovat layout s polí?ky dané tabulky, do kterého se p?i pou?ití doplní aktuální hodnoty. Pou?ívají se pro vystup dat (tisk, prezentaci nebo pouhé zobrazení). Sestavy mohou byt nap?. doplněny o filtry, které vyfiltrují jen ky?ené záznamy.
- u?ivatelská oprávnění – u lep?ích databázovych systém? je samoz?ejmostí nabídnout mo?nosti, jak oddělit jednotlivé úrovně p?ístupu k ostatním objekt?m databáze jejich u?ivatel?m. Mo?ností byvají desítky, s rozli?ením na jednotlivé typy p?íkaz?, které ten ktery u?ivatel bude nebo nebude mít oprávnění spustit.
- partitioning – zp?sob, jak rozdělit data v tabulce na více pevnych disk? a tím rozlo?it zátě? na ni kladenou
- procesy – databázové stroje umí podat p?ehled o procesech, které jejich slu?eb aktuálně vyu?ívají.
- proměnné nastavení – typicky desítky proměnnych, které lze p?enastavovat a tím ovlivňovat chování a vykon databázového stroje jako takového.
- collation – MySQL má pokro?ilé mo?nosti pro nastavení několika desítek znakovych sad a porovnávání, souhrnně nazyvané collation. Nastavení collation m??e byt provedeno na jednotlivé textové sloupce, celé tabulky i celé databáze (s kaskádovitou dědi?ností). Collation ovlivňuje i ?azení, nap?íklad hodnota utf8_czech_ci zajistí správné ?azení podle ?e?tiny (tedy v?etně diakritiky a v?etně ch).
- vizuální E-R schéma – (v MySQL INFORMATION.SCHEMA). Vizuální reprezentace vztah? (relací) na sobě závislych polí (cizích klí??) mezi tabulkam.
- a dal?í
Databázová integrita
[editovat | editovat zdroj]Databázová integrita je takovy stav, p?i něm? záznamy v celé databázi vyhovují soustavě ur?itych definovanych pravidel. Tato pravidla obvykle odpovídají vybranym pravidl?m z té ?ásti světa, pro kterou databáze slou?í. M??e se jednat nap?íklad o pravidla stanovující rozsah ulo?enych hodnot, jejich typ nebo vazby mezi nimi.
P?íklady (rela?ních) databází
[editovat | editovat zdroj]Související ?lánky
[editovat | editovat zdroj]Externí odkazy
[editovat | editovat zdroj]Obrázky, zvuky ?i videa k tématu databáze na Wikimedia Commons
Slovníkové heslo databáze ve Wikislovníku
Téma Databáze ve Wikicitátech
- Databáze v ?eské terminologické databázi knihovnictví a informa?ní vědy (TDKIV)
- Databázovy svět – informa?ní portál o databázích
- Seriál Embedded databáze