Skip to main content
Log in

Datenbanken ohne Schema?

Herausforderungen und Lösungs-Strategien in der agilen Anwendungsentwicklung mit schema-flexiblen NoSQL-Datenbanksystemen

  • SCHWERPUNKTBEITRAG
  • Published:
Datenbank-Spektrum Aims and scope Submit manuscript

Zusammenfassung

In der Entwicklung von interaktiven Web-Anwendungen sind NoSQL-Datenbanksysteme zunehmend beliebt, nicht zuletzt, weil sie flexible Datenmodelle erlauben. Das erleichtert insbesondere ein agiles Projektmanagement, das sich durch häufige Releases und entsprechend häufige Änderungen am Datenmodell auszeichnet. In diesem Artikel geben wir einen Überblick über die besonderen Herausforderungen der agilen Anwendungsentwicklung gegen schemalose NoSQL-Datenbanksysteme. Wir stellen Strategien für die Schema-Evolution aus der Praxis vor, und postulieren unsere Vision einer eigenen Schema-Management-Komponente für NoSQL-Datenbanksysteme, die für eine kontinuierliche und systematische Schema-Evolution ausgelegt ist.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Abb. 1
Abb. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Abb. 8
Fig. 9

Notes

  1. Die UML Modelle wurden mit http://yuml.me/erstellt.

  2. Die Java Persistence Query Language ist die Anfragesprache innerhalb der Java Persistence API für Java-Entitäten [10]. JPQL hat eine SQL-ähnliche Syntax.

  3. Die Definition von Beziehungen zwischen verschiedenen Entity-Typen sollte aus Performance-Gründen im Kontext horizontal skalierender NoSQL-Datenbanksysteme für große Datenmengen nur sehr wohlüberlegt eingesetzt werden [13].

Literatur

  1. Ambler SW (2003) Agile database techniques. Wiley, Hoboken

  2. Rae I, Rollins E, Shute J, Sodhi S, Vingralek R (2013) Online, asynchronous schema change in F1. In Proc. VLDB

  3. MongoDB (2014) http://www.mongodb.org/. Zugegriffen: 6. Juni 2014

  4. Sanderson D (2012) Programming Google App engine, 2 Aufl. O’Reilly Media, Inc, Sebastopol

  5. Couchbase (2014) http://www.couchbase.com/. Zugegriffen: 6. Juni 2014

  6. Apache CouchDB (2014) docs.couchdb.org/. Zugegriffen: 6. Juni 2014

  7. Morphia. A type-safe Java library for MongoDB (2014) https://github.com/mongodb/morphia/. Zugegriffen: 6. Juni 2014

  8. Objectify (2014) https://code.google.com/p/objectify-appengine/. Zugegriffen: 6. Juni 2014

  9. Kundera (2014) https://github.com/impetus-opensource/Kundera/wiki. Zugegriffen: 6. Juni 2014

  10. Java Persistence 2.0 Expert Group: JSR 317 (2009) JavaTM Persistence API, Version 2.0. Sun Microsystems

  11. Edlich S, Friedland A, Hampe J, Brauer B, Brückner M (2011) NoSQL: Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken. Carl Hanser Verlag, München

  12. Störl U (2014) NoSQL-Datenbanksysteme. In Kudraß T (Hrsg), Taschenbuch Datenbanken. Carl Hanser Verlag

  13. Tiwari S (2011) Professional NoSQL. Wiley, Hoboken

  14. Glatzel H (2014) Schema-Management in NoSQL-Datenbank-systemen. Master’s thesis, Hochschule Darmstadt

  15. Apache HBase (2014) http://hbase.apache.org/. Zugegriffen: 6. Juni 2014

  16. Apache Cassandra (2014) http://cassandra.apache.org/. Zugegriffen: 6. Juni 2014

  17. Baker J, Bond C, Corbett JC, Furman J, Khorlin A, Larson J, Leon JM, Li Y, Lloyd A, Yushprakh V (2011) Megastore: providing scalable, highly available storage for interactive services. In Proc. CIDR, S 223–234

  18. Chang F, Dean J, Ghemawat S, Hsieh WC, Wallach DA, Burrows M, Chandra T, Fikes A, Gruber RE (2008) Bigtable: a distributed storage system for structured data. ACM Trans Comput Syst 26(2)

  19. Python App Engine SDK (2014) https://developers.google.com/appengine/docs/python/datastore/datamodeling/. Zugegriffen: 6. Juni 2014

  20. Kiji Project (2014) http://www.kiji.org/. Zugegriffen: 6. Juni 2014

  21. Wolf F, Betz H, Gropengießer F, Sattler KU (2013) Hibernating in the cloud-implementation and evaluation of object-NoSQL-mapping. In Proc. BTW 2013

  22. Google Developers: Using JPA with App Engine (2014) https://developers.google.com/appengine/docs/java/datastore/jpa/overview-dn. Zugegriffen: 6. Juni 2014

  23. Google Developers: Using JDO 2.3 with App Engine (2014) https://developers.google.com/appengine/docs/java/datastore/jdo/overview. Zugegriffen: 6. Juni 2014

  24. Hibernate OGM (2014) http://hibernate.org/ogm/. Zugegriffen: 6. Juni 2014

  25. Klettke M (2007) Modellierung, Bewertung und Evolution von XML-Dokumentkollektionen. Habilitationsschrift. Logos Verlag, Berlin

  26. Necaský M, Klímek J,Malý J, Mlýnková I (2012) Evolution and change management of XML-based systems. J Syst Softw 85(3):683–707

  27. Moh CH, Lim EP, Ng WK (2000) DTD-Miner, a tool for mining DTD from XML documents. In Proc. WECWIS

  28. Google Developers: Google Cloud Datastore (2014) https://developers.google.com/datastore/. Zugegriffen: 6. Juni 2014

  29. JSON Schema (2014) http://json-schema.org/. Zugegriffen: 6. Juni 2014

  30. Bai Y, Thakkar H, Wang H, Zaniolo C (2008) Time-stamp management and query execution in data stream management systems. IEEE Internet Computing 12(6):13–21

  31. Doan A, Halevy AY, Ives ZG (2012) Principles of data integration. Morgan Kaufmann, Burlington

  32. Curino C, Moon HJ, Deutsch A, Zaniolo C (2013) Automating the database schema evolution process. VLDB J 22(1):73–98

  33. Scherzinger S, Klettke M, Störl U (2013) Managing schema evolution in NoSQL data stores. In Proc. DBPL

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Meike Klettke.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Klettke, M., Scherzinger, S. & Störl, U. Datenbanken ohne Schema?. Datenbank Spektrum 14, 119–129 (2014). https://doi.org/10.1007/s13222-014-0156-z

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s13222-014-0156-z

Schlüsselwörter

Navigation