AladdinDB ein neuartiges NoSQL Datenbanksystem
Magische Variablen
 
Ein von mir entwickelter Ansatz in der objektorientierten Programmierung macht die Daten-Modellierung mit AladdinDB wesentlich einfacher und übersichtlicher .
 
Ich spreche hier von sog. "Var<..>" Objekten mit generischem Inhalt.
 
Solche Objekte kapseln und händeln den Zugriff auf Ihren Inhalt durch eigene "getter" und "setter" Methoden.  
 
Klassenattribute von Datenmodellen benötigen somit keine "getter" und "setter" mehr.
 
Vor allem bieten "Var<..>" Objekte zusätzliche Methoden für funktionalen Zugriff auf Ihre Inhalte durch Lambda Ausdrücke und akzeptieren auch "Var<..>" Objekte für das setzten der eigenen Inhalte.
 
Durch diese Technik konnte ich in AladdinDB einige Automatisierungen wesentlich eleganter lösen.  
Freier und spielerischer Umgang mit Daten
 
AladdinDB ist ein völlig neuartiges, rein objektorientiertes Datenbanksystem für Java Anwendungen .
 
Mit der Gewissheit, dass AladdinDB zu einem der Besten objektorientierten Datenbanksysteme für Java gehören wird, verbringe ich meine Tage und Nächte ununterbrochen und unaufhaltsam damit, es ständig weiter zu entwickeln.
 
Bei AladdinDB geht es mir nicht ausschließlich um Zugriffszeiten und Sicherheit, sondern darüber hinaus, spielerisch einfach und frei mit Daten herumjonglieren zu können.
 
Ich hoffe, dass das Programmieren von Datenbankanwendungen mit AladdinDB viel mehr Spaß machen wird.  
Dreidimensionale Datenstrukturen
 
Äquivalent zu Datensätzen in klassisch relationalen Datenbanksystemen , bilden sogenannte "Units" in AladdinDB die kleinsten, voneinander getrennt gespeicherten Dateneinheiten .
 
Im Gegensatz zu "Datensätzen" können "Units" dreidimensionale Datenstrukturen abbilden.
 
Solche Strukturen werden in AladdinDB , rein objektorient durch Datenmodell Klassen beschrieben und als XML Dokumente gespeichert.  
So frei wie ein Vogel
 
"Units" derselben Daten-Modell-Typen haben ihren Ursprung in entsprechenden "Stores" .
 
"Stores" sind voneinander völlig unabhängige Speicheihereinheiten und können sich verteilt auf beliebigen Speichermedien und Orten zur selben Zeit befinden.
 
In "embedded" Systemen kann man auf "Stores" ganz einfach über "Store" Objekte zugreifen.
 
Dabei ist jedes "Store" Objekt sein eigenes Mikro-Datenbanksystem .  
Genie und die Wunderlampe
 
Für Remotezugriffe bekommt jedes "Store" Objekt seine Anweisungen direkt von einem eigenen "Genie" Objekt .
 
Jedes "Genie" Objekt ist wiederum für sich ein eigener Mikro-Datenbank-Server und kann völlig frei und verteilt eingesetzt werden.
 
Auf dem Client dagegen ist jeweils ein "MagicLamp" Objekt das Gegenstück zu jedem "Genie" .
 
Mit anderen Worten, jeder "Genie" bekommt seine Anweisungen direkt über eine Wunderlampe ;-)  
Embedded? Verteilt? oder lieber beides?
 
Somit ist AladdinDB sogar für den Einsatz als "embedded" System mit gleichzeitigen Remotezugriffen auf verteilte Systeme als eine hybride Lösung hervorragend geeignet.
 
Der Entwickler wird den Unterschied kaum merken, da er sich in der gesamten Entwicklungszeit in seinem gewohnten objektorientierten Java Umfeld bewegt.
Spielerische Suche
 
In AladdinDB , nutzen "Search" Prozesse sehr leicht zu händelnde, vom Entwickler übergebene "Finder" Objekte .
 
Für jede zu durchsuchende Eigenschaft kann eine eigene "Finder" Klasse erstellt werden.
 
"LogicalFinder" ermöglichen ineinander verschachtelte logische Verknüpfungen von "Finder" Objekten .
 
Für das gleichzeitige Sortieren der Ergebnismenge, existieren nach demselben Prinzip funktionierende "Sorter" Objekte.
 
Komplexe Abfragen lassen sich dadurch sehr einfach , übersichtlich und elegant realisieren.
Aladdins Navigations-System
 
Search Prozesse bekommen einen "blockSize" Wert und liefern als Ergebnis ein "BlockNaviResp" Objekt zurück.
 
Dieses Objekt enthält den ersten Unit-Id-Block mit der in "blockSize" festgelegten maximalen Anzahl an Unit-Id's.  
 
Desweiteren enthält es die Informationen ob weitere vorangehende und/oder nachfolgende Unit-Id-Blöcke existieren.
 
Gekapselt in ein sog. BlockNavi Objekt , kann jetz über die gefundenen Unit-id-Blöcke , ganz einfach vor und zurück navigiert werden.