DevOpsDay19


Advantage Database Server (ADS) je bohatě vybavený a velmi výkonný databázový stroj pro prostředí klient/server. Zajímavé na něm je, že dokáže zpracovávat soubory DBF vytvořené ve formátu Visual FoxPro a poskytuje řadu výhod oproti přímému přístupu k těmto souborům. Tento článek představuje ADS a porovnává různé způsoby, jak k němu přistupovat z aplikací VFP.

Hana HorováHana Horová
SoftwareSoftware
19.11.2008 11:11:0019.11.2008 11:11:00

Hana Horová

správce databáze

DAQUAS
+420 222 512 201
+420 603 442 434
daquas@daquas.cz
Anny Letenské 7, Praha 2

Advantage Database Server pro vývojáře ve Visual FoxPro

Výňatek z článku Douga Henniga uveřejněného v originále v časopisu FoxRockX, který jsme pro vás celý přeložili.

Vestavěný datový stroj Visual FoxPro je současně jednou z nejsilnějších i nejslabších jeho stránek. Jeho síla je v tom, že je pevně integrován do VFP a je nesmírně rychlý. Na druhé straně soubory DBF mohou být snadno pozměněny, jsou málo bezpečné a mají omezenou velikost. Naštěstí foxaři nejsou nuceni ukládat data jen do tabulek VFP; VFP je výborné prostředí pro přístup typu klient/server k databázím jako SQL Server, Oracle nebo Sybase. Neotřelé technologické řešení dilematu, jak přistupovat k datům, nabízí Advanced Database Server.

Co je Advantage Database Server?

Advantage Database Server (ADS) je bohatě vybavený a velmi výkonný databázový stroj pro prostředí klient/server. Zajímavé na něm je, že dokáže zpracovávat soubory DBF vytvořené ve formátu Visual FoxPro a poskytuje řadu výhod oproti přímému přístupu k těmto souborům.  Pochází z dílny Sybase iAnywhere, což je dnes součást společnosti Sybase. Podle propagačních materiálů jeho vlastnosti a funkce velmi dobře doplňují databázový stroj Visual FoxPro; nejde však o náhradu VFP. Podobně jako SQL Server, i ADS je databázový stroj, nikoliv plnohodnotný programovací jazyk, a lze k němu z VFP snadno přistupovat s využitím ODBC nebo ADO. Jak se ale ukáže v dalším textu, ADS podporuje VFP lépe, než je tomu u jiných databázových strojů, a jeho poslední verze 9 tuto podporu významně rozšiřuje. Navíc tvůrci ADS vyvinuli i ODBC driver, který plně podporuje datové typy VFP 9 jako jsou Varchar, Varbinary a Blob (lze ho tedy používat místo ODBC driveru z VFP).

Přehled vlastností ADS v porovnání s VFP

Je to opravdový databázový stroj typu klient/server. U souborově orientovaných strojů, jako je VFP, je server obsahující datové soubory jenom file server. Veškeré zpracování, například výběr záznamů, se odehrává na pracovní stanici, takže je nutno nejprve data stáhnout ze serveru na stanici. Naopak u strojů typu klient/server probíhá zpracování rovnou na serveru a pak jsou odeslány na stanici jen výsledky. To přináší mnohé výhody, včetně sníženého provozu po síti a lepších možností správy databází. Navíc je tento stroj vícevláknový a schopný využívat více procesorů, takže se lépe přizpůsobí vyššímu zatížení.

ADS má ve skutečnosti dva databázové stroje: lokální a vzdálený. Lokální stroj není opravdový databázový server, spíš se podobá VFP, protože používá souborově orientovaný přístup k datům. Využívá „in-process“ knihovnu DLL, která se načte do ODBC driveru na klientském počítači. Vzdálený stroj je opravdový databázový server poskytující všechny výhody architektury klient/server. Advantage Local Server je zadarmo, má však oproti Advantage Remote Serveru několik důležitých omezení. Jeho přínosem je zejména to, že zajišťuje mechanismus klient/server, který pak lze v případě potřeby snadno aplikovat na plnohodnotném vzdáleném serveru.

Ke vzdálenému serveru se dá přistupovat i po Internetu, je-li to třeba. Pro vyšší bezpečnost a výkon umožňuje přenos zašifrovaných a zkomprimovaných dat.

Jednou z nejzajímavějších vlastností ADS je, že může pracovat s daty uloženými buď ve vlastním formátu (soubory s příponou ADT) nebo v souborech DBF. Data v souborech ADT mají své výhody, například další typy dat, které se v souborech DBF nedají použít, naopak soubory DBF usnadňují převod existující aplikace VFP na model klient/server. Opravdu zajímavé je však to, že ke svým souborům DBF můžete přistupovat prostřednictvím ADS, abyste využili jeho přínosů, a přitom je dál můžete používat přímo jako tabulky VFP. Díky tomu lze zvolit velmi atraktivní strategii migrace aplikací: můžete převádět na model klient/server postupně jeden modul za druhým, protože dosud nepřevedené moduly budou dál fungovat beze změny.

Při přístupu k souborům DBF jsou k dispozici dva mechanismy zamykání: kompatibilní (compatible) a interní (proprietary). Kompatibilní zamykání využívá zámky operačního systému na bytech souborů DBF a dovoluje, aby k datům souběžně přistupovaly jak ADS, tak jiné aplikace (např. VFP). Interní zamykání využívá vnitřní mechanismus zamykání, který zaručuje lepší stabilitu, ale ADS zde otevírá soubory pro výlučné použití a dokud je nezavře, nemůže s nimi pracovat jiná aplikace.

Bezpečnost databází je zajištěna tím, že pro připojení k databázi je nutný platný uživatelský účet. K datům tedy mohou přistupovat jen oprávnění uživatelé. Různé uživatelské účty mohou mít různá přístupová práva.

Pro zvýšení bezpečnosti může ADS tabulky zašifrovat s využitím hesla rozlišujícího velká a malá písmena. K něčemu takovému je v čistě foxovském řešení nutný další produkt, například Cryptor od firmy Xitech, a vlastní ošetření přístupu k zašifrovaným datům.

Podobně jako ve VFP, i tabulky ADS mohou být buď volné, nebo vázané na datový slovník (soubor ADD), přičemž ani zde soubor ADD „neobsahuje“ jednotlivé tabulky, jen o nich udržuje doplňkové informace neboli meta data. Datový slovník ADD je velmi blízký databázovému kontejneru DBC, obstarává např. dlouhé názvy polí, primární klíče, pravidla referenční integrity, výchozí hodnoty polí, ověřovací pravidla a vlastní chybová hlášení pro pole a tabulky, pohledy, triggery a uložené procedury. ADS nabízí utilitu, která při generování datového slovníku ADD ze souboru DBC udělá většinu práce za vás.

Ačkoliv se v dokumentaci k ADS vyskytuje termín „Advantage optimized filters“, popis této technologie velmi výkonných výběrů vypadá úplně stejně jako popis technologie Rushmore, která zajišťuje vysokou rychlost VFP: ke zjištění, které záznamy odpovídají filtrovacím podmínkám, prozkoumává ADS jen index a k fyzickým záznamům přistupuje pouze v případě, že index není dostupný.

V ADS je k dispozici fulltextové vyhledávání, zajišťující velmi rychlé prohledávání polí memo. Mnozí foxaři k tomu využívají ve svých aplikacích produkty jiných výrobců jako PhDbase, ale některé z nich už nejsou dostupné nebo nebyly aktualizovány pro poslední verze VFP.

Ačkoliv může ADS přistupovat k souborům DBF, nepodléhá stejným omezením jako VFP. Například ve VFP mohou být soubory DBF a FPT velké maximálně 2 GB. V ADS není velikost souborů omezena přímo, jediným limitem je počet záznamů, který nesmí překročit cca 2 miliardy (2 147 483 648). Samozřejmě pokud tabulka DBF přesáhne 2 GB, VFP ji bude považovat za neplatnou a budete k ní moci přistupovat jen prostřednictvím ADS.
Protože ODBC driver ADS plně podporuje datové typy VFP 9, můžete ho používat místo ODBC driveru VFP, který byl naposled aktualizován pro VFP 6, takže neumí pracovat s novinkami, jako jsou Varchar, Varbinary a Blob.
ADS zvládá transakce, jejich dokončení s potvrzením (commit) nebo odvoláním (rollback) a automatické odvolání transakce, jestliže stanice nebo server během jejího zpracovávání zhavaruje.

Replikace je proces přenášející změny záznamů v tabulkách jedné databáze do tabulek jiné databáze, například změny provedené v databázích na vzdálených pobočkách do sloučené databáze na centrále a naopak.

ADS zahrnuje funkci zálohování za chodu (online backup), což znamená, že lze zálohovat i tabulky otevřené nějakou aplikací – to u tabulek VFP zálohovaných běžnými procedurami není možné. Lze provádět jak plné, tak inkrementální zálohy.

Kde se dozvědět více

Podrobnější informace lze získat na webu dodavatele, kde je možné stáhnout testovací verzi.