Redundancja

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Redundancja (łac. redundantiapowódź, nadmiar, zbytek) – nadmiarowość w stosunku do tego, co konieczne lub zwykłe. Określenie może odnosić się zarówno do nadmiaru zbędnego lub szkodliwego, niecelowo zużywającego zasoby, jak i do pożądanego zabezpieczenia na wypadek uszkodzenia części systemu.

Inżynieria[edytuj | edytuj kod]

W celu zmniejszenia prawdopodobieństwa załamania pracy systemu stosuje się zdublowanie krytycznych elementów systemu. W systemach, w których w przypadku awarii zagrożone jest życie ludzi, niektóre części występują potrójnie. W konstrukcjach takich jak samoloty używające całkowicie skomputeryzowanego systemu sterowania – fly-by-wire – element generujący błędną decyzję zostaje przegłosowany przez dwa pozostałe. Inna możliwość to równoległa praca trzech komponentów, ponieważ oczekuje się, że jeśli awarie podsystemów będą rzadkie i niezależne w każdym, to prawdopodobieństwo jednoczesnej awarii trzech jest znikomo małe.

Nadmiarowość danych w bazach danych[edytuj | edytuj kod]

Bazy danych są zwykle normalizowane, czyli doprowadzane do postaci bez nadmiarowości. W szczególności w odniesieniu do relacyjnych baz danych dąży się do sytuacji, gdy każda relacja zawiera unikalne informacje oraz klucze łączące z innymi relacjami. W szczególnych przypadkach, w celu przyśpieszenia obróbki danych, relacje bywają denormalizowane, jednak może to być źródłem błędów i wewnętrznej niespójności bazy.

Programowanie[edytuj | edytuj kod]

W programowaniu często można się spotkać z pojęciem nadmiarowego kodu (ang. redundant code). Jest to:

  • kod, który jest wykonywany, ale nie ma żadnego wpływu na wynik końcowy;
  • tak zwany kod zombie, który znajduje się w programie, ale nigdy nie jest wykonywany;
  • tak zwany kod zdublowany - zawarty wielokrotnie taki sam fragment kodu, pełniący tę samą funkcję (lub bardzo zbliżony), a dający się zredukować przez zastąpienie go funkcją lub procedurą.

Niektórzy nie uznają kodu nadmiarowego, jako kategorii nadrzędnej i nie wliczają do niego kodu zombie i kodu zdublowanego, traktując je jako całkowicie osobne. Nadmiarowy kod oprócz tego, że zwiększa objętość programu oraz obniża jego czytelność, może prowadzić do wielu błędów (zwłaszcza kod zdublowany).

Nadmiarowość informacji w teorii informacji[edytuj | edytuj kod]

W teorii informacji redundancja to ilość informacji przekraczająca wymagane do rozwiązania problemu minimum. Bardziej formalnie – liczba bitów w wiadomości minus liczba bitów faktycznej informacji.

Celowa redundancja danych jest stosowana w celu ułatwienia odtworzenia danych po ich częściowej utracie czy uszkodzeniu lub też do wykrycia takiego uszkodzenia (CRC, Suma kontrolna).

Redundancja ma zastosowanie głównie w przypadku bardzo ważnych, strategicznych dla danego systemu informacji. Szczególnie często mamy do czynienia z redundancją danych w systemach telekomunikacyjnych, gdzie niezawodność przesyłania odgrywa kluczową rolę podczas transmisji. W dzisiejszych czasach nadmiarowość jest cechą większości systemów informacyjnych przesyłających dane w postaci cyfrowej.

Usuwanie nieprzydatnej redundancji to kompresja danych. Paradoksalnie, wiele programów kompresujących może dodawać niewielkie informacje nadmiarowe, pozwalające wykryć uszkodzenie skompresowanych danych (sumy kontrolne).

Język[edytuj | edytuj kod]

Zarówno mowa jak pismo zawierają nadmiarowe informacje. Człowiek jest dzięki temu w stanie zrozumieć częściowo zniszczone napisy oraz niewyraźną mowę. Dodatkowo nadmiarowość bywa stosowana do podkreślenia znaczenia. Niecelowa nadmiarowość, jak okres czasu czy miesiąc lipiec, jest uważana za niezręczność językową (zobacz też pleonazm, tautologia).

Komunikacja[edytuj | edytuj kod]

Redundancja w komunikacji umożliwia definiowanie nadmiarowych tras komunikacyjnych, które mogą być używane wzajemnie zamiennie (rodzaj gorącej rezerwy) przy dostępie do danych czasu rzeczywistego (procesowych) w urządzeniach przemysłowych (np. PLC, DCS) przez stacje klienckie warstwy sterowania i zarządzania procesem (np. HMI, SCADA). Przesył danych przez różne trasy komunikacyjne wiąże się ze zróżnicowaniem kosztów, co musi być uwzględnione w algorytmie wyboru trasy. Ponadto wszystkie trasy muszą być okresowo sprawdzane, aby zapobiec sytuacjom, kiedy droga zapasowa jest z jakiegoś powodu niedostępna, a system o tym nie wie.

Zobacz też[edytuj | edytuj kod]