《 MongoDB进阶之路第一篇-NoSQL之MongoDB简介 》
说在前面的废话
在开篇前,多一句废话,望不要介意:祝各位查看到本篇的攻城狮们 -> 国庆节快乐!!!
什么是RDBMS?
RDBMS 即关系数据库管理系统 ( Relational Database Management System ),是将数据组织为相关的行和列的系统,而管理关系数据库的计算机软件就是关系数据库管理系统,常用的关系型数据库软件有DB2、Oracle、MySQL、SQL Server等。
关系型数据库中的事务(ACID)
1、原子性 (A、Atomicity)
原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。
例如:
银行转账,从 A 账户转 100 元至 B 账户,分为两个步骤:
1)从A账户取100元;
2)存入100元至B账户。
这两个动作,要么都成功,要么都失败(即事务回滚),只要转账和存入一个动作是失败的,那么这个事务将回滚。
2、一致性 (C、Consistency)
一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。
例如:
现有完整性约束a+b=10,如果一个事务改变了a,那么必须得改变b,使得事务结束后依然满足a+b=10,否则事务是失败。
3、隔离性 (I、Isolation)
隔离性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。
例如:
有一个转账的动作,即从 A 账户转 100 元至 B 账户,在这个交易还未完成的情况下,如果此时 B 查询自己的账户,是看不到新增加的 100 元的。
4、持久性 (D、Durability)
持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库中,即使出现宕机数据也不会丢失。
例如:
在一个订单系统中,当客户下单成功后,订单服务器出现异常宕机的情况,只要将订单服务器正常启动,客户的订单数据任然存在的。
什么是分布式系统?
分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。
在分布式数据库系统中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无副本、数据存于哪个站点以及事务在哪个站点上执行等。
内聚性:
是指每一个数据库分布节点高度自治,有本地的数据库管理系统。
透明性:
是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。
分布式系统的优点:
灵活性:
由于该系统是非常灵活的,它很容易安装,实施和调试新的服务。
可靠性(容错) :
分布式计算系统中的一个重要的优点是可靠性。一台服务器的系统崩溃并不影响到其余的服务器。
可扩展性:
在分布式计算系统可以根据需要增加更多的机器。
资源共享:
共享数据是必不可少的应用,如银行,预订系统。
更快的速度:
分布式计算系统可以有多台计算机的计算能力,使得它比其他系统有更快的处理速度。
开放系统:
由于它是开放的系统,本地或者远程都可以访问到该服务。
更高的性能:
相较于集中式计算机网络集群可以提供更高的性能(及更好的性价比)。
分布式系统的缺点:
故障排除于诊断方面:
故障排除和诊断存在较为复杂的问题(根据系统的分布式的复杂度想对等的)。
软件方面:
更少的软件支持是分布式计算系统的主要缺点。
网络方面:
网络基础设施的问题,包括:传输问题,高负载,数据包丢失的问题等。
安全性方面:
开放系统的特性让分布式计算系统存在着数据的安全性和共享的风险等问题。
参考地址:百度百科
好了,关于 MongoDB进阶之路第一篇-关系型数据库(RDBMS)与分布式系统简介 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。
作 者: | 华 仔 |
联系作者: | who.seek.me@java98k.vip |
来 源: | CSDN (Chinese Software Developer Network) |
原 文: | https://blog.csdn.net/Hello_World_QWP/article/details/82925426 |
版权声明: | 本文为博主原创文章,请在转载时务必注明博文出处! |