Direkt zum Inhalt

Datenspeichertools: Persistente und nicht persistente Objekte

Datenspeicher

Wie definiere ich Daten in Mendix?

In Mendixdefinieren Sie Ihren Datenbedarf mithilfe von Domänenmodellen. Jedes Modul in Ihrem App-Projekt kann sein eigenes Domänenmodell haben, das aus einer oder mehreren Entitäten besteht. Diese Entitäten können persistent oder nicht persistent sein und sie enthalten ein oder mehrere Objekte.

Persistente Objekte werden in einer Datenbank gespeichert und Mendix erstellt automatisch Tabellen zum Speichern Ihrer Entitäten in der Datenbank. Für jedes Objekt wird ein Datensatz in die Tabelle eingefügt. Nicht persistente Entitäten bleiben nur für die Dauer einer Benutzersitzung im Speicher.

Sie können für jede Entität die Attribute und den Datentyp definieren, den die Attribute enthalten sollen. Sie können auch Sicherheitsregeln definieren, die festlegen, wer welche Daten sehen kann, und Validierungsregeln. Eine Validierungsregel gibt an, welche Werte für ein Attribut zulässig sind.

Wenn Sie Ihre Anwendung starten oder erneut bereitstellen, Mendix erstellt automatisch Datenbanktabellen zum Speichern Ihrer Daten. Bei der erneuten Bereitstellung werden alle Tabellen Ihrer App automatisch nach Bedarf geändert und die Daten in die neuen Tabellenstrukturen migriert.

Was ist der Unterschied zwischen persistenten und nicht persistenten Objekten?

Persistente Objekte werden in einer Datenbank gespeichert, sodass Sie Ihre Daten sitzungs- und benutzerübergreifend verwenden können. Da nicht persistente Entitäten jedoch nur für die Dauer einer Benutzersitzung im Speicher verbleiben, können solche Entitäten nicht zwischen Benutzern oder über Benutzersitzungen hinweg gemeinsam genutzt werden.

Nicht persistente Entitäten werden hauptsächlich für Berechnungen verwendet, bei denen Sie nicht alle Zwischenergebnisse speichern möchten, oder zum vorübergehenden Speichern von Daten, die über verschiedene Integrationsmittel aus externen Systemen abgerufen wurden.

Wie funktioniert Object-Relational Mapping in Mendix?

Mendix Object-Relational Mapping (ORM) behandelt alle Aspekte Ihres Datenbankmanagements, von Ihren modellierten Datenanforderungen bis hin zur technischen Speicherung und Abfrage mit den gängigsten relationalen Datenbanksystemen. Das Hauptziel von Mendix ORM soll es den Benutzern ersparen, sich über technische Datenbankaspekte Gedanken zu machen, etwa über das Erstellen und Ändern von Tabellen oder den Zugriff auf und die Aktualisierung von Daten.

Datendefinitionssprache

Mendix ORM beginnt bei der Bereitstellung Ihrer Anwendung mit einer DDL-Phase (Data Definition Language). Diese erstellt automatisch die richtigen Datenbankstrukturen auf Grundlage Ihrer geschäftlichen Datenanforderungen, während Sie diese in Ihren Domänenmodellen modellieren.

Die erstellte Datenbankstruktur umfasst Tabellen, Datentypen, Assoziationen, relevante Einschränkungen und sogar Vererbung.

Beachten Sie, dass die zugrunde liegenden Datenbanktabellen automatisch entsprechend aktualisiert werden, wenn Sie Änderungen an Ihren Anwendungen vornehmen. Ihre Daten werden ebenfalls migriert.

Durch die Übernahme der Tabellenerstellung und der Datenmigration Mendix Platform hilft Ihnen, Apps schnell bereitzustellen. Sie müssen das Datenbankschema nicht selbst verwalten. Ebenso wichtig ist, dass für die meisten Migrationen (z. B. Umbenennung von Attributen oder Typänderungen) Mendix automatisiert auch die Datenmigration.

In einer privaten Cloud-Umgebung oder bei der Bereitstellung vor Ort haben Sie die Möglichkeit, die Datenbank selbst zu verwalten. In diesem Fall können Sie das von Mendix als Ausgangspunkt und geben Sie es dann an Ihren Datenbankadministrator weiter, damit dieser sicherstellen kann, dass die Datenbank wie erforderlich erstellt wird.

Die Datenmigrationsphase kann auch die Migration von Daten von einem Mendix App zu einer anderen über verschiedene Datenbankanbieter hinweg. Dies kann nützlich sein, wenn Sie von On-Premises in die Cloud oder von einer Cloud zu einer anderen Cloud migrieren möchten. Weitere Einzelheiten finden Sie unter So migrieren Sie Ihre Mendix Database in England, Mendix Studio Pro Anleitungen.

Datenabruf

Mendix bietet mehrere Möglichkeiten, anzugeben, welche Daten Sie abrufen möchten:

  • Mendix Studio Pro bietet visuelle Möglichkeiten zur Spezifizierung Ihrer Abfrageanforderungen
  • Um bestimmte Objekte oder eine Gruppe verwandter Objekte abzurufen, können Sie XPath-Ausdrücke verwenden
  • Für Berichtszwecke (bei denen die Aggregation und Zusammenführung mehrerer Entitäten zu einem einzigen Ergebnissatz wichtig ist), Mendix bietet OQL-Abfragen

Im Hintergrund werden alle Abrufe zuerst in XPath, dann in OQL und schließlich in datenbankspezifische SQL-Anweisungen übersetzt.

Beim Abrufen von Daten Mendix ORM führt die folgenden Schritte für Sie aus:

  1. Übersetzt Ihre XPath-Abfrage in eine OQL-Abfrage.
  2. Beinhaltet zusätzliche Abrufanforderungen (beispielsweise zu zugehörigen Objekten, die auch von Ihren Seiten benötigt werden).
  3. Wendet die für Ihre Entitäten definierten Sicherheitsregeln an.
  4. Ordnet Ihre Entitäten technischen Datenbanktabellen zu.
  5. Ordnet Ihre Entitätsattribute Tabellenspalten zu.
  6. Optimiert die erforderlichen OQL-Anweisungen.
  7. Übersetzt die OQL-Anweisung in datenbankspezifische SQL-Anweisungen.
  8. Ruft die Datensätze aus der Datenbank ab.

Wie Sie sehen können, Mendix ORM wendet eine Reihe von Leistungsoptimierungen an, die alles andere als trivial sind. Aufgrund des Anwendungsmodells Mendix Die Plattform kann feststellen, dass es effizienter ist, zugehörige Datenbankeinträge in einem Durchgang abzufragen.

Wie kann ich eine gespeicherte Prozedur verwenden mit Mendix?

Verwenden einer gespeicherten Prozedur in Mendix hängt davon ab, wo sich Ihre Daten befinden.

Wenn Sie eine gespeicherte Prozedur in der Datenbank Ihres Mendix können Sie mit dem Mendix Java-API. Weitere Informationen finden Sie unter So verwenden Sie die Java-API in England, Mendix Studio Pro Anleitungen. Und für Details zur Ausführung von SQL-Anweisungen auf Ihrem Mendix app-Datenbank mit JDBC, siehe DataStorage ausführen mit Verbindung.

Wenn Sie eine externe Datenbank verwenden, können Sie den Datenbank-Connector Add-on erhältlich im Mendix Marktplatz.

Der Aufruf gespeicherter Prozeduren ist vor allem dann relevant, wenn Sie auf einer vorhandenen Legacy-Datenbank aufbauen. In diesem Bereich gibt es viele relationale Datenbankverwaltungssysteme (RDBMSs) von Oracle. Die Datenbank-Connector erhältlich in der Mendix Marketplace bietet Unterstützung für Funktionen, die häufig in älteren Oracle-Datenbanken zu finden sind, z. B. mit gespeicherten PL/SQL-Prozeduren und -Paketen erstellte Tabellen-APIs, Ref-Cursor und benutzerdefinierte Typen.

Wie schneidet Mendix Transaktionsmanagement handhaben?

Jede Anfrage an die Mendix Runtime startet automatisch eine neue Transaktion. Nach erfolgreichem Abschluss der Anfrage wird die Transaktion mit allen zugehörigen Daten festgeschrieben. Im Fehlerfall werden standardmäßig alle Datenänderungen zurückgesetzt. Sie haben die Möglichkeit, eine benutzerdefinierte Fehlerbehandlungslogik bereitzustellen, um dieses Standardverhalten zu ändern.

Im folgenden Mikrofluss wird ein benutzerdefinierter Fehlerhandler definiert. Wenn der Veränderung Wenn die Aktivität fehlschlägt, werden alle an der Datenbank vorgenommenen Änderungen zurückgesetzt. Der Fehlerhandler definiert, was Sie mit der Transaktion tun möchten: Sie können alles rückgängig machen, was im Mikrofluss passiert ist, oder Sie können das Problem kompensieren und fortfahren. In diesem Beispiel wird eine Protokollnachricht generiert, wonach der Mikrofluss mit einem Fehler endet. Der aufrufende Mikrofluss kann dann entscheiden, wie er damit umgeht.

Was Datenbanken tun Mendix Unterstützung?

A Mendix Die Anwendung kann standardmäßig auf einer Reihe verschiedener Datenbankserver bereitgestellt werden. Solange Sie keinen datenbankspezifischen Code einbinden, können Sie jederzeit den Datenbankanbieter wechseln.

Der Mendix Die Plattform unterstützt die Datenbankserver, die in der Datenbanken Abschnitt Systemanforderungen.

Wählen Sie Ihre Sprache