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.
|