数据库与 DBMS 分别负责什么?
- 数据库: 有组织的数据集合,使信息可以持久保存、查询和修改;
- DBMS: 数据库管理系统,向应用提供数据访问接口,并负责权限、组织、性能、备份和恢复等管理工作;
- 数据库系统: 数据、DBMS 与相关应用共同构成的整体,口语中的“数据库”经常代指这一整体;
关系表怎样描述业务实体?
| 术语 | 含义 | 例子 |
|---|
| Schema | 数据形状及约束 | 用户有哪些字段、哪些不能为空 |
| Table | 同类记录组成的表 | users |
| Row | 一条实体记录 | 某个具体用户 |
| Column | 一类属性 | email、createdAt |
- 关系: 可用主键标识一行,以外键关联其他实体,具体键与范式见 数据键、函数依赖与规范化;
- 模式强弱: 模式可以由数据库或应用约束,灵活模式也不意味着业务无需约束;
如何依据访问模式选择 SQL 或 NoSQL?
| 判断维度 | 关系数据库通常擅长 | 非关系模型通常侧重 |
|---|
| 数据组织 | 关系表与明确模式 | 文档、键值、图、时间序列等 |
| 查询 | 联接、聚合、灵活 SQL | 围绕特定访问路径优化 |
| 事务 | 常提供成熟事务与约束 | 保证范围随产品和配置变化 |
| 模式演进 | 明确迁移与兼容 | 可变字段仍需版本治理 |
| 扩展 | 可垂直,也可复制与分片 | 很多产品原生面向分布式 |
- 选择 SQL: 关系复杂、需要联接与多记录约束时,先评估关系数据库的可行性;
- 选择 NoSQL: 模型天然符合键值、文档或图访问,并且相应吞吐与分布需求重要时再选择具体产品;
- 原文修正: SQL 不等于只能垂直扩展,NoSQL 不等于没有 ACID;必须检查实际事务、索引和复制能力;
- 选型证据: 用查询形状、写入规模、延迟目标、数据一致性和运维能力比较,避免仅凭分类标签决策;
数据量增长后需要管理哪些约束?
- 容量增长: 传感器和业务事件可能持续增加数据量,需要规划保留期限及存储扩展;
- 数据安全: 权限与保护措施必须兼顾可用访问,不能以性能为理由默认开放数据;
- 实时需求: 数据更新、查询和下游分析的时效性决定处理管道和延迟预算;
- 运维成本: 备份恢复、监控调优及人才成本会随系统复杂度上升;
- 地理约束: 数据驻留、主权和跨区延迟会限制部署位置,应先明确需求再规划托管或自建;