Orakel

Oracle är inte den mest populära databasen, men den är den mest kända. Även om det kan hävdas att de mest populära. Se hur du räknar . Om man bara tittar på antalet företag så är MySQL den mest populära databasen: den är ganska bra och helt gratis :)

Men det kan också ses annorlunda. Om det finns ett företag med en miljon kunder som använder Oracle och 5 företag med hundra kunder som använder MySQL, så har Oracle en miljon kunder och MySQL bara 500 personer.

Generellt sett, om man tar stora företag som har pengar och tittar på vilket DBMS de väljer, så sitter ungefär en tredjedel av alla företag i världen på Oracle. Något som det här.

Som programmerare är det mer sannolikt att du kommer att arbeta med Oracle i framtiden än på MySQL. Det finns en utmärkt video på Internet som visar hur populariteten för DBMS har förändrats under de senaste 20 åren.

MySQL

Den näst mest populära bland alla DBMS är MySQL. Och det är den första i popularitet bland alla gratis DBMS. Nu förstår du varför vi lär oss SQL från hennes exempel. Hype är hype, och affärer är ganska konservativa i valet av infrastruktur.

I princip har vi redan pratat om MySQL. En gång köptes de av Sun , sedan av Oracle . Vilket, ja, det är väldigt svårt att kalla ett företag av godhet.

Det är de som efter förvärvet av Sun ständigt försöker få Java att betala.

Ja, Sun ägde både Java och MySQL innan Oracle köpte dem.

Detta faktum och Oracles rykte skrämde MySQL-utvecklarna lite, som bestämde sig för att splittra MySQL-projektet och kalla det MariaDB.

MariaDB är faktiskt en klon av MySQL med några implementeringsegenheter som låter dig komma runt nyanserna av patent och licenser.

Oracle är dock inte heller dårar. För att förhindra att kunder och utvecklare läcker till MariaDB fortsätter Oracle att finansiera utvecklingen och utvecklingen av MySQL, som fortsätter att vara gratis.

Och för att sitta på två stolar släpptes en betald MySQL Enterprise för företagskunder , som inte skiljer sig från MySQL Community Edition, men vars licenser är bättre lämpade för företag.

PostgreSQL

Ett annat intressant DBMS är PostgreSQL (uttalas "postgres cue").

Detta är ett annat gratis DBMS som har vunnit popularitet mycket snabbt de senaste åren. Även om det fortfarande är långt ifrån MySQL.

PostgreSQL är främst inriktat på distribuerat arbete. Dess styrkor är:

  • Högpresterande och pålitliga transaktions- och replikeringsmekanismer
  • Utökningsbart system med inbyggda programmeringsspråk: PL SQL, PL JS, PL Python, …
  • Tabell arv
  • Förmåga att indexera geometriska (särskilt geografiska) objekt
  • Inbyggt stöd för semistrukturerad data i JSON-format med möjlighet att indexera dem
  • Utökningsbarhet (möjligheten att skapa nya datatyper, indextyper, programmeringsspråk, tilläggsmoduler, ansluta externa datakällor)

Vet du varför det heter så? Så här var det...

För ungefär 50 år sedan, i början av 70-talet, började University of Berkeley utveckla sin egen relations-DBMS och kallade den Ingres .

I början av 80-talet lämnade professor Michael Stonebreaker projektet och bestämde sig för att skriva sitt eget DBMS med blackjack och kurtisaner. Han och hans elever började skriva sitt eget DBMS, som de helt enkelt kallade Post Ingres , förkortat till Postgres i framtiden .

Och eftersom namnet Postgres inte betydde någonting för någon bestämde man sig för att lägga till SQL-suffixet. Så här blev PostgreSQL, som omedelbart tappade det dubbla S:et och började skrivas som PostgreSQL. Men du säger namnet, du måste läsa det som PostgresQL.

NoSQL

Om du är intresserad av databaser har du definitivt hört talas om NoSQL-databaser . Jag skyndar mig att göra dig upprörd: NoSQL är rent marknadsföringsnamn och SQL finns där. Han är bara trunkerad.

Vad ser det ut som? Föreställ dig en trevlig webbsida skriven i HTML, CSS och JavaScript... som öppnades i en webbläsare från 1995. Det fungerar på styrkan av 10% av CSS och stöder inte JavaScript alls. Och denna nya avskalade standard kallas... NoHtml .

Till exempel kanske JOINs mellan tabeller inte stöds i NoSQL, och då måste du antingen emulera detta på nivån för Java-kod i programmet, eller lagra all data från relaterade tabeller i en enorm tabell.

Och om vi i fallet med NoHtml verkar ha rullat tillbaka för 20 år sedan, då i fallet med NoSQL sker återställningen någonstans runt 40 år.

Ta till exempel Cassandra NoSQL-databasen som Facebook använder för att lagra data från miljarder användare. Egentligen utvecklade de det och lade upp det som ett OpenSource-projekt.

Låt oss börja med det mest intressanta - all DBMS-kod är skriven i Java . C++-koden skulle förmodligen köras snabbare, men det skulle finnas fler buggar. Och Java-kod är lättare att underhålla och utveckla.

Det allmänna formatet för förfrågningar till Casandra DBMS ser mycket bekant ut:

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

Som du kan se finns SQL där. Vet du vad som saknas här? GÅ MED ! Du kan bara välja data från en tabell :)

Här är ett citat från den officiella dokumentationen:

Du kan inte utföra joins i Cassandra . Om du har designat en datamodell och upptäcker att du behöver något som en koppling måste du antingen göra jobbet på klientsidan eller skapa en denormaliserad andra tabell som representerar kopplingsresultaten åt dig.