forked from codefellows/seattle-javascript-401d30
-
Notifications
You must be signed in to change notification settings - Fork 0
08 Data Modeling
Jagdeep Singh edited this page Jun 19, 2019
·
1 revision
- Relational Databases (RDBMS) vs. non-relational or distributed database.
- Table based databases wheras NoSQL databases are document based, key-value pairs, graph databases or wide-column stores.
- Predefined schema vs dynamic schema
- Vertically scalable vs horizontally scalable. NoSQL is easier to scale since you just have to throw more servers at the problem. SQL requires getting hardware to peek performance and that has a limit.
-
SQL vs UnQL (Unstructured Query Language)
- syntax for UnQL varies from database to database
- Good fit for complex query intensive environment vs not very powerful queries and no standard interfaces to perform complex queries
- Not best fit for heirarchical data storage, NoSQL fits better for because it follows the key-value pair way of storing data similar to JSON data. NoSQL is highly preferred for big data.
- Best fit for high transactional based applications, SQL is more stable and promises the atomicity as well as integrity of the data.
- Support: SQL has excellent support available vs some NoSQL databases rely on community support, limited outside experts.
- Emphasizes on ACID properties (Atomicity, Consistency, Isolation and Durability) vs. Brewers Cap theorem (Consistency, Availability and Partition tolerance)
- For DB types: SQL databases can be classified on a high-level as open-source or close-sourced from commercial vendors. NoSQL databases can be classified on the basis of way of storing data as graph databases, key-value store databases, document store databases, column store database and XML databases.
- database examples:
- SQL databases: MySql, Oracle, Sqlite, Postgres and MS-SQL.
- NoSQL databases: MongoDB, BigTable, Redis, RavenDb, Cassandra, Hbase, Neo4j and CouchDb