Zusammenfassung
NoSQL-Datenbanksysteme sind in den letzten Jahren sehr populär geworden, gute Gründe sprechen für ihren Einsatz: Eine attraktive Eigenschaft vieler Systeme ist ihre Schema-Flexibilität, die insbesondere in der agilen Anwendungsentwicklung Vorteile bietet. Durch horizontale Skalierbarkeit ermöglichen NoSQL-Datenbanksysteme eine effiziente Verarbeitung großer Datenmengen. Einige Systeme, die für die Datenhaltung interaktiver Anwendungen konzipiert sind, können zudem hochfrequente Nutzeranfragen bedienen.
Diesen Vorteilen stehen eine Reihe von Nachteilen gegenüber, aus denen sich neue Herausforderungen für die Anwendungsentwicklung ergeben: Fehlende Standards bei den Anfragesprachen erschweren die Entwicklung datenbanksystemunabhängiger Anwendungen. Schema-Flexibilität im Datenbankmanagementsystem führt dazu, dass die Verantwortung für das Schema-Management in die Anwendung verlagert wird.
Im vorliegenden Beitrag werden wesentliche Herausforderungen identifiziert und Lösungsansätze aus Forschung und Praxis vorgestellt. Dabei liegt der Fokus auf schema-flexiblen NoSQL-Datenbanksystemen, mit einem aggregat-orientierten Datenmodell, d. h. Key-Value Datenbanksysteme, dokumentenorientierten Datenbanksystemen und Column-Family Datenbanksystemen.
Abstract
NoSQL data stores have become very popular over the last years, as good reasons are justifying their application: One attractive feature of many systems is their schema flexibility, which may be preferable in agile software development projects. Due to their horizontal scalability, NoSQL data stores make it possible to efficiently process large amounts of data. Some systems, designed as data backends for interactive applications, can also manage highly frequent user requests.
Apart from these advantages, there are also downsides to NoSQL data stores that create new challenges for software development: Missing standards in query languages make it difficult to build data store independent applications. Schema flexibility in the data store shifts the responsibility for schema management into the application.
This article identifies substantial challenges as well as solution statements from research and practice. The focus of our survey is on schema-flexible NoSQL data management systems with an aggregate-oriented data model, i. e., key-value data management systems, as well as document and column family data management systems.
Literatur
Apache Cassandra (2016) http://cassandra.apache.org/. Aufgerufen am 27.6.2016
Baker J, Bondç C, Corbett JC, Furman JJ et al (2011) Megastore: providing scalable, highly available storage for interactive services. In: Proc. CIDR 2011
Cerqueus T, Cunha de Almeida E, Scherzinger S (2015) Safely Managing Data Variety in Big Data Software Development. In: Proc. BIGDSE 2015
DataNucleus (2016) DataNucleus AccessPlatform. www.datanucleus.org/. Aufgerufen am 27.6.2016
International E (2013) The JSON Data Interchange Format. http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf. Aufgerufen am 27.6.2016
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
Fasel D (2014) Big Data – Eine Einführung. HMD Praxis der Wirtschaftsinformatik 51(4):386–400
Google Inc (2016) Google Cloud Datastore. https://developers.google.com/appengine/docs/java/datastore/. Aufgerufen am 27.6.2016
Impetus (2016) Kundera Wiki. https://github.com/impetus-opensource/Kundera/wiki. Aufgerufen am 27.6.2016
Klettke M, Scherzinger S, Störl U (2014) Datenbanken ohne Schema? Herausforderungen und Lösungs-Strategien in der agilen Anwendungsentwicklung mit schema-flexiblen NoSQL-Datenbanksystemen. Datenbank Spektrum 14(2):119–129
Klettke M, Scherzinger S, Störl U (2015) Schema Extraction and Structural Outlier Detection for JSON-based NoSQL Data Stores. In: Proc. BTW 2015
MongoDB, Inc (2016) https://www.mongodb.org/. Aufgerufen am 27.6.2016
Morphia (2016) https://github.com/mongodb/morphia. Aufgerufen am 27.6.2016
Müller B, Wehr H (2012) Java Persistence API 2: Hibernate, EclipseLink, OpenJPA und Erweiterungen. Carl Hanser Verlag, München
Objectify (2016) https://github.com/objectify/objectify. Aufgerufen am 27.6.2016
Parnas DL (1994) Software Aging. In: Proc. ICSE 1994
Red Hat (2016a) Hibernate OGM. http://hibernate.org/ogm/. Aufgerufen am 27.6.2016
Red Hat (2016b) Hibernate OGM roadmap. Hibernate OGM 5.0. http://hibernate.org/ogm/roadmap/. Zugegriffen: 13. Apr. 2016
Sadalage PJ, Fowler M (2012) NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Addison Wesley, Boston
Scherzinger S, Klettke M, Störl U (2013) Managing Schema Evolution in NoSQL Data Stores. In: Proc. DBPL 2013
Störl U (2015) NoSQL-Datenbanksysteme. In: Kudraß T (Hrsg) Taschenbuch Datenbanken. Carl Hanser Verlag, München
Störl U, Hauf T, Klettke M, Scherzinger S (2015a) Schemaless NoSQL Data Stores – Object-NoSQL Mappers the Rescue? In: Proc. BTW 2015
Störl U, Klettke M, Scherzinger S (2015b) Kontrolliertes Schema-Evolutionsmanagement für NoSQL-Datenbanksysteme. In: Proc. LWA 2015 Workshops: KDML, FGWM, IR und FGDB
Störl U, Klettke M, Scherzinger S (2016) Kurz erklärt: Objekt-NoSQL-Mapping. Datenbank Spektrum 16(1):83–87
Tiwari S (2013) Professional NoSQL. O’Reilly, Sebastopol
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Klettke, M., Störl, U. & Scherzinger, S. Herausforderungen bei der Anwendungsentwicklung mit schema-flexiblen NoSQL-Datenbanken. HMD 53, 428–442 (2016). https://doi.org/10.1365/s40702-016-0234-9
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1365/s40702-016-0234-9