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?
    Datový sklad
    Tento pojem poprvé formuloval koncem 80. let William Inmon jako strategii přístupu k datům určeným pro rozsáhlé analýzy. V případě datového skladu hovoříme o historických, časově rozlišených, agregovaných, průběžně rozšiřovaných datech uspořádaných pro podporu potřeb managementu.

    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.
    Vyvíjíme databázový a informační systém XV.


    [Metodologie] - {Začátečníci} V dnešním patnáctém pokračování našeho rozsáhlého seriálu o základních principech a o vývoji databázových a informačních systémů se podíváme na tzv. projekci – jinými slovy se podrobněji zaměříme na jednu z klíčových operací v relačních databázových technologiích.



    K výběru údajů z databázových tabulek v jazyce SQL využíváme příkaz SELECT. V minulých dílech jsme si udělali rychlý náhled na rozsah schopností tohoto široce použitelného příkazu. Nyní se postupně podíváme na posloupnost akcí, které jsou prováděny SQL serverem. Samozřejmě nenajdeme všechny části obecného popisu u každého výběru, ale principem jsou jednotlivé akce umístěny na přesné místo zpracování:

    SELECT popis_projekce FROM tabulka
      WHERE podmínka restrikce_řádků
      GROUP BY klíč agregace
      HAVING podmínka restrikce skupiny
      ORDER BY klíč třídění
    

    V této části se podíváme na možnosti projekce. Zjednodušeně řečeno, popíšeme to, co chceme vidět na výstupu. Nejedná se tu však o pouhý výběr sloupců, řadíme sem i aliasy sloupců, aritmetické operátory, zřetězení sloupců atd. U projekce si také uvědomme, že navzdory zápisu této části na začátku dotazu, SQL server vykonává předepsanou činnost projekce až na posledním místě...

    Pořadí kroků SQL serveru
    Pořadí zpracování je následující:

    1. TABULKA
    2. RESTRIKCE (ŘÁDKY)
    3. AGREGACE
    4. RESTRIKCE (SKUPINY)
    5. TŘÍDĚNÍ SKUPIN
    6. PROJEKCE

    Pokud použijeme * jako zápis projekce v dotazu, pak při projekci požadujeme veškeré sloupce původní tabulky v takovém pořadí, jaké uznává SQL server v rámci své vnitřní organizace dat. Jako výsledek dotazu ale většinou chceme dostat pouze přehled vybraných sloupců, které pro mají u dotazu nějaký význam. Počet sloupců tedy zmenšíme zápisem názvu sloupců, které nás zajímají, navíc v pořadí důležitosti či přehlednosti pro požadované výsledky. Konkrétně nás např. zajímají sloupce X, Y, Z z tabulky A a navíc nás zajímá určité pořadí sloupců (např. Z, X, Y):

    SELECT Z, X, Y FROM A
    

    Pouhý výběr sloupců tabulky k zobrazení a stanovení jejich pořadí není jedinou možností a smyslem projekce. Projekce je totiž v obecném případě popsána seznamem výrazů ve stylu:

    SELECT výraz1, výraz2, … , výraz_N 
      INTO tab_nová 
      FROM tab_stará
    

    Potom jsou názvy sloupců jen speciálními případy výrazů. Ve výrazech mohou kromě názvů sloupců tabulek vystupovat i konstanty, aritmetické operátory +-*/, porovnávací operátory, logické operátory AND, OR, NOT a funkce. Pokud použijeme projekci na tabulku T s tím, že nás zajímá pouze sloupec X a součin sloupců Y a Z, můžeme použít příkaz:

    SELECT X, Y*Z Přezdívka 
      FROM T
    

    Názvy sloupců v tabulkách bývají často strohé – pro výstup k uživateli se nehodící tvary. Je tedy možné "zlidštit" výsledky použitím aliasů neboli zástupných názvů. Uvedete-li nové názvy v uvozovkách, budou přijatelné i mezery v názvech. Sloupcům přiřazujeme nové názvy pomocí klíčového slova AS, ale nutno podotknout, že není povinné. Výsledkem před chvílí použitého dotazu bude tabulka obsahující pouze dva sloupce – sloupec X a sloupec s přezdívkou "Přezdívka". Ve sloupci X budou uvedeny hodnoty z původní tabulky T. Ve sloupci Přezdívka jsou hodnoty vzniklé vynásobením hodnot sloupce Y a Z, neboť Y*Z je výraz popisující násobení dvou sloupců. Pokud je za výrazem uveden nový název, je chápan jako přezdívka výrazu pro potřeby zobrazení. Pokud hodnota některého sloupce není uvedena, je výsledkem hodnota NULL.

    Pro zvýšení přehlednosti můžeme pomocí aliasu ve výstupu použít i konstantní sloupce pro výpis nějakého konstantního textu:

    SELECT 'Hodnoty sloupce X: ', X, Y*Z Přezdívka 
      FROM T
    

    Při zápisu projekce lze také promyšleně měnit pořadí jednotlivých řádků. Nejspíše budeme chtít vidět výsledné řádky tabulky seřazené způsobem od nejvíce vyhovujícího požadavku k nejméně vhodnému řádku (ale vyhovujícího požadavku). Příkaz tedy doplníme požadavkem setřídění výstupní tabulky například podle sloupce X:

    SELECT X, Y*Z Přezdívka 
      FROM T 
      ORDER BY X
    

    Pro obrácené pořadí výstupu už byste dokázali lehce doplnit klíčové slovo DESC pro sestupné pořadí.

    Obecně můžeme říci, že jednoduchá projekce z jedné tabulky je popsána následujícím způsobem:

    Po klíčovém slově SELECT je uveden seznam výrazů oddělených čárkou, kde za každým výrazem může být napsán nový název sloupce. Po tomto seznamu výrazů následuje klíčové slovo FROM a za ním následuje odkaz na tabulku, ze které mají být data projekcí zobrazena, a potom nepovinně zase následují klíčová slova ORDER BY a za nimi seznam sloupců, podle kterých má být uskutečněno setřídění.

    Pokusme se nyní prokousat komplikovanějšími příklady užití projekce.

    Příklad první
    Na výstupu chceme mít tabulku s výstupními sloupci DRUH_AUTA, PALIVO, CENA ZA 1 KM (včetně amortizace) a výsledky seřadíme dle ceny za kilometr.

    SELECT DRUH_AUTA, PALIVO,
           ((L100KM*CENA_LITR)/100)+AMORTIZACE_KM "CENA ZA 1 KM"
      FROM AUTA
      ORDER BY "CENA ZA 1KM"

    Příklad druhý
    V podniku chtějí vybudovat pumpu na jeden druh pohonné hmoty – ta pak bude o 2 Kč na litr levnější. Pro které palivo je to nejvýhodnější (nezapočítáváme amortizaci)?

    SELECT DRUH_AUTA, PALIVO
           (((L100KM * CENA_LITR)/100) * NAJETO_ZA_MESIC) –
           ((((L100KM * (CENA_LITR - 2)) / 100) * NAJETO_ZA_MESIC) 
             AS Výhodnost
      FROM AUTA
      ORDER BY Výhodnost DESC

    Výhodnost v tomto případě představuje množství ušetřených peněz při použití určitého auta na určité palivo a určité naježděné množství kilometrů za měsíc.

    Související články:
    Vyvíjíme databázový a informační systém XXV. (28.12.2004)
    Vyvíjíme databázový a informační systém XXIV. (27.12.2004)
    Vyvíjíme databázový a informační systém XXIII. (16.12.2004)
    Vyvíjíme databázový a informační systém XXII. (07.12.2004)
    Vyvíjíme databázový a informační systém XXI. (16.11.2004)
    Vyvíjíme databázový a informační systém XX. (03.11.2004)
    Vyvíjíme databázový a informační systém XIX. (25.10.2004)
    Vyvíjíme databázový a informační systém XVIII. (13.10.2004)
    Vyvíjíme databázový a informační systém XVII. (04.10.2004)
    Vyvíjíme databázový a informační systém XVI. (21.09.2004)
    Vyvíjíme databázový a informační systém XIV. (25.08.2004)
    Vyvíjíme databázový a informační systém XIII. (18.08.2004)
    Vyvíjíme databázový a informační systém XII. (02.08.2004)
    Vyvíjíme databázový a informační systém XI. (14.07.2004)
    Vyvíjíme databázový a informační systém X. (07.07.2004)
    Vyvíjíme databázový a informační systém IX. (01.07.2004)
    Vyvíjíme databázový a informační systém VIII. (23.06.2004)
    Vyvíjíme databázový a informační systém VII. (16.06.2004)
    Vyvíjíme databázový a informační systém VI. (09.06.2004)
    Vyvíjíme databázový a informační systém V. (02.06.2004)
    Vyvíjíme databázový a informační systém IV. (26.05.2004)
    Vyvíjíme databázový a informační systém III. (19.05.2004)
    Vyvíjíme databázový a informační systém II. (12.05.2004)
    Vyvíjíme databázový a informační systém I. (05.05.2004)

    ( Celý článek! | Autor: Martin Pokorný | Počet komentářů: 0 | 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