Die Google GmbH hat eine neue deklarative Sprache fĂŒr logische Programmierung, Logica, vorgestellt, die fĂŒr die Datenmanipulation konzipiert wurde und Programme in SQL ĂŒbersetzt. Die neue Sprache richtet sich an diejenigen, die die Syntax der logischen Programmierung beim Schreiben von Datenbankabfragen verwenden möchten. Derzeit kann der resultierende SQL-Code in der Google BigQuery-Datenbank oder in den experimentell unterstĂŒtzten Datenbankmanagementsystemen PostgreSQL und SQLite ausgefĂŒhrt werden. In Zukunft ist eine Erweiterung der unterstĂŒtzten SQL-Dialekte geplant. Der Projektcode ist in Python geschrieben und unter der Lizenz Apache 2.0 veröffentlicht.
Logica setzt die Entwicklung der von Google entworfenen Datensprache Yedalog fort und bietet ein Abstraktionsniveau, das im standardmĂ€Ăigen SQL nicht verfĂŒgbar ist. Abfragen in Logica werden in Form eines Satzes logischer Aussagen programmiert. Es werden Module, Importoperationen und die Möglichkeit unterstĂŒtzt, Logica aus der interaktiven Jupyter Notebook-Shell zu verwenden. Zum Beispiel kann man zur Erstellung einer Zusammenfassung von Personen, die im Jahr 2020 am hĂ€ufigsten in den Nachrichten erwĂ€hnt wurden, das folgende Logica-Programm zur Abfrage der GDELT-Datenbank verwenden: @OrderBy(Mentions, "mentions desc"); @Limit(Mentions, 10); Mentions(person:, mentions? += 1) distinct :- gdelt-bq.gdeltv2.gkg(persons:, date:), Substr(ToString(date), 0, 4) == "2020", the_persons == Split(persons, ";"), person in the_persons; $ logica mentions.l run Mentions +âââââ-+âââââ-+ | person | mentions_count | +âââââ-+âââââ-+ | donald trump | 3077130 | | los angeles | 1078412 | | joe biden | 1054827 | | george floyd | 872919 | | boris johnson | 674786 | | barack obama | 438181 | | vladimir putin | 410587 | | bernie sanders | 387383 | | andrew cuomo | 345462 | | las vegas | 325487 | +âââââ-+âââââ-+
Das Schreiben komplexer SQL-Abfragen fĂŒhrt zu umfangreichen mehrzeiligen Ketten, die schwer verstĂ€ndlich sind und die Wiederverwendung von Teilen der Abfrage behindern sowie die Wartung erschweren. FĂŒr typische wiederkehrende Berechnungen in SQL können Sichten und Funktionen verwendet werden, jedoch unterstĂŒtzen diese keine Importoperationen und bieten nicht die FlexibilitĂ€t, die hohen Programmiersprachen eigen ist (zum Beispiel kann eine Funktion nicht in eine andere Funktion ĂŒbergeben werden). Logica ermöglicht es, Programme aus kleinen, verstĂ€ndlichen und wiederverwendbaren logischen Blöcken zusammenzustellen, die getestet, bestimmten Namen zugeordnet und in Paketen gruppiert werden können, die in anderen Projekten verwendet werden können.
Quelle: opennet.ru
