Dnes: 24. února 2017    | 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?
    Replikace
    Replikace slouží pro zajištění konzistentnosti dvou a více databází, nejčastěji pak o stejné struktuře v rámci distribuovaného zpracování. Vyspělé SŘBD replikace podporují, případně lze použít řešení třetích stran či replikační logiku zajistit vlastními postupy.

    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.
    Novinka ve druhém Firebirdu – expression indexy


    [Dotazovací jazyky] - Jednou z mnoha novinek ve Firebirdu 2 jsou tzv. expression indexy. Potřebujete-li nyní indexovaný přístup k položce, kterou máte v nějakém výrazu, není nic jednoduššího než takovýto index nadefinovat. Pojďme se na tuto novinku podívat podrobněji spolu s praktickými ukázkami.



    Nejprve vytvořme testovací tabulku:

    create table test(jmeno varchar(20));
    

    Nyní vytvořme jednoduchý index:

    create index idx_test on test(jmeno);
    

    Zapněme si zobrazení prováděcího plánu:

    set plan on;
    

    a prohlédněme si výsledek:

    select * 
      from test 
      where UPPER(jmeno)='AAA';
    
    -- PLAN (TEST NATURAL)
    

    Jak vidíme, index nebyl použit, neboť jeho strukturu není možné využít pro hledání v tomto zadání. Nicméně různá omezení se zadáním jsou poměrně častá – tehdy je využití indexu více než vhodné. Proto jsou k dispozici právě expression indexy. Pojďme si to opět ukázat na příkladu.

    Vytvořme nový index:

    create index idx_test_new on test 
      computed by (UPPER(jmeno));
    

    a podívejme se, jaký bude výsledek:

    select * 
      from test 
      where UPPER(jmeno)='AAA';
    
    -- PLAN (TEST INDEX (IDX_TEST_NEW))
    

    Nyní se index použil, neboť bylo možné z jeho struktury určovat porovnávání.

    Formální zápis pro "nové" indexy je tedy:

    CREATE 
      [UNIQUE] 
      [ASC[ENDING] | DESC[ENDING]] 
        INDEX <jméno indexu> 
      ON <tabulka>
      COMPUTED BY (<zadání>)
    

    Samozřejmě tyto indexy nemusíme používat jen uvedeným jednoduchým způsobem, ale můžeme vymyslet mnohem lepší využití. Představme si situaci, kdy máme tabulku výrobků, jejichž identifikátory začínají třípísmenným kódem a pak pokračují řetězcem šesti alfanumerických znaků. Třípísmenný kód vždy představuje různé kategorie či druhy výrobků.

    Příklad:

    create table vyrobky(id char(9) primary key,
                         popis varchar(100), 
                         cena int);
    
    create index vyrobky_kategorie 
      on vyrobky 
      computed by (substring(id from 1 for 3));
    

    Vypsání výrobků seřazených podle kategorie:

    select id, 
           cena 
      from vyrobky 
      order by substring(id from 1 for 3);
    
    -- PLAN (VYROBKY INDEX (VYROBKY_KATEGORIE))
    

    Expression indexy mají omezení a vlastnosti stejné jako normální indexy, avšak nemohou být definovány jako kompozitní (složené) – ostatně, to je vidět již z jejich definice. Také zadání v dotazu či třídění musí přesně odpovídat zadání v indexu, jinak index nebude databázovým strojem použit.

    ( Celý článek! | Autor: Jiří Činčura | Počet komentářů: 7 | Přidat komentář | Informační e-mailVytisknout článek )

    Vyhledávání
     

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

    Nic 
     (958 hl.)
    Do 1 000,- Kč 
     (757 hl.)
    Do 10 000,- Kč 
     (718 hl.)
    Do 25 000,- Kč 
     (852 hl.)
    Do 50 000,- Kč 
     (745 hl.)
    Do 75 000,- Kč 
     (777 hl.)
    Více než 75 000,- Kč 
     (732 hl.)

    Celkem hlasovalo: 5539


    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ář
    <<  Únor  >>
    PoÚtStČtSoNe
      12345
    6789101112
    13141516171819
    20212223242526
    2728     

    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