BaseX ist eine lizenzfreie XML-Datenbank, die in die Kategorie der NoSQL-Datenbank fällt. BaseX basiert auf dem XML-Standard, der Zugriff auf die Daten basiert auf XQuery. XQuery ist eine voll typisierte funktionale Programmiersprache.
BaseX wird seit dem Jahr 2005 an der Universität Konstanz in Java entwickelt und implementiert den vollständigen Standard XQuery 3.1. BaseX ist plattformunabhängig und steht unter der freien BSD-Lizenz. BaseX hat ein graphisches User Interface um XQuery-Skripte zu entwickeln, aber auch um XML-Daten zu visualisieren.
Erstellen einer Datenbank
db:create("Kunden", "./MeineKunden.xml")
Zugriff auf einen Datensatz
doc("Kunden")/KundenBestand/Kunde[@Nr="12345"]
Anzahl von Datensätzen mit einer Klausel
doc("Kunden")/KundenBestand/Kunde[Name/Zuname="Müller"] => count()
Datensätze in die Datenbank schreiben
let $kunde := <Kunde Nr="12345"> <Name> <Zuname>Mustermann</Zuname> <Vorname>Gabi</Vorname> </Name> <GebDatum>1970-01-01</GebDatum> <Adressen> <WohnAnschrift> <Strasse>Hauptstr.</Strasse> <HausNr>1</HausNr> <PLZ>12345</PLZ> <Ort>Musterstadt</Ort> </WohnAnschrift> </Adressen> </Kunde> return insert node $kunde into doc("Kunden")/KundenBestand
Änderungen an einem Datensatz:
replace value of node db:attribute("Kunden", "12345", "Nr") with "54321"
Löschen eines Datensatzes
delete node doc("Kunden")/KundenBestand/Kunde[@Nr="12345"]