Oracle

Oracle er ikke den mest populære database, men den er den mest berømte. Selvom det kan hævdes, at de mest populære. Se hvordan du tæller . Hvis man bare ser på antallet af virksomheder, så er MySQL den mest populære database: den er ret god og helt gratis :)

Men det kan også betragtes anderledes. Hvis der er én virksomhed med en million kunder , der bruger Oracle og 5 virksomheder med hundrede kunder , der bruger MySQL, så har Oracle en million kunder og MySQL kun 500 personer.

Generelt, hvis man tager store virksomheder, der har penge, og ser på, hvilket DBMS de vælger, så sidder omkring en tredjedel af alle virksomheder i verden på Oracle. Sådan noget.

Som programmør er det mere sandsynligt, at du i fremtiden vil arbejde på Oracle end på MySQL. Der er en fremragende video på internettet, der viser, hvordan populariteten af ​​DBMS har ændret sig i løbet af de sidste 20 år.

MySQL

Den næstmest populære blandt alle DBMS er MySQL. Og det er den første i popularitet blandt alle gratis DBMS. Nu forstår du, hvorfor vi lærer SQL fra hendes eksempel. Hype er hype, og forretningen er ret konservativ i valget af infrastruktur.

I princippet har vi allerede talt om MySQL. Engang blev de købt af Sun , derefter af Oracle . Hvilket, ja, det er meget svært at kalde en godhedsvirksomhed.

Det er dem, der efter købet af Sun konstant forsøger at få Java betalt.

Ja, Sun ejede både Java og MySQL, før Oracle købte dem.

Denne kendsgerning og Oracles omdømme skræmte MySQL-udviklerne lidt, som besluttede at forkaste MySQL-projektet og kalde det MariaDB.

MariaDB er faktisk en klon af MySQL med nogle implementeringsegenskaber, der giver dig mulighed for at komme uden om nuancerne i patenter og licenser.

Oracle er dog heller ikke fjols. For at forhindre kunder og udviklere i at lække til MariaDB fortsætter Oracle med at finansiere udviklingen og udviklingen af ​​MySQL, som fortsat er gratis.

Og for at sidde på to stole blev en betalt MySQL Enterprise udgivet til erhvervskunder , som ikke adskiller sig fra MySQL Community Edition , men hvis licenser er bedre egnet til erhvervslivet.

PostgreSQL

En anden interessant DBMS er PostgreSQL (udtales "postgres cue").

Dette er en anden gratis DBMS, der har vundet popularitet meget hurtigt i de seneste år. Selvom det stadig er langt fra MySQL.

PostgreSQL er primært fokuseret på distribueret arbejde. Dens styrker er:

  • Højtydende og pålidelige transaktions- og replikeringsmekanismer
  • Udvidbart system af indbyggede programmeringssprog: PL SQL, PL JS, PL Python, …
  • Tabel arv
  • Evne til at indeksere geometriske (især geografiske) objekter
  • Indbygget understøttelse af semistrukturerede data i JSON-format med mulighed for at indeksere dem
  • Udvidelsesmuligheder (evnen til at oprette nye datatyper, indekstyper, programmeringssprog, udvidelsesmoduler, forbinde eventuelle eksterne datakilder)

Ved du hvorfor det hedder det? Her er hvordan det var…

For omkring 50 år siden, i begyndelsen af ​​70'erne, begyndte University of Berkeley at udvikle sit eget relationelle DBMS og kaldte det Ingres .

I begyndelsen af ​​80'erne forlod professor Michael Stonebreaker projektet og besluttede at skrive sit eget DBMS med blackjack og kurtisaner. Han og hans elever begyndte at skrive deres eget DBMS, som de blot kaldte Post Ingres , forkortet til Postgres i fremtiden .

Og da navnet Postgres ikke betød noget for nogen, blev det besluttet at tilføje SQL-suffikset til det. Sådan blev PostgreSQL, som straks mistede det dobbelte S, og begyndte at blive skrevet som PostgreSQL. Men du siger navnet, du skal læse det som PostgresQL.

NoSQL

Hvis du er interesseret i databaser, så har du helt sikkert hørt om NoSQL-databaser . Jeg skynder mig at forstyrre dig: NoSQL er udelukkende et marketingnavn , og SQL er der. Han er bare afkortet.

Hvordan ser det ud? Forestil dig en flot webside skrevet i HTML, CSS og JavaScript... som blev åbnet i en browser fra 1995. Det virker på styrken af ​​10% af CSS og understøtter slet ikke JavaScript. Og denne nye strippede standard hedder... NoHtml .

For eksempel er JOINs mellem tabeller muligvis ikke understøttet i NoSQL, og så skal du enten emulere dette på niveau med Java-kode i programmet, eller gemme alle data fra relaterede tabeller i én kæmpe tabel.

Og hvis vi i tilfælde af NoHtml ser ud til at være rullet tilbage for 20 år siden, så sker tilbagerulningen i tilfælde af NoSQL et sted omkring 40 år.

Tag for eksempel Cassandra NoSQL-databasen , som Facebook bruger til at gemme data fra milliarder af brugere. Faktisk udviklede de det og postede det derefter som et OpenSource-projekt.

Lad os starte med det mest interessante - al DBMS-koden er skrevet i Java . C++-koden ville sandsynligvis køre hurtigere, men der ville være flere fejl. Og Java-kode er nemmere at vedligeholde og udvikle.

Det generelle format for anmodninger til Casandra DBMS ser meget velkendt ud:

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

Som du kan se, er SQL der. Ved du hvad der mangler her? TILMELD DIG ! Du kan kun vælge data fra én tabel :)

Her er et citat fra den officielle dokumentation:

Du kan ikke udføre joins i Cassandra . Hvis du har designet en datamodel og finder ud af, at du har brug for noget som en joinforbindelse, skal du enten udføre arbejdet på klientsiden eller oprette en denormaliseret anden tabel , der repræsenterer joinresultaterne for dig.