|
本帖最后由 pastime_Wang 于 2014-11-19 14:02 编辑
1.非关系型数据库主要指的是NoSQL数据库,比如键值数据库、列存数据库、图存数据库以及文档数据库四大类,请分别举例说明,结合NoSQL数据库的应用场景谈谈它与关系型数据库的优势。
关系型数据库(RDBMS) : 采用了关系模型(也就二维表)来组织数据的数据库
非关系型数据库(NoSQL) : 分布式的,且一般不保证遵循ACID原则的数据存储系统
Nosql大部分都是针对某种特定需求来设计的,比较有名的如:
1) Key-Value db : 高性能"并发"读写,典型代表 Redis
2) doc db : 大数据量的查询,典型代表 MongoDB
3) distributed database (ddb) : 高扩展性和可用性,典型代表 HANA
---------------------------------------------------------------------
2.关系型数据库包含了传统关系数据库系统以及NewSQL数据库,请分别举例谈谈您对它们的理解。
目前流行的 RDBMS 既包含 OldSQL 也包含 NewSQL.
OldSQL 主要特点 : 典型的遵循ACID原则,大大减低了数据冗余和数据不一致; 能够使用标准SQL进行操作和维护
NewSQL 主要特点: 不仅具有NoSQL对海量数据的存储管理能力,还保持了OldSQL支持ACID,关系数据模型和SQL等特性, 更适合目前的互联网应用
---------------------------------------------------------------------
3.谈到云端数据库,大家会想到Amazon的关系型数据库RDS,没错,对用户而言,无需在本机安装数据库,也不需要搭建自己的数据管理集群,只需要使用服务提供商提供的数据库服务即可。
最常见的云端数据库有哪几种?请谈谈它们的优势和劣势。
小编这个概念理解上有误,不是“云数据库”,而是提供“数据库服务的云”,云本身是服务!
优势: 1) 所见即所得 2) 按需配置 3) 自助服务 4) 省钱,省事,省力
劣势: 1) 安全性 2) 适应性
主要数据库云服务: 阿里云RDS, Amazon RDS, Microsoft Azure SQL
---------------------------------------------------------------------
4.最为典型的两款开源文档数据库是CouchDB和MongoDB,它们有哪些相似之处?有哪些不同点?比如存储的数据类型、数据库查询机制?
主要相同点:
1) 数据存储格式 JSON型 2) 使用JavaScript进行操作 3) 支持 MapReduce 4) 支持单个文档的并行修改
主要异同点:
1) 运行机制 CouchDB - MVCC / MongoDB - update-in-place
2) 扩展性 CouchDB - Relication / MongoDB - Sharding
3) MapReduce CouchDB - 普通查询 / MongoDB - 数据统计操作
4) 性能 CouchDB - 面向功能 / MongoDB - 面向性能
---------------------------------------------------------------------
5.MongoDB常用的存储模式有key-value存储、文档存储、列存储、图形存储、XML存储等等,作为典型的文档数据库MongoDB,它的索引在概念上和传统关系数据库有没有相似之处?
MongoDB 索引与传统的RDBMS索引类似,经验法则也差不多, 但是MongoDB 有自己特殊的索引,如子文档(组合)索引, 符合地理索引等
创建索引需要注意索引的"方向",来达到最优! |
|