Poslední úpravy - Vyhledat:

SQL

O modelování

Power Designer

Oracle Data Modeler

Krátká videa DM

Zdroje...

edit SideBar

DM /

Datové typy

Proè máme urèovat datové typy pro data, která se budou ukládat do databáze?

Systémy øízení báze dat mají optimalizovány zpùsoby práce s daty podle typu dat, jinak se ukládají a zpracovávají celoèíselné údaje a jinak napøíklad textové názvy èi jména. To proto, ¾e oèekávané operace, které budou nad tìmito daty po¾adovány, se odli¹ují. A oèekávané operace závisí na významu dat, která do databáze chceme ulo¾it. Celoèíselný údaj udává poèet, poøadí. Jména èi názvy je jakýmysi identifikátory. S poèty budeme eventuálnì poèítat, názvy a jména budeme porovnávat, zda jsou stejná èi rùzná. Poøadí se dají porovnat, co je pøed èím, jména mù¾eme pro urèitý úèel seøadit podle abecedy.

Jsou i jiná data – napøíklad obrázky. Od velmi schopného databázového systému mù¾eme chtít napøíklad porovnat mno¾ství urèité barvy v obrázcích, nebo dokonce porovnat, zda zobrazují toté¾ (napøíklad stejný otisk prstu).

V prùbìhu historie databázových systémù se utvoøila pøedstava o základních datových typech:

  • Èíselné datové typy, které je¹tì dále dìlíme na
    • celoèíselné
    • s pevnou desetinnou èárkou
    • s plovoucí desetinnou èárkou
    Èíselné údaje udávají mno¾ství, poèet, poøadí.
    Bì¾nì pou¾íváme je¹tì jiné údaje, kterým se také øíká "èísla", ale nejsou èísly v tomto smyslu: napøíklad rodné èíslo, telefonní èíslo. Jsou sice zaznamenávány pomocí cifer, ale jistì nemá smysl s nimi provádìt výpoèty (a¾ na napø. výjimku integritní kontroly rodného èísla).
    S èísly oèekáváme výpoèetní operace.
  • Textové údaje omezené délky (typ se vìt¹inou nazývá CHAR nebo VARCHAR)
    Textové údaje zachycují jména nebo názvy objektù z aplikaèní oblasti,
    nebo kódy: telefonní èíslo, rodné èíslo, URL adresa ... jsou kódy.
  • Datum-èas
    Identifikují okam¾ik v toku èasu, s nìjakou pøesností: den, hodina, ...
    Mù¾e být udáno jen datum, èi i s èasem, nebo jen samotný èas (v rámci nespecifikovaného dne; tento datový typ systém Oracle nepodporuje)).
    Rozli¹ují se dva významné typy:
    • datetime, který je urèen pro vstup dat do databáze z vnìj¹ku
    • timestamp, který je urèen k tomu, ¾e sama databáze do nìj vkládá hodnoty (èasová razítka)
    Na rozdíl od "obèanského" zápisu datumu nebo èasu jako¾to textu èi skupiny èísel, datumoèasové typy nabízejí efektivní porovnání "døíve" podle toku èasu, efektivní vypoètení délky èasového intervalu mezi dvìma datumoèasovými údaji. Dostupné jsou funkce "extrahující" jednotlivé "obèanské" slo¾ky: rok, mìsíc, den, hodina, minuta, sekunda.
  • Logické hodnoty ano-ne
    U tohoto typu je dobré si uvìdomit, ¾e konkrétní hodnota mù¾e být ANO, NE, nebo NULL, tedy ¾e jsou tøi mo¾nosti.
    (Poznamenejme, ¾e napø. systém Oracele tento typ nepodporuje.)
  • Typ vyjmenovaných hodnot
    Podpora tohoto typu v databázových systémech je spí¹e sporadická. Vìt¹inou ho musíme realizovat buï CHECK klauzulí nebo èíselníkem.
    Jak název øíká, jedná se o pøípady, kdy pro daný atribut máme vyjmenovány do úvahy pøipadající hodnoty: napøíklad akademické tituly, oslovení,
    kategorie, do kterých lze objekty uva¾ovaného typu zaøazovat.

Mno¾ina základních datových typù má neostré hranice, dále se mezi bì¾né typy zaøazují "nové":

  • Volné texty, tj. do nich¾ lze vlo¾it "libovolnì" dlouhý text (typ se nazývá rùznì napø. TEXT, MEMO, CLOB...).
    Pou¾ívá se pro rùzné poznámky, anotace, textové obsahy strukturovaných dokumentù, vysvìtlivky...
    "Libovolnost" délky je omezena mo¾nostmi konkrétního databázového systému.
    Od typù CHAR èi VARCHAR se odli¹uje nejen (ne)omezením mo¾né délky, ale hlavnì efektivitou vyhledávání. Nalezení konkrétních záznamù se zadanou hodnotou v takovém poli je typicky øádovì pomalej¹í, ne¾ u typù CHAR èi VARCHAR.
    Moderní databázové systémy nabízejí podporu pro vyhledávání v textu v polích tohoto typu, tedy lze napøíklad vyhledávat podle konkrétních slov èi slovních spojení obsa¾ených v textu.
  • Bitové øetìzce "libovolné" délky (vìt¹inou nazývané BLOB)
    Vhodné pro pøelo¾ené programové kódy, èi jiná poèítaèovì zpracovatelná data.

Pøední databázové systémy nabízejí je¹tì dal¹í mo¾nosti:

  • Obrázky (eventuálnì dal¹í multimédia)
    Uvìdomte si, ¾e od typu BLOB se odli¹ují urèeným významem, tedy tím, ¾e bitový øetìzec se má interpretovat jako obrázek. K tomu jsou nabízeny rùzné metody pro práci s obrázky.
  • Èasové období od-do
    Od prostých datumoèasových dat se li¹í mo¾ností porovnat, zda nìjaká událost padne do uva¾ovaného období, zda se dvì období nìjak pøekrývají...
  • Polygony
    Urèeny pro vymezení útvaru v rovinì, nejèastìj¹í pou¾ití je v geografických systémech.
    Opìt jsou dùle¾ité metody, umo¾òující zjistit, zda daný bod le¾í v uvnitø polygonu, zda se polygony nìjak pøekrývají, zda je nìjaký bod v zadané vzdálenosti od polygonu...

Nabídka datových typù se neustále roz¹iøuje, a navíc jsou nabízeny mo¾nosti si vlastní datový typ dodefinovat. S tím jsou v¹ak urèité obtí¾e: pro efektivní práci s daným typem musí systém øízení báze dat tento mít zabudován tak, aby mohl efektivnì data daného typu ukládat a pou¾ívat pro nìj optimalizaèní metody. Mezi novì nabízené dnes patøí napøíklad

  • XML dokumenty
    V tomto ohledu se odli¹ují "tradièní" databázové systémy, které s XML dokumenty zacházejí jako s jedním z datových typù a nabízejí k nìmu odpovídající metody,
    a nativní XML databáze, které s XML dokumenty zachází podstatnì efektivnìji. Tyto systémy ov¹em obvykle nenabízejí dal¹í slu¾by bì¾né u nejroz¹íøenìj¹ích databázových systémù.

Ob¹írný pøehled databázových datových typù nabízených èasto pou¾ívanými databázovými systémy naleznete na wikipedii.

Upravit - Historie - Tisk - Poslední úpravy - Vyhledat
Poslední úprava stránky: 10.02.2011, 23:04