Database:对现实世界一些事物建模的、具有内部联系的数据。
Database Management System(DBMS):管理数据库的软件,早期的DBMS逻辑层和物理层高度耦合。
Data Model:描述数据库中数据形式的模型
- Relational Model:SQL
- Key/Value、Graph、Document、Column-family:NoSQL
Schema(方案):使用一个具体的Data Model描述数据的组成形式
在DBMS出现之前,我们使用传统方式管理数据,会有如下问题:
- 数据完整性(冗余和不一致问题)
- 实现方式
- 程序稳定性
Ralational Model:早期的DBMS物理逻辑层高度耦合,Ted Codd在1970年抽离了逻辑层提出了关系模型的概念。
- 用“ relations ”这种简单的数据结构储存数据
- 通过高级语言访问数据(如SQL语言)
- 不关注物理存储方式
一个Relational Model定义了三个概念:
- Structure:数据库中的内容和它们之间的关系。
- Integrity:数据库中的内容必须满足一些限制。
- Manipulation:如何访问和修改数据库中的内容(提供api接口)。
Data Manipulation Language(DML):对数据进行修改的语句,如增删改查。
- Procedural(Relational Algebra):请求指明了对数据的操作方式(关注实现方法)。
- Non-Procedural / Declarative (Relational Calculus):请求只给出需要什么数据(不关注实现方法)
Data Definition Language(DDL):对数据结构进行修改的语句,如建表、删表...
Relational Algebra:Select选择、Projection投影、Union联合、Intersection交集、Difference补集、Product笛卡尔积、Join