Last active
December 23, 2018 15:03
-
-
Save jendiamond/b76b8db82be1e1929a49b58391d0612a to your computer and use it in GitHub Desktop.
Revisions
-
jendiamond revised this gist
Mar 31, 2017 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,4 +1,5 @@ [Key Points from NoSQL Distilled](https://martinfowler.com/articles/nosqlKeyPoints.html) Modeling Data for NoSQL Document Databases https://www.youtube.com/watch?v=-o_VGpJP-Q0 --- -
jendiamond revised this gist
Mar 31, 2017 . 1 changed file with 4 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,3 +1,7 @@ [Key Points from NoSQL Distilled](https://martinfowler.com/articles/nosqlKeyPoints.html) --- ### [GOTO 2012 • Introduction to NoSQL • Martin Fowler](https://www.youtube.com/watch?v=qI_g07C_Q5I) This presentation was recorded at GOTO Aarhus 2012 -
jendiamond revised this gist
Mar 31, 2017 . 2 changed files with 58 additions and 31 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,58 @@ ### [GOTO 2012 • Introduction to NoSQL • Martin Fowler](https://www.youtube.com/watch?v=qI_g07C_Q5I) This presentation was recorded at GOTO Aarhus 2012 Martin Fowler - Author, Speaker, Consultant & General Loud-mouth on Software Development #### ABSTRACT Martin gives a rapid introduction to NoSQL databases: where they came from, the nature of the data models they use, and the different way you have to think about consistency. From this he outlines what kinds of circumstances you should consider using them, why they will not make relational databases obsolete, and the important consequence of polyglot persistence. [Domain Driven Design Video - Eric Evans](https://www.youtube.com/watch?v=7MaYeudL9yo) [Domain Driven Design Book - Eric Evans](https://www.amazon.com/Domain-Driven-Tacking-Complexity-Software/dp/8131724468/ref=sr_1_3?s=books&ie=UTF8&qid=1490941928&sr=1-3&keywords=domain+driven+design+eric+evans) Document - MongoDb RavenDb CouchDb Key-Value - Redis Riak Project Voldemort Column n- Family - Cassandra Apache/Hbase Graph - Neo4j Aggregate Oriented - Relational ### [Graph Database](https://en.wikipedia.org/wiki/Graph_database) In computing, a graph database is a database that uses graph structures for semantic queries with nodes, edges and properties to represent and store data. A key concept of the system is the graph (or edge or relationship), which directly relates data items in the store. The relationships allow data in the store to be linked together directly, and in many cases retrieved with one operation. Graph databases, by design, allow simple and fast retrieval of complex hierarchical structures that are difficult to model in relational systems. Graph databases are similar to 1970s network model databases in that both represent general graphs, but network-model databases operate at a lower level of abstraction[1] and lack easy traversal over a chain of edges. The underlying storage mechanism of graph databases can vary. Some depend on a relational engine and store the graph data in a table. Others use a key-value store or document-oriented database for storage, making them inherently NoSQL structures. Most[according to whom?] graph databases based on non-relational storage engines also add the concept of tags or properties, which are essentially relationships lacking a pointer to another document. This allows data elements to be categorized for easy retrieval en masse. Graph databases are based on graph theory, and employ nodes, edges, and properties. Nodes represent entities such as people, businesses, accounts, or any other item to be tracked. They are roughly the equivalent of the record, relation, or row in a relational database, or the document in a document database. Edges, also termed graphs or relationships, are the lines that connect nodes to other nodes; they represent the relationship between them. Meaningful patterns emerge when examining the connections and interconnections of nodes, properties, and edges. Edges are the key concept in graph databases, representing an abstraction that is not directly implemented in other systems. Properties are germane information that relate to nodes. For example, if Wikipedia were one of the nodes, it might be tied to properties such as website, reference material, or word that starts with the letter w, depending on which aspects of Wikipedia are germane to a given database. --- ### [Atomic updates](https://en.wikipedia.org/wiki/Atomicity_(database_systems)) An atomic transaction is an indivisible and irreducible series of database operations such that either all occur, or nothing occurs. A guarantee of atomicity prevents updates to the database occurring only partially, which can cause greater problems than rejecting the whole series outright. ### [ACID Transactions](https://en.wikipedia.org/wiki/ACID) In computer science, ACID (Atomicity, Consistency, Isolation, Durability) is a set of properties of database transactions. In the context of databases, a sequence of database operations that satisfies the ACID properties and, thus, can be perceived as single logical operation on the data is called a transaction. For example, a transfer of funds from one bank account to another, even involving multiple changes such as debiting one account and crediting another, is a single transaction. Offline Lock - Give each update a version stamp sharding data replicate data availibility over consistency Cap Theorem (Pick 2) - Consistency - Availibility - PartitionTolerance Large scale data This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,31 +0,0 @@ -
jendiamond created this gist
Mar 31, 2017 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,31 @@ ### [GOTO 2012 • Introduction to NoSQL • Martin Fowler](https://www.youtube.com/watch?v=qI_g07C_Q5I) This presentation was recorded at GOTO Aarhus 2012 Martin Fowler - Author, Speaker, Consultant & General Loud-mouth on Software Development #### ABSTRACT Martin gives a rapid introduction to NoSQL databases: where they came from, the nature of the data models they use, and the different way you have to think about consistency. From this he outlines what kinds of circumstances you should consider using them, why they will not make relational databases obsolete, and the important consequence of polyglot persistence. [Domain Driven Design Video - Eric Evans](https://www.youtube.com/watch?v=7MaYeudL9yo) [Domain Driven Design Book - Eric Evans](https://www.amazon.com/Domain-Driven-Tacking-Complexity-Software/dp/8131724468/ref=sr_1_3?s=books&ie=UTF8&qid=1490941928&sr=1-3&keywords=domain+driven+design+eric+evans) Aggregate Oriented - Relational Graph Db ### [Atomic updates](https://en.wikipedia.org/wiki/Atomicity_(database_systems)) An atomic transaction is an indivisible and irreducible series of database operations such that either all occur, or nothing occurs. A guarantee of atomicity prevents updates to the database occurring only partially, which can cause greater problems than rejecting the whole series outright. ### [ACID Transactions](https://en.wikipedia.org/wiki/ACID) In computer science, ACID (Atomicity, Consistency, Isolation, Durability) is a set of properties of database transactions. In the context of databases, a sequence of database operations that satisfies the ACID properties and, thus, can be perceived as single logical operation on the data is called a transaction. For example, a transfer of funds from one bank account to another, even involving multiple changes such as debiting one account and crediting another, is a single transaction.