数据库是按照数据结构来组织,存储和管理数据的仓库。是一个长期存储在计算机内有组织,可共享,统一管理的大量数据的集合。

数据库是以一定方式存储在一起,能与多个用户共享,具有尽可能小的冗余,与应用程序彼此独立的数据集合。

数据库是管理数据的新方法和技术,他能更合适的组织数据,更方便的使用数据,更严密的控制数据,更有效的利用数据。

数据库分类:

关系型数据库:关系型数据库模型是把复杂的数据结构归结为简单的二元关系。

非关系型数据库:也被称为NOSQL(Not Only SQL)数据库,作为传统关系数据库的有效补充。

非关系数据库产品介绍

1.键值存储数据库。Memcached(支持内存);Redis(持久化的数据库,支持内存数据,也支持磁盘的数据);

Memcached是一个开源的,高性能的,具有分布式内存对象的缓存系统,它可以减轻数据库负载。缓存一般用来存储经常被访问的数据,通过缓存来存取对象或数据要比在磁盘上

存取快得多,前者是内存,后者是磁盘,memcached是一种纯内存缓存系统,经常把存取的对象或数据缓存在memcached的内存中,这些被缓存的数据通过API的方式被存取。数据

以Key-value对的方式存在,memcached通过缓存经常被存取的数据,从而减轻频繁读取数据库的压力,提高网站的响应速度,构建出速度更快的可扩展的Web应用。

由于memcached是纯内存缓存软件,一旦重启,所有数据都会丢失。

Redis(Remote Dictionary Server),即远程字典服务,是一个高性能的key-value数据库。但是redis支持的存储vaule类型更多,包括String,list,set和zset等。这些数据类型都支持push、pop,add/remove及取交集,并集和差集更丰富的操作。为保证效率,redis也是把数据缓存在内存中的。区别是会周期性的把数据写入磁盘或者把修改操作写入追加记录文件,重启的时候可以再次加载并使用,并且在此基础上实现了master-slave(主从同步)。

redis的出现,很大程度上的补偿了memcached这类key/value存储的不足。在部分场合可以对关系型数据库起到很好的补充作用。

redis的特点:

  • 支持内存缓存,这个功能相当于memcached。
  • 支持持久化,这个功能相当于memcachedDB。
  • 数据类型更丰富。比其他key-value 库更强。
  • 支持集群,分布式。
  • 支持队列及特殊功能。

 

2 列存储(column-oriented)数据库。

3.面向文档(Document-oriented)。MongoDB

MongoDB是一个介于关系数据库和非关系数据库之间的产品。是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,类似json,因此可以存储比较复杂的数据类型。它最大的特点是支持的查询语言非常强大。它的特点是高性能,易部署,易使用,存储数据非常方便。

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为web应用提供可扩展的高性能数据存储和解决方案。

MongoDB将数据存储为一个文档,数据结构由键值对组成。

4.图像数据库(Graph)。

 

关系型数据库遵循ACID规则

事务的四个特性有ACID:

原子性(Atomicity),要么全部做完,要么全部不做,只要一个操作失败,整个事务就失败,需要回滚。

一致性(Consistency),事务的运行不会改变数据库原本的一致性约束。

独立性(Isolation),并发的事务之间不会相互影响。

持久性(Durability),事务一旦提交后,他所做的修改将会永久保存在数据库上,即时出现宕机也不会丢失。

 

分布式系统(distributed system)

分布式系统由多台计算机和通信的软件通过计算机网络连接组成。分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此网络和分布式系统之间的区别主要在于高层软件而不是硬件。

分布式系统可以在不同的平台上如:PC ,工作站,局域网和广域网上。

分布式计算的特点

可靠性(容错性),一台服务器的系统崩溃并不影响到其他服务器。

可扩展性,可以根据需要增加更多的机器。

资源共享,共享数据是比不可少的应用。

灵活性,它易于安装,实施和调试新的服务。

更快的速度,分布式计算系统可以有多台计算机的计算能力。

开放系统,本地或者远程都可以访问到该服务。

更高的性能,相较于集中式计算机网络集群可以提供更高的性能。

 

posted on 2020-04-21 15:17  gqqi  阅读(254)  评论(0编辑  收藏  举报