数据库基础之NoSQL与RDBMS

    xiaoxiao2021-03-25  139

       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、安全性

    转载请注明原文地址: https://ju.6miu.com/read-16868.html

    最新回复(0)