Vodohospodářská síť v prostředí relačních databází

V předchozí kapitole bylo ukázáno, jak lze vodohospodářský subsystém důlních podniků modelovat jako graf v prostředí relačních databází. Tento graf je zřejmě orientovaný. Graf je sítí, je-li na něm definováno ohodnocení jako zobrazení OH:E(G)®R (R je množina reálných čísel). Toto ohodnocení existuje, jak bylo ukázáno v kap. 5, dokonce existuje různých ohodnocení několik: objemem vod, koncentrací znečišťujících látek, množstvím znečišťujících látek, ztrátami na trase atd.

Všechna uvedená zobrazení jsou do množiny reálných čísel; shora popsaný graf jako model vodohospodářského subsystému podniků je tedy sítí a má tedy smysl zavést pojem vodohospodářská síť podniku jako pojem definovaný teorií grafů. Tato kapitola se zabývá reprezentací ohodnocení v prostředí relačních databází.

Poznámka: Vyjmenované příklady ohodnocení jsou kvantitativní. Existují další hranová ohodnocení, která jsou kvalitativní. Nejostřeji sledovaným ohodnocením tohoto typu je kvalita vody např. podle ČSN 75-7221 ([34]) a odpovídající normy ISO (třída kvality) nebo slovní ohodnocení kvality řadou: pitná - užitková - technologická - znečištěná - odpadní s případným upřesněním důlní - fenolové atd. Tato kapitola se zabývá nejen kvantitativním, ale i kvalitativním ohodnocením hran grafu i jeho uzlů.

Databáze uzlů a tras vodohospodářské sítě

Základními objekty vodohospodářské sítě jsou uzly a trasy. Celá práce se opírá o jejich reprezentaci v prostředí relačních databází tak, jak je uvedeno v předchozí kapitole. Uveďme proto nejprve konkrétní popis základní struktury těchto databází.

 

UZLY

Identifikátor Typ Počet znaků Význam
KODP C - znakový 2 Kód podniku odpovědného za uzel
KOD C - znakový 4 Kód místa jakožto uzlu v tomto podniku

 

Indexovým klíčem je výraz KODP+KOD. Klíč je evidentně jedinečný a je možno ho považovat za primární.

 

HRANY

Identifikátor Typ Počet znaků Význam
KODPZ C - znakový 2 Kód podniku odpovědného za zdrojový uzel
KODZ C - znakový 4 Kód zdroje jakožto uzlu v tomto podniku
KODPC C - znakový 2 Kód podniku odpovědného za cílový uzel
KODC C - znakový 4 Kód cíle jakožto uzlu v tomto podniku

 

ndexovým klíčem je výraz KODPZ+KODZ+KODPC+KODC. Klíč je evidentně jedinečný a je možno ho považovat za primární.

Databáze ohodnocení

Každé uzlové (resp. hranové) ohodnocení je zobrazením, tedy především množinou uspořádaných dvojic hodnot, zde {[u,g(u)]} (resp. {[h,f(h)]}). Tabulkové vyjádření zobrazení je však možno reprezentovat relační databází s hodnotami prvního sloupce jako jedinečným indexovým klíčem (kdyby nebyl jedinečný, nešlo by o zobrazení). Příkladem může být následující ohodnocení uzlů:

 

Uzel

Kvalita vod vypouštěných z uzlu
14-0191 znečištěná

...

...

 Tab. 7.1.: Příklad ohodnocení uzlů

V této práci je jako reprezentace uzlu zvolena dvojice, proto reprezentací ohodnocení může být provedeno databází s následující strukturou:

 

OHODNOCENÍ

Identifikátor Typ Počet znaků Význam
KODP C - znakový 2 Kód podniku odpovědného za uzel
KOD C - znakový 4 Kód místa jakožto uzlu v tomto podniku
HODNOTA ? n Hodnota přiřazená v daném ohodnocení

Indexovým klíčem je výraz KODP+KOD. Klíč je jedinečný a je možno ho považovat za primární.

Mějme nyní např. na množině uzlů definováno více různých ohodnocení. Indukcí lze dojít k následující obecné reprezentaci těchto ohodnocení:

 

OHODNOCENÍ-N

Identifikátor Typ Počet znaků Význam
KODP C - znakový 2 Kód podniku odpovědného za uzel
KOD C - znakový 4 Kód místa jakožto uzlu v tomto podniku
HODNOTA 1 ? n1 Hodnota přiřazená v prvním ohodnocení
... ... ... ...
HODNOTA N ? nN Hodnota přiřazená v N-tém ohodnocení

Indexovým klíčem je opět výraz KODP+KOD. Klíč je jedinečný a je možno ho považovat za primární.

Databáze reprezentující libovolný počet ohodnocení může být jak reálná, tak virtuální. Vazba mezi jednotlivými reálnými databázemi jako zdroji databáze virtuální je pak zprostředkována indexovým klíčem KODP+KOD. Tato práce používá pro reprezentaci ohodnocení obě možností.

Úplná reprezentace uzlů vodohospodářské sítě

Reprezentace množiny uzlů uvedená shora je sice možná, ale je neekonomická. Existuje totiž několik uzlových ohodnocení, které tvoří nedílnou provozní doprovodnou informaci o každém uzlu. Není nejmenšího důvodu mít na jedné straně samostatnou databázi UZLY a na straně druhé databázi s (alespoň) těmito nutnými ohodnoceními; tato druhá databáze by byla "nadmnožinou" k databázi UZLY a samotná databáze UZLY je tedy zbytečná. Proto je modelem uzlů databáze obsahující jak identifikaci jednotlivých uzlů, tak i některá ohodnocení. Její struktura je následující:

 

UZLY.DBF
Ident. Typ Délka Des. Význam Příklad
KODP C 2 0 Kód podniku odpovědného za uzel 01
PROVOZ C 1 0 Kód provozu místa, člení-li se podnik na provozy  a
AREAL C 3 0 Kód areálu místa, člení-li se podnik na areály  RAD
KOD C 4 0 Kód místa jakožto uzlu v tomto podniku 0111
NAZEV C 60 0 Otevřeným textem vyjádřený popis uzlu Podzemí sever - dobývání
KVALITA C 1 0 Kód kvality vod vypouštěných z uzlu 5
ZTRATA N 7 2 Procento standardních ztrát v uzlu 40,00
CISTENI C 1 0 Zda jsou vody opouštějící uzel předčištěné  N
Následující tři položky zařazují uzel do skupiny podle způsobu, jakým je voda v uzlu použita (viz "číselníky"):
TYP C 1 0 Kód nejvyššího členění c
PODTYP C 1 0 Kód jemnějšího členění v typu 1
SKUPINA C 1 0 Kód nepodrobnějšího členění v podtypu 1
Index Indexový výraz
KLIC KODP+KOD
PROVOZ KODP+PROVOZ+KOD
TYP KODP+TYP+PODTYP+SKUPINA
TYPKOD KODP+TYP+KOD

 

Příklad hodnot naplněné databáze:

 

KODP PROVOZ AREAL KOD NAZEV KVALITA ZTRATA CISTENI TYP PODTYP SKUPINA
01     0111 Podzemí sever - dobývání 5 100,00   c 1 1
01     0112 Podzemí jih - dobývání 5 100,00   c 1 1
01     0116 Podzemí sever - klimatizace 5 100,00   c 1 2
01     0117 Podzemí jih - klimatizace 5 100,00   c 1 2
01     0192 Dodávka pit.vody Doprava + NKZ 1 0,00   e 1 9
01     0193 Dodávka tech.vody cizí+Doprava 3 0,00   e 1 9
01     1111 Z.Sever - vodojem 1 0,00   a 1 1
01     1171 Z.jih šacht.napojení 1 0,00   d 1  
01     5100 ČOV č. 1 4 0,00  A b 2 1

Úplná reprezentace tras vodohospodářské sítě

Ze stejného důvodu, jak je popsáno shora u uzlů, je samotná databáze TRASY zbytečná. Proto je modelem tras databáze obsahující jak identifikaci jednotlivých tras, tak i některá ohodnocení. Její struktura je následující:

 

TRASY.DBF
Ident. Typ Délka Des. Význam Příklad
KODPZ C 2 0  Kód podniku zodpovědného za zdrojový uzel 01
KODZ C 4 0  Kód zdroje jakožto uzlu v tomto podniku 0192
KODPC C 2 0  Kód podniku zodpovědného za cílový uzel 27
KODC C 4 0  Kód cíle jakožto uzlu v tomto podniku 1191
NAZEV C 60 0  Otevřeným textem vyjádřený popis trasy Dodávka pit.vody OKD Dopravě
KVALITA C 1 0  Kód kvality vody proudící trasou 1
ZTRATY N 7 2  Procento standardních ztrát na trase 0,00
ZADAT_OBJ C 1 0  Indikace, zda pro tuto trasu zadávají vodohospodáři objem A
Index Indexový výraz
KLIC KODPZ+KODZ+KODPC+KODC
INVKLIC KODPC+KODC+KODPZ+KODZ

 

Příklad hodnot naplněné databáze:

 

KODPZ KODZ KODPC KODC NAZEV KVALITA ZTRATY ZADAT_OBJ
01 0192 27 1191 Dodávka pit.vody OKD Dopravě 1 0,00 A
01 0192 99 0102 Dodávka pit.vody na NZK 1 0,00 A
01 0193 27 3193 Dodávka tech.vody OKD Dopravě 3 0,00 A
01 0193 99 0103 Dodávka tech.vody cizím 3 0,00 A
01 1111 01 5161 Pit.voda vlastní na.soc.účely  1 0,00 A
01 2331 01 0116 Prov.voda do podz.sever - klimat. 2 0,00 A

Ohodnocení tras objemy vod

Ohodnocení tras vodohospodářské sítě objemy vod je prvním ze dvou zcela základních ohodnocení tras. Kromě vlastního kvantitativního údaje obsahuje databáze, která je reprezentací ohodnocení, další doprovodné a identifikační údaje. Její struktura následuje.

Poznámka: blíže k objemům viz také kapitola shora. V současnosti odečítají vodohospodáři objemy na některých trasách jednou měsíčně, a to k poslednímu dni měsíce. Systém je však připraven pro libovolný počet zadání měsíčně. Pro každý jedinečný odečet objemu na trase od minulého odečtu k danému datu vodohospodářem podniku je do databáze zařazen další řádek. Stejně tak je zařazen řádek s objemem určeným výpočtem k poslednímu dni měsíce pro ty trasy, pro které v některém měsíci nebyl objem zadán.

 

OBJEMY.DBF
Ident. Typ Délka Des. Význam Příklad
KODPZ C 2 0  Kód podniku zodpovědného za zdrojový uzel 01
KODZ C 4 0  Kód zdroje jakožto uzlu v tomto podniku 0192
KODPC C 2 0  Kód podniku zodpovědného za cílový uzel 27
KODC C 4 0  Kód cíle jakožto uzlu v tomto podniku 1191
DATUM D 8 0  Datum, ke kterému (od minulého odečtu) je objem zadáván 31.01.1999
OBJEM N 8 0  Hodnota objemu vody v [m3] vtékající do trasy 1000
ZTRATA N 8 2  Procento aktuálních ztrát na trase za dané období 20,00
INDIKACE C 1 0 Indikace toho, jak byl objem získán A
Index Indexový výraz
KLIC KODPZ+KODZ+KODPC+KODC+DTOS(DATUM)
DATUM DTOS(DATUM)+KODPZ+KODZ+KODPC+KODC

 

Příklad hodnot naplněné databáze:

 

KODPZ KODZ KODPC KODC DATUM OBJEM ZTRATA INDIKACE
01 0192 27 1191 31.01.1999 1000 0,00 A
01 0192 27 1191 28.02.1999 1000 0,00 A
01 0192 27 1191 31.03.1999 1500 0,00 D
01 0192 27 1191 30.04.1999 1300 0,00 D
01 0192 27 1191 31.05.1999 1600 0,00 A

Ohodnocení tras koncentrací látek

Ohodnocení tras vodohospodářské sítě koncentrací sledovaných látek je druhým ze dvou zcela základních ohodnocení tras. Spolu s ohodnocením objemy dovoluje totiž výpočet odhadu množství znečišťujících látek, které bylo trasou přepraveno, a ve svém důsledku určují např. výši pokut.

Struktura a počet databází, které se na vytváření databáze ohodnocení koncentracemi sledovaných látek ve vodách, je dáno provozními postupy (a ty jsou částečně dány zákonnými úpravami) při odběru vzorků vod a jejich následnou analýzou v akreditované laboratoři. V konečné fázi obsahuje databáze kromě vlastního kvantitativního údaje, která je reprezentací ohodnocení, další doprovodné a identifikační údaje. Její struktura následuje:

 

KONCENTR.DBF
Ident. Typ Délka Des. Význam Příklad
KODPZ C 2 0  Kód podniku zodpovědného za zdrojový uzel 01
KODZ C 4 0  Kód zdroje jakožto uzlu v tomto podniku 1103
KODPC C 4 0  Kód podniku zodpovědného za cílový uzel 1103
KODC C 4 0  Kód cíle jakožto uzlu v tomto podniku 1103
LABORATOR C 1 0  Kód laboratoře, která provedla analýzu 7
DATUM D 8 0  Datum provedení analýzy 11.01.1999
HODINA N 2 0  Hodina provedení analýzy 10
ZKRATKA C 8 0  Kód (zkratka) látky, na kterou byla analýza provedena Ca_Mg
HODNOTA N 13 6  Hodnota zjištěná analýzou 0,650000
CIS_VZOR C 6 0  Interní číslo vzorku dle konvencí laboratoře 10121
ODBER C 2 0  Kód způsobu odběru  2
Index Indexový výraz
KLIC KODP+KOD+DTOS(DATUM)+STR(HODINA,2,0)+LABORATOR+ZKRATKA+STR(TYP_ROZB,2,0)+STR(STANOVENI,2,0)

 

(funkce dtos převádí hodnotu datumového typu na řetězec osmi znaků ve tvaru RRRRMMDD, funkce str převádí hodnotu numerického typu na ekvivalentní znakový řetězec).

Příklad hodnot naplněné databáze:

 

KODP KOD LABORATOR DATUM HODINA ZKRATKA HODNOTA CIS_VZOR ODBER
01 1103 7 11.01.1999 10 Ca_Mg 0,650000 10121  
01 1103 7 11.01.1999 10 Cl 2,700000 10121  
01 1103 7 11.01.1999 10 NH4 0,190000 10121  
01 1103 7 11.01.1999 10 pH 7,760000 10121  
01 1103 7 11.01.1999 10 ChSK_Mn 0,300000 10121