Vazby mezi databázemi

Vodohospodářský informační systém používá řadu relačních databází. Vazba mezi dvěma relačními databázemi je obecně vytvářena na základě hodnot výrazu vyhodnocovaného na straně databáze, ze které vychází vazba, a hodnot indexového klíče na straně databáze, do které směřuje vazba.

Poznámka: některé jednodušší relační databázové systémy nedovolují vytvářet vazby pomocí obecného výrazu, ale jen pomocí hodnot jediného sloupce. Stanovují např., že vazby lze provádět jen na základě primárního indexového klíče (na straně databáze, do které směřuje vazba), a přitom za primární indexový klíč mohou být prohlášeny hodnoty jediného sloupce databáze, nikoliv obecný výraz zahrnující hodnoty více sloupců databáze (a už vůbec ne hodnoty jiných, dříve připojených databází). Takové databázové systémy jsou pro potřeby profesionálních informačních systémů nepoužitelné.

V popisovaném vodohospodářském informačním systému jsou vytvářeny konkrétní vazby aktuálně podle množství a kvality informací, které je zapotřebí získat. Poměrně obecný - i když ne zcela vyčerpávající - přehled o většině možných logických vztazích podává následující schéma:

 



Obr. 8.5.1: Schéma vazeb mezi databázemi

 

V předchozím obrázku znázorňuje spojnice ® vazbu do cílové databáze indexované jedinečným klíčem - tedy to, co bývá označováno jako vazba N:1. K řádku výchozí databáze je připojen jediný řádek cílové databáze (pokud existuje). Je zřejmé, že výměnou postavení zdrojové a cílové databáze se vazba stává tou, která je označována jako 1:N.

Za pozornost stojí vazba z databáze tras vodohospodářské sítě do databáze uzlů sítě. Ve schématu shora bylo použito zjednodušující znázornění. Ve skutečnosti jde o vazbu tohoto typu (příklad ukazuje následné vazby např. do "Podniků"):

 



Obr. 8.5.2: Vazby do stejné databáze vícekrát

 

Při vytváření virtuálních struktur pomocí vazeb je databáze UZLY použita dvakrát: jednou jako cíl vazby zprostředkované výrazem KODPZ+KODZ (v tom případě má databáze UZLY dočasné jméno ZDROJE), jednou jako cíl vazby zprostředkované výrazem KODPC+KODC (v tom případě má databáze UZLY dočasné jméno CÍLE). Obě vazby přitom vycházejí z jediné fyzické databáze TRASY a směřují do jediné fyzické databáze UZLY - v ní jsou ovšem dvojím použitím vytvořeny dva samostatné přístupové mechanismy, zvláště dva různé pointery na řádky.

Vazby z "obou uzlů" pak směřují do obdobně dvakrát použité databáze PODNIKY; její data jsou pak přístupná dvěmi samostatnými přístupovými mechanismy: jednou řízené vazbou ze Zdrojů, jednou z Cílů. Z "obou podniků" pak dále směřují vazby do "dvou trustů" atd. podle obr. 8.5.1. K dispozici je pak odpověď např. na otázku, jaké je úplné textové označení trustu obsahujícího zdrojový uzel.

Následující vazby zajišťují přístup např. ke všem předchůdcům příp. následníkům každé trasy :

 



Obr. 8.5.3: Přístup k předchůdcům a následníkům tras

 

Vazba z databáze TRASY přes KODPZ+KODZ do databáze uzlů přístupné jako ZDROJE určí pro každou trasu T její jediný zdrojový uzel U (každá trasa je v databázi TRASY jen jednou a každý uzel je v databázi UZLY jen jednou). Vazba z databáze uzlů přístupné jako ZDROJE do databáze tras přístupné jako VSTUPY ZDROJŮ za podmínky, že trasy jsou indexovány výrazem (počínajícím) KODPC+KODC, určuje všechny takové trasy, jímž je uzel U uzlem koncovým. To jsou právě všichni předchůdci trasy T. Obdobně pro VÝSTUPY CÍLŮ lze získat všechny následníky trasy T.

Právě množina všech předchůdců dané trasy má význam při výpočtu neznámé koncentrace mT znečišťující látky resp. neznámého množství MT této látky v trase T při všech známých objemech Oi a známých koncentracích mi v trasách, které jsou předchůdcem trasy T za předpokladu, že se v počátečním uzlu trasy T nemění kvalita vody. To je častý případ uzlů, ve kterých se spojují resp. rozbočují kanalizace, vodovodní sběrače apod.

Označíme-li MU množství sledované látky celkem do uzlu U přepravené vstupními trasami uzlu, označíme-li dále OU celkový objem vod vstoupivši do uzlu U, je

MU = S mi . Oi

OU = S Oi

a protože se kvalita vody v uzlu U nemění, je koncentrace sledované látky ve všech výstupních trasách uzlu U (a tedy v trase T zvlášť) stejná a rovna

mU = mT = MU / OU

Množství přepravené látky v trasách vystupujících z uzlu U se pak dělí v poměru objemů v těchto trasách, je proto množství látky MT přepravené trasou T rovno

MT = mT . OT  = OT . (S mi . Oi) / ( S Oi)