数据库相关概念
数据库系统是什么?
- 数据库(Database)简称DB:能高效保存数据的仓库。
- 数据库管理系统(database management system)简称DBMS:是数据库系统的核心,是管理数据库的软件。DBMS拥有一个数据字典(系统表),用来存储它所管理的所有对象的信息,关于数据的数据称为元数据(metadata)。
- 数据库管理员(Database Administrator)简称DBA:是从事管理和维护(DBMS)的相关工作人员的统称。
数据库系统: 是由数据库、数据库管理系统、数据库管理员、计算机的物理设备等组成的数据库系统就可以正常运转。
什么是关系型数据库?:指用二维表格形式来组织数据,一个数据库由许多个表组成,使用外键来使多个表之间存在联系。
常见的关系型数据库:Oracle,SQL Server,MySQL,PostgreSQL。
什么是非关系型数据库?:指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定,每个表都是独立的存在,且一般不保证遵循ACID原则。非关系型数据库不能替代关系型数据库,只能作为关系型数据库的一个补充。
常见的非关系型数据库: Redis,HBase,MongoDB,InfoGrid。
非关系型数据库与关系型数据库的区别展示图:
关系型数据库是基于ACID原则的,而非关系型数据库是基于CAP原则的。
ACID原则:
- 原子性(Atomicity):指一个事务是一个不可分割的工作单位,其中的操作要么都做,要么都不做;如果事务中一个SQL语句执行失败,则已执行的语句也必须回滚,数据库退回到事务前的状态。
- 一致性(Consistency):指事务执行结束后,数据库的完整性约束没有被破坏,事务执行的前后都是合法的数据状态。
- 隔离性(Isolation):指事务内部的操作与其他事务是隔离的,并发执行的各个事务之间不会出现交错执行或干扰其他事物的情况。
- 持久性(Durability):指事务一旦提交,它对数据库的改变是永久性的,其他操作或故障不应该对其有任何影响。
CAP原则:
- Consistency(一致性):在分布式系统中的所有数据备份,在同一时刻是否同样的值,在进行写操作后,读的返回值必须和写的一样。
- Availability(可用性):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求,只要收到用户的请求,服务器就必须给出回应。
- Partition tolerance(分区容错性)大多数分布式系统都分布在多个子网络。每个子网络就叫做一个区(partition),区间通信可能失败。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
注意:CAP原则(理论)最多只能满足两个特性,三者不可得同时兼得。