已发布文章
数据库与存储
在数据工程中, 数据书需要经历采集, 保存, 处理, 分析和应用等多个环节. 数据库存储系统为这些环节提供基础支持: 它们决定数据如何保存, 如何组织, 如何访问, 以及如何在并发操作和系统故障下得到保护.
为什么需要数据库与存储系统?
假设我们需要保存一个在线商店的订单数据. 最初, 可以使用CSV文件记录订单编号, 用户编号, 商品, 金额和下单时间. 当数据量较小, 只有一个人操作时, 这种方法可能已经足够. 但随着需求增长, 会出现更多问题:
- 查询: 如何快速找到某位用户过去一年的订单?
- 更新: 如何修改订单状态,并避免影响其他记录?
- 并发: 多个用户或程序同时修改数据时,如何避免冲突?
- 正确/可靠/安全性: 如何避免重复订单、无效金额或不完整的操作 / 程序中断或设备故障后,数据能否恢复 / 如何限制不同用户能够读取和修改的数据?
本质上这涉及了两类互相关联的问题:
- 存储问题: 数据以什么形式保存在什么位置,如何读写和持久保存?
- 管理问题: 数据如何组织、查询、更新,并维持必要的约束和访问规则?
基本概念
数据库(Database)
数据库就是按照一定方式组织, 用于存储和访问分相关数据合集. 它强调数据之间的组织关系
数据模型(Data Model)
数据模型是表达信息及其关系的一种方式, 决定了何种数据操纵是天然且高效的. 它定义了数据结构, 结构间的关系/检索/修改数据的操作以及有效数据的约束(如关系型模型中的元组、主外键、连接与完整性约束).