database
参考链接:
定义:
Relational Databse:
又名:
- Relational Database Management Systems (RDBMS)
- SQL databases
使用情况:Microsoft SQL,Oracle,My SQL
- 大型企业:RDBM
- 联网应用:MySQL
应用场景:
- OLTP,用户可以对数据进行operation
Non-relational databases
又名:
使用情况:MongoDB, DocumentDB, Cassandra, Coachbase, HBase, Redis, and Neo4j
独特的Hadroop:
数据库的长短板:
VS | Relational Databases | Non-relational/NoSQL |
---|---|---|
优点 | 处理结构化数据 | 处理半结构化和无结构的数据 |
支持’joins’ 和ACID | 部分支持ACID | |
一体化的,有大的生态系统 | 模式自由 | |
系统能表达的关系是有约束的 | 高度可用的 | |
SQL支持,并且有无限的索引 | 许多NOAQL数据库开源还免费 | |
缺点 | 并发和数据大小有限制(水平方向) | ‘joins’支持有限 |
规范化数据,数据之间的连接速度慢 | 非规范化,需要大量的更新 | |
半结构化数据无法处理 | 内置数据不完整,需要手写代码 | |
索引有限 |
NoSQL:
NOSQL可以使用数据结构: 树形:
- xml
- json
图:
- Key-Value Stores: [Redis]
- Used for cache, queues fit in memory, rapidly changing data, and store blob data.
- Examples: sensor data, shopping cart, leaderboards, graph data bases, stock prices. Fastest “performance.”
Document Stores: [MongoDB]
- Have a flexible schemas, dynamic queries, defined indexes, good performance on big DB.
- Examples: order data, customer data, log data, product catalog, user generated content (chat sessions, tweets, blog posts, ratings, comments). Fastest development.
Wide-Column Stores: [Cassandra]
- Come with real-time querying of random (non-sequential) data, huge number of writes, sensors.
- Examples: Web analytics, time series analytics, real-time data analysis, banking industry.
数据选择:
- RDBMS is for enterprise OLTP and ACID compliance, databases under 1 terabyte.
- NoSQL is for scaled OLTP and JSON documents.
- Hadoop is for Big Data Analytics