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?
    Systémový katalog
    Struktury, ve kterých jsou uloženy informace o dané databázi, případně databázovém serveru. Někdy je možné se z anglického Data Dictionary setkat s pojmem datový slovník.

    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.
    Caché prakticky podruhé – třídy


    [Vývojové nástroje] - V dnešním pokračování prakticky orientovaného seriálu o databázové platformě Caché se mimo jiné podíváme na návrh definice tříd.



    Zatímco ke zobrazení dat v klasických 2rozměrných polích je nejvhodnější tabulkový pohled, k zobrazení vícerozměrných datových struktur je vhodný pohled stromový. Při kompilaci návrhu třídy jádro Caché vytvoří kód, který zajistí přístup k fyzické datové vrstvě. Programátor se tedy vůbec o tuto vrstvu nemusí zajímat.

    Nicméně, a tím se Caché výrazně liší od ostatních databázových platforem, mohou vývojáři sami definovat způsob uložení dat ve fyzické vrstvě. Díky této otevřenosti lze provádět optimalizaci a modifikaci uložení v těch případech, kdy původní zvolený způsob ukládání dat není pro náročnost aplikace optimální. Nicméně s potřebou “ručně” optimalizovat se vývojáři setkají jen u opravdu rozsáhlých databází sloužících k zabezpečení statisíců a více transakcí denně.

    K návrhu složitých datových modelů je vhodné používat některý z profesionálních CASE nástrojů, například od společnosti Rational Rose, ze kterého je možné model importovat přímo do Caché. U jednodušších datových modelů lze definovat třídy přímo v Caché Studiu. Stejně tak implementace kódu metod tříd vytvořených v CASE nástrojích se realizuje pomocí tohoto studia.

    Při návrhu definice třídy má vývojář možnost použít průvodce pro jednotlivé dílčí úkoly nebo může psát definici přímo pomocí jazyka Class Definition Language. Následující text obsahuje definici návrhu třídy User.Osoba:

    Class User.Osoba Extends 
    %Persistent [ ClassType = persistent, ProcedureBlock ]
    {
    
    Property DatumNarozeni As %Date;
    
    Property Jmeno As %String;
    
    Property Vek As %Integer [ Calculated ];
    
    Property Pratele As %String [ Collection = array ];
    
    Property Adresa As User.Adresa;
    
    /// vypočítá věk z data narození
    Method VekGet() As %Integer
    {
     // přibližný výpočet ...
     set vek=+$h-..DatumNarozeni\365
     Quit vek
    }
    
    /// Pozdraví
    Method Pozdrav()
    {
    	write "Dobrý den!",!
    	quit
    }
    
    }
    

    Těla metod mohou být napsána pomocí Caché ObjectScriptu nebo CachéBasicu, což jsou skriptovací jazyky pro práci s daty a pro provádění zajištění aplikační logiky.

    Objektová technologie implementovaná systémem Caché zahrnuje následující typy tříd:

    • Abstraktní třídy
    • Registrované třídy
    • Persistentní třídy
    • Vnořené třídy
    • Odvozené třídy
    • Datové typy

    Abstraktní třídy slouží k popisu obecných tříd, od nichž se v rámci aplikace odvozují třídy představující konkrétní modelované objekty. K abstraktním třídám nelze vytvářet instance objektů.

    Registrované třídy implementují plnohodnotné objekty ve smyslu objektových technologií. Vzhledem k tomu, že nepodporují persistenci, využívají se zpravidla pro tvorbu kódu aplikační logiky.

    Persistentní třídy slouží k popisu dat, která jsou trvale k dispozici, tedy dat ukládaných na disk nebo jiné záznamové médium. Každá persistentní třída je odvozena od třídy registrované, při překladu je vytvářen kód, který zajišťuje komunikaci mezi aplikační vrstvou (objekt) a fyzickou vrstvou (globály). Příkladem persistentní třídy je třída Osoba.

    Vnořené třídy jsou podobné třídám persistentním, ale na rozdíl od nich nemají vlastní úložiště dat. Data obsažená ve vnořených třídách jsou vždy uložena spolu s daty persistentní třídy, která na vnořenou třídu odkazuje. Příkladem vnořené třídy je Adresa.

    Odvozené třídy jsou obecně třídy odvozené od jedné nebo více uživatelských tříd (dědičnost). Odvozené třídy mohou modifikovat vlastnosti a metody svých nadtříd (polymorfismus).

    Datové typy jsou třídy které slouží pro popis dat. Datové typy mohou být libovolně složité. Úlohou datových typů je mimo jiné zajistit správnou konverzi dat mezi zobrazovanou (externí) podobou a jejich uloženou (vnitřní) podobou, dále zajistit validaci vstupních hodnot apod.

    Zvláštní kategorií tříd jsou CSP stránky (Caché Server Pages), což jsou třídy sloužící pro tvorbu dynamických webových aplikací a webových služeb.

    Vlastnosti tříd mohou být:

    • Datový typ
    • Jednoduchá reference na jinou třídu
    • Jedna strana relace typu: 1-N, rodič-dítě

    Vlastnosti mohou být privátní, vyžadující neprázdnou hodnotu, indexované, vyžadující unikátní hodnotu, transientní, vypočítané a vícerozměrné. Vlastnost může být označena jako finální, takovou vlastnost nelze v odvozených třídách modifikovat.

    Metody mohou být metodami instance nebo metodami tříd (pak pro jejich volání není nutno otevírat instanci třídy). Je-li metoda metodou třídy, může být zároveň označena jako uložená procedura SQL. Metody také mohou být, podobně jako vlastnosti, privátní a finální.

    Třídy mohou definovat též vložené dotazy. Vložené dotazy mohou být definovány buď pomocí jazyka SQL nebo pomocí Caché ObjectScriptu. Výhodou vložených dotazů je to, že jsou zkompilovány spolu s definicí třídy a tím se šetří čas při běhu programu. Vložené dotazy dovolují zadávání parametrů.

    Pomocí parametrů tříd a vlastností lze modifikovat například způsob validace hodnot při ukládání třídy na disk.



    Související články:
    Caché snadno, rychle - objektově (22.03.2005)
    Caché prakticky potřetí – SQL (10.12.2002)
    Caché prakticky poprvé – Začínáme (16.09.2002)

    ( Celý článek! | Autor: Marek Kocan | 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