跳到主要内容

数据库与数据模型选择

数据库与 DBMS 分别负责什么?​

  • 数据库: 有组织的数据集合,使信息可以持久保存、查询和修改;
  • DBMS: 数据库管理系统,向应用提供数据访问接口,并负责权限、组织、性能、备份和恢复等管理工作;
  • 数据库系统: 数据、DBMS 与相关应用共同构成的整体,口语中的“数据库”经常代指这一整体;

关系表怎样描述业务实体?​

术语含义例子
Schema数据形状及约束用户有哪些字段、哪些不能为空
Table同类记录组成的表users
Row一条实体记录某个具体用户
Column一类属性email、createdAt
  • 关系: 可用主键标识一行,以外键关联其他实体,具体键与范式见 数据键、函数依赖与规范化;
  • 模式强弱: 模式可以由数据库或应用约束,灵活模式也不意味着业务无需约束;

如何依据访问模式选择 SQL 或 NoSQL?​

判断维度关系数据库通常擅长非关系模型通常侧重
数据组织关系表与明确模式文档、键值、图、时间序列等
查询联接、聚合、灵活 SQL围绕特定访问路径优化
事务常提供成熟事务与约束保证范围随产品和配置变化
模式演进明确迁移与兼容可变字段仍需版本治理
扩展可垂直,也可复制与分片很多产品原生面向分布式
  • 选择 SQL: 关系复杂、需要联接与多记录约束时,先评估关系数据库的可行性;
  • 选择 NoSQL: 模型天然符合键值、文档或图访问,并且相应吞吐与分布需求重要时再选择具体产品;
  • 原文修正: SQL 不等于只能垂直扩展,NoSQL 不等于没有 ACID;必须检查实际事务、索引和复制能力;
  • 选型证据: 用查询形状、写入规模、延迟目标、数据一致性和运维能力比较,避免仅凭分类标签决策;

数据量增长后需要管理哪些约束?​

  • 容量增长: 传感器和业务事件可能持续增加数据量,需要规划保留期限及存储扩展;
  • 数据安全: 权限与保护措施必须兼顾可用访问,不能以性能为理由默认开放数据;
  • 实时需求: 数据更新、查询和下游分析的时效性决定处理管道和延迟预算;
  • 运维成本: 备份恢复、监控调优及人才成本会随系统复杂度上升;
  • 地理约束: 数据驻留、主权和跨区延迟会限制部署位置,应先明确需求再规划托管或自建;