Pamětníci si možná vybaví obrázek Turingova stroje z lega, jímž jsme ilustrovali text o Národní databasi DNA, u níž je pouhé zjištění počtu záznamů operací tak složitou, že nad tím programátor musí strávit celý pracovní týden.
Nemýlili jsme se. Spor mezitím dospěl k soudu a ministerstvo vnitra nám to ve svém vyjádření vysvětlilo:
Informační systém FODAGEN má velmi složitou strukturu dat, která je dána účelem, k němuž je tento informační systém zřízen, a službami, jež by měl v budoucnu po svém dokončení Polici[i] České republiky poskytovat při odhalování trestné činnosti, zjišťování jejích pachatelů a plnění úkolů podle trestního řádu. Vhledem k této složitosti systému nelze získat údaje požadované v otázkách č. 1 a č. 2 předmětné žádosti jednoduchým SQL dotazem, jak si žalobce představuje. V době moderních informačních technologií Policie České republiky pracuje při plnění svých úkolů s nesmírně rozsáhlými objemy různě navzájem souvisejících dat, a proto získání zdánlivě jednoduchých statistických údajů z informačního systému je ve skutečnosti komplikovaný proces. Podle sdělení Kriminalistického ústavu Praha, který informační systém FODAGEN spravuje, bylo nutno k získání údajů požadovaných v otázkách č. 1 a č. 2 žádosti vytvořit program, který má celkem 771 řádků. Práce na vytvoření tohoto programu zabrala jednomu programátorovi celých pět pracovních dnů, tj. 37,5 hodiny.
V replice na to reagujeme: Pokud by žalobce měl žalovanému věřit, že zjištění objemu dat evidovaných v Národní databasi DNA vyžaduje 37,5 pracovních hodin, vyvstává otázka, zda a jak lze takový systém vůbec rozumně a efektivně využít k tomu, k čemu je určen, tedy primárně k boji proti zločinnosti.
Nevíme, arci dokážeme si představit, kolik času by programátorům z ministerského teamu zabralo řešení problému skutečně složitého, např. zjištění, zda systém neobsahuje duplicity. To by, tušíme, byl úkol pro několik generací.
Náš spor řeší senát Městského soudu v Praze 8 A Slavomíra Nováka, s nimž máme smíšenou zkušenost: na jedné straně vydal vynikající rozsudek ve věci policejního zákazu nahrávat zasedání zastupitelstva obce, na straně druhé s tímto senátem bylo dost mrzení, a to i před Ústavním soudem.
Komentáře
V případě kdyby tomu tak nebylo, dovolil bych si poznámku, k sporu o bod 1 vaší žádosti
1. U kolika osob je v soucasné dobe v informacním systému FODAGEN evidován záznam o odebrání biologického materiálu ve smyslu ustanovení cI. 22 odst. 9 písmo d) závazného pokynu policejního presidenta C. 250/2013, o identifikacních úkonech (dále jen "Pokyn")?
Obtížnost zjištění takovéhoto dotazu nemá nutně nic společného s architekturou samotné databáze, ale se samotnými daty.
Triviální příklad může být:
ID;NAME;RODNE_CISLO
1;Tomas Pecina;7168971200
2;Pecina Tomas;7168971200
už zde je vidět, že COUNT(*) nepomůže. Situace je nicméně triválně řešitelná pres count(distinct RODNE_CISLO). V řadě případů neni jednoduchy unikatni identifikator osoby k dispozici - cizinci, osoby kde neni dostatek informaci atd. Problem zjisteni faktickeho poctu realnych entity ktere jsou v databazi (zakazniku, pacientu, pachatelu, atd.) je proto casto prekvapive netrivialnim ukolem. Pro mnohe je to prekvapenim, ale lecktera banka/pojistovna ma problemy presne spocitat kolik ma vlastne zakazniku (pojistovna typicky zna pocet smluv, banka pocet uctu).
S pozdravem
-EN-
Sepsat SQL, které požaduje v. p. Pecina je otázkou max. půl hodiny pro zkušeného správce; pokud by ovšem nikoho takového neměli, potom to může být i několik dnů, po které bude trvat, než dotyčný zjistí strukturu databáze a obsah tabulek. Potom za půl hodiny napíše ten dotaz (včetně odladění).
count (distinct t.rodne_cislo) as počet
from
dwh.fizl_databaze.subjekty t
Napočítal jsem čtyři řádky v Oracle SQL. Trvalo mi to napsat asi půl minuty.
Já si myslím, že se zeptali ajťáka, jak to bude dlouho trvat. Řekl "dám vám to na konci tejdne" (protože se mu to nechtělo dělat) a oni si tam pak napsali tejden (37,5h).
Predpokladam, ze strukturu databaze neznate, odmitli ji poskytnout pres AutZ/PolZ... ?
Je smutné, že tito odborníci musí čelit nepochopení laické veřejnosti.
Dovolil bych si pro Vaši WO databázi navrhnout výpočetní stroj: Byla by to UTP Cat6 zásuvka, vestavěná do elegantní skříňky z černě eloxovaného hliníku. Stroj by byl velmi ekologický, bez nutnosti připojení k rozvodu elektrické energie.
Q.
Teprve v tomto provedení by přístroj byl zařazen to třídy nejekologičtějších zařízení.
relax.lidovky.cz/.../...
Neocon
Je na tom zajímavé si představit způsob myšlení těch zakazovačů. Předpokládám, že mu taky zakázali se dívat na televizi po deváté hodině večerní a používat při stolování nůž.
Neocon
Za další, jejich vyjádření je výmysl už jenom proto, že pokud by skutečně systém byl tak komplexní, jak uvádějí, tak by se vůbec v takových termínech nebavili a k programátorovi samotnému a počtu řádků by se ani nikdo nedostal. K programátorovi se zákazník nikdy (NIKDY) nesmí dostat, to by žádný manažer opravdu velkého projektu nikdy a za žádných okolností nedovolil. Dostalo by se to k analytikovi, který by nějakému high-level managerovi dal odhad, jaké konkrétní prostředky jsou k takovému úkonu potřeba. Vzhledem k požadavku pana Peciny by to probíhalo nějak takto:
1) Analytik v podstatě ihned odpoví, že to je oprace, kterou systém pro zákazníka nepodporuje, provést query nad živými daty samozřejmě nesmí.
2) Manažer komunikuje tuto informaci v lidské řeči zákazníkovi a zeptá se ho, jak důležitá pro něj ta informace je a jak často ji bude požadovat.
Reálně by v této situaci vyšli vstříc, zjistili výsledek a ten vám poslali, ale vy jste občan, organismus nižší než hovno a tak prostě fuck off, nelze.
Moje původní hypothesa byla, že DB connector mají v jazyce Brainfuck, ale ta byla mezitím vyvrácena.
V civilu by soud podle me s prehledem vzal i vyjadreni obycejneho programatora ne-znalce "oboji dela to same" a "770 radku ze 771 je zbytecnych" :)
MH
BTW, nešel by ten úžasný kód získat samostatnou žádostí o informace?
RSS kanál komentářů k tomuto článku