{ } Knowledge Engineering K 9 Georg-August-Universität Göttingen Institut für Informatik NOSQL Databases – An Overview Dr. Lena Wiese Institut für Informatik Research Group Knowledge Engineering Fakultät für Mathematik und Informatik Georg-August Universität Göttingen Data Natives 2015 Dr. Lena Wiese NOSQL DBs 1 / 49
54
Embed
" NoSQL Databases: An Overview" Lena Wiese, Research Group Knowledge Engineer at Göttingen University
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenInstitut für Informatik
NOSQL Databases – An Overview
Dr. Lena Wiese
Institut für InformatikResearch Group Knowledge EngineeringFakultät für Mathematik und Informatik
Georg-August Universität Göttingen
Data Natives 2015
Dr. Lena Wiese NOSQL DBs 1 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenInstitut für Informatik
Short CV Dr. Lena Wiese
University of Göttingen (Research Group Leader KnowledgeEngineering)University of Hildesheim (Visiting Professor for Databases)National Institute of Informatics, Tokyo, JapanRobert Bosch India Ltd., Bangalore, IndiaMaster/PhD: TU DortmundTeaching and Research
NoSQL databases (lecture, seminars, projects)Database security (encryption for Cassandra and HBase)
Web: http://wiese.free.fr/
Dr. Lena Wiese NOSQL DBs 2 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenInstitut für Informatik
Book / WorkshopMaster’s level text book (in English):Lena Wiese: Advanced Data Management for SQL,NoSQL, Cloud and Distributed Databasesc� 2015 DeGruyter/Oldenbourghttp://wiese.free.fr/adm.html(several pictures in this talk taken from the book)
Workshop NoSQL-Netorganized jointly with Irena Holubova (CharlesUniversity, Prague) and Valentina Janev (InstitutoMihailo Pupin, Belgrade)3rd edition to be organized at DEXA conference 2016We welcome industrial application papers
Dr. Lena Wiese NOSQL DBs 3 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenIntroduction :: Content Institut für Informatik
Overview
1 IntroductionContentNew Requirements
2 Graph Databases
3 XML Databases
4 Key-Value Stores
5 Document Stores
6 Column Stores
7 BigTable Databases
8 Polyglot Data Base Architectures
9 Conclusion
Dr. Lena Wiese NOSQL DBs 4 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenIntroduction :: Content Institut für Informatik
Graph DatabasesXML DatabasesKey-value StoresColumn StoresBigtable DatabasesObject Databases and Object-Relational Databases...
Dr. Lena Wiese NOSQL DBs 5 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenIntroduction :: Content Institut für Informatik
What is a Database System?
A database system is required tomanagehuge amounts of datain an e�cient,persistent,reliable,consistent,non-redundant wayfor multiple users
Dr. Lena Wiese NOSQL DBs 6 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenIntroduction :: New Requirements Institut für Informatik
New requirements
Data are organized in complex structures (example: social networks)
meyou
foe foo
Data are constantly changing (frequent updates)Data are distributed on a huge number of interconnected servers(example: cloud storage)
Dr. Lena Wiese NOSQL DBs 7 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenIntroduction :: New Requirements Institut für Informatik
New requirements
Data are organized in complex structures (example: social networks)Data are constantly changing (frequent updates)
write1 write2 write3 write4 write5read1 read2
Data are distributed on a huge number of interconnected servers(example: cloud storage)
Dr. Lena Wiese NOSQL DBs 7 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenIntroduction :: New Requirements Institut für Informatik
New requirements
Data are organized in complex structures (example: social networks)Data are constantly changing (frequent updates)Data are distributed on a huge number of interconnected servers(example: cloud storage)
userS1
S2S3
S4
S5
data
Dr. Lena Wiese NOSQL DBs 7 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenIntroduction :: New Requirements Institut für Informatik
New requirements
Data are organized in complex structures (example: social networks)Data are constantly changing (frequent updates)Data are distributed on a huge number of interconnected servers(example: cloud storage)
Revival of non-relational data models for novel applications
Dr. Lena Wiese NOSQL DBs 7 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenGraph Databases :: Background Institut für Informatik
Georg-August-Universität GöttingenGraph Databases :: Background Institut für Informatik
Why Graph Databases?Links between data items are important
Example: Social NetworksRecommender SystemsSemantic WebGeographic Information SystemsBioinformatics...
Name: AliceAge: 34
Name: BobAge: 27
Name: CharleneAge: 29
knows knows
dislikes
Dr. Lena Wiese NOSQL DBs 9 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenGraph Databases :: Background Institut für Informatik
Why Graph Databases?Links between data items are important
Social NetworksRecommender SystemsSemantic WebExample: Geographic Information SystemsBioinformatics...
City: HannoverPopulation: 522T
City: HildesheimPopulation: 102T
City: BraunschweigPopulation: 248T
35km 45km
65km
Dr. Lena Wiese NOSQL DBs 9 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenGraph Databases :: Graph Management Institut für Informatik
Property Graph ModelA Property Graph is a directed multigraphStores information (properties) in vertices and on edgesA Property is a key-value pair like “Name: Alice”
Sometimes multi-value properties: one key, list of valuesFor vertices and edges: predefined property key called Id with uniqueidentifier value
Id: 1Name: AliceAge: 34
Id: 2Name: BobAge: 27
Id: 3Name: CharleneAge: 29
Id: 4 Id: 5
Id: 6
Dr. Lena Wiese NOSQL DBs 10 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenGraph Databases :: Graph Management Institut für Informatik
Property Graph Model: Types and LabelsIn general, not typed: vertices and edges store arbitrary key-value pairsHowever, typing gives semantics to the stored data
For vertices: predefined property key called Type; like “Type: Person”For edges: predefined property key called Label; optionally: specifywhich edge label can be used between which vertex types
Id: 1Type: PersonName: AliceAge: 34
Id: 2Type: PersonName: BobAge: 27
Id: 3Type: PersonName: CharleneAge: 29
Id: 4Label: knows
Id: 5Label: knows
Id: 6Label: dislikes
Dr. Lena Wiese NOSQL DBs 11 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenGraph Databases :: Graph Management Institut für Informatik
Property Graph Model: MultiedgesMultiedges are only allowed when edge labels are di�erent
Id: 1Type: PersonName: AliceAge: 34
Id: 2Type: PersonName: BobAge: 27
Id: 3Type: PersonName: CharleneAge: 29
Id: 4Label: knows
Id: 5Label: knows
Id: 6Label: dislikes
Id: 7Label: dislikes (not allowed!)
Dr. Lena Wiese NOSQL DBs 12 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenGraph Databases :: Graph Management Institut für Informatik
Property Graph Model: Paths
Paths are serial concatenations of edgesEnd vertex of one edge is start vertex of next edge on the path
Id: 1Type: PersonName: AliceAge: 34
Id: 2Type: PersonName: BobAge: 27
Id: 3Type: PersonName: CharleneAge: 29
Id: 4Label: knows
Id: 5Label: knows
Dr. Lena Wiese NOSQL DBs 13 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenGraph Databases :: Graph Management Institut für Informatik
Property Graph Model: Paths
Path “friends-of-friends” concatenates two edges with “Label: knows”Paths can be used as normal edges
Id: 1Type: PersonName: AliceAge: 34
Id: 2Type: PersonName: BobAge: 27
Id: 3Type: PersonName: CharleneAge: 29
Id: 4Label: knows
Id: 5Label: knows
Path friends-of-friends
Dr. Lena Wiese NOSQL DBs 13 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenGraph Databases :: Systems Institut für Informatik
Open Source Systems
The TinkerPop http://tinkerpop.incubator.apache.org/graph processing stack: a set of open source graph managementmodules
HyperGraphDB: http://www.hypergraphdb.org/Graph may contain hyperedges that combine more than two nodes
Dr. Lena Wiese NOSQL DBs 14 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenXML Databases :: Background Institut für Informatik
Overview1 Introduction
2 Graph Databases
3 XML DatabasesBackgroundNumbering SchemesSystems
4 Key-Value Stores
5 Document Stores
6 Column Stores
7 BigTable Databases
8 Polyglot Data Base Architectures
9 Conclusion
Dr. Lena Wiese NOSQL DBs 15 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenXML Databases :: Background Institut für Informatik
XML
XML: Extensible Markup LanguageDefined by the WWW Consortium (W3C)Intended as a document markup language (not a database language)Tags divide documents into sectionsTag: label for a section of dataElement: section of data beginning with <tagname> and ending withmatching </tagname>Inside an element:
arbitrary textother elements (“nesting”)Nothing (“empty element”): abbreviate to <tagname />
Standardized query languages: XPath and XQuery
Dr. Lena Wiese NOSQL DBs 16 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenXML Databases :: Background Institut für Informatik
Georg-August-Universität GöttingenXML Databases :: Numbering Schemes Institut für Informatik
Numbering Scheme
assigns each node of an XML tree a unique identifier (a label or nodeID which is usually a number)Important for database application with frequent updates:
How many nodes have to be renumbered in an update?simplest scheme: preorder traversal of treeincreasing a counter for each node:
root node is numbered as the first node before numbering any othernodethis is done recursively for all child nodes
Renumbering: all nodes in the worst case
Dr. Lena Wiese NOSQL DBs 18 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenXML Databases :: Systems Institut für Informatik
Open Source Systems
eXistDB: http://exist-db.org/numbering scheme that virtually expands the tree into a complete treesuch that not all node IDs correspond to existing nodeseXistDB o�ers several user APIs: RESTful API, XML:DB API,XML-RPC API, SOAP AP
BaseX: http://basex.org/Numbering scheme: Pre/Dist/SizeSeveral language bindings as well as a REST API, an XQJ API and aXML:DB API
Dr. Lena Wiese NOSQL DBs 19 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenKey-Value Stores :: Background Institut für Informatik
Georg-August-Universität GöttingenKey-Value Stores :: Background Institut für Informatik
Key-Value StoresA key value pair is a tuple of two strings Èkey, valueÍ
You can get (or delete) a value from the store by keySchema-less: you can put arbitrary key-value pairs into the storevalue = store.get(key)store.put(key, value)store.delete(key)
Values can have other data types than just stringsValues can even be a list or array of atomic valuesSimple but quick
Simple data structureNo advanced query languageGood for “data-intensive” applicationsApplication is responsible or combining key-value pairs into morecomplex objects
Dr. Lena Wiese NOSQL DBs 21 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenKey-Value Stores :: Systems Institut für Informatik
Riak-KV: http://basho.com/products/riak-kv/key-value pairs called Riak objects grouped into bucketsconvergent replicated data types (CRDTs)Riak’s search functionality based on Apache Solr (Yokozuna)
Dr. Lena Wiese NOSQL DBs 22 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenKey-Value Stores :: MapReduce Institut für Informatik
MapReduce
Applied at GoogleJe�rey Dean / Sanjay Ghemawat, “MapReduce: Simplified DataProcessing on Large Clusters”, OSDI’04: Sixth Symposium onOperating System Design and Implementation, 2004.
“The computation takes a set of input key/value pairs, and producesa set of output key/value pairs. The user of the MapReduce libraryexpresses the computation as two functions: Map and Reduce.”Four basic steps
1split input key-value pairs into disjunct subsets
2 compute map function on each input subset3 group all intermediate values by key (shu�e)4
reduce values of each group
Dr. Lena Wiese NOSQL DBs 23 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenKey-Value Stores :: MapReduce Institut für Informatik
Apache Hive: http://hive.apache.org/querying and data management layercan serialize tables as files in HDFSHiveQL queries are compiled into Hadoop MapReduce tasks
Dr. Lena Wiese NOSQL DBs 25 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenDocument Stores :: Background Institut für Informatik
Overview
1 Introduction
2 Graph Databases
3 XML Databases
4 Key-Value Stores
5 Document StoresBackgroundSystems
6 Column Stores
7 BigTable Databases
8 Polyglot Data Base Architectures
9 Conclusion
Dr. Lena Wiese NOSQL DBs 26 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenDocument Stores :: Background Institut für Informatik
JSON: JavaScript Object Notationhuman-readable text formatmore compact than XMLnesting of key-value pairs
Georg-August-Universität GöttingenColumn Stores :: Background Institut für Informatik
Why Column Stores?A row store is a row-oriented relational database
Data are stored in tablesOn disk, data in a row are stored consecutivelyCurrently used in most commercially successful RDBMSs
A column store is a column-oriented relational databaseData are stored in tablesOn disk, data in a column are stored consecutivelyIn use since the 1970s but less successful than row stores
ExampleBookLending BookID ReaderID ReturnDate
123 225 25-10-2011234 347 31-10-2011
Storage order in row store:123,225,25-10-2011,234,347,31-10-2011
Storage order in column store:123,234,225,347,25-10-2011,31-10-2011
Dr. Lena Wiese NOSQL DBs 30 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenColumn Stores :: Background Institut für Informatik
Advantages of Column Stores
Only columns (attributes) that are needed are read from disk intomain memory, because a memory page contains only values of acolumnValues in a column (that is, values of the same attribute domain) canbe compressed better when stored consecutively (“locality”)Iterating or aggregating over values in a column can be done quickly,because they are stored consecutively
For example, summing up all values in a column, finding the average,maximum...
Adding new columns to a table is easy
Dr. Lena Wiese NOSQL DBs 31 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenColumn Stores :: Column Compression Institut für Informatik
Column CompressionColumns may contain lots of repetitions of valuesCompression can be more e�ective on columnsOption 1: run-length encoding
run-length: how many repetitions of a value are stored consecutively?Option 2: bit-vector encoding
create a bit vector for each value in the columnOption 3: dictionary encoding
create a dictionary for single values or sequences of valuesOption 4: frame of reference encoding
store o�-set from a reference pointOption 5: di�erential encoding
store o�-set from previous valueStavros Harizopoulos / Daniel Abadi / Peter Boncz,“Column-Oriented Database Systems”, VLDB Tutorial, 2009
Dr. Lena Wiese NOSQL DBs 32 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenColumn Stores :: Column Compression Institut für Informatik
Store ReaderID (RID) in run-length encodingcount number of consecutive repetitionsformat: (value, start row, run-length)RID: ( (225, 1, 3), (347, 4, 2) )
Answer queries on compressed formatHow many books does each reader have?SELECT RID, COUNT(*) FROM BookLending GROUP BY RIDJust return (the sum of) the run-lengths for each ReaderID valueResult: (225, 3), (347, 2)
Dr. Lena Wiese NOSQL DBs 33 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenColumn Stores :: Systems Institut für Informatik
Systems
MonetDB: https://www.monetdb.org/open source “column store pioneers”
Apache Parquet: http://parquet.apache.org/implements column striping: transform nested data to columns
Commercial systemsSAP HANAHP Vertica
Dr. Lena Wiese NOSQL DBs 34 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenBigTable Databases :: Background Institut für Informatik
Georg-August-Universität GöttingenBigTable Databases :: Background Institut für Informatik
Google BigTable
Fay Chang / Je�rey Dean / Sanjay Ghemawat / Wilson C. Hsieh /Deborah A. Wallach / Mike Burrows / Tushar Chandra / AndrewFikes / Robert E. Gruber, “Bigtable: A Distributed Storage Systemfor Structured Data”, OSDI, 2006“A Bigtable is a sparse, distributed, persistent, multi-dimensionalsorted map”Google BigTable is indexed by a row key, column key, and atimestampMap: ( row:string, column:string, time:int64) æ stringA Big Table may have an unbounded number of columns.Columns are grouped into sets called column families.
Dr. Lena Wiese NOSQL DBs 36 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenBigTable Databases :: Background Institut für Informatik
BigTable & HBase Data StructureStore data that is accessed together in a column family
Columns in a single column family can vary arbitrarily for each row.Only fetch column families of columns that are required by queryData locality: Store data in a column family together on disk
table row key column family column familyLibrary BID BookInfo LendingInfo
123Title
Databases
Author
Miller
25-10-2012
Mayer25-11-2012
Green
386Title
AlgorithmsAuthor
Jacobs
20-10-2012
Mayer
938Title
ProgrammingAuthor
Brown
27-10-2012
Mayer
234Title
SQL
Author
Smith
31-10-2012
Green
Dr. Lena Wiese NOSQL DBs 37 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenBigTable Databases :: Storage Organization Institut für Informatik
Writing to memory tables and data files
The most recent writes are collected in a main memory table(memtable) of fixed size.All data records written to the on-disk store will only be appended tothe existing records.Once written, these records are read-only and cannot be modified:they are immutable data files.Any modification of a record must hence also be simulated byappending a new record in the store.Deletions are treated by writing a new record (tombstone) for a key.
Main memory
memtable
Disk
Sortedfile 1
Sortedfile 2
. . .Sortedfile n
flush
write
Dr. Lena Wiese NOSQL DBs 38 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenBigTable Databases :: Storage Organization Institut für Informatik
Reading from memory tables and data files
The downside of immutable data files is that they complicate the readprocess:
retrieving all the relevant data that match a user query requirescombining records from several on-disk data files and the memtable.
This combination may a�ect records for di�erent search keys that arespread out across several data files; but it may also apply to recordsfor the same key of which di�erent versions exist in di�erent data files.In other words, all sorted data files have to be searched for recordsmatching the read request.
Main memory
memtable
block bu�er
Disk
Sortedfile 1
Sortedfile 2
. . .Sortedfile n
read
combine
combine
Dr. Lena Wiese NOSQL DBs 39 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenBigTable Databases :: Systems Institut für Informatik
Open Source Systems
Apache Cassandra: http://cassandra.apache.org/column families in a keyspaceCQL: SQL-like query languageINSERT INTO bookinfo (bookid, title, author)
stores tables in namespacestables contain column families
Dr. Lena Wiese NOSQL DBs 40 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenPolyglot Data Base Architectures :: Polyglot Persistence Institut für Informatik
Overview
1 Introduction
2 Graph Databases
3 XML Databases
4 Key-Value Stores
5 Document Stores
6 Column Stores
7 BigTable Databases
8 Polyglot Data Base ArchitecturesPolyglot PersistenceLambda ArchitectureMulti-Model Databases
9 Conclusion
Dr. Lena Wiese NOSQL DBs 41 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenPolyglot Data Base Architectures :: Polyglot Persistence Institut für Informatik
Polyglot Persistence
Choose as many databases as neededFowler, M.J., Sadalage, P.J.: NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence.Prentice Hall (2012)
Example: Apache Drill http://drill.apache.org/Apache Drill is inspired by the ideas developed in Google’s Dremelsystem
Melnik, S., Gubarev, A., Long, J.J., Romer, G., Shivakumar, S., Tolton, M., Vassilakis, T.: Dremel: interactiveanalysis of web-scale datasets. Proceedings of the VLDB Endowment 3(1-2), 330–339 (2010)
Better introduce an integration layer (instead of pushing the burden ofquery handling and database synchronization to the application level)
decomposing queries in to several subqueriesredirecting queries to the appropriate databasesrecombining the results obtained from the accessed databases
Dr. Lena Wiese NOSQL DBs 42 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenPolyglot Data Base Architectures :: Polyglot Persistence Institut für Informatik
Polyglot Persistence
Integration layer
Query decomposition
Query redirection
Result recombination
Synchronization
key-value
store
graph
database
SQL
database
in-memory
store
graph
traversal
analytical
query
write-heavy
transaction
SQL query
REST-
based access
Dr. Lena Wiese NOSQL DBs 43 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenPolyglot Data Base Architectures :: Lambda Architecture Institut für Informatik
Lambda ArchitectureFor real-time / streaming dataCombination of a slower batch processing layer and a speedier streamprocessing layer
Speed layer collects only the most recent data and delivers these resultsin several real-time viewsBatch layer stores all data in an append-only and im- mutable fashionin a so-called master dataset and results are delivered in so-called batchviewsServing layer makes batch views accessible to user queries bymaintaining indexes
User queries answered by merging data from batch views andreal-time viewsOpen source implementation following the ideas of a lambdaarchitecture is Apache Druid http://druid.io/ (streaming datain real-time nodes and batch data in historical nodes)
Dr. Lena Wiese NOSQL DBs 44 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenPolyglot Data Base Architectures :: Lambda Architecture Institut für Informatik
Lambda ArchitectureBatch layer
Batch view 1
Batch view 2
Batch view 3
Batch view 4
Master
data set
Speed layer
Recent
data set
Speed view 1
Speed view 2
Speed view 3
Speed view 4
Serving layer
Index 1
Index 2
Index 3
Index 4
Data
stream
a
p
p
e
n
d
a
p
p
e
n
d
merge
Dr. Lena Wiese NOSQL DBs 45 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenPolyglot Data Base Architectures :: Multi-Model Databases Institut für Informatik
Multi-Model DatabasesUse a database system that stores data in a single store but providesaccess to the data with di�erent APIs according to di�erent datamodelsEither support di�erent data models directly inside the databaseengine or o�er layers for additional data models on top of asingle-model engineOrientDB http://orientdb.com/
a document API, an object API, and a graph API (Java Graph API iscompliant with Tinkerpop)extensions of the SQL standard to interact will all three APIs
ArangoDB https://www.arangodb.com/a graph API, a key-value API and a document APIQuery language AQL (ArangoDB query language) resemblesSQL but adds several database-specific extensions to it
Dr. Lena Wiese NOSQL DBs 46 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenPolyglot Data Base Architectures :: Multi-Model Databases Institut für Informatik
Multi-Model Databases
Graph layer
key-value store
graph
traversal
write-heavy
transaction
REST-
based access
Dr. Lena Wiese NOSQL DBs 47 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenConclusion Institut für Informatik
Overview
1 Introduction
2 Graph Databases
3 XML Databases
4 Key-Value Stores
5 Document Stores
6 Column Stores
7 BigTable Databases
8 Polyglot Data Base Architectures
9 Conclusion
Dr. Lena Wiese NOSQL DBs 48 / 49
{ }Knowledge
Engineering
K9
Georg-August-Universität GöttingenConclusion Institut für Informatik
Conclusion
Many, many other data models than just relational tablesLots of di�erent query languages (no standards)Problems with reliability (no long-term experience, open sourcedevelopment teams)Which database you choose depends on your needs