Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 1
Domain Driven Design
and NoSQL
Interactive Cologne
2014-04-25
ma...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 2
martin
 Mathematik studiert und
algebraische Strukturen mit
dem...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 3
Project
YAWS
(Yet Another Web Shop)
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 4
Willkommen zum Spezifikationsworkshop
 Produktmanager
erzählen ...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 5
und also entwickeln die Entwickler
 Objekt Orientiert
 3-tier ...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 6
doch bei der Fertigstellung
Aber natürlich soll
das Ranking bei
...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 7
was die Entwickler von der Fachseite halten
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 8
tatsächlich handelt es sich aber um ein
systemisches Problem
 F...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 9
Agile Entwicklung hilft u.a.
Funktionalität methodisch zu erfass...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 10
Domain
Driven
Design
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 11
wurde von Eric Evans beschrieben
 Herangehensweise zur
Modelli...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 12
Ubiquitäre Sprache
 einheitliche Sprache
 wird von allen Bete...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 13
Entitäten
 Haben eine Identität
 zwei Entitäten sind selbst
d...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 14
Wertobjekte
 haben keine eigenständige
Identität
 sind nur üb...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 15
Aggregate
 Zusammenfassungen von
Entitäten und Wertobjekten zu...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 16
Assoziationen
 Beziehungen zwischen
Entitäten oder Wertobjekte...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 17
Fabriken
 Erzeugen komplexe Entitäten,
Wertobjekte und insbeso...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 18
Repository
 Speichern von Entitäten und
Aggregaten
 Persisten...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 19
Relationale
Datenbanken
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 20
in relationalen Datenbanken
gibt es (ganz besondere) Relationen...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 21
gibt es Normalformen
 Marc Rettig
 Rules of Data Normalizatio...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 22
was Normalform u.a. bedeutet
 unsere schönen Objekte werden
in...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 23
und also gibt es Joins
 Anleitungen (Joins) um die
Objekte bei...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 24
und also gibt es Transaktionen
 Vorfahrtsregeln (Transactions)...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 25
kurz: Datenbankentwickler
sprechen eine eigene ganz Sprache
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 26
NoSQL
Datenbanken
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 27
Inzwischen gibt es andere nicht-relationale
Datenbanken: NoSQL
...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 28
NoSQL Datenbanken werden häufig in vier
Klassen (Models) einget...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 29
Daneben gibt es inzwischen einige sogenannte
Multi-Model Datenb...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 30
Key-Value Stores sind die einfachste Datenbank
Key ValueKey Val...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 31
Dokumentendatenbanken
 Dokumente sind Mengen von
Attribut/Wert...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 32
Graphendatenbanken
 Knoten (Vertices)
 meistens Objekte (wie ...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 33
Korrespondenz
zwischen
Domain Driven Design
und
NoSQL Datenbank...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 34
Entitäten
 Entität
 Identität
 komplexe Struktur
 Unterschi...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 35
Wertobjekte
 Wertobjekt
 Unveränderbarkeit
 Dokument
 oder
...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 36
Aggregate
 Aggregat
 Zentraler Zugriff
 Dokument mit direkte...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 37
Assoziationen
 Assoziation
 Typ der Assoziation
 weitere Eig...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 38
Repositories
 Repository
 Suchen in Repositories
 Collection...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 39
Fazit
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 40
DDD und Multi-Model-NoSQL-DBs gehören
zusammen
 Für den Erfolg...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 41
triAGENS
Die triAGENS GmbH ist ein Dienstleister im
Bereich kom...
Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 42
Kontext Projekt oder Bereich
Titel Domain Driven Design und NoS...
Nächste SlideShare
Wird geladen in …5
×

Domain Driven Design und Nosql

2.770 Aufrufe

Veröffentlicht am

Domain Driven Design fordert eine gemeinsame Sprache ALLER Beteiligten. Die Datenbank-Verantwortlichen stehen häufig aussen vor, da sie in Relationen und Tupeln denken und somit weit weg sind von den Konstrukten von DDD. Dieser Vortrag zeigt, warum und wie nicht-relationale Datenbanken den Gap schliessen können.

Veröffentlicht in: Internet
0 Kommentare
2 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.770
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
69
Aktionen
Geteilt
0
Downloads
11
Kommentare
0
Gefällt mir
2
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Domain Driven Design und Nosql

  1. 1. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 1 Domain Driven Design and NoSQL Interactive Cologne 2014-04-25 martin Schönert (triAGENS) TRI-MS-1405-003-V100-20140525
  2. 2. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 2 martin  Mathematik studiert und algebraische Strukturen mit dem Computer untersucht  seither in vielen Rollen in IT  Programmierer  Projektleiter  Produktverantwortlicher  etc.  inzwischen vor allem Architekt  beratend für andere Unternehmen  für die ArangoDB Datenbank
  3. 3. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 3 Project YAWS (Yet Another Web Shop)
  4. 4. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 4 Willkommen zum Spezifikationsworkshop  Produktmanager erzählen was sie von dem Shop erwarten  Fähigkeit im Katalog zu browser  leistungsfähige Suche  gute Produkte weit oben  eher informell  alle Beteiligten sind guter Dinge  keine Kontroversen The Expert, 2014, Lauris Beinerts
  5. 5. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 5 und also entwickeln die Entwickler  Objekt Orientiert  3-tier Architektur  Model View Controller  Modernes Framework  Responsive Design  etc.
  6. 6. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 6 doch bei der Fertigstellung Aber natürlich soll das Ranking bei der Suche auch auf der Marge basieren! Wieso gibt es keine Empfehlungen? Der Checkout ist so unbenutzbar! Aber das ist doch offensichtlich! Die Entwickler sind total unfähig!
  7. 7. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 7 was die Entwickler von der Fachseite halten
  8. 8. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 8 tatsächlich handelt es sich aber um ein systemisches Problem  Funktionalität wird nicht methodisch erfasst  „offensichtliche“ Funktionen fehlen  keine gemeinsame Sprache  Missverständnisse über die Funktionen
  9. 9. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 9 Agile Entwicklung hilft u.a. Funktionalität methodisch zu erfassen  Kontinuierliche Interaktion  Product Backlog  Stories / Epics  etc.
  10. 10. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 10 Domain Driven Design
  11. 11. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 11 wurde von Eric Evans beschrieben  Herangehensweise zur Modellierung komplexer businessorientierter Software  stellt die Fachlichkeit in den Mittelpunkt  dazu wird die Anwendungs- domäne modelliert (daher Domain Driven Design)
  12. 12. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 12 Ubiquitäre Sprache  einheitliche Sprache  wird von allen Beteiligten verwendet  wird für alle Aspekte verwendet  muss auf der Fachlichkeit basieren
  13. 13. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 13 Entitäten  Haben eine Identität  zwei Entitäten sind selbst dann verschieden wenn sie in allen Attributen gleich sind  Beispiele  Personen  Einkaufskorb  Mutabilität
  14. 14. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 14 Wertobjekte  haben keine eigenständige Identität  sind nur über ihre Attribute definiert  können beliebig kopiert werden  Beispiele:  Produktbeschreibung  Unveränderbar (fachlich)
  15. 15. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 15 Aggregate  Zusammenfassungen von Entitäten und Wertobjekten zu einer transaktionellen Einheit  eine Entität bildet den Zugriff zu dem Aggregat  durch kontrollierten Zugriff werden Invarianten bewahrt Session session-id last-access User name pw-hash e-mail Shopping-Cart Ubiq P.K. Dick Brazil T. Gilliam Rain Dogs T. Waits Aggregate Wishlist Little, Big 25 J. Crowley In Bruges M.McDonagh
  16. 16. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 16 Assoziationen  Beziehungen zwischen Entitäten oder Wertobjekten  können ebenfalls Eigenschaften haben  sind typischerweise unveränderlich knows knows works-for knows send-request invited works-for shares-flat
  17. 17. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 17 Fabriken  Erzeugen komplexe Entitäten, Wertobjekte und insbesondere Aggregate  korrespondieren zu den entsprechenden Patterns  Fabrik  Erbauer  Prototype  Beispiel:  Erzeugung eines Aggregats für einen neuen Benutzers mit (leeren) Einkaufswagen und Wunschliste
  18. 18. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 18 Repository  Speichern von Entitäten und Aggregaten  Persistenz  modelliert die entsprechende Schicht in einer 3-Schichten Architektur  Methoden zur Suche  Beispiel:  Produktkatalog
  19. 19. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 19 Relationale Datenbanken
  20. 20. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 20 in relationalen Datenbanken gibt es (ganz besondere) Relationen keine Relation Relation Foreign Key relationale Algebra
  21. 21. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 21 gibt es Normalformen  Marc Rettig  Rules of Data Normalization  orig. published 1989  (und immer noch nützlich)  (es ist nicht ganz klar wie viele Normalformen es gibt: 1NF, 2NF, 3NF, BCNF, 4NF, 5NF, EKNF, DKNF, 6NF, ...)
  22. 22. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 22 was Normalform u.a. bedeutet  unsere schönen Objekte werden in viele kleine Teile zerlegt und auf viele Tabellen verteilt
  23. 23. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 23 und also gibt es Joins  Anleitungen (Joins) um die Objekte beim Lesen wieder zusammen zu setzen  (Ja - es gibt auch noch aus anderen Gründen Joins)
  24. 24. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 24 und also gibt es Transaktionen  Vorfahrtsregeln (Transactions) damit beim Zusammensetzen keine Teile der Objekte verloren gehen  (Ja – es gibt auch noch aus anderen Gründen Transaktionen)
  25. 25. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 25 kurz: Datenbankentwickler sprechen eine eigene ganz Sprache
  26. 26. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 26 NoSQL Datenbanken
  27. 27. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 27 Inzwischen gibt es andere nicht-relationale Datenbanken: NoSQL  Bedingungen für DBs haben sich geändert:  Funktionelle Anforderungen  viele einfache Operationen  Nicht funktionelle Anf.  Volume  Variety  Velocity  Hardware  RAM is cheap  SSDs
  28. 28. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 28 NoSQL Datenbanken werden häufig in vier Klassen (Models) eingeteilt: Key-Value Stores Document Databases Extended Column Stores Graph Databases
  29. 29. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 29 Daneben gibt es inzwischen einige sogenannte Multi-Model Datenbanken Multi-Model Databases
  30. 30. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 30 Key-Value Stores sind die einfachste Datenbank Key ValueKey Value Key Value2 { name: „paavo“ } Key Value3 { first: „emil“ } Key Value„runners“ { ids: [ 1, 2, 3, 5 ] } Key Value5 { name:„haile“,act:1 } Key Value1 { first: „paul“ } Key Value„last“ 5  Bilden Schlüssel auf Werte ab (wie dict)  Zugriff geht nur über den Schlüssel  Werte sind (für den KV-Store) unstrukturiert  häufig keine Möglichkeit über die Paare zu laufen  falls doch ist keine Reihenfolge definiert  z.B. Einkaufswage
  31. 31. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 31 Dokumentendatenbanken  Dokumente sind Mengen von Attribut/Werte Paaren  Strukturierte Attribute  Listen, Teilobjekte  Collections  Sammlungen von Dokumenten  Externe Repräsentation meist in JSON  Manchmal interne Speicherung ebenfalls in JSON / BSON  z.B. Produktkatalog { FirstName:"Jonathan", Address:"15 Wanamassa Road", Children:[ {Name:"Michael",Age:10}, {Name:"Jennifer", Age:8}, {Name:"Samantha", Age:5}, {Name:"Elena", Age:2} ], Job: “Tennis Trainer“ }
  32. 32. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 32 Graphendatenbanken  Knoten (Vertices)  meistens Objekte (wie in Dokumentendatenbanken)  Kanten (Edges)  verbinden zwei Objekte  gerichtet (von → nach)  mit Typ („knows“, „likes“)  weiterer Information  z.B. Beziehungen zwischen Produkten  [Nachfolger-von], [Zubehör-für], ..
  33. 33. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 33 Korrespondenz zwischen Domain Driven Design und NoSQL Datenbanken
  34. 34. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 34 Entitäten  Entität  Identität  komplexe Struktur  Unterschiedlichkeit  Dokument  jedes Dokument hat eine eigene Identität  ID oder Key Attribut  strukturierte Attribute  Schemafreiheit  kein EAV nötig DDD Dokumentendatenbank
  35. 35. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 35 Wertobjekte  Wertobjekt  Unveränderbarkeit  Dokument  oder  Subobjekt in einem anderem Dokument (Entität oder WO)  muss programmatisch sichergestellt werden DDD Dokumentendatenbank
  36. 36. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 36 Aggregate  Aggregat  Zentraler Zugriff  Dokument mit direktem Verweis auf andere Dokumente  muss programmatisch sichergestellt werden DDD Dokumentendatenbank
  37. 37. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 37 Assoziationen  Assoziation  Typ der Assoziation  weitere Eigenschaften  Zugriffsmethoden an Hand der Assoziationen  z.B. Empfehlungen  Kante zwischen zwei Dokumenten  Typattribut der Kante  weitere Attribute  Graphalgorithmen in der Datenbank  z.B. zur Pfadsuche DDD Graphendatenbank
  38. 38. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 38 Repositories  Repository  Suchen in Repositories  Collection  Queries  mit entsprechenden Indizes DDD NoSQL Datenbanken
  39. 39. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 39 Fazit
  40. 40. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 40 DDD und Multi-Model-NoSQL-DBs gehören zusammen  Für den Erfolg von Softwareprojekten ist u.a. eine gemeinsame Sprache die von allen Beteiligten durchgängig benutzt wird wichtig  Domain Driven Design ist eine Herangehensweise die eine solche fordert und fördert  Entwicklung mit relationalen DBs erfordert eine ganz eigene Sprache (und Denkweise)  Nicht-relationale/NoSQL DBs sind moderne DBs die besser zu den geänderten Bedingungen moderner Softwareentwicklung passen  Zwischen der einheitlichen Sprache von Domain Driven Design und den Konzepten von NoSQL DBs existiert eine direkt Korrespondenz  Eine vollständige Korrespondenz ist nur mit Multi-Model-DBs gegeben die Dokumenten- und Graphendatenbanken vereinigen
  41. 41. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 41 triAGENS Die triAGENS GmbH ist ein Dienstleister im Bereich komplexer Informationssysteme und webbasierter Business-Lösungen, mit hohen Anforderungen an Performance, Skalierbarkeit und Sicherheit. triAGENS entwickelt High-Performance- Datenbanken auf Basis optimierter NoSQL-Datenbanktechnologien, die u.a. bei der Deutschen Post zum Einsatz kommen. The triAGENS GmbH is a service company in the area of complex IT Systems and web based business solutions with high requirements on performance, scalability and security. triAGENS supplies high performance databases based on NoSQL database technology, which are utilized for example by Deutsche Post. martin Schönert Geschäftsführer / executive director m.schoenert@triagens.de +49 170 8602158 triAGENS GmbH Hohenstaufenalle 43-45 50674 Köln www.triagens.de
  42. 42. Interactive Cologne | © 2014 triAGENS GmbH | 2014-05-25 42 Kontext Projekt oder Bereich Titel Domain Driven Design und NoSQL Ablage 70_Praesentationen ID TRI-MS-1405-003 Verantwortlich martin Schönert / triagens Leser öffentlich Sicherheitsein. öffentlich SchlüsselworteSoftwareentwicklung DDD Evans NoSQL Multi-Model Schritt Bearbeiter geplant bis Fertigstellung Kommentar Finale Version m.Schönert 2014-05-24 2014-05-24 Version Datum Bearbeiter Kommentar V1.00 2014-05-24 m.Schönert Finale Version Folie Kommentar - - Dokumentinformationen Metainformationen Historie Bearbeitungsschritte Todos

×