W pierwszej i drugiej części tej serii blogów zauważyliśmy kilka podstawowych różnic między skalowalnością relacyjnych i nierelacyjnych baz danych. W tym poście pokażę Ci, jak prawidłowo korzystać z tych baz danych, a także opowiem o niektórych znanych firmach, które korzystają z tych baz danych.
Relacyjna baza danych
W pierwszej części tej serii blogów mówiłem o właściwościach ACID. Te właściwości są ważne dla zachowania ścisłej integracji transakcyjnej. W niektórych branżach, takich jak bankowość, handel detaliczny itp., każda transakcja wymaga właściwości ACID. W transakcjach bankowych, w przypadku uznania jednego rachunku, należy obciążyć drugie. Częściowa aktualizacja nigdy nie jest dozwolona, ponieważ wpłynie to na integralność danych — w tym scenariuszu używane są Oracle, SQL Server, MySQL i inne RDBMS.
Nierelacyjna baza danych (NoSQL DB)
W pierwszej części tej serii blogów mówiłem również o właściwościach BASE. Są one ważne dla zachowania spójności danych we wszystkich węzłach bazy danych. Wszelkie informacje, które nie wymagają ścisłej integralności danych, mogą być przechowywane w bazie danych NoSQL. Na przykład zawartość systemu wyszukiwania może być przechowywana w nierelacyjnej bazie danych, ponieważ łatwo jest szybko uzyskać informacje. Dobrym przykładem systemu wyszukiwarek jest Google. Google zwykle przechowuje swoje strony internetowe z pamięci podręcznej w warstwie internetowej, która jest okresowo odświeżana. Bazy te mogą przechowywać terabajty danych historycznych (np. transakcje kartą kredytową banku z ostatnich 5 lat) w środowisku rozproszonym. Łatwo jest analizować i wydobywać dane w bazie danych NoSQL za pomocą oprogramowania hurtowni danych SQL-Like HIVE. Bazy danych NoSQL mogą być używane do przechowywania ogromnych ilości nieustrukturyzowanych danych i nadają się również do analizy tekstu.
Wymieniłem kilka najlepszych organizacji, które korzystają z tych baz danych:
Relacyjne bazy danych
SQL Server:LG Electronics, MySpace, Hilton Hotels.
ORACLE:British Telecom, MasterCard, Reliance Ltd.
MySQL:Facebook, Twitter, LinkedIn. Facebook używa MySQL do przechowywania interakcji użytkownika, takich jak aktualizacje statusu, udostępnienia, polubienia itp.
Nierelacyjne bazy danych
CouchBase:LinkedIn, AdAction.
Cassandra:Facebook, Twitter, Digg.
MongoDB:LinkedIn, Pearson.
Neo4j:Cisco, eBay itp.
Jak widać, firmy takie jak Facebook, Twitter i LinkedIn używają zarówno relacyjnych, jak i nierelacyjnych baz danych, w zależności od swoich wymagań.
Teraz wrócę do pierwszej części tej serii i odpowiem na następujące pytania:
Czy relacyjne bazy danych są w stanie obsługiwać duże zbiory danych?
Czy relacyjne bazy danych są skalowalne?
Czy relacyjne bazy danych są dostosowane do współczesnych wymagań dotyczących danych? Takie jak analityka w czasie rzeczywistym, zajmująca się nieustrukturyzowanymi danymi?
Odpowiedzią na wszystkie te pytania jest zdecydowane „TAK”. Relacyjne bazy danych nie znikają w tym społecznym świecie. W zależności od charakteru i złożoności zbioru danych należy użyć odpowiedniej bazy danych. Zarówno relacyjne, jak i nierelacyjne bazy danych mają swoje zalety i wady. Prawidłowe skonfigurowanie środowiska może w odpowiedni sposób wykorzystywać relacyjne i nierelacyjne bazy danych, tak jak zrobiły to Facebook, Twitter i LinkedIn.