1、数据的定义:文字、图像、地理位置信息(坐标、经纬度)等
2、数据库管理系统的定义:建立、存取和管理数据,保证数据安全和完整性的软件
3、常见的数据库管理系统:
关系型:MySQL、Oracle、SQL Server、Db2等 非关系型:MongoDB、Redis、HBase等
NoSQL=Not Only SQL,支持类似SQL的功能, 与Relational Database相辅相成。
其适用于性能较高,不使用SQL意味着没有结构化的存储要求(SQL为结构化的查询语句),没有约束之后架构更加灵活。
列存储:Hbase
键值(Key-Value)存储:Redis
图像存储:Neo4J
文档存储:MongoDB
高可扩展性、分布式计算、没有复杂的关系、低成本、架构灵活、半结构化数据。
MongoDB与RDBMS的最大区别:
没有固定的行列组织数据结构,即无需将不同类的数据放入多张表中建立对应关系并分别存储其数据,而是直接放入一份文档进行存储。
MongoDB使用JSON(JavaScript ObjectNotation)文档存储记录
JSON数据库语句可以容易被解析
Web应用大量使用
NAME-VALUE配对
二进制的JSON,JSON文档的二进制编码存储格式
BSON有JSON没有的Date和BinData
MongoDB中document以BSON形式存放
{ _id: ObjectID("1"), username: “Silence”, regDate: “10-10-2015”, scores: { math: "80", english: "200" } }
存储引擎比较
MySQL InnoDB |
MongoDB MAPI |
MongoDB WiredTiger |
|
事务 |
YES |
NO |
NO |
锁粒度 |
ROW-level行级锁 |
Collection-level |
Document-level |
Geospatial |
YES |
YES |
YES |
MVCC |
YES |
NO |
NO |
Replication |
YES |
YES |
YES |
外键 |
YES |
NO |
NO |
数据库集群 |
NO |
YES |
YES |
B-TREE索引 |
YES |
YES |
YES |
全文检索 |
YES |
YES |
YES |
数据压缩 |
YES |
NO |
YES |
存储限制 |
64TB |
NO |
NO |
表分区 |
YES |
YES(分片) |
YES(分片) |