Data models are perhaps the most important part of developing software, because they have such a profound effect: not only on how the software is written, but also on how we think about the problem that we are solving.
0. There are 4 types of relationships in data modeling:
- one-to-one
- one-to-many
- many-to-one
- many-to-many
1. Relational Model Versus Document Model (SQL vs. NoSQL)
- things to consider: many-to-one and many-to-many relationships, for one-to-one and one-to-many relationships, both models can handle them easily.
- document model vs. network model
2. Query languages for Data
- declarative vs. imperative languages (SQL vs. API)
- map-reduce query
3. Graph-like Data Model
- property graphs: verteies and edges
--- each vertex consists of:
- A unique identifier
- A set of outgoing edges set of incoming edges
- A collection of properties (key-value pairs)
--- Each edge consists of:
- A unique identifier
- The vertex at which the edge starts (the tail vertex)
- The vertex at which the edge ends (the head vertex)
- A label to describe the kind of relationship between the two vertices
- A collection of properties (key-value pairs)
--- The Cypher Query Language - Cypher is a declarative query language for property graphs, created for the Neo4j graph database
- Triple-Stores and SPARQL
- RDF data model