#基础概念# #入门
数据库的主要分类
-
关系型数据库(RDBMS)
- 数据以表格形式存储,通过预定义的关系模型建立数据间的连接,使用SQL作为查询语言。
- 常见的例子包括MySQL、Oracle、SQL Server、PostgreSQL、IBM DB2等。
-
非关系型数据库(NoSQL)
- 不依赖于固定的表结构,能灵活适应不同类型的数据存储需求。
- 键值存储(Key-Value Stores):如Redis,适合简单的键值对存储,用于高速缓存和会话存储等。
- 文档数据库(Document-oriented):如MongoDB,存储半结构化的文档,适用于JSON、XML等格式数据。
- 列族数据库(Column Family Databases):如Cassandra、HBase,优化了海量数据的列式存储和查询。
- 图数据库(Graph Databases):如Neo4j、JanusGraph,用于表示和查询复杂的实体间关系。
-
分布式数据库和数仓
- 分布式文件系统(Distributed File Systems):例如Hadoop Distributed File System (HDFS),专门用于存储大规模非结构化数据,支持大数据处理框架如Spark。
- 分布式NoSQL数据库:专为处理大规模数据集设计,具备水平扩展能力,比如Apache Cassandra、MongoDB等。
- 列式存储数据库:如Apache HBase,适用于大数据分析,特别是在OLAP(在线分析处理)场景下。
- SQL-on-Hadoop解决方案:如Hive,提供SQL接口访问HDFS上的数据。
数据库的特点与适用场景
关系型数据库(RDBMS)
特点:基于关系理论,数据以表格的形式存储,各表之间通过预定义的关系进行关联,支持ACID特性(原子性、一致性、隔离性、持久性)。查询语言通常是SQL,易于理解和操作,适合结构化数据的管理。
适用场景:适用于需要高度事务一致性和复杂查询操作的场景,如金融交易系统、ERP系统、电子商务后台等。
非关系型键值存储(Key-Value)
特点:简单快速,每个item由一个唯一的键标识,其对应的值可以是任意类型的数据。查询速度快,但不支持复杂查询。
适用场景:适用于内容缓存、会话存储、购物车存储等需要高性能读写的应用场景。
文档数据库
特点:文档型数据库以文档形式存储数据,每个文档包含多个字段和值,可以有内部嵌套结构,如JSON或XML格式。支持丰富的查询方式。
适用场景:适用于存储半结构化数据,如用户信息、产品描述等,常见于Web应用程序和移动应用。
列族数据库
特点:按列族存储数据,适合大量数据的批量读取和分析,尤其是大数据场景。
适用场景:大数据分析、日志存储分析、时间序列数据存储等。
图数据库
特点:以节点、边和属性构成图的方式存储数据,便于表达复杂的关系网络。
适用场景:社交网络、推荐系统、知识图谱等领域。
大数据分布式文件系统
特点:如HDFS,适合存储大规模非结构化数据,支持高容错性和大规模数据并行处理。
适用场景:大数据分析、机器学习训练数据存储等。
分布式NoSQL数据库
特点:设计上支持水平扩展,可以在多台服务器上分散存储和处理数据,具有高可用性和高可扩展性。
适用场景:大型网站的用户行为记录、日志数据存储、物联网设备数据收集等需要高并发和海量数据存储的场景。
时序数据库
特点:专门为时间序列数据设计的数据库,支持高效的时间戳索引和聚合查询。
适用场景:IoT设备监控、运维监控、证券交易记录、网站点击流分析等场景。
全文搜索
特点:如Elasticsearch,主要用于快速搜索和分析大规模的全文本数据。
适用场景:站内搜索、日志分析、企业级搜索、数据分析报表等。