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ů.
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í.
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í.
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 |
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 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 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 |