Domino 9 und frühere Versionen > ND6: Entwicklung

Datenbankmodell Lotus Notes?

<< < (2/4) > >>

Gogun_Beokz:
Halb 9 :-) Danke!

Manfred.Gipp:
Genau das ist es:
Objektorientiert.

Jedes Dokument wird als Objekt abgespeichert und kann entsprechend referenziert werden.
Ob nun hierarchisch oder anders, das hängt dann von der Programmierung ab.

Das Stichwort "Objektorientiert" trifft das Datenbankmodell von Notes ganz genau.

Gogun_Beokz:
Ja aber sobald das Dokument gespeichert ist, verliert es den Bezug zum Objekt! Jedes Dokument ist ja vergleichbar mit einer Tabelle mit einer Zeile... die Dokumente untereinander haben keine Verknüpfung wenn man Sie nicht manuell über "$Ref" oder ähnliche Variablen verknüpft.

flaite:
Notes ist eine hierarchische Datenbank ähnlich wie IMS oder XML-Datenbanken.
Notes kennt keine Vererbung für Dokumente.
Notes Dokumente sind auch nicht ineinander verschachtelt, wie das in Objektdatenbanken der Fall ist.
Dokumente sind eben keine Objekte.
In Objektdatenbank ist eben genau nicht unbedingt jedes Objekt von aussen direkt referenzierbar. Wenn es keine eigene Identität hat nämlich nicht (Kappselung).
Beziehungen werden durch spezielle Felder (z.B. $Ref) hergestellt.
Methoden sind nicht eindeutig an das Dokument, sondern über das form Feld gebunden. Das heisst eigentlich sind QuerySave und so was keine Methoden im OO-Sinne.
Intern werden Notes-Dokumente in einer Baumstruktur gehalten.

Datenbankmodelle existieren nebeneinander. Für manche Aufgaben ist das eine besser, für andere das andere.
Ich würde das Datenbankmodell von Lotus Notes als hierarchisch, weil auf Baum-Datenstrukturen basiert definieren. Dabei sind durch verschiedene Query-Methoden alle Dokumente eindeutig referenzierbar. Das ist übrigens mit XQuery und XPath auch für XML-Datenbanken möglich und die gelten auch als hierarchisch.

 

flaite:
Ich halte das für eine ziemlich "offene" Frage. Also keine "geschlossene" Frage, bei der eine eindeutige Definition als Antwort erwartet wird.
Ich würd mir aus den recht brauchbaren Angaben aus Wikipedia Definitionen für die entsprechenden Datenbanktypen zurechtlegen die erst bei der Prüfung darlegen und dann darauf eine Argumentation aufbauen.
Das Datenbankmodell von Lotus Notes ist so wenig objekt-orientiert wie relational. Wie vieles haben Objekt-Orientierte Datenbanken in der Small-Talk Welt ihren Ursprung genommen und da soll das sehr gut funktioniert haben. Ansonsten konnten sie sich aber kaum gegen Relationale Datenbanken durchsetzen. Zur Zeit erzeugt db4o ein bischen Interesse, aber eher in Randbereichen und die db4o marketeers behaupten auch gar nicht wie die OODBMS Marketeers in den 90ern, dass sie einmal RDBMS voll ablösen werden.
In OODBMS kannst du Objektgraphen oder Objekte aus OO-Sprachen wie C++, Java, Vb.NET, Smalltalk, Ruby etc. direkt reinspeichern. Inklusive der Methoden und Vererbungsbeziehungen. Notes Dokumente haben weder Methoden noch Vererbungsbeziehungen.
Interessanterweise findet sich im neuesten DB2-Material auch deutlich weniger ein Hinweis auf objektrelational als in der Vorgängerversion. In der Marketingwert hat eine deutliche Entwertung des Begriffs Objekt-Orientiertes Datenbank  Management System stattgefunden.

Ein bischen am Rande, aber ich finds schon ziemlich interessant, was mit dem mengen-basierten Modell von RDBMS möglich ist. Hier hat user ein paar stockposition und Bargeld (money). Man kann nun per query sehr schnell den Wert dieser Stockpositions und seinen Bargeldbestand zusammenaddieren.

--- Code: ---SELECT "user".id as userId, SUM(stock.price * stockposition.amount) + SUM(DISTINCT "user".money) as valueStockpositions from stock, "user", stockposition where stockposition.iduser="user".id and stock.id=stockposition.idStock group by userId

--- Ende Code ---

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln