HeadlinesBriefing favicon HeadlinesBriefing.com

Язык запросов Prela: альтернатива SQL в 11 строках

Hacker News •
×

Prela — это новый язык запросов, который разрабатывается в UCLA Re PL. Язык сильно отличается от SQL, но его ключевые идеи очень просты. В этом коротком учебном пособии мы создаем игрушечную версию Prela на Python, чтобы понять её фундаментальные принципы.

Запрос ниже находит каждый фильм, произведённый американской компанией, и имеющий имя персонажа в названии, выводя название вместе с псевдонимом для каждого члена состава. Обратите внимание, что эквивалентный запрос на SQL занимает более 20 строк.

Первая особенность Prela в том, что используются только бинарные отношения, то есть таблицы с двумя столбцами. Это может показаться очень ограничительным вначале, но легко "бинаризовать" широкую таблицу с несколькими столбцами.

Мотивация сосредоточиться на бинарных отношениях в том, что они обобщают функции. Функции мощны потому, что они компонуются, что делает их строительными блоками программ. Функция сопоставляет каждый ввод с уникальным выводом, тогда как отношение может сопоставить ввод с несколькими разными выводами. В определённом смысле, отношение можно рассматривать как недетерминированную функцию.

Мощь составления действительно проявляется, когда мы соединяем несколько вызовов .select. Поскольку объединение через внешний ключ почти всегда требует "разрешить" ID в строку, Prela автоматически вставляет этот шаг, чтобы можно было написать следующее, что читается как "страна компании фильма"!