Orakel

Oracle is niet de meest populaire database, maar wel de bekendste. Hoewel kan worden beweerd dat de meest populaire. Kijk hoe je moet tellen . Als je alleen naar het aantal bedrijven kijkt, dan is MySQL de meest populaire database: het is best goed en helemaal gratis :)

Maar het kan ook anders worden opgevat. Als er één bedrijf is met een miljoen klanten dat Oracle gebruikt en 5 bedrijven met honderd klanten die MySQL gebruiken, dan heeft Oracle een miljoen klanten en MySQL slechts 500 mensen.

Over het algemeen, als je grote bedrijven neemt die geld hebben en kijkt naar welk DBMS ze kiezen, dan zit ongeveer een derde van alle bedrijven ter wereld op Oracle. Iets zoals dit.

Als programmeur werk je in de toekomst eerder aan Oracle dan aan MySQL. Er is een uitstekende video op internet die laat zien hoe de populariteit van DBMS de afgelopen 20 jaar is veranderd.

MySQL

De tweede meest populaire van alle DBMS is MySQL. En het is de eerste in populariteit onder alle gratis DBMS. Nu begrijp je waarom we SQL leren van haar voorbeeld. Hype is een hype en het bedrijfsleven is vrij conservatief in de keuze van infrastructuur.

In principe hebben we het al gehad over MySQL. Ooit zijn ze gekocht door Sun , daarna door Oracle . Wat, nou ja, het is heel moeilijk om een ​​bedrijf van goedheid te noemen.

Zij zijn het die na de overname van Sun voortdurend proberen Java betaald te krijgen.

Ja, Sun bezat zowel Java als MySQL voordat Oracle ze kocht.

Dit feit en de reputatie van Oracle maakten de MySQL-ontwikkelaars een beetje bang, die besloten het MySQL-project te splitsen en het MariaDB te noemen.

MariaDB is eigenlijk een kloon van MySQL met enkele implementatie-eigenaardigheden waarmee u de nuances van patenten en licenties kunt omzeilen.

Oracle is echter ook niet gek. Om te voorkomen dat klanten en ontwikkelaars naar MariaDB lekken, blijft Oracle de ontwikkeling en ontwikkeling van MySQL financieren, dat nog steeds gratis is.

En om op twee stoelen te zitten, werd een betaalde MySQL Enterprise uitgebracht voor zakelijke klanten , die niet verschilt van MySQL Community Edition , maar waarvan de licenties beter geschikt zijn voor bedrijven.

PostgreSQL

Een ander interessant DBMS is PostgreSQL (uitgesproken als "postgres cue").

Dit is weer een gratis DBMS dat de laatste jaren erg snel aan populariteit wint. Hoewel het nog ver verwijderd is van MySQL.

PostgreSQL is voornamelijk gericht op gedistribueerd werk. De sterke punten zijn:

  • Krachtige en betrouwbare transactie- en replicatiemechanismen
  • Uitbreidbaar systeem van ingebouwde programmeertalen: PL SQL, PL JS, PL Python, …
  • Overerving van tabellen
  • Mogelijkheid om geometrische (in het bijzonder geografische) objecten te indexeren
  • Ingebouwde ondersteuning voor semi-gestructureerde gegevens in JSON-formaat met de mogelijkheid om ze te indexeren
  • Uitbreidbaarheid (de mogelijkheid om nieuwe datatypes, indextypes, programmeertalen, uitbreidingsmodules te creëren, externe databronnen aan te sluiten)

Weet je waarom het zo heet? Hier is hoe het was...

Ongeveer 50 jaar geleden, begin jaren 70, begon de University of Berkeley zijn eigen relationele DBMS te ontwikkelen en noemde het Ingres .

Begin jaren 80 verliet professor Michael Stonebreaker het project en besloot zijn eigen DBMS te schrijven met blackjack en courtisanes. Hij en zijn studenten begonnen met het schrijven van hun eigen DBMS, dat ze kortweg Post Ingres noemden , in de toekomst afgekort tot Postgres .

En aangezien de naam Postgres voor niemand iets zei, werd besloten om er het SQL-achtervoegsel aan toe te voegen. Dit is hoe PostgreSQL bleek te zijn, dat onmiddellijk de dubbele S verloor en werd geschreven als PostgreSQL. Maar u zegt de naam, u moet het lezen zoals PostgresQL.

Geen SQL

Als je geïnteresseerd bent in databases, dan heb je zeker gehoord van NoSQL-databases . Ik haast me om je van streek te maken: NoSQL is puur een marketingnaam en SQL is er. Hij is gewoon ingekort.

Hoe ziet het eruit? Stel je een mooie webpagina voor, geschreven in HTML, CSS en JavaScript... die is geopend in een browser uit 1995. Het werkt op basis van 10% CSS en ondersteunt helemaal geen JavaScript. En deze nieuwe uitgeklede standaard heet... NoHtml .

JOINs tussen tabellen worden bijvoorbeeld mogelijk niet ondersteund in NoSQL, en dan moet je dit emuleren op het niveau van Java-code in het programma, of alle gegevens van gerelateerde tabellen opslaan in één enorme tabel.

En als we in het geval van NoHtml 20 jaar geleden lijken te zijn teruggedraaid, dan vindt de terugdraaiing in het geval van NoSQL ergens rond de 40 jaar plaats.

Neem bijvoorbeeld de Cassandra NoSQL-database die Facebook gebruikt om de gegevens van miljarden gebruikers op te slaan. Eigenlijk hebben ze het ontwikkeld en vervolgens gepost als een OpenSource-project.

Laten we beginnen met het meest interessante: alle DBMS-code is geschreven in Java . De C++-code zou waarschijnlijk sneller werken, maar er zouden meer bugs zijn. En Java-code is gemakkelijker te onderhouden en te ontwikkelen.

Het algemene formaat van verzoeken aan het Casandra DBMS ziet er erg bekend uit:

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

Zoals je kunt zien, is SQL er. Weet je wat hier ontbreekt? DOE MEE ! U kunt slechts gegevens uit één tabel selecteren :)

Hier is een citaat uit de officiële documentatie:

U kunt geen joins uitvoeren in Cassandra . Als je een gegevensmodel hebt ontworpen en merkt dat je zoiets als een join nodig hebt, moet je ofwel het werk aan de clientzijde doen , ofwel een gedenormaliseerde tweede tabel maken die de join-resultaten voor je weergeeft.