Wyrocznia

Oracle nie jest najpopularniejszą bazą danych, ale jest najbardziej znaną. Chociaż można argumentować, że najpopularniejszy. Zobacz, jak liczyć . Jeśli spojrzysz tylko na liczbę firm, to MySQL jest najpopularniejszą bazą danych: jest całkiem niezła i całkowicie darmowa :)

Ale można to też rozpatrywać inaczej. Jeśli jest jedna firma z milionem klientów korzystających z Oracle i 5 firm ze stu klientami korzystającymi z MySQL, to Oracle ma milion klientów, a MySQL tylko 500 osób.

Ogólnie rzecz biorąc, jeśli weźmiemy pod uwagę duże firmy, które mają pieniądze, i przyjrzymy się, jaki DBMS wybierają, to około jedna trzecia wszystkich firm na świecie korzysta z Oracle. Coś takiego.

Jako programista masz większe szanse w przyszłości pracować na systemie Oracle DBMS niż na MySQL. W Internecie jest doskonały film, który pokazuje, jak zmieniła się popularność DBMS w ciągu ostatnich 20 lat.

MySQL

Drugim najpopularniejszym spośród wszystkich DBMS jest MySQL. I jest pierwszym popularnym wśród wszystkich darmowych DBMS. Teraz rozumiesz, dlaczego uczymy się SQL z jej przykładu. Szum to szum, a biznes jest dość konserwatywny w wyborze infrastruktury.

W zasadzie rozmawialiśmy już o MySQL. Kiedyś kupił je Sun , potem Oracle . Które, cóż, bardzo trudno nazwać korporacją dobroci.

To oni po przejęciu Suna nieustannie starają się, aby Java była płatna.

Tak, Sun posiadał zarówno Javę, jak i MySQL, zanim Oracle je kupił.

Ten fakt i reputacja Oracle trochę przestraszyły programistów MySQL, którzy postanowili rozwidlić projekt MySQL i nazwać go MariaDB.

MariaDB jest w rzeczywistości klonem MySQL z pewnymi dziwactwami implementacyjnymi, które pozwalają ominąć niuanse patentów i licencji.

Jednak Oracle również nie jest głupcami. Aby uniemożliwić klientom i programistom wyciek danych do MariaDB, Oracle nadal finansuje rozwój i rozwój MySQL, który nadal jest bezpłatny.

Aby usiąść na dwóch krzesłach, wydano płatny MySQL Enterprise dla klientów korporacyjnych , który nie różni się od MySQL Community Edition , ale którego licencje są lepiej dostosowane do biznesu.

PostgreSQL

Innym interesującym systemem DBMS jest PostgreSQL (wymawiane jako „postgres cue”).

To kolejny darmowy DBMS, który w ostatnich latach bardzo szybko zyskuje na popularności. Chociaż wciąż jest daleko od MySQL.

PostgreSQL koncentruje się przede wszystkim na pracy rozproszonej. Jego mocne strony to:

  • Wydajne i niezawodne mechanizmy transakcji i replikacji
  • Rozszerzalny system wbudowanych języków programowania: PL SQL, PL JS, PL Python,…
  • Dziedziczenie tabeli
  • Umiejętność indeksowania obiektów geometrycznych (w szczególności geograficznych).
  • Wbudowana obsługa częściowo ustrukturyzowanych danych w formacie JSON z możliwością ich indeksowania
  • Rozszerzalność (możliwość tworzenia nowych typów danych, typów indeksów, języków programowania, modułów rozszerzeń, podłączania dowolnych zewnętrznych źródeł danych)

Czy wiesz, dlaczego tak się nazywa? Oto jak było…

Około 50 lat temu, na początku lat 70., Uniwersytet w Berkeley zaczął rozwijać swój własny relacyjny DBMS i nazwał go Ingres .

Na początku lat 80. profesor Michael Stonebreaker opuścił projekt i postanowił napisać własny DBMS z blackjackiem i kurtyzanami. On i jego uczniowie zaczęli pisać własny DBMS, który nazwali po prostu Post Ingres , w przyszłości skróconym do Postgres .

A ponieważ nazwa Postgres nikomu nic nie mówiła, postanowiono dodać do niej sufiks SQL. Tak powstał PostgreSQL, który natychmiast stracił podwójne S i zaczął być zapisywany jako PostgreSQL. Ale mówisz nazwę, musisz ją przeczytać jak PostgresQL.

NoSQL

Jeśli interesują Cię bazy danych, to na pewno słyszałeś o bazach danych NoSQL . Spieszę cię zdenerwować: NoSQL to nazwa czysto marketingowa , a SQL tam jest. Jest po prostu okrojony.

Jak to wygląda? Wyobraź sobie ładną stronę internetową napisaną w HTML, CSS i JavaScript... która została otwarta w przeglądarce z 1995 roku. Działa na sile 10% CSS i w ogóle nie obsługuje JavaScript. A ten nowy, uproszczony standard nazywa się… NoHtml .

Na przykład połączenia JOIN między tabelami mogą nie być obsługiwane w NoSQL, a następnie musisz albo emulować to na poziomie kodu Java w programie, albo przechowywać wszystkie dane powiązanych tabel w jednej ogromnej tabeli.

A jeśli w przypadku NoHtml wydaje się, że cofnęliśmy się o 20 lat temu, to w przypadku NoSQL cofnięcie następuje gdzieś około 40 lat.

Weźmy na przykład bazę danych Cassandra NoSQL , której Facebook używa do przechowywania danych miliardów użytkowników. W rzeczywistości opracowali go, a następnie opublikowali jako projekt OpenSource.

Zacznijmy od najciekawszego – cały kod DBMS jest napisany w Javie . Kod C++ prawdopodobnie działałby szybciej, ale byłoby więcej błędów. A kod Java jest łatwiejszy w utrzymaniu i rozwijaniu.

Ogólny format żądań do systemu DBMS Casandra wygląda bardzo znajomo:

  SELECT columns  
  FROM table 
  WHERE condition
  GROUP BY columns 
  ORDER BY sorting 
  LIMIT quantity

Jak widać, SQL istnieje. Czy wiesz, czego tu brakuje? DOŁĄCZ ! Dane można wybrać tylko z jednej tabeli :)

Oto cytat z oficjalnej dokumentacji:

Nie możesz wykonywać połączeń w Cassandra . Jeśli zaprojektowałeś model danych i stwierdzisz, że potrzebujesz czegoś w rodzaju łączenia, będziesz musiał wykonać pracę po stronie klienta lub utworzyć zdenormalizowaną drugą tabelę , która przedstawia wyniki łączenia.