HeadlinesBriefing favicon HeadlinesBriefing.com

Langage Prela : Alternative SQL en 11 lignes

Hacker News •
×

Prela est un nouveau langage de requête qui est développé à l'UCLA Re PL. Le langage est assez différent de SQL, mais ses idées clés sont très simples. Dans ce bref tutoriel, nous construisons une version jouet de Prela en Python pour comprendre ses principes fondamentaux.

La requête ci-dessous trouve chaque film produit par une entreprise américaine et qui a un nom de personnage dans son titre, en affichant le titre ainsi que l'alias pour chaque membre du casting. Notez que l'équivalent SQL s'étend sur plus de 20 lignes.

La première chose particulière de Prela est qu'il n'y a que des relations binaires, c'est-à-dire des tables à deux colonnes. Cela peut sembler très limitant au premier abord, mais il est facile de "binariser" une table large avec plusieurs colonnes.

La motivation de la concentration sur les relations binaires est qu'elles généralisent les fonctions. Les fonctions sont puissantes car elles se composent, ce qui en fait les briques de base des programmes. Une fonction associe chaque entrée à une sortie unique, alors qu'une relation peut associer une entrée à plusieurs sorties différentes. En un sens, une relation peut être vue comme une fonction non déterministe.

La puissance de la composition est vraiment visible lorsque nous enchaînons plusieurs appels .select. En effet, le fait de rejoindre via une clé étrangère nécessite presque toujours de "résoudre" un ID en une ligne, Prela insère automatiquement cette étape pour que l'on puisse écrire ce qui suit, qui ne se lit que comme "le pays de la société d'un film" !

Entités clés : Lieux : UCLA Re PL