您的位置:首页 > 数据库

数据库基础之NoSQL与RDBMS

2017-03-10 15:26 162 查看
   NoSQL(Not  Only  SQL)

   NoSQL非关系型数据库,用于超大规模数据存储。

   1、代表着不仅仅是SQL

   2、 没有声明型查询语言

   3、没有预定义模式

   4、键-值对存储,列存储,文档存储,图形数据库

   5、最终一致性,而非ACID属性

   6、非结构化和不可预知的数据

   7、CAP定理

   8、高性能,高可用性和可伸缩性

   优点:高可扩展性;分布式计算;低成本;架构的灵活性,半结构化数据;没有复杂的关系

   缺点:没有标准化;有限的查询功能;最终一致是不直观的程序

    NoSQL数据库分类

      列存储:Hbase、Cassandra、Hypertable

     文档存储:MongoDB、CouchDB

     key-value存储:Tokyo Cabinet/Tyrant 、Berkeley DB 、MemcacheDB、 Redis

     图形存储:Neo4J、FlockDB

     对象存储:db4o、Versant

     xml数据库:Berkeley DB XML 、 BaseX

     

     RDBMS

      RDBMS关系型数据库

     1、高度组织化结构化数据

     2、结构化查询语句(SQL)

     3、数据和关系都存储在单独的表中

     4、数据操纵语言,数据定义语言

     5、严格的一致性

     6、基础事务

     

     ACID (Atomicity+Consistency+Isolation+Durability)

     1、A(Atomicity)原子性

     事务里所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,要么一个操作失败,整个事务就失败

    2、C(Consistency)一致性

    数据要一直处于一致状态,事务的运行不会改变数据库原本的一致性约束

    3、i(Isolation)独立性

    事务之间不会互相影响

    4、D(Durability)持久性

    一旦事务提交后,他所做的修改将会永久保存 在数据库上

  

  CAP定理(CAP theorem)     

  
CAP定理,也称为布鲁尔定理,指出对于一个分布式计算系统来说,不可能同时满足以下三点:

     1、一致性(Consistency)(所有节点在同一时间具有相同的数据)        

     2、可用性(Availability)(保证每个请求不管成功或者失败都有响应)

     3、分隔容忍(Partition  tolerance)(系统中任意信息的丢失或失败不会影响系统的继续运行)

     核心:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个

     根据CAP原理分类NoSQL数据库

     1、CA-单点集群,满足一致性,可用性的系统,通常在可扩展性上不强大

     2、CP-满足一致性,分区容忍性的系统,通常性能不是特别高

     3、AP-满足可用性,分区容忍性的系统,通常可能对一致性要求低一些

     BASE

   BASE(Basically Available,Soft-state,Eventually Consistent),是NoSQL数据库通常对可用性及一致性的弱要求原则

    Basically  Available - 基本可用

    Soft-state - 软状态/柔性事务。“Soft-state”无连接,"Hard-state" 面向连接

    Eventually Consistency - 最终一致性

    

   分布式系统

  分布式系统:由多台计算机和通信的软件组件通过计算机网络连接(本地网络和广域网)组成。分布式系统具有高度的内聚性和透明性

   分布式计算

  优点:

   1、可靠性(容错):一台服务器的系统崩溃并不影响到其余的服务器

   2、可扩展性:可以根据需求增加更多的机器

   3、资源共享

   4、灵活性:易于安装,实施,调试

   5、更快的速度

   6、开放系统

   7、更高的性能

   缺点:

   1、故障排除:故障排除及问题诊断

   2、软件:更少的软件支持是分布式计算系统的主要缺点

   3、网络:网络基础设施的问题,如:传输问题,高负载,信息丢失等

   4、安全性
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库