Redundancia

A Programozás Wiki wikiből

Redundanciának ill. redundáns adattárolásnak nevezzük azt, amikor a minimálisan szükségesnél több adatot tárolunk egy adott információs állapot ábrázolása során. Egy ábrázolás általában attól lesz redundáns, hogy magában foglalja az adathalmaz más részeiből számítható információkat is. A programozói szemlélet többnyire kerüli a redundanciát, bár bizonyos esetekben akár hasznos is lehet.

A szükségesnél több (felesleges) adattárolás veszélye, hogy ha programozói, vagy felhasználói mulasztás miatt a változásokat csak az adatok egy részén eszközöljük, akkor előfordulhat az, hogy a redundáns (számított) adatok nem egyeznek az alapadatokból számolható értékekkel. Az adatbázis ilyenkor ellentmondásos (inkonzisztens) állapotba kerül. Komoly rendszerek esetében ez megengedhetetlen.

Ennek ellenére bizonyos helyzetekben hasznos lehet redundáns adatokat tárolni. A leggyakoribb eset talán az, mikor a számolási eljárás körülményes, sok erőforrást igényel, vagy sok adatról van szó. Körültekintő tervezéssel a számítások eredményei konzisztensen tarthatók az adathalmazon belül, és a gyors lekérdezési sebesség kárpótolhat a feldolgozási és tárolási többletért.

Ritkán az is előfordulhat, hogy a rendundancia hátránya előnyére válik. Rosszindulatú adatmódosítás esetén a redundáns adatokból kikövetkeztethető, milyen változást eszközölt az elkövető, így a szándékai megismerhetőek, a korábbi állapotok visszaállíthatók lehetnek.

Fontos szerepe lehet még az adatismétlésnek akkor is, amikor az átviteli közegben, vagy az adattároló eszközben hibák fordulhatnak elő. Ilyenkor a többlet adattartalomból az átvitel vagy tárolás során esetlegesen megsérült adatrészek - bizonyos hibahatárig - egyértelműem helyreállíthatóak, tehát nem feltétlenül szükséges az adat újrakérése vagy újragenerálása, ami nem is feltétlenül lehetséges. Erre a módszerre példa a Hamming-kód és a RAID.