Dane to byty materialne np. produkty, książki (rzeczy) i dane niematerialne takie jak: uprawnienia, wiedza, stan konta bankowego, dane pogodowe, ruch na autostradzie. Jeszcze kilka lat temu dane określonego typu były gromadzone i przetwarzane w ośrodkach przetwarzania i dotyczyły zaledwie niewielkiego, wybranego obszaru rzeczywistości. Informatyzacja tych danych polegała na przetwarzaniu wsadowym, zaś pojęcie baza danych (ang. data base) było określane jako trwały uporządkowany zbiór danych z pewnej grupy tematycznej zorganizowany w taki sposób, by możliwe było ich wyszukiwanie według zadanych kryteriów.

W porównaniu do dzisiejszych wolumenów danych wielkości były to zbiory stosunkowo niewielkie i pozwalały na ich przetwarzanie na jednej silnej maszynie. Rozwój technologii oraz potrzeb spowodował coraz większe pokłady danych, które trzeba obsłużyć. Szacuje się, że średnio co 3 lata ilość wytworzonych przez ludzkość danych wzrasta dwukrotnie. Firmy takie jak Google, Facebook, Amazon, LinkedIn, obsługują olbrzymie ilości danych. W 2015 r. IBM zakomunikował ogłosił, że od  2013 do 2015 wytworzono 90% wszystkich danych, Wolumeny są tak wielkie, że standardowe podejście do ich przetwarzania stało się niewystarczające. Czy zatem systemy relacyjne odeszły w niepamięć i zostaną wyparte przez nowe sformułowanie – Big Data?

Big Data – eksplozja danych

Big Data dotyczy danych, których ilość nie pozwala na ich skuteczne przetwarzanie przy użyciu scentralizowanego rozwiązania na jednym węźle. Pod pojęciem skuteczności rozumie się np. czas potrzebny do przetwarzania i osiągane wyniki. Jeśli przetwarzanie jest tak czasochłonne, że staje się nieakceptowalne, należy poszukać rozwiązań, które pozwolą zaangażować wiele węzłów (maszyn) innymi słowy pozwolą na przetwarzanie rozproszone. Istniejące rozwiązania NoSql pozwalające na pracę na wielu węzłach mają ograniczony interfejs, specjalizują się w określonych typach operacji co determinuje ich użycie. Narzędzia te wykorzystywane pojedynczo z uwagi na swoją specjalizację, nie można nazwać systemami Big Data lecz mogą być ich elementem, a inteligentnie połączone mogą tworzyć systemy zdolne obsłużyć dowolne dane i charakteryzujące się skalowalnością oraz odpornością na błędy. NoSQL jest uzupełnieniem istniejącego modelu baz relacyjnych, wprowadza nowe funkcjonalności, lecz muszą one istnieć w symbiozie by spełniały stawiane przed nimi zadania.

W Big Data istnieje możliwość napisania własnego programu, który dokładnie spełni oczekiwania, bez nałożonych ograniczeń przez język zapytań, co czyni je bardzo elastycznymi. Oprócz przechowywania danych pozwalają w dowolny sposób je przetwarzać. Ponadto Big Data mogą się skalować w nieskończoność na wielu tysiącach niewyspecjalizowanych węzłów, co też odróżnia je od innych systemów przetwarzania. Podsumowując Big Data to nisko-kosztowe przetwarzanie rozproszone, równoległe, elastycznie skalowalne, lecz również przechowywanie danych. Definicja Gartnera określa Big Data jako „dane które zawierają coraz większą różnorodność (strukturalne i niestrukturalne) w coraz większych ilościach i z coraz większą częstotliwością. Określa je się mianem 3V (Variety, Volumes, Velocity).

Rys historyczny

Gdy informatyka była we wczesnym stadium rozwoju systemy zarządzania bazami danych opierały się na trzech modelach danych:

  • opartym na plikach płaskich
  • hierarchicznym
  • sieciowym

Powodowały one szereg anomalii: redundancji danych, problemy z wydajnością, modyfikacją danych.

W latach 70 ubiegłego wieku nastąpiła rewolucja w dziedzinie informatyzacji zbiorów danych wraz z opublikowaniem przez Edgara Franka Codd’a pracy „Relacyjny model danych dla dużych banków danych”.

1.1       Systemy relacyjnych baz danych SQL

Relacyjna baza danych jak sama nazwa wskazuje jest oparta na modelu relacyjnym, który zakłada przedstawienie danych w tabelach. W tabelach wyróżnia się wiersze i kolumny. W kolumnach są atrybuty danych natomiast w wierszach wprowadzane są wartości dla tych atrybutów. Każdy wiersz posiada swój klucz (unikatowy identyfikator). W poszczególnych tabelach są zgromadzone dane jednego typu, zaś poszczególne tabele są połączone między sobą relacjami za pomocą kluczy.

Teoria relacyjnych baz danychBazy relacyjne
RelacjaTabela
AtrybutKolumna
KrotkaWiersz (rekord)
DziedzinaTyp danych
Terminologia relacyjnych baz danych

Taki sposób reprezentacji i przetwarzania danych jest intuicyjny, elastyczny, a także charakteryzuje się dużą wydajnością, pozwala również na unikanie redundancji (powtarzalności danych). Do obsługi takich systemów jest używany język SQL (Structured Query Language) czyli uniwersalny język zapytań.[[i]] System relacyjny jest złożony z wielu programów mających za zadanie zarządzanie oraz manipulację danymi, zaś minimalne wymagania do implementacji takiego systemu to:

  • język zapytań
  • katalog danych
  • programy do zarządzania pamięcią
  • programy do zarządzania magazynem

System zarządzania relacyjną bazą danych mógł być obsługiwany lokalnie przez osoby pracujące na danej stacji roboczej (MS Access) lub w sieci, bazując na modelu klient-serwer. Baza w takim przypadku umieszczona jest na serwerze, zaś dostęp do niej następuje przez logowanie się klientów ze stacji klienckich przy użyciu aplikacji. Przykłady: MySQL, MS SQL, ORACLE, POSTGRES.

Do niedawna systemy relacyjnych baz danych opierały się wyłącznie na przetwarzaniu wsadowym i scentralizowanym (omówione w dalszej części). Stale rozwijana architektura sprzętowa nie nadąża za rosnącymi potrzebami. Pomimo iż procesory wielordzeniowe stały się już standardem, sieci są coraz szybsze, lecz w pojedynkę nie są w stanie przetworzyć wielkiej ilości danych, a przy tym być szybkie i niezawodne, natomiast zbiory są tak duże, że ich przetworzenie na jednej maszynie jest nierealne. Tak pojawiła się potrzeba podejścia do przetwarzania równoległego i wszystko wskazuje na to, iż będzie ona stale rozwijana.

Skalowanie pionowe i poziome

RDBMS były skalowane wyłącznie w górę, jak klaster wysokiej dostępności (failover cluster) z bazą Microsoft SQL Server. W modelu nierozproszonym cały ruch jest przetwarzany przez urządzenie typu serwer lub macierz dyskową). Plusy takiego rozwiązania to bardzo mała latencja, gdyż operacje zapisu lub odczytu przechodzą co najwyżej między paroma kontrolerami. Takie skalowanie to skalowanie pionowe (scale-up), czyli wymiana urządzenia na wydajniejsze lub zwiększanie mocy jednostki obliczeniowej już istniejącego rozwiązania. Takie rozwiązanie ma niestety ograniczenia. Po pierwsze wiąże się dużymi kosztami, mogą też pojawić się problemy z odnalezieniem danych. Inne wady skalowania pionowego: dłuższe przerwy w pracy aplikacji z uwagi na złożoność architektury, wysokie koszty utrzymania infrastruktury, mniejsza odporność na błędy i mniejsza dostępność.

Odpowiedzią na pytanie jak je ominąć jest skalowanie poziome (scale-out), polegające na rozproszeniu równoległym danych na dużo mniejszych urządzeń. Tutaj skalowalność jest praktycznie nieskończona. Przykładem takiego rozwiązania są np. farmy serwerów. W tym przypadku problemy kłopotliwej wymiany sprzętu i związane z tym koszty zostają wyeliminowane. Skalowanie poziome eliminuje też problemy związane z faktem, że sprzęt się starzeje.[[ii]]

Najczęściej stosuje się rozwiązanie pośrednie, czyli połączenie jednego z drugim.  Istnieją systemy elastyczne – takie które same dodają zasoby i systemy ręczne, gdzie decyzję podejmuje człowiek. W wyniku zmian ostatnich lat, określanych jako czwarta rewolucja technologiczna, w systemach baz zarządzanych przez SZBD opartych na SQL musiały zostać dostosowane do rosnących wymogów użytkowników uwzględniając aktualne potrzeby.

Wiodący producenci oprogramowania wyszczególnieni w tabeli nr. 2  starają się być coraz bardziej elastyczni i dostosowują oprogramowanie wg aktualnych trendów.[[iii]]

FIRMADialekt
PostgreSQLPL/pgSQL 
(ang. Procedural Language/PostgreSQL Structured Query Language)
MICROSOFTT-SQL (ang. Transact-SQL)
ORACLEPL/SQL (ang. Procedural Language/SQL) 
IBMSQL PL (ang. SQL Procedural Language) 
Wiodący producenci RDBMS i ich dialekty
Źródło: opracowanie własne

1.2       NoSQL

Wraz z postępem technologicznym i powstawaniem coraz to nowych aplikacji internetowych aktywnie użytkowanych przez setki tysięcy użytkowników, implementacja tychże była niezwykle trudna z wykorzystaniem relacyjnych baz danych. Bazy te okazały się zbyt mało elastyczne, mało skalowalne, a do tego wysokokosztowe.

Rozwój i popularność systemów baz danych NoSQL był spowodowany między innymi z potrzeby większej skalowalności, potrzebą bezpłatnego oprogramowania. Właściwie nazwa ta nie jest zbyt właściwa, gdyż nie kryje się pod nią żadna konkretna technologia. „Początkowo, w 2009r. miała być tylko chwytliwym tagiem na Twitterze dotyczącym spotkań poświęconych otwartym, rozproszonym, nierelacyjnym bazom”.[[iv]] Systemy zarządzania danymi NoSql zostały tak zaprojektowane, żeby w przypadku zmiany ilości dostępnych serwerów w klastrze dopasować się niemal automatycznie.

W przypadku niektórych baz NoSql np. dokumentowej (MongoDB), nie jest konieczne ustalanie struktury tabeli, gdyż nowe kolumny mogą być dodawane dynamicznie, co powoduje, że są one bardzo elastyczne. Właściwości NoSQL są określane jako BASE: BA (Basically Available) parcjalna dostępność – w przypadku awarii pewnej partii serwerów (serwera) pozostałe pracują, co powoduje, że system jest dalej dostępny, S (Soft state) – określają możliwość nadpisania danych ich nowszymi wersjami. W przypadku, kiedy dane nie zostaną odświeżone w odpowiednim okresie, nastąpi ich usunięcie, co z kolei przekłada się na fakt, że baza może się zmieniać w czasie. E (Eventually consistent) – ostateczna spójność. To spójność, która jest uzyskiwana po upłynięciu czasu. Może to wynikać z faktu, że kopie, które są powielane pomiędzy serwery nie zdążyły się jeszcze rozpropagować. A zatem na części serwerów będą już dane aktualne a na innych nie – spowoduje to czasową niespójność

Wyróżnia się 4 główne rodzaje baz NoSQL: klucz – wartość,  dokumentowe, rodziny kolumn, grafowe.

Teoria CAP (Teoria Brewera)

Według teorii CAP, zwanej inaczej teorią Brewera 3 zasadnicze właściwości Consistency (spójność), Availability (dostępność) oraz Partition (partycjonowanie) nie mogą być spełnione jednocześnie. Np. CA (Consistensy, Availability) Systemy relacyjne to systemy bardzo poważnie traktują dostępność oraz spójność danych. AP – czyli dostępność i tolerancja to główne cechy Cassandry – możliwa niespójność danych przy wysokiej dostępności, CP – MongoDB i Redis – blokowanie danych przy ich niespójności.[[v]]

Bazy NoSQL są przystosowane do pracy na wielu serwerach. W związku z tym w razie awarii, prace przejmują pozostałe. NoSQL są odpowiedzią na problemy relacyjnych baz danych i stanowią one cenne ich uzupełnienie.

1.3       Big Data

Obecnie mamy do czynienia z kolejną rewolucją technologiczną zwaną turingowską (od nazwiska Alana Turinga) – czyli zmian w gospodarce, społeczeństwie i polityce, która jest ściśle powiązana z zapotrzebowaniem na nowe sposoby przetwarzania danych. Do tego dochodzi pojawienie się sztucznej inteligencji, która zrzuca z pozycji lidera człowieka jako jedynego stworzenia inteligentnego zdolnego myśleć logicznie. Obecnie ludzie stają się organizmami informacyjnymi (inforgi), które współdzielą przestrzeń z innymi podmiotami informacyjnymi, niebędącymi człowiekiem w tzw. infosferze.[[vi]]

Technologia dąży w kierunku innowacji opartej na już istniejących tworach takich jak: zasoby Internetu, różnorodność języków, oprogramowania i wszystkie one są zbudowane z…. bitów, co oznacza, że mogą być w nieograniczony sposób przetwarzane, powielane, natomiast innowatorzy mogą je w dowolny sposób modyfikować. Co ważne są dostępne praktycznie dla każdego.[[vii]]

Co ciekawe, obecnie coraz częściej mówi się, że „nadmierne poszanowanie dla zasady własności intelektualnej w coraz większym stopniu ogranicza innowacyjność działań podejmowanych w ekosystemie firm technologicznych”.[[viii]] Np. w Chinach za osoby przedsiębiorcze uważane są te które potrafią skopiować rozwiązań konkurencji i je ulepszać co ma prowadzić do globalnego rozwoju.

 Rozwój technologii informatycznych można w skrócie przedstawić w kilku etapach: Najpierw był komputer, potem Internet, następnie dano ludziom do ręki smartfony. Te trzy technologie noszą miano General Purpose Technology, czyli szerokiego zastosowania. Są wszechobecne, ciągle ulepszane. Co więcej pobudzają innowacyjność w wielu dziedzinach gospodarki.[[ix]] W międzyczasie powstały rozwiązania chmurowe, rzeczy używane na co dzień takie jak pralki, lodówki, odkurzacze stały się częściami domowych sieci, pojawiła się koncepcja Internetu Rzeczy. Wg raportu Disruptive technologies: Advances that will transform life, business, and the global economy na pierwszych miejscach powodujących tak znaczne zmiany w postrzeganiu przechowywania i przetwarzania danych znalazły się: mobilny internet, IoT, chmura, robotyka, samodzielne pojazdy. [[x]]

Zmienia się praca, szkoła, zmienia się rozrywka, zmienia się Państwo. Nowe terminy takie jak e-zdrowie, e-urzędy, e-praca, e-banki. Człowiek coraz bardziej przyzwyczaja do  wypełniania wniosków i robienia przelewów przez Internet. Dzięki istniejącym e-tożsamościom i e-podpisom, większość ważnych spraw można załatwiać przez sieć. Niezwykle ułatwia życie to teraz podczas pandemii, gdzie ludzie boją się lub mają zabronione wychodzenie z domu. Gdy dominuje strach przed dotykiem oraz kontaktem fizycznym, możliwość robienia czegoś zdalnie, bez wychodzenia z bezpiecznego domu może być dla kogoś zbawieniem.[6]

Określenie nowego porządku świata coraz bardziej przybiera na znaczeniu. Produkcja podąża w kierunku robotyzacji, które też są wyposażone w mnóstwo czujników i sensorów, pozwalających na monitorowanie tych robotów. To kolejna porcja danych. Wszystkie powyższe spowodowały platformatyzację, a wraz z nią pojawiły się nowe potrzeby w zakresie przechowywania i przetwarzania danych. Ogrom danych ma ścisły związek z: digityzacją, a zatem zmianą formatu danych z analogowego na cyfrowy. [[xi]], cyfryzacją (digitalizacją) dotycząca wielu dziedzin życia: np. gospodarczego i społecznego, datafikacją (danetyzacją), która odnosi się do tworzenia przetwarzania i łączenia, a następnie analizy olbrzymiej ilości danych, które mają reprezentować części świata rzeczywistego;

Rysunek 1. Minuta w Internecie 2021
[źródło: https://localiq.com/blog/what-happens-in-an-internet-minute-2021/ ]

Big Data to dane zróżnicowane o różnym stopniu ustrukturyzowania, najczęściej bardzo słabym. Należą do nich odczyty sensorów, dane z systemów geolokacji, mediów społecznościowych. Do ich zbierania i przetwarzania oraz analizy używa się niestandardowych metod. Rosną razem do rozwojem sztucznej inteligencji, wykorzystując jej narzędzia oraz technologie analizy.[[xii]] Big Data dotyczą różnych sfer życia. Dotyczy szeroko rozumianej konsumpcji – w ostatnich latach nastąpiła zmiana zachowania ludzi jako konsumentów. Usieciowienie dotyczy niemalże wszystkich dziedzin życia, od bankowości, porad lekarskich, e-kursów, a nawet grając w gry w sieci np. Minecraft, zakupów. Przemysłu i przedsiębiorstw – rozwiązania chmurowe i przetwarzane w nich dane pozwalają nawet niewielkim podmiotom na śledzenie trendów internetowych, obsługę księgowości, czy chociażby sprzedaż na światowych rynkach. Ebay, Amazon, Aliexpress, Allegro. 

Co łączy te fakty z Big Data i w ogóle danych? Otóż to, że każde działanie człowieka wykonywane na urządzeniu korzystającym z Internetu zostawia ślad, który może być cenną informacją dla firm rozwijających usługi takie jak np. Google Maps.[[xiii]] W ten sposób człowiek staje się prosumentem, gdyż jest nie tylko konsumentem, ale też producentem (danych, które następnie podlegają analizie przez różnego rodzaju platformy).

Obecnie dostępnych jest bardzo dużo rozwiązań Big Data. Większość z nich pozostaje dostępna na licencji open source, czyli bezpłatnie. Różnią się one między sobą technologią. Są to narzędzia, które odpowiednio dobrane pozwolą zaspokoić potrzeby konkretnej aplikacji. Wyróżnia się 5 głównych systemów tych rozwiązań. Są to:

  • kolejkowej wymiany danych– np. Apache Kafka – asynchroniczność i odporność na błędy
  • obliczeń w czasie rzeczywistym – np. Storm – jego cechy to wysoka przepustowość, niska latencja i przetwarzanie strumieniowe
  • framework serializacji – np. AVRO – umożliwiają używanie obiektów w różnych językach dzięki przetworzeniu na tablicę bajtów z jednego języka (serializacja), a następnie na przetworzeniu na obiekt dla drugiego języka (deserializacja)
  • NoSql losowego dostępu – specjalizują się w określonych operacjach, różnią się semantyką
  • obliczeń wsadowych – charakteryzuje je wysoka przepustowość, ale i wysoka latencja. [[xiv]]

Pozycję lidera zajmuje Hadoop rozwijany przez Apache Software Foundation.

Dystrybutorzy rozwiązań Big Data Hadoop Cloudera IBM (współpraca partnerska) oraz MapR, przy czym większość rynku zajmuje Cloudera. Dzięki dystrybucjom osoby zajmujące się platformą Hadoop nie muszą wszystkiego konfigurować samodzielnie. Najbardziej znani dystrybutorzy rozwiązań chmurowych to: Amazon Web Service (https://aws.amazon.com/emr), Google (https://cloud.google.com), Microsoft Azure-HDInsign.

Dostarczają one własne systemy, które oferują odpowiedniki hadoopowych rozwiązań, choć często zdarza się, że pod tymi chmurami kryją się Flink, Kafka itp.

1.4       Rankingi i trendy

Do oceny popularności systemów relacyjnych i nierelacyjnych systemów posłużono się narzędziem dostępnym na stronie https://db-engines.com/. Ranking prezentuje systemy zarządzania opierając się na aktualnej popularności. Wskaźnik ten obejmuje:

  • liczbę wyników zapytań wyszukiwarek: Google oraz Bing – zastosowano filtr trafności wyszukiwani poprzez nazwę systemu wraz z jej określeniem
  • narzędzie Google Trends
  • wykorzystywane są witryny związane z branżą IT, Stack Overflow i podobne w celu ustalenia liczby zainteresowanych internautów i pytań w danym temacie
  • brane są pod uwagę wyszukiwania ofert pracy w znanych portalach takich jak Indeed
  • badane są serwisy społecznościowe (LikedIn, Twitter)
  • w opracowaniach zastosowano uśredniania poszczególnych parametrów
  • w rankingu nie jest mierzona liczba instalacji i ich wykorzystania w systemach IT, więc należy go traktować jako wskaźnik wyprzedzający.[[xv]]

Systemy komercyjne tracą pozycję wobec systemów open source. Według danych z maja bieżącego roku instalacja systemów bezpłatnych zyskała przewagę nad rozwiązaniami komercyjnymi. Dane na stronie warto poddać analizie w następujących aspektach:

  • Systemy komercyjne kontra open source
  • Popularność systemów open source i komercyjnych
  • Rozwiązania komercyjne kontra open source
  • Ranking najpopularniejszych rozwiązań komercyjnych i open source
  • Popularność relacyjnych systemów w ciągu ostatnich 24 miesięcy

Wobec takich danych trudno dziwić się gigantom, że szukają rozwiązań, by nie zostać wypartym z rynku. Należy też zwrócić nadzieję, że trendy znacząco przyspieszyły w dobie pandemii, która pociągnęła za sobą konieczność pracy zdalnej i używania coraz to nowych rozwiązań technologicznych. RDBMS stanęły przed koniecznością poradzenia sobie z problemami w podejściu do gromadzenia danych, zmiany wymagań dotyczących systemów obsługujących dane, różnorodnością formatu danych a także możliwości Big Data – skalowalnością, niezawodnością, rozproszeniem, brak ograniczeń w ramach określonego języka, oraz z podejściem do przetwarzania danych.

[i] J. Pokorska, „Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych”, Helion, 2019

[ii] https://www.computerworld.pl/news/W-ktora-strone-skalowac,383163.html

[iii] https://nauczycielka-informatyki.pl/wp-content/uploads/2020/11/Strukruralny-jezyk-zapytan-SQL.pdf

[iv] Pramod J. Sadalage, M. Flower, NoSql Distilled, Addison-Wesley, 2012, ISBN, 978-0-321-82662-6

[v] What is CAP Thorem? https://java-questions.com/cap-theorem.html

[vi] K. Śledziewska, R.Włoch Gospodarka cyfrowa, Wydawnictwo Uniwesytetu Warszawskiego, Warszawa 2020

[vii] 2 H. Varian, Hal Varian on how the Web challenges managers, rozmowę przeprowadził James Manyika, „McKinsey & Company High Tech” 2009, https://www.mckinsey.com/industries/high-tech/ourinsights/hal-varian-on-how-the-web-challenges-managers

[viii] K.F. Lee, AI Superpowers: China, Silicon Valley, and the New World Order, Houghton Mifflin Harcourt, New York 2018.

[ix] B. Jovanovic, P.L. Rousseau, General Purpose Technologies, [w:] Handbook of Economic Growth, red. P. Aghion, S. Durlauf, t. 1, Elsevier, Amsterdam 2005, s. 1181–1224; U. Cantner, S. Vannuccini, A new view of general purpose technologies, „Jena Economic Research Papers” 2012, t. 6, nr 54, https://www.econstor.eu/bitstream/10419/70135/1/726781037.pdf.

[x] J. Manyika i in., Disruptive technologies: Advances that will transform life, business, and the global economy, McKinsey Global Institute 2013, https://www.mckinsey.com/~/media/McKinsey/Business %20Functions/McKinsey%20Digital/Our%20Insights/Disruptive%20technologies/MGI_Disruptive_ technologies_Executive_summary_May2013.ashx.

[xi] Katarzyna-Śledziewska-Renata-Włoch-Gospodarka-cyfrowa

[xii] 0 J. Bughin i in., How artificial intelligence…    

[xiii] C. O’Neil, Weapons of Math Destruction, Crown, New York 2016.

[xiv] Nathan MarzJames Warren, Big Data. Najlepsze praktyki budowy skalowalnych systemów obsługi danych w czasie rzeczywistym, HELION 2016

[xv] Knowledge Base of Relational and NoSQL Database Management Systems https://db-engines.com/