Aktywna baza danych

W pierwszych wersjach programu OptiPasz (tj. do 1.0.2.5 włącznie) dodając nowy surowiec musieliśmy ręcznie określić zawartość każdego składnika pokarmowego. Aby przyspieszyć i ułatwić tę czynność w pewnych wypadkach mogliśmy dodać kopię istniejącego surowca i zmodyfikować zawartości jedynie wybranych składników. Jak jednak wiemy, poziomy niektórych składników pokarmowych są ze sobą powiązane. Na przykład bilans elektrolitowy (kation-anion) jest pochodną zawartości sodu, potasu i chloru. Tak więc zmieniając zawartość sodu musieliśmy pamiętać o przeliczeniu i zaktualizowaniu tego bilansu.

W wersji 1.0.2.6 idziemy o duży krok do przodu wprowadzając do programu OptiPasz tzw. aktywną bazę danych. Bazując na zasadzie, że poziomy niektórych składników pokarmowych są ze sobą powiązane, opracowaliśmy na podstawie fachowej literatury z dziedziny żywienia zwierząt szereg wzorów (w tym równań regresji) ujmujących te zależności. Wzory te udostępniliśmy w OptiPaszu wszystkim obecnym i przyszłym użytkownikom programu. Dzięki temu dodawanie i modyfikowanie surowców jest o wiele szybsze, łatwiejsze i mniej podatne na błędy.

Działanie aktywnej bazy danych zobrazujemy na przykładzie. Spróbujmy zatem dodać nową wersję pszenicy. W tym celu na zakładce Surowce kliknijmy prawym przyciskiem myszy surowiec [#310] Pszenica i wywołajmy polecenie Utwórz kopię surowca:

W odpowiedzi OptiPasz otworzy okno Surowiec. Skoncentrujmy się na jego dolnej części, tj. na tabeli zawartości składników. W niektórych wierszach, np. w #150 Bilans Kation-Anion, w kolumnie Zawartość pojawił się symbol . Sygnalizuje on, że zawartość tego składnika pokarmowego jest automatycznie wyliczana przez program z użyciem aktywnej bazy danych z tzw. zależności:

W celu podejrzenia tych zależności anulujmy dodawanie nowej pszenicy (wrócimy do niej za chwilę) i przejdźmy na zakładkę Składniki pokarmowe. Jako że edycja zależności przykładowych składników programu (czyli tych, których kody zaczynają się znakiem #) jest możliwa wyłącznie w wersji PRO, pracując na wersji DEMO/EDU/FARMER musimy "oszukać" program sugerując mu, że chcemy dodać kopię składnika #150 Bilans Kation-Anion. W tym celu klikamy go prawym przyciskiem myszy i wywołujemy polecenie Utwórz kopię składnika:

W odpowiedzi OptiPasz otworzy okno, w którym możemy podejrzeć wzór na ten bilans. Ma on następującą postać:

#150 Bilans Kation-Anion =

Powtarzając tę czynność dla składników: #120 Sód ogólny, #140 Potas ogólny i #130 Chlor ogólny okaże się, że one również są wyliczane z prostych zależności o postaci:

#120 Sód ogólny =

#140 Potas ogólny =

#130 Chlor ogólny =

(Wnikliwy czytelnik zauważy, że składniki #122 Sód dodany oraz #142 Potas dodany także są wyliczane z zależności, tyle że na podstawie składników pokarmowych dostępnych wyłącznie w wersji PRO, tak więc je tutaj pominiemy.)

Poznawszy postaci tych zależności powtórzmy próbę dodania nowej wersji pszenicy w sposób przedstawiony na początku tego przykładu. Teraz zwiększmy poziom sodu natywnego (#121) z 0,10 do 0,20 g/kg. Zauważmy, że w odpowiedzi OptiPasz automatycznie wyliczył nowe zawartości sodu ogólnego (#120) i bilansu kation-anion (#150):

Skupmy się jeszcze na chwilę na kolumnie Zawartość. W wielu wierszach nie ma symbolu , np. dla sodu natywnego #122. Jak łatwo się domyślić są to składniki, dla których nie zdefiniowano zależności (albo dla których zdefiniowano zależności, ale je wyłączono - o tym pod koniec tego artykułu).

Co zrobić w sytuacji, gdy nie chcemy aby program wyliczał zawartości składnika z zależności? Wtedy wystarczy ją wpisać. Uczyńmy to dla sodu ogólnego (#120) - wpiszmy "0,30":

Zauważmy, że symbol zmienił swój kolor na szary. Oznacza to, że dla danego składnika zdefiniowano zależności, ale w danym surowcu nie chcemy z nich korzystać - wolimy wartość własną.

Jak powrócić do wartości wyliczanej z zależności? Wystarczy kliknąć puste pole w komórce prawym przyciskiem myszy i wybrać polecenie Przyjmij wartość wyliczoną:

Analogicznie możemy wrócić do wartości własnej:

Co się stanie, jeśli polecenie Przyjmij wartość wyliczoną zastosujemy do składnika, dla którego nie zdefiniowano zależności (lub je wyłączono)? Zróbmy to dla sodu natywnego (#121):

Jak widzimy, symbol ponownie zmienił swój kolor, tym razem na czerwony, co sygnalizuje sytuację błędną:

Jednakże program jest w stanie samodzielnie wybrnąć z takiej sytuacji, przyjmując do dalszych obliczeń znaną mu wartość własną - w tym przypadku 0,20 g/kg.

Uzupełnijmy teraz brakujące dane u góry okna Surowiec, tj. surowiec bazowy, kod i nazwę, np. w taki sposób:

i zatwierdźmy dodanie nowej wersji pszenicy za pomocą przycisku << OK >>.

Zauważmy, że na zakładce Surowce głównego okna programu pojawiły się te same symbole co w oknie Surowiec:

Jak wiemy, zawartości składników w surowcach możemy edytować także z poziomu tej tabeli. Jednakże w tym celu musimy wywołać osobne okno, np. za pomocą podwójnego kliknięcia wiersza lewym przyciskiem myszy. Zróbmy to dla sodu ogólnego (#120):

Teraz zwróćmy uwagę na trzy przełączniki położone na prawo od etykiety Źródło zawartości i przełączmy je z wartości własnej na zależności globalne:

W odpowiedzi program przeszedł na zawartość sodu wyliczoną z zależności.

(Trzeci przełącznik, tj. zależności lokalne, zarezerwowany jest dla wersji PRO, w której można definiować zależności właściwe nie dla wszystkich, a dla pojedynczych surowców.)

Zatwierdźmy tę zmianę za pomocą przycisku << OK >> i - dla zachowania porządku - naprawmy źródło zawartości dla sodu natywnego (#121), przestawiając przełącznik z zależności globalnych (których nie ma) na wartość własną:

Po kliknięciu przycisku << OK >> główne okno programu powinno prezentować się następująco:

Na koniec wróćmy jeszcze na chwilę do składników i ich zależności. W tym celu przejdźmy na zakładkę Składniki pokarmowe i utwórzmy kopię składnika #150 Bilans Kation-Anion:

Skoncentrujmy się na trzech przełącznikach z ramki Zależności. W tym momencie włączona jest pozycja (zależności) własne, gdyż składniki własne mogą mieć wyłącznie zależności własne (lub wyłączone - pierwszy przełącznik). Natomiast zależności programu (drugi przełącznik) są zarezerwowane dla składników programu (czyli tych o kodach zaczynających się znakiem #), które to (wyłącznie w wersji PRO) mogą mieć także zależności własne (oraz lokalne, czyli dla pojedynczego surowca).

Nad ramką Zależności znajduje się przełącznik zatytułowany Zależny od suchej masy. Jest on związany ze specjalnym składnikiem o kodzie #2 i nazwie Sucha masa. Jeśli w ramach edycji surowca (w oknie Surowiec lub Zawartość składnika) zmienimy jego zawartość, to program po kliknięciu przycisku << OK >> zapyta się, czy ma automatycznie przeliczyć zawartości własne pozostałych składników zależnych od suchej masy:

Należy zwrócić uwagę, że chodzi tu o zawartości własne, a nie wyliczane z zależności, które to są przeliczane w oknie Surowiec na bieżąco. Ponadto, jeśli na zadane pytanie odpowiemy twierdząco, to przeliczone zostaną wyłącznie te składniki, które oznaczyliśmy w oknie Składnik pokarmowy jako zależne od suchej masy:

Aby składnik był uznany za zależny od suchej masy, musi mieć to pole zaznaczone (jak wyżej). Alternatywnie można to pole pozostawić w stanie nieokreślonym:

Wtedy o tym, czy program uzna dany składnik za zależny od suchej masy decyduje jego jednostka. Za zależne od suchej masy program uznaje składniki o każdej jednostce innej niż "%" i "brak".