Přežije vaše databáze rok 00?
V čem je zakopáno datum?
Drtivá většina těchto problémů je spojena s možnou chybnou reprezentací roku, kdy většina databázových a jiných systémů pracuje s rokem jako s dvouciferným číslem a ve většině programů je automaticky předpokládáno předčíslí 19. Dnes, v roce 1998, se nám může zdát podivné, že programátorům nedošlo, že s přelomem tisíceletí může nastat tento problém. Musíme však vzít v úvahu, že mnohé ze systémů, kterých se (především) tento problém týká, vznikaly před mnoha lety (dodnes se zejména v hromadném zpracování dat používají programy vytvořené v 70. i 60. letech) a jejich tvůrci, považujíce předčíslí za zbytečné a zdržující, se snažili uspořit místo na paměťových médiích. Dva bajtíky přišly k dobru, dnes však mohou pro některé firmy znamenat nemalé výdaje.
Ke slovu se dostává (opět) historie, u počítačů tak málo očekávaná: taje gregoriánské kalendáře, který je oficiálně používán v našem - computerizovaném - světě. Většina lidí se domnívá, že přestupný rok je rok dělitelný čtyřmi a obsahuje jeden den navíc. Jestliže je ale rok zároveň dělitelný 100, není přestupný, pokud není také dělitelný 400. Jinými slovy, zatímco letopočty 1600, 2000 a 2400 jsou roky přestupnými, o 1700, 1800, 1900 a 2100 to neplatí. Podstatný tedy bude rozdíl v délce roků 1900 a 2000, které systémy nepočítající podle výše popsaného algoritmu, mohou chápat jako stejně dlouhé (obsahující stejný počet dní) nebo nemusí rozpoznat rok 2000 jako rok přestupný počítají-li s dvoumístnou reprezentací roku (00 jako 00).
Většina problémů je očekávána až s příchodem nového milénia, některé se však již začínají projevovat tam, kde je potřeba pracovat s údaji patřícími (operujícími) do 21. století. U některých logických a aritmetických operací mohou nastat chyby, například 2000 > 1999, ale 00 Access od firmy Microsoft je tento problém vyřešen velice podivně: standardní maska pro datum pracuje s dvěma ciframi pro zápis roku, kdy pro hodnoty 30-99 předpokládá předčíslí 19, pro hodnoty mimo tento interval pak předčíslí 20. Jinak řečeno, chcete-li v databázi vytvořené v Accessu spravovat například katalog knih, běda, pokud byla vydánav roce 1920. Kniha se vám sama zapíše s rokem vzniku 2020. Vládci světa ze Seattlu asi nepředpokládali, že tak stará data bude někdo v Accessu potřebovat. V roce 2030 se však záznamy začnou přepisovat zpět na rok 1930.
Většina systémů však s rokem 2000 nepočítala vůbec a tak například u karet VISA a Mastercard vydaných s dobou platnosti do roku 2000 validační systém platnosti zaměnil rok 2000 za rok 1900 a karty považoval za neplatné. VISA tak musela vydávání karet pozastavit a nejprve "naučit" terminály interpretovat rok platnosti 2000 správně.
Problém Y2K si uvědomuje pravděpodobně stále více firem. Například velká letecká společnost KLM [4] ohlásila, že pokud vzniknou nějaké pochybnosti o spránvosti funkce jejich systémů, může dojít ke zrušení některých jejích letů na přelomu tisíceletí.
Odborníci odhadují nemalé problémy v oblasti finančních systémů, které tak díky nesprávné interpretaci roku, mohou chybně spočítat úroky, penále nebo výši dluhů. Veškeré zastaralé systémy evidence údajů obsahující rok/y nebo časové intervaly jsou tedy ohroženy problémem Y2K. (Jedině tak si mohu vysvětlit, proč mě VZP eviduje jako důchodce a data nehodlá změnit, dokud nedonesu patřičné bumážky.)
Ačkoli se o roce 2000 mluví (v mnoha souvislostech) již delší dobu (jako školačka si vzpomínám na pořad o ohrožených zvířatech "Přežijí rok 2000?"), některé firmy provozující SW náchylný k chybám souvisejícím s rokem 2000 si neuvědomují závažnost možných následků a fenoménu Y2K tak zvýšenou pozornost věnují spíše novináři. Co by měly firmy dělat?
1. Zjistit, zda jejich používané systémy správně interpretují rok, správně přiřazují století k dvojcifernému vyjádření roku, správně provádí aritmetické operace s kombinovanými daty 20. a 21. století a udávají správné datumy pro "rizikové dny" 12/31/99 a 1/1/00.
2. Pokud něco nefunguje správně nebo si nejsou jisty bezpečností systému, nahradit starý HW a SW novým, Y2K-safe softwarem.
3. Pokud je řešení v bodu 2 neproveditelné (např. příliš nákladné), poslední možností je stávající software přeprogramovat nebo přepsat data v něm uložená.
V současné době již všechny velké databázové firmy vyrábějí své produkty bezpečně zvládající přelom ticíceletí a nově vznikající verze softwaru (i HW) by již pro správnou interpretaci roku měly být otestovány. Na trhu se již vyrojila celá řada softwarových balíčků nabízejících řešení pro rok 2000. Pokud cítíte jakoby nad vámi něco nebezpečně viselo, můžete se přihlásit do projektu Damocles, který si klade za cíl se problémy Y2K zabývat.
Jak se léčí počítač?
- Manuální řešení: ruční přepis času a datumu v DOSu. (Pozor na RTC a BIOS, některé mohou navrátit zpět datum 1980, protože neumí pracovat s rokem větším než 2000!)
- Upgrade BIOS
- Hardwarové řešení: např. Fernlink 2000, plug-in který se postará, aby veškerý hardware pracoval správně s rokem 2000
- Softwarové řešení: programy typu Millenium Bug Toolkit, SBT Year 2000 Clock Tester, Ymark 2000, Millenium Buster, testují vaše PC, zda a jak se vypořádá s rokem 2000, Right Time´s Year 2000, Euromax Electronic Millenium Buster Fix a Computer Experts Millenium Bug Toolkit Fix by měly odstranit možné problémy s interpretací roku
Žádné z řešení, jak uvádí Tecfacs, však není stoprocentní. Je tedy doporučeno, provést nejprve testy vašeho systému, detekovat možné zdroje problémů a ty se pak pokoušet léčit. Jak velké nebezpečí tedy firmám hrozí? Máme se připravit na totální krach většiny databázových systémů, evidenčních systémů a všech ostatních systémů na nich založených? Přestanou létat letadla, počítat počítače a bankomaty již nevydají ani penny? Nebo jsou naopak všechny úvahy naprosto plané a obavy malicherné? Pravda se bude (jako ostatně vždy) nacházet někde uprostřed a odolnost systému vůči "viru" Y2K otestuje až půlnoc 31. prosince 1999.
Použité zdroje:
The looming budget crunch : Y2K spending impact on North American IS budgets 1997-2000, September 22, 1997.
Databáze a rok 2000. Computer, Roč. 5, č. 3 (1998), s. 43-44.
Computer crash : 2000, Nichts geht mehr im Jahr 2000 : wenig Zeit für Vorsage. Focus, Nr. 44 (27. 10. 1997), s. 324-328.
Internetovské zdroje:
http://www.tecfacs.com/year2000 [5]
Pokud vás problém zajímá, doporučuji zadat kterémukoli internetovskému vyhledávači heslo "Year 2000" a budete sami překvapeni, kolik dokumentů se již na síti k této problematice vyskytuje.