|
SQL
O modelování
Power Designer
Oracle Data Modeler
Krátká videa DM
Zdroje...
edit SideBar
|
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.
|