BaseX (NoSQL)

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"]