Skip to content

Commit c809e65

Browse files
committed
updating ordering for data topics
1 parent 3813fa3 commit c809e65

File tree

3 files changed

+150
-2
lines changed

3 files changed

+150
-2
lines changed

feeds/all.atom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<feed xmlns="http://www.w3.org/2005/Atom"><title>Matt Makai</title><link href="http://www.fullstackpython.com/" rel="alternate"></link><link href="http://www.fullstackpython.com/feeds/all.atom.xml" rel="self"></link><id>http://www.fullstackpython.com/</id><updated>2014-08-12T12:50:49Z</updated></feed>
2+
<feed xmlns="http://www.w3.org/2005/Atom"><title>Matt Makai</title><link href="http://www.fullstackpython.com/" rel="alternate"></link><link href="http://www.fullstackpython.com/feeds/all.atom.xml" rel="self"></link><id>http://www.fullstackpython.com/</id><updated>2014-08-13T09:27:55Z</updated></feed>

source/content/pages/04-data/0401-databases.markdown

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
title: Databases
22
category: page
33
slug: databases
4-
sort-order: 041
4+
sort-order: 0401
55
choice1url: /no-sql-datastore.html
66
choice1icon: fa-inbox
77
choice1text: What about non-relational data stores hipsters tell me to use?
Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
title: NoSQL Data Stores
2+
category: page
3+
slug: no-sql-datastore
4+
sort-order: 0402
5+
choice1url: /databases.html
6+
choice1icon: fa-hdd-o
7+
choice1text: Tell me more about standard relational databases.
8+
choice2url: /cascading-style-sheets.html
9+
choice2icon: fa-css3 fa-inverse
10+
choice2text: My app is running but looks awful. How do I style the interface?
11+
choice3url: /javascript.html
12+
choice3icon: fa-html5 fa-inverse
13+
choice3text: How do I create a better browser experience with JavaScript?
14+
choice4url:
15+
choice4icon:
16+
choice4text:
17+
18+
19+
# NoSQL Data Stores
20+
Relational databases store the vast majority of web application
21+
persistent data. However, there are several alternative classifications of
22+
storage representations.
23+
24+
1. Key-value pair
25+
2. Document-oriented
26+
3. Column-family table
27+
4. Graph
28+
29+
These persistent data storage representations are commonly used to augment,
30+
rather than completely replace, relational databases.
31+
32+
33+
## Key-value Pair
34+
Key-value pair data stores are based
35+
on [hash map](http://en.wikipedia.org/wiki/Hash_table) data structures.
36+
37+
38+
### Key-value pair data stores
39+
* [Redis](http://redis.io/) is an open source in-memory key-value pair data
40+
store. Redis is often called "the Swiss Army Knife of web application
41+
development." It can be used for caching, queuing, and storing session data
42+
for faster access than a traditional relational database, among many other
43+
use cases.
44+
45+
46+
### Key-value pair resources
47+
* "[How To Install and Use Redis](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-redis)"
48+
is a guide for getting up with the extremely useful in-memory data store.
49+
50+
51+
## Document-oriented
52+
A document-oriented database provides a semi-structured representation for
53+
nested data.
54+
55+
56+
### Document-oriented data stores
57+
* [MongoDB](http://www.mongodb.org/) is an open source document-oriented
58+
data store with a Binary Object Notation (BSON) storage format that is
59+
JSON-style and familiar to web developers.
60+
61+
* [Riak](http://basho.com/riak/) is an open source distributed data store
62+
focused on availability, fault tolerance and large scale deployments.
63+
64+
* [Apache CouchDB](http://couchdb.apache.org/) is also an open source project
65+
where the focus is on embracing RESTful-style HTTP access for working with
66+
stored JSON data.
67+
68+
### Document-oriented data store resources
69+
* [MongoDB for startups](http://www.optinidus.com/blogs/guide-to-mongodb-for-startups/)
70+
is a guide about using non-relational databases in green field environments.
71+
72+
73+
## Column-family table
74+
A the column-family table class of NoSQL data stores builds on the key-value
75+
pair type. Each key-value pair is considered a row in the store while the
76+
column family is similar to a table in the relational database model.
77+
78+
79+
### Column-family table data stores
80+
* Apache [HBase](https://hbase.apache.org/)
81+
82+
* Apache [Cassandra](http://cassandra.apache.org/)
83+
84+
85+
## Graph
86+
A graph database represents and stores data in three aspects: nodes, edges,
87+
and properties.
88+
89+
A *node* is an entity, such as a person or business.
90+
91+
An *edge* is the relationship between two entities. For example, an
92+
edge could represent that a node for a person entity is an employee of a
93+
business entity.
94+
95+
A *property* represents information about nodes. For example, an entity
96+
representing a person could have a property of "female" or "male".
97+
98+
99+
### Graph data stores
100+
* [Neo4j](http://www.neo4j.org/) is one of the most widely used graph
101+
databases and runs on the Java Virtual Machine stack.
102+
103+
* [Cayley](https://github.com/google/cayley) is an open source graph data
104+
store written by Google primarily written in Go.
105+
106+
107+
### Graph data store resources
108+
* [Introduction to Graph Databases](http://www.slideshare.net/maxdemarzi/introduction-to-graph-databases-12735789)
109+
covers trends in NoSQL data stores and compares graph databases to other
110+
data store types.
111+
112+
113+
## NoSQL third-party services
114+
* [MongoHQ](http://www.mongohq.com/home) provides MongoDB as a service. It's
115+
easy to set up with either a standard LAMP stack or on Heroku.
116+
117+
118+
## NoSQL data store resources
119+
* [CAP Theorem overview](http://natishalom.typepad.com/nati_shaloms_blog/2010/10/nocap.html)
120+
121+
* [NoSQL Weekly](http://www.nosqlweekly.com/) is a free curated email
122+
newsletter that aggregates articles, tutorials, and videos about
123+
non-relational data stores.
124+
125+
* [NoSQL comparison](http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis)
126+
is a large list of popular, BigTable-based, special purpose, and other
127+
datastores with attributes and the best use cases for each one.
128+
129+
130+
## NoSQL data stores learning checklist
131+
<i class="fa fa-check-square-o"></i>
132+
Understand why NoSQL data stores are better for some use cases than relational
133+
databases. In general these benefits are only seen at large scale so they may
134+
not be applicable to your web application.
135+
136+
<i class="fa fa-check-square-o"></i>
137+
Integrate Redis into your project for a speed boost over slower persistent
138+
storage. Storing session data in memory is generally much faster than saving
139+
that data in a traditional relational database that uses persistent storage.
140+
Note that when memory is flushed the data goes away so anything that needs to
141+
be persistent must still be backed up to disk on a regular basis.
142+
143+
<i class="fa fa-check-square-o"></i>
144+
Evaluate other use cases such as storing transient logs in document-oriented
145+
data stores such as MongoDB.
146+
147+
148+
### What's next?

0 commit comments

Comments
 (0)