Dnes: 21. ledna 2018    | Registrace | Hledáme | Redakce | Info | Testy | Školení | Ocenění | Nápověda | Čtenář: nepřihlášen

Rychlé odkazy
  • Hlavní stránka
  • Seznam rubrik
  • Ankety
  • Editoriály
  • TOP 15
  • KONFERENCE 2008
  • KONFERENCE 2007
  • KONFERENCE 2006
  • KONFERENCE 2005
  • KONFERENCE 2004
  • Sborník
  • Testy
  • Virtuální školení
  • Personalizace


  • Hledáte práci?
    Hledáme redaktora - pojďte s námi tvořit Databázový svět!

    Vyhledávání

    Hledej
    na Databázovém světě!



    Rozšířené vyhledávání

    Rubriky
    Aktuality
    Bezpečnost
    Business
    Česká scéna
    Datové sklady
    Dokumentace
    Dotazovací jazyky
    Hardware
    Historie
    Komentáře
    Literatura
    Metodologie
    Nondb
    Open Source
    Poradna
    Produkty
    Případové studie
    Redakce
    Rozhovory
    Standardy
    Technologie
    Tipy - triky
    Tiskové zprávy
    Vývoj
    Vývojové nástroje
    Zajímavosti

    Co je to?
    Konkurenční přístup
    Situace, kdy k jednomu zdroji dat (nejčastěji stejným záznamům v tabulce) přistupuje současně více uživatelů. Jedním z úkolů vyspělého SŘBD je zajistit, aby nedošlo k porušení konzistence dat (například aby uživatel z tabulky četl vždy aktuální data).

    Akce
    Dynamická Datová Centra
    - na semináři se seznámíte s komplexním řešením a koncepcí Dynamických Datových Center od Fujitsu Siemens Computers se speciálním důrazem na řešení FlexFrame.

    Textová inzerce
    IBPhoenix - Vše o InterBase a Firebirdu.

    Smějete se rádi? - Pak je pro vás Vtipník to pravé!

    Prodejce reklamy - Hledáme schopného prodejce reklamního prostoru, možnost i externí spolupráce.

    Přihlášený čtenář
    Nepřihlášený čtenář

    O portálu
    Databázový svět
    ISSN: 1213-5933

    Web je optimalizován pro rozlišení 1024x768, nicméně kromě větších rozlišení podporujeme i 800x600. Podrobnosti najdete zde.

    Chcete-li mít kdykoliv možnost zkontrolovat obsah našeho portálu, můžete využít podporu rss. Podrobnosti najdete zde.
    Jazyk jazyků


    [Dotazovací jazyky] - Pod třemi písmeny SQL se skrývá jeden z nejrozšířenějších jazyků a v databázových technologiích se pak jedná o nejdůležitější jazyk vůbec. Ostatně, pro databázové odborníky je jazyk SQL něčím podobným, jako pro klasické programátory jazyk C. Neplatí sice, že bez jazyka SQL by databáze neexistovaly, ale určitě by bylo některé problémy nutné řešit mnohem složitějšími cestami.



    Základy dotazovacího jazyka SQL spadají do poloviny 70. let minulého století. Roku 1974 byl představen formou prototypu implementovaného společností IBM do Systému R. Tato skutečnost je poměrně známá, ve všeobecném povědomí se ale již ztrácí informace o tom, že tehdy se ještě nejednalo o jazyk SQL, ale o Sequel. Podle odhadů se jazyk SQL stal základním prostředkem pro zpracování dat ve více než stovce databázových platforem – těch významných přitom je několik desítek. Tedy vlastně bylo několik desítek, protože ne všechny platformy podporující SQL dokázaly přežít své dětské nemoci a nezaniknout.

    V současné době jazyk SQL podporují všechny přední databázové platformy, produkty společností Oracle, Sybase, Progress nebo Microsoft nevyjímaje. Jazyk SQL přitom není podporován jen ze strany databázových platforem, ale také vývojovými nástroji třetích stran a stal se navíc prostředkem pro tvorbu některých univerzálních databázových rozhraní. Masového rozšíření se jazyk SQL dočkal mimo jiné také díky své jednoduchosti a přirozenosti (klíčová slova vycházejí ze zjednodušené angličtiny). Možná před více než třemi desetiletími ani autoři nečekali, co se z jejich dítka vyvine. Pozorní čtenáři si možná všimli, že jsme doposud nevysvětlili význam zkratky SQL. Ta představuje název Structured Query Language, tedy volně přeloženo strukturovaný dotazovací jazyk. Nenechejme se ale zmást slůvkem dotazovací. Přestože nejčastěji se opravdu používá příkaz SELECT představující skutečný dotaz, umožňují příkazy jazyka SQL mnohem více – od změny dat přes vytváření tabulek až po správu bezpečnostních pravidel.

    Oproti klasickým programovacím jazykům třetí generace se jazyk SQL vyznačuje především významem jeho příkazů. Pomocí nich totiž říkáme co chceme provést, ale nijak se již nestaráme o to jak to provést. Tento přístup je označován jako neprocedurální a představuje celou řadu výhod. Pravděpodobně nejdůležitější je ta, že vývojář se může plně zaměřit na to, co chce vlastně z dat získat a nemusí ztrácet svůj čas a úsilí na nezbytné funkční okolí, které by musel vytvářet v klasických procedurálních jazycích. Na druhou stranu nelze pomocí příkazů jazyka SQL zajistit ani nejpoužívanější procedurální prvky, jako jsou cykly či větvení. Z tohoto důvodu nabízí jednotlivé databázové platformy své vlastní procedurální rozšíření jazyka SQL (například společnost Oracle vyvinula jazyk PL/SQL). V programovém kódu (nejčastěji v případě uložených procedur a triggerů) je pak možné kombinovat výhody jak procedurálního, tak neprocedurálního přístupu.

    Jazyk SQL ve skutečnosti nepředstavuje jeden jediný jazyk, ale skládá se z několika významově vymezených podmnožin – dvojici nejdůležitějších reprezentuje DML a DDL. První z uvedených jazyků přesně podle svého názvu (DML – Data Manipulation Language) umožňuje pracovat s daty, tedy klást dotazy, vkládat a mazat data, měnit data apod. Druhý jazyk (DDL – Data Definition Language) obsahuje příkazy pro práci s databázovými a datovými strukturami – od vytváření tabulek až třeba po změnu uložených procedur.

    Vlastní zpracování příkazů jazyka SQL je záležitostí serveru. Klient, kterým může být databázová aplikace, konzolová aplikace apod., obvykle zašle požadované příkazy serveru. Ten nejprve dané příkazy zanalyzuje. Poté se na základě doplňujících informací (například dřívějších statistik) rozhodne o nejlepším způsobu provedení příkazů a provede je. V posledním kroku zajistí předání výsledků (například u dotazu dat) zpět na stranu klienta. Obdobná situace nastává i při zpracování uložených procedur a triggerů, ale s tím rozdílem, že vlastní příkazy jsou již k dispozici na serveru a nemusí se tedy od klienta přenášet (a obvykle ani složitě analyzovat, mnohdy je již k dispozici jejich překlad do nějaké nižší podoby, například pre-kódu). Výhodný je tento způsob zejména při důsledné implementaci technologie klient/server (patří sem i třívrstvá architektura, která vlastně představuje jen jednu ze tříd klient/server).

    Zlatá éra jazyka SQL nastává v průběhu osmdesátých let, kdy dochází k prvním úspěšným pokusům o standardizaci. V roce 1986 byl přijat standard ANSI SQL86. Od té doby proces standardizace prakticky neustále pokračuje, mezi nejrozšířenější normy i dnes patří SQL89 a SQL92 (označovaná též jako SQL2), která se skládá ze tří úrovní. V případě výběru vhodné databázové platformy ovšem není možné spoléhat na tvrzení výrobců o tom, že systém ABC podporuje normu XZY. Jde o to, že drtivá většina platforem z norem jen vychází a rozšiřuje je o své vlastní prvky. Stejně matoucí je například tvrzení, že systém ABC podporuje normu SQL92 – v takovém případě totiž musí být uvedeno na jaké úrovni. Rozdíly mezi jednotlivými implementacemi není možné zanedbávat, protože i drobné odlišnosti mohou při přechodu na jinou databázovou platformu způsobit značné problémy. Mohlo by se tedy zdát, že úsilí o standardizaci se míjí účinkem. V pravém slova smyslu ano, ale alespoň existují jasné cíle, kterých by měly jednotlivé implementace dosáhnout. Jde totiž i o funkční vlastnosti, i když zajištěné pomocí syntakticky odlišných příkazů.

    Rozšířenost jazyka SQL také způsobila, že se stal terčem celé řady omylů a mystifikací. Pravděpodobně nejznámější chybné tvrzení je, že jazyk SQL může být používán pouze na databázových platformách přísně dodržující relační datový model. Obdobným omylem je představa, že každá relační databázová platforma musí podporovat jazyk SQL. Není tomu tak – jazyk SQL je jen možností, kterou lze použít několika různými způsoby.

    Za velmi vážnou mystifikaci můžeme považovat tvrzení, že transakční zpracování je možné právě díky příkazům jazyka SQL START TRANSACTION, COMMIT a ROLLBACK. Transakční zpracování je na použitém dotazovacím jazyku naprosto nezávislé a jedná se o vnitřní záležitost databázové platformy. Dokonce ani neplatí tvrzení, že by jazyk SQL byl jediným databázovým dotazovacím jazykem – další možnost představuje například jazyk QBE (Query By Example). V pravém slova smyslu se nejedná o jazyk, ale o rozhraní, pomocí kterého si uživatelé omezují množinu zpracovávaných dat. Tento přístup je obvyklý zejména u dektopových databází, kam například patří i MS Access.

    V současné době je jazyk SQL již natolik populární, že alespoň bez znalosti základních příkazů se neobejde nikdo, kdo to s databázovými technologiemi myslí vážně. Na druhou stranu zvládnout základy obvykle nikomu nečiní žádné větší problémy – důležité po absolvování základního kurzu SQL je nepropadnout nebezpečnému sebeklamu, že nyní už o jazyku SQL víme naprosto vše. Kompletní znalostí všech prvků jazyka SQL (přesněji některé konkrétní implementace) se může pochlubit opravdu jen málokdo. V reálné každodenní praxi se totiž používá jen podmnožina příkazů představující tři čtyři desítky procent všech příkazů.

    Již jsme si uvedli, že jazyk SQL je podporován nejen databázovými platformami, ale také dalšími nástroji třetích stran. Mezi tyto nástroje, pro které je podpora SQL naprostou samozřejmostí patří i nástroje CASE. Těmto nástrojům jazyk SQL umožňuje snadné generování skriptů určených pro zakládání databází a jednotlivých struktur (tabulek, pohledů, indexů apod.) I přes určité odlišnosti v jednotlivých implementacích je totiž mnohem snadnější realizovat generování do velmi podobných příkazů, než do jazyků zcela odlišných. Některé nástroje CASE navíc umožňují přizpůsobování šablon používaných při generování výsledného kódu – není tak obvykle problém vytvořit si vzory i pro nepodporované databázové. Pokud by nebyl společným prostředníkem jazyk SQL, bylo by to opět nepoměrně obtížnější a mnohdy dokonce zcela nemožné.

    Další osudy jazyka SQL budou i v budoucnu zcela jistě ovlivněny procesem normalizace, pokračovat bude také snaha rozšiřovat jazyk SQL o nové vlastnosti včetně dalších objektových a analytických prvků. Zdokonalovat se budou i vývojové nástroje, které umožní stále větší odstínění jazyka SQL od svých vlastních stavebních kamenů – například již dnes mnohé vývojové nástroje generují na pozadí příkazy jazyka SQL, jejichž výsledky jsou poté zobrazovány ve vývojáři definovaném formuláři.

    Moderní programovací jazyky navíc umožňují volání příkazů jazyka SQL přímo z vlastního programového kódu – aktuálně se tato problematika dotýká například Javy. Nutnost úzké spolupráce s vývojovými nástroji je dána i tím, že jazyk SQL nedisponuje žádnými prostředky na tvorbu uživatelského rozhraní. Nejedná se ovšem o žádné omezení, jazyk SQL je tak mnohem nezávislejší na konkrétní provozní platformě.

    Vidíme tedy, že jazyk SQL je velmi mocným prostředkem, který umožňuje opravdu mnohé. Nejedná se ovšem o nějaký všespasitelný lék, pomocí kterého je možné vyřešit všechny databázové problémy. Taková představa by byla dalším velkým omylem – jazyk SQL se prostě musí brát takový, jaký je. A teprve tehdy, až budeme opravdu vědět, co chceme z dat získat, nám začne jazyk SQL plně vyhovovat.

    ( Celý článek! | Autor: Marek Kocan | Počet komentářů: 11 | Přidat komentář | Informační e-mailVytisknout článek )

    Vyhledávání
     

    Anketa
    Kolik ročně utratíte za dovolené?

    Nic 
     (1557 hl.)
    Do 1 000,- Kč 
     (1074 hl.)
    Do 10 000,- Kč 
     (1003 hl.)
    Do 25 000,- Kč 
     (1385 hl.)
    Do 50 000,- Kč 
     (1019 hl.)
    Do 75 000,- Kč 
     (1183 hl.)
    Více než 75 000,- Kč 
     (1022 hl.)

    Celkem hlasovalo: 8243


    Poslední komentáře
    frontierd@126.com
    frontierd@126.com
    frontierd@126.com
    c
    http://www.coachoutl

    Newsletter
    Přihlaste si nezávazně - i bez registrace - odběr informačního newsletteru. Podrobné informace najdete zde.

    Emailová adresa:


    Kalendář
    <<  Leden  >>
    PoÚtStČtSoNe
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    

    Redakci připojuje


    Nejčtenější

    Databáze je prázdná!


    Nejvíce komentářů

    Databáze je prázdná!


    Reklama






    Nenechte si ujít články na dalších webech




    Na této stránce použité názvy programových produktů, firem apod. mohou být ochrannými známkami
    nebo registrovanými ochrannými známkami příslušných vlastníků.

    Databázový svět | dfKlub - digitální fotografie | Vtipník - vtipy přímo k Vám | Reminder - přestaňte zapomínat | Databázový svět

    Copyright (c) 2004 AVRE Publishing, spol. s r.o. Všechna práva vyhrazena