关系型数据库和非关系型数据库
1.问题背景:
数据库是我们在开发过程中必不可少的东西,你开发一个应用或者网站肯定需要对某些数据进行存储。那么对于关系型数据库和非关系型数据库你应该怎么选择,它们适用的场景和特点有什么区别?
2.特点
-
关系型数据库在使用时需要你用SQL语言对数据的结构和类型提前定义,使用表的结构对数据进行存储;非关系型数据库可以使用列导向、文件导向、键值对或者基于图形式进行数据存储,不必拘泥于关系型数据库的表格形式,而且在数据存储之前你不需要对数据的结构进行定义,随时可以对不同结构的数据库进行插入操作。
-
关系型数据库支持垂直拓展,就是通过增加存储数据的电脑硬件环境来提高数据操作的速度;非关系型数据库支持水平拓展,就是通过分片或者增加更多的存储节点来增加安全性和操作的速度。
-
关系型数据在查询或者其他操作时严格遵循各表之间的对应关系,非关系型数据库则不用考虑这种问题,数据库中每条数据之间的关系不是很明确。
3使用场景
关系型数据库
- 对数据严格和清晰定义或者对数据的格式有明确要求的系统
- 数据库单机部署
非关系型数据库
- 数据定义不清晰、数据有很快增长趋势的系统
- 分布式的数据库部署环境