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.









Notes
Die UML Modelle wurden mit http://yuml.me/erstellt.
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.
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
Ambler SW (2003) Agile database techniques. Wiley, Hoboken
Rae I, Rollins E, Shute J, Sodhi S, Vingralek R (2013) Online, asynchronous schema change in F1. In Proc. VLDB
MongoDB (2014) http://www.mongodb.org/. Zugegriffen: 6. Juni 2014
Sanderson D (2012) Programming Google App engine, 2 Aufl. O’Reilly Media, Inc, Sebastopol
Couchbase (2014) http://www.couchbase.com/. Zugegriffen: 6. Juni 2014
Apache CouchDB (2014) docs.couchdb.org/. Zugegriffen: 6. Juni 2014
Morphia. A type-safe Java library for MongoDB (2014) https://github.com/mongodb/morphia/. Zugegriffen: 6. Juni 2014
Objectify (2014) https://code.google.com/p/objectify-appengine/. Zugegriffen: 6. Juni 2014
Kundera (2014) https://github.com/impetus-opensource/Kundera/wiki. Zugegriffen: 6. Juni 2014
Java Persistence 2.0 Expert Group: JSR 317 (2009) JavaTM Persistence API, Version 2.0. Sun Microsystems
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
Störl U (2014) NoSQL-Datenbanksysteme. In Kudraß T (Hrsg), Taschenbuch Datenbanken. Carl Hanser Verlag
Tiwari S (2011) Professional NoSQL. Wiley, Hoboken
Glatzel H (2014) Schema-Management in NoSQL-Datenbank-systemen. Master’s thesis, Hochschule Darmstadt
Apache HBase (2014) http://hbase.apache.org/. Zugegriffen: 6. Juni 2014
Apache Cassandra (2014) http://cassandra.apache.org/. Zugegriffen: 6. Juni 2014
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
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)
Python App Engine SDK (2014) https://developers.google.com/appengine/docs/python/datastore/datamodeling/. Zugegriffen: 6. Juni 2014
Kiji Project (2014) http://www.kiji.org/. Zugegriffen: 6. Juni 2014
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
Google Developers: Using JPA with App Engine (2014) https://developers.google.com/appengine/docs/java/datastore/jpa/overview-dn. Zugegriffen: 6. Juni 2014
Google Developers: Using JDO 2.3 with App Engine (2014) https://developers.google.com/appengine/docs/java/datastore/jdo/overview. Zugegriffen: 6. Juni 2014
Hibernate OGM (2014) http://hibernate.org/ogm/. Zugegriffen: 6. Juni 2014
Klettke M (2007) Modellierung, Bewertung und Evolution von XML-Dokumentkollektionen. Habilitationsschrift. Logos Verlag, Berlin
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
Moh CH, Lim EP, Ng WK (2000) DTD-Miner, a tool for mining DTD from XML documents. In Proc. WECWIS
Google Developers: Google Cloud Datastore (2014) https://developers.google.com/datastore/. Zugegriffen: 6. Juni 2014
JSON Schema (2014) http://json-schema.org/. Zugegriffen: 6. Juni 2014
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
Doan A, Halevy AY, Ives ZG (2012) Principles of data integration. Morgan Kaufmann, Burlington
Curino C, Moon HJ, Deutsch A, Zaniolo C (2013) Automating the database schema evolution process. VLDB J 22(1):73–98
Scherzinger S, Klettke M, Störl U (2013) Managing schema evolution in NoSQL data stores. In Proc. DBPL
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s13222-014-0156-z