Оракул

Oracle не е най-популярната база данни, но е най-известната. Въпреки че може да се твърди, че най-популярният. Вижте How да броите . Ако просто погледнете броя на компаниите, тогава MySQL е най-популярната база данни: тя е доста добра и напълно безплатна :)

Но може да се разглежда и по различен начин. Ако има една компания с мorон клиенти , която използва Oracle, и 5 компании със сто клиенти , които използват MySQL, тогава Oracle има мorон клиенти, а MySQL само 500 души.

Като цяло, ако вземете големи компании, които имат пари и погледнете коя СУБД избират, тогава около една трета от всички компании в света седят на Oracle. Нещо като това.

Като програмист е по-вероятно да работите в бъдеще с Oracle, отколкото с MySQL. В интернет има отлично видео, което демонстрира How се е променила популярността на СУБД през последните 20 години.

MySQL

Вторият по популярност сред всички СУБД е MySQL. И е първият по популярност сред всички безплатни СУБД. Сега разбирате защо учим SQL от нейния пример. Хайпът си е шум, а бизнесът е доста консервативен в избора на инфраструктура.

По принцип вече говорихме за MySQL. Веднъж бяха купени от Sun , после от Oracle . Което, ами, е много трудно да се нарече корпорация на доброто.

Именно те след придобиването на Sun непрекъснато се опитват да направят Java платена.

Да, Sun притежаваше Howто Java, така и MySQL, преди Oracle да ги купи.

Този факт и репутацията на Oracle изплашиха малко разработчиците на MySQL, които решиха да разклонят проекта MySQL и да го нарекат MariaDB.

MariaDB всъщност е клонинг на MySQL с някои странности при внедряването, които ви позволяват да заобиколите нюансите на патентите и лицензите.

Oracle обаче също не е глупак. За да предотврати изтичането на клиенти и разработчици към MariaDB, Oracle продължава да финансира разработването и развитието на MySQL, който продължава да бъде безплатен.

И за да седнем на два стола, беше пуснат платен MySQL Enterprise за корпоративни клиенти , който не се различава от MySQL Community Edition , но чиито лицензи са по-подходящи за бизнеса.

PostgreSQL

Друга интересна СУБД е PostgreSQL (произнася се "postgres cue").

Това е още една безплатна СУБД, която много бързо набира популярност през последните години. Въпреки че все още е далеч от MySQL.

PostgreSQL е фокусиран предимно върху разпределена работа. Силните му страни са:

  • Високопроизводителни и надеждни механизми за транзакции и репликация
  • Разширяема система от вградени езици за програмиране: PL SQL, PL JS, PL Python, …
  • Наследяване на table
  • Възможност за индексиране на геометрични (по-специално географски) обекти
  • Вградена поддръжка за полуструктурирани данни във формат JSON с възможност за индексирането им
  • Разширяемост (възможност за създаване на нови типове данни, типове индекси, езици за програмиране, модули за разширение, свързване на всяHowви външни източници на данни)

Знаете ли защо се казва така? Ето How беше...

Преди около 50 години, в началото на 70-те години, университетът Бъркли започна да разработва своя собствена релационна СУБД и я нарече Ingres .

В началото на 80-те професор Майкъл Стоунбрейкър напуска проекта и решава да напише своя собствена СУБД с блекджек и куртизанки. Той и неговите ученици започнаха да пишат свои собствени СУБД, които нарекоха просто Post Ingres , съкратено до Postgres в бъдеще .

И тъй като името Postgres не говореше нищо за никого, беше решено да се добави суфиксът SQL към него. Ето How се оказа PostgreSQL, който веднага загуби двойното S и започна да се пише като PostgreSQL. Но ако кажете името, трябва да го прочетете като PostgresQL.

NoSQL

Ако се интересувате от бази данни, тогава определено сте чували за NoSQL бази данни . Бързам да ви разстроя: NoSQL е чисто маркетингово име и SQL е там. Той просто е съкратен.

Как изглежда? Представете си хубава уеб page, написана на HTML, CSS и JavaScript... която е отворена в браузър от 1995 г. Работи със силата на 10% от CSS и изобщо не поддържа JavaScript. И този нов съкратен стандарт се нарича... NoHtml .

Например JOIN между таблици може да не се поддържат в NoSQL и тогава трябва or да емулирате това на ниво Java code в програмата, or да съхранявате всички данни от свързани таблици в една огромна table.

И ако в случая с NoHtml изглежда, че сме се върнали назад 20 години назад, то в случая с NoSQL връщането се случва някъде около 40 години.

Вземете например базата данни Cassandra NoSQL , която Facebook използва за съхраняване на данните на мorарди потребители. Всъщност те го разработиха и след това го публикуваха като OpenSource проект.

Да започнем с най-интересното - целият code на СУБД е написан на Java . Кодът на C++ вероятно ще работи по-бързо, но ще има повече грешки. И Java codeът е по-лесен за поддръжка и разработване.

Общият формат на заявките към Casandra DBMS изглежда много познат:

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

Както можете да видите, SQL е там. Знаете ли Howво липсва тук? ПРИСЪЕДИНЕТЕ СЕ ! Можете да изберете данни само от една table :)

Ето цитат от официалната documentация:

Не можете да изпълнявате обединения в Cassandra . Ако сте проектирали модел на данни и установите, че имате нужда от нещо като съединение, ще трябва or да свършите работата от страна на клиента , or да създадете денормализирана втора table , която представя резултатите от съединението instead of вас.