Pokud půjdeme ještě o krok dál, mohli bychom evidovat pravděpodobnost, s jakou je daná informace pravdivá. Na tohle jsem se ptal kdysi ve škole, ale nikdo mi na to nedokázal odpovědět (v kontextu SQL a relačních databází). Např. budeme mít část hodnot přesně změřených, tak u nich dáme pravděpodobnost 100 % a pak máme část hodnot, které jsme tak trochu odhadovali, měřili nepřesným nástrojem atd. tak u nich dáme pravděpodobnost třeba jen 80 %. Když pak budeme dělat nějaké agregace, může nám z toho vypadnout i pravděpodobnost celkového výsledku, optimistické a pesimistické odhady…
To už se dostáváte do fuzzy aritmetiky - s klasickými typy by to šlo dost ztuha - ale asi by nebyl problém napsat si vlastní typy, kde by se bokem ukládala pravděpodobnost (případně přesnost).
To, co chce provadet Franta <xkucf03/>, neni fuzzy aritmetika (coz je IMHO teda docela pochybna aplikace fuzzy logiky), ale pouze intervalova aritmetika, ktera by bez vetsich problemu mela jit uchopit zavedenim vlastniho dvouprvkoveho kompozitniho typu a deklaraci vhodnych operatoru a agregacnich funkci. Coz vse Postgres umi.
Vetsi problem nez uchopit to technicky, bude pro vetsinu lidi problem uchopit to koncepcne. V podstate se jedna o zpracovani nejistoty (uncertainty) v datech. Avsak moznych typu nejistoty v datech je hned nekolik druhu. Jenom v predchozich prispevcich byly zmineny tri, a aby se databaze chovaly spravne a data davala smysl, je potreba spravne volit typ nejistoty a prace s nim.
Jedna vec je napriklad nejistota zpusobena merenim, tj. namerena hodnota +/- presnost meridla. V tomto pripade nejde rict, ze hodnota je 10 cm s pravdepodobnosti 80% a 10.2 cm s pravdepodobnosti 20%.
Vedle toho se da uvazovat o pravdepodponosti nejakeho jevu, napr. atribut y ma hodnotu Q s pravdepodobnosti 40%; nebo radek [x,y,z] se vyskytuje v tabulce s pravdepodobnosti 30%. To umoznuje resit ulohy typu, kniha se nachazi v knihovne na 90%, nebo zamestnanec se nachazi v kancelari XY s pravdepodobnosti 80% a v kancelari YZ s pravdepodobnosti 10%. Timto smerem se vydavaji pravdepodobnosti databaze.
A aby toho nebylo dost, muzeme data v rel. databazi uchopit jeste s pomoci fuzzy logiky. To v tom pripade znamena, ze zacneme uvazovat stupne pravdivosti jednotlivych vyroku. Napr. vyrok: "logo postgresql je modre" ma stupen pravdivosti 1; "logo mysql je modre" muze mit stupen pravdivosti 0.6; pricemz "logo mysql je oranzove" muze mit treba stupen pravdivosti 0.5 a "logo mysql je ruzove" ma stupen pravdivosti 0 (nepravdivy vyrok)