什么是数据库?常见的数据库类型有哪些?
首先,什么是数据库?把它想象成一个数字游乐场,我们以结构化的方式组织和存储大量信息。现在,让我们来谈谈数据库的主要类型。
关系型数据库:
想象一下,这就像在整齐的表中组织数据一样。把它想象成乖巧的兄弟姐妹,让一切都井井有条。
最为常见的莫过于关系型数据库,通过二维表格来存放数据。支持事务、关联查询等操作。典型代表的关系型数据库有:开源的MySQL、微软的SQLServer、甲骨文的Oracle。
OLAP DB:
OLAP DB:联机分析处理 (OLAP) 是一种针对报告和分析目的而优化的技术。
偏向数据分析的OLAP数据库,其特点是:数据量巨大、分布式存储、偏向数据计算、聚合和转换,俗称的数据仓库/大数据分析。主流开源OLAP数据库引擎有:Hive、Sparksql、Druid、Clickhouse、Greeplum等。发散一下:会用到MapReduce一种编程模型,用于大规模数据集(大于1TB)的并行运算),Map表示映射,Reduce表示归约,思想来源函数式编程语言。搭建好之后,不管背后存了多少TB/多少GB/甚至PB数据,只需要在应用层发起一条查询,就会有一堆服务器集群帮你计算(厉害吧 _)。
NoSQL 数据库:
对传统的 SQL 方式说“不”。NoSQL 数据库有四种令人兴奋的风格:
Graph DB:
想想社交网络,人与人之间的关系最为重要。这就像映射谁和谁是朋友一样。
键值存储数据库:
它就像一个百宝箱,每个项目都有其唯一的密钥。找到你需要的东西是小菜一碟。
特点:在一个无序的键值集合中通过 key-value 键-值对 存放你的数据。很明显,key是唯一的、不能重复的(但value可以重复),无序(即不支持key排序)。那有什么好处呢?好处就是搜索查找指定的key非常棒!常见的就有高效缓存 Redis、Memcache等,也俗称NoSQL。Redis支持的value数据类型更为丰富,有:字符串、list列表、哈希表、有序集合。Memcache数据类型则较为单一。
文档数据库:
文档数据库是一种以类似于 JSON 的格式存储信息的数据库。它与传统数据库不同,用于处理文档而不是表格。
Column DB:
想象一下,像厨师准备食材一样对数据进行切片和切块。它既高效又快速。