Oracle

Oracle n'est pas la base de données la plus populaire, mais c'est la plus connue. Bien que l'on puisse affirmer que le plus populaire. Voir comment compter . Si vous regardez juste le nombre d'entreprises, alors MySQL est la base de données la plus populaire : c'est plutôt bon et complètement gratuit :)

Mais il peut aussi être considéré différemment. S'il y a une entreprise avec un million de clients qui utilise Oracle et 5 entreprises avec une centaine de clients qui utilisent MySQL, alors Oracle a un million de clients et MySQL seulement 500 personnes.

En général, si vous prenez de grandes entreprises qui ont de l'argent et regardez quel SGBD elles choisissent, alors environ un tiers de toutes les entreprises dans le monde sont assis sur Oracle. Quelque chose comme ça.

En tant que programmeur, vous êtes plus susceptible de travailler à l'avenir sur Oracle que sur MySQL. Il existe une excellente vidéo sur Internet qui montre comment la popularité du SGBD a changé au cours des 20 dernières années.

MySQL

Le deuxième plus populaire parmi tous les SGBD est MySQL. Et c'est le premier en popularité parmi tous les SGBD gratuits. Vous comprenez maintenant pourquoi nous apprenons SQL à partir de son exemple. Le battage médiatique est le battage médiatique et les entreprises sont assez conservatrices dans le choix de l'infrastructure.

En principe, nous avons déjà parlé de MySQL. Une fois ils ont été rachetés par Sun , puis par Oracle . Ce qui, eh bien, il est très difficile d'appeler une société de bonté.

Ce sont eux qui, après l'acquisition de Sun, essaient constamment de rendre Java payant.

Oui, Sun possédait à la fois Java et MySQL avant qu'Oracle ne les achète.

Ce fait et la réputation d'Oracle ont un peu effrayé les développeurs de MySQL, qui ont décidé de bifurquer le projet MySQL et de l'appeler MariaDB.

MariaDB est en fait un clone de MySQL avec quelques bizarreries d'implémentation qui vous permettent de contourner les nuances des brevets et des licences.

Cependant, Oracle n'est pas non plus dupe. Pour empêcher les clients et les développeurs de fuir vers MariaDB, Oracle continue de financer le développement et le développement de MySQL, qui reste gratuit.

Et pour s'asseoir sur deux chaises, un MySQL Enterprise payant a été lancé pour les entreprises clientes , qui n'est pas différent de MySQL Community Edition , mais dont les licences sont mieux adaptées aux entreprises.

PostgreSQLName

Un autre SGBD intéressant est PostgreSQL (prononcé "postgres cue").

Il s'agit d'un autre SGBD gratuit qui a gagné en popularité très rapidement ces dernières années. Bien qu'il soit encore loin de MySQL.

PostgreSQL est principalement axé sur le travail distribué. Ses atouts sont :

  • Mécanismes de transaction et de réplication performants et fiables
  • Système extensible de langages de programmation intégrés : PL SQL, PL JS, PL Python, …
  • Héritage de table
  • Capacité à indexer des objets géométriques (notamment géographiques)
  • Prise en charge intégrée des données semi-structurées au format JSON avec possibilité de les indexer
  • Extensibilité (la possibilité de créer de nouveaux types de données, types d'index, langages de programmation, modules d'extension, connecter toutes les sources de données externes)

Savez-vous pourquoi ça s'appelle ça ? Voici comment c'était…

Il y a environ 50 ans, au début des années 70, l'Université de Berkeley a commencé à développer son propre SGBD relationnel et l'a appelé Ingres .

Au début des années 80, le professeur Michael Stonebreaker quitte le projet et décide d'écrire son propre SGBD avec blackjack et courtisanes. Lui et ses étudiants ont commencé à écrire leur propre SGBD, qu'ils ont simplement appelé Post Ingres , abrégé en Postgres dans le futur .

Et comme le nom Postgres ne voulait rien dire à personne, il a été décidé d'y ajouter le suffixe SQL. C'est ainsi que PostgreSQL s'est avéré, qui a immédiatement perdu le double S, et a commencé à être écrit en tant que PostgreSQL. Mais vous dites le nom, vous devez le lire comme PostgresQL.

NoSQL

Si vous êtes intéressé par les bases de données, vous avez certainement entendu parler des bases de données NoSQL . Je m'empresse de vous contrarier : NoSQL est purement un nom marketing , et SQL est là. Il est juste tronqué.

À quoi cela ressemble-t-il? Imaginez une belle page Web écrite en HTML, CSS et JavaScript... qui a été ouverte dans un navigateur de 1995. Il fonctionne avec 10 % de CSS et ne prend pas du tout en charge JavaScript. Et ce nouveau standard simplifié s'appelle… NoHtml .

Par exemple, les JOIN entre les tables peuvent ne pas être pris en charge dans NoSQL, et vous devez soit l'émuler au niveau du code Java dans le programme, soit stocker toutes les données des tables liées dans une immense table.

Et si dans le cas de NoHtml, nous semblons avoir reculé il y a 20 ans, alors dans le cas de NoSQL, le retour en arrière se produit quelque part autour de 40 ans.

Prenez, par exemple, la base de données Cassandra NoSQL que Facebook utilise pour stocker les données de milliards d'utilisateurs. En fait, ils l'ont développé puis l'ont publié en tant que projet OpenSource.

Commençons par le plus intéressant - tout le code du SGBD est écrit en Java . Le code C++ tournerait probablement plus vite, mais il y aurait plus de bogues. Et le code Java est plus facile à maintenir et à développer.

Le format général des requêtes au SGBD Casandra semble très familier :

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

Comme vous pouvez le voir, SQL est là. Savez-vous ce qui manque ici ? REJOIGNEZ ! Vous ne pouvez sélectionner les données que d'un seul tableau :)

Voici une citation de la documentation officielle :

Vous ne pouvez pas effectuer de jointures dans Cassandra . Si vous avez conçu un modèle de données et constatez que vous avez besoin de quelque chose comme une jointure, vous devrez soit effectuer le travail côté client , soit créer une deuxième table dénormalisée qui représente les résultats de la jointure pour vous.