© Liashko/Shutterstock.com
Entwickler Magazin
NextSQL durch Polyglot Persistence: Neudefinition von Datenbanken

DatenbankenIst SQL beziehungsfähig?

Brauchen wir NoSQL wirklich? Oder ist das nur ein Buzzword für alle, die das neue Facebook werden wollen? Und wenn es wirklich sinnvoll ist, sich mit NoSQL zu beschäftigen, was wird dann mit MySQL, Oracle, Microsoft, IBM und Co.?

Carsten Harnisch


Vor zehn Jahren war eine Anwendung mit 1 000 Benutzern ein Gigant. Entsprechend großzügig wurde ein solches System auch mit Ressourcen versorgt. Heute, im Zeitalter von Web, Facebook und Co., ist die Tausend der Startpunkt; die Dimension hat sich hier deutlich verschoben, denn groß wird man erst mit Benutzerzahlen im Millionenbereich. Und all diese Benutzer erzeugen oft allein durch ihre Anwesenheit in einer Webanwendung eine Unmenge an Bewegungs- und Verhaltensdaten. Die Geschäftsführung geht dabei davon aus, dass sich diese Daten immer auch gewinnoptimierend aus- bzw. verwerten lassen. Die Daten werden zum Schmiermittel eines Unternehmens, und viele Webunternehmen lassen sich gar von den Daten treiben. Lassen wir dabei mal außer Acht, wer hier von wem getrieben wird.

Bei dem ganzen Sich-treiben-lassen im Datenmeer wird aber schnell klar, dass die vorhandene Technik oft nicht optimal passt. Es macht nun einmal einen großen Unterschied, ob eine Buchung mit einer Handvoll Zahlen sauber in einer Transaktion verarbeitet wird oder die Log-Daten einer Webanwendung analysiert werden, die sich auf 45 Servern, verteilt auf drei Rechenzentren, befindet. Wiederum völlig anders ist die Anforderung für die Bereitstellung einer PHP Session in einem Cluster. Ebenso stellt uns die Frage nach einer Empfehlung für ein Produkt auf Basis der Einkäufe der Freundes-Freunde-Freunde in einem sozialen Netzwerk vor vollständig andere Herausforderungen.

Sind relationale Datenbanken beziehungsfähig?

Nur trotzdem scheinen sich die wenigsten Entwickler damit anfreunden zu können, ihre persönlichen Beziehungen zu einer relationalen SQL-Datenbank aufzugeben. Ironischerweise lassen sich ja gerade Beziehungen in relationalen Datenbanken nur schwer handhaben. Werfen wir kurz einen Blick auf einen Exoten im Bereich der Datenbanken, und zwar die Graphendatenbank Neo4j. Im Rahmen eines Buchprojekts „Neo4j in Action“ zeigen die Autoren einen Performancevergleich. Ein hypothetisches soziales Netzwerk hat dabei eine Million Benutzer mit freundschaftlichen Beziehungen zueinander. Die resultierenden Daten werden jeweils einmal in einer SQL-Datenbank und in Neo4J gespeichert. Nun suchen wir Verbindungen der Personen zueinander. Dabei gehen wir also Fragestellungen nach wie: Wer kennt wen – direkt oder vielleicht auch nur indirekt über eigene Freunde oder deren Freunde? In der ersten Phase – mit Beziehungen der Tiefe 2 – ergeben sich bei beiden Systemen Antwortzeiten von zehn Millisekunden. In der T...

Entwickler Magazin
NextSQL durch Polyglot Persistence: Neudefinition von Datenbanken

DatenbankenIst SQL beziehungsfähig?

Brauchen wir NoSQL wirklich? Oder ist das nur ein Buzzword für alle, die das neue Facebook werden wollen? Und wenn es wirklich sinnvoll ist, sich mit NoSQL zu beschäftigen, was wird dann mit MySQL, Oracle, Microsoft, IBM und Co.?

Carsten Harnisch


Vor zehn Jahren war eine Anwendung mit 1 000 Benutzern ein Gigant. Entsprechend großzügig wurde ein solches System auch mit Ressourcen versorgt. Heute, im Zeitalter von Web, Facebook und Co., ist die Tausend der Startpunkt; die Dimension hat sich hier deutlich verschoben, denn groß wird man erst mit Benutzerzahlen im Millionenbereich. Und all diese Benutzer erzeugen oft allein durch ihre Anwesenheit in einer Webanwendung eine Unmenge an Bewegungs- und Verhaltensdaten. Die Geschäftsführung geht dabei davon aus, dass sich diese Daten immer auch gewinnoptimierend aus- bzw. verwerten lassen. Die Daten werden zum Schmiermittel eines Unternehmens, und viele Webunternehmen lassen sich gar von den Daten treiben. Lassen wir dabei mal außer Acht, wer hier von wem getrieben wird.

Bei dem ganzen Sich-treiben-lassen im Datenmeer wird aber schnell klar, dass die vorhandene Technik oft nicht optimal passt. Es macht nun einmal einen großen Unterschied, ob eine Buchung mit einer Handvoll Zahlen sauber in einer Transaktion verarbeitet wird oder die Log-Daten einer Webanwendung analysiert werden, die sich auf 45 Servern, verteilt auf drei Rechenzentren, befindet. Wiederum völlig anders ist die Anforderung für die Bereitstellung einer PHP Session in einem Cluster. Ebenso stellt uns die Frage nach einer Empfehlung für ein Produkt auf Basis der Einkäufe der Freundes-Freunde-Freunde in einem sozialen Netzwerk vor vollständig andere Herausforderungen.

Sind relationale Datenbanken beziehungsfähig?

Nur trotzdem scheinen sich die wenigsten Entwickler damit anfreunden zu können, ihre persönlichen Beziehungen zu einer relationalen SQL-Datenbank aufzugeben. Ironischerweise lassen sich ja gerade Beziehungen in relationalen Datenbanken nur schwer handhaben. Werfen wir kurz einen Blick auf einen Exoten im Bereich der Datenbanken, und zwar die Graphendatenbank Neo4j. Im Rahmen eines Buchprojekts „Neo4j in Action“ zeigen die Autoren einen Performancevergleich. Ein hypothetisches soziales Netzwerk hat dabei eine Million Benutzer mit freundschaftlichen Beziehungen zueinander. Die resultierenden Daten werden jeweils einmal in einer SQL-Datenbank und in Neo4J gespeichert. Nun suchen wir Verbindungen der Personen zueinander. Dabei gehen wir also Fragestellungen nach wie: Wer kennt wen – direkt oder vielleicht auch nur indirekt über eigene Freunde oder deren Freunde? In der ersten Phase – mit Beziehungen der Tiefe 2 – ergeben sich bei beiden Systemen Antwortzeiten von zehn Millisekunden. In der T...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang