ORACLEW społeczności administratorów baz danych trwają dyskusje na temat najlepszego podejścia do tworzenia aplikacji chmurowych lub opartych na danych. Z jednej strony mamy ekspertów polecających używanie jednozadaniowych baz danych „najlepszych w swojej klasie” dla każdego typu danych albo zadania. Druga grupa twierdzi, że należy używać jednej konwergentnej bazy danych.


 REKLAMA 
 sente 
 
A jakie podejście jest najlepsze dla Ciebie i Twoich projektów?

Jednozadaniowe bazy danych

Jednozadaniowe bazy danych lub „bazy danych specjalnego przeznaczenia” są projektowane tak, aby pomóc w rozwiązaniu pojedynczego problemu lub ich niewielkiej liczby. Ze względu na ich wąską specjalizację mogą ignorować kompromisy niezbędne zazwyczaj przy uwzględnianiu wielu typów danych lub zadań. Pozwala im to również na stosowanie wygodnego modelu danych, który pasuje do ich sposobu działania oraz do stosowania API najlepiej dostosowanych do tego modelu danych. Ich prostota oznacza, że wykonują kilka zadań bardzo dobrze, ale innych nie robią wcale.

Na pierwszy rzut oka jednozadaniowe bazy danych wydają się dobrym wyborem. Deweloperzy są zadowoleni, bo otrzymują dokładnie to, czego potrzebują do rozpoczęcia projektu. Jednak gdy spojrzeć szerzej, jednozadaniowe bazy danych mogą powodować wiele trudności i na dłuższą metę być bardziej kosztowne.

Bardzo często wymagania zmieniają się w trakcie projektu, pojawiają się nieprzewidziane potrzeby biznesowe, co powoduje, że początkowo najlepszy wybór okazuje się nieodpowiedni. Wtedy deweloperzy muszą podjąć trudną decyzję. Zacząć od zera z inną jednozadaniową bazą danych, aby uwzględnić nowe wymagania i mieć nadzieję, że żadne inne już się nie pojawią, albo jakoś obejść ograniczenia oryginalnej bazy danych, niepotrzebnie komplikując kod aplikacji.

Co się dzieje, kiedy ma się większą liczbę jednozadaniowych baz danych do wszystkich aplikacji biznesowych? Szybko zauważamy, że dane uległy fragmentacji w różnych bazach, które stosują różne formaty i typy, a zatem nie ma bezpośredniego sposobu na integrację między nimi. Jak zarządzać takimi danymi, zabezpieczać je lub integrować z innymi działami organizacji?

Każda jednozazadniowa baza danych oparta jest na specyficznej technologii, z oddzielnymi mechanizmami zarządzania, modelami bezpieczeństwa i architekturami wysokiej dostępności. Udostępnianie lub propagowanie danych w tych bazach jest trudne, ponieważ nie ma ujednoliconego interfejsu API.

Organizacja musi zatem ponieść ciężar pracy związanej z integracją - niezbędną, aby stosowanie jednozadaniowych baz danych było możliwe przy dużej skali. Potrzebny będzie personel znający się na operacyjnych aspektach każdej takiej bazy. Zasady bezpieczeństwa trzeba będzie wdrażać w każdej bazie oddzielnie, a aplikacje staną się bardziej skomplikowane, aby radzić sobie z propagacją danych z jednej bazy danych do drugiej.

Konwergentne bazy danych

Konwergentne bazy danych obsługują wszystkie typy danych i zadań, mogą również obsługiwać dowolny model programistyczny. Integrując wszystkie typy danych i zadań jako funkcje konwergentnej bazy danych, możesz obsługiwać obciążenia mieszane i typy danych za pomocą wspólnego języka (SQL) i standardowego zestawu interfejsów API. Nie ma też błędów ani opóźnień spowodowanych propagacją danych.

Ogólnie kod aplikacji staje się prostszy, ponieważ nie trzeba już omijać ograniczeń wynikających z jednozadaniowej bazy danych ani martwić się o integrację danych z licznych źródeł lub ich propagację w wielu systemach. Otrzymuje się także synergię między typami danych i zadań. Na przykład mając algorytmy uczenia maszynowego i danych przestrzennych w tej samej bazie danych, można skutecznie uruchamiać dla nich analizy predykcyjne. Tworzenie aplikacji opartych na danych staje się znacznie prostsze i szybsze.

Jednozadaniowe bazy danych „najlepsze w swojej klasie” oznaczają brak uzależnienia od konkretnego dostawcy – czy to prawda?

Niestety, niekoniecznie. Korzystanie z rozwiązania najlepszego w swojej klasie powoduje uzależnienie od dostawcy, ponieważ każda jednozadaniowa baza danych ma swoje własne interfejsy API i modele transakcji, zamiast standardów ISO - takich jak SQL. Powoduje to fragmentację w pracach rozwojowych i blokuje aplikację w takiej bazie, którą bardzo często zapewnia konkretny dostawca chmury.

Programistom o wiele łatwiej jest wywoływać rozszerzone SQL w celu realizacji mechanizmów uczenia maszynowego, grafów, modeli przestrzennych, łańcuchów blockchain, IoT i innych w jednej bazie danych, zamiast wdrażać rozproszone wykonywanie i przenoszenie danych w wielu bazach.

Czy praca z konwergentną bazą danych jest kosztowna?

Wprowadzenie usług baz danych w chmurze usunęło barierę kosztową utrudniającą użytkowanie konwergentnych baz danych. Oracle Autonomous Database jest znakomitym przykładem tego zjawiska. Jest dostępna dla programistów w ramach modelu bezpłatnej bazy Oracle Cloud Free-Tier lub za niską stawkę godzinową na potrzeby środowisk produkcyjnych lub testowych.

W dłuższej perspektywie organizacje oszczędzają czas i pieniądze, używając konwergentnych baz danych, w których mogą zarządzać wszystkimi typami danych i zadań za pomocą tylko jednej technologii bazodanowej, która obsługuje wszystkie przypadki użycia i wymagania z różnych działów organizacji.

Czy w jakichś przypadkach jednozadaniowa baza danych jest właściwym wyborem?

W wielu branżach znajdziemy niszowe przypadki działalności, dla których najodpowiedniejsze jest korzystanie z produktów jednozadaniowych lub specjalistycznych. Szczególnie jeśli taka działalność wymaga wyjątkowej wydajności lub skalowalności - na przykład w przypadku systemu obrotu akcjami. Są to wymagające minimalnych opóźnień aplikacje do przetwarzania transakcji, wymagające gwarantowanych czasów odpowiedzi w mikrosekundach, dla których odpowiednie byłoby działanie na platformie Oracle TimesTen. Użycie jednozadaniowych baz danych powinno zatem być ograniczone do małej grupy bardzo specyficznych zadań.

Źródło: www.oracle.com/pl

PRZECZYTAJ RÓWNIEŻ:


Back to top