一、数据库概述 (详情参考:https://www.cnblogs.com/clschao/articles/9907529.html)
1、概念:存储数据,共享数据
数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除
等操作。
所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
2、数据管理系统(英语:Database Management System,简称DBMS)保证数据安全,提高数据存储传输效率,备份导入导出。
二、数据库的分类
1、关系型数据库(RDBMS)
关系型数据库模型就是把复杂的数据节后归为简单的二元关系.(类似excel)
2、常见的关系型数据库
1、oracle数据库:前身 SDL、
创始人:Larry Ellisson 甲骨文公司
影响力:全球最大的数据库软件公司;
主要应用范围:传统大企业,大公司、*、金融、证券等;
版本:Oracle8i,Oracle9i,Oracle10g,Oracle11g,Oracle12g 2、 MySQL数据库
影响力:广泛应用于internet 上的大中小型网站中.
特点:体积小、速度快、总体拥有成本低。 3、MariaDB数据库
由来:甲骨文公司收购了MySQL后,有MySQL闭源的潜在风险,因此MySQL开元社区采用分支的方式来避开这个
风险。
与mysql 类似。 4、SQL Server数据库
创始:微软公司开发的大型关系数据库系统
windows使用性能很好,但是仅仅适用与windows。 5、Access数据库
定位:入门级小型桌面数据库,性能安全性都很一般 6、PolarDB数据库
定位:阿里云ApsaraDB数据库团队研发的基于云计算架构的下一代关系型数据库
3、非关系型数据库
解释:非关系型数据库也被成为NoSQL数据库,NOSQL的本意是“Not Olnly SQL”
非关系型数据库是对关系型数据库的一种有效补充,NOSQL数据库在特定的场合可以发挥出难以想象的高效率和高性能。
非关系型数据库实现机制
(1)键值(Key-Value)存储数据库 键值数据库就类似传统语言中使用哈希表,可以通过key来添加、查询或删除数据,因为使用key主键访问,所以
会获得很高的性能及扩展性
键值(Key-Value)数据库主要是使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。
Key/value模型对于IT系统来说的优势在于简单、易部署、高并发 .
k1—>数据
k2—>数据
典型产品:Memcached、Redis、MemcacheDB、BerkeleyDB (2)列存储(Column-oriedted)数据库 ======>了解即可,一般公司用不到
这部分数据库通常用来分布式存储的海量数据,键仍然存在,但是他们的特点是指向了多个列。
典型产品:Cassandra,HBase (3)面向文档(Document-Oriented)数据库
面向文档数据库会将以文档的形式存储。每个文档都是自包含的数据单元,是一系列数据项的集合。
每个数据项都有一个名称与对应的值,值既可以是简单的数据类型,如字符串、数字和日期等;也可以是复杂的类型,
如有序列表和关系对象。数据存储的最小单位是文档,同一个表中存储的文档属性可以是不同的,数据可以使用
XML、JSON或者JSONB等多种形式存储
典型产品:MorgoDB、CouchDB (4)图形(Graph)数据库
常见的非关系型数据库
1、memcachedb(key-value)
定位:开源的、高性能的、具有分布式内存对象的缓存系统。
特点:存于内存,一旦重启所有数据都会丢失。
Memcached小结:
1、key-value行数据库
2、纯内存数据库
3、持久化memcachedb(sina) 2、 Redis(key-value)
定位:高性能的key-value数据库。弥补了memcachedb存储的不足
特点:
1)支持内存缓存,这个功能相当于memcached
2)支持持久化存储,这个功能相当于memcachedb,ttserver
3)数据库类型更丰富。比其他key-value库功能更强
4)支持主从集群、分布式
5)支持队列等特殊功能 3、MongoDB(Document-oriented)
特点:
高性能、易部署、易使用、存储数据非常方便
主要功能特性: 1.面向集合存储,易存储对象类型的数据
2.“面向集合”(Collenction-Orented)意思是数据库被分组存储在数据集中,被称为一个
集合(Collenction)每个 集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档,集合的概念类似
关系型数据库(RDBMS)里的表(table)不同的是它不需要定义任何模式(schema)
3.模式*
模式*(schema-free)意为着存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。
4.支持动态查询
5.支持完全索引,包含内部对象
6.支持查询
7.支持复制和故障恢复
8.使用高效的二进制数据存储,包括大型对象
9.自动处理碎片、以支持云计算层次的扩展性
4、Cassandra(Column-oriented) Apache Cassndra是一套开源分布式Key-Value存储系统。它最初由Facebook开发,用于存储特别大的数据。
Facebook目前在使用此系统。
主要特点: 1.分布式
2.基于column的结构化
3.高伸展性
4.Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成一个分布式网络服务,
对Cassandra的一个写操作,会被复制到其他节点上去,对Cassandra的读操作。也会被路由到某个节点上面去读取。
Cassandir是一个混合型的非关系的数据库,类似于Google的BigTable。其主要功能比Dynomie
(分布式的key-value存储系统)更丰富,Cassandra最初由Facebook开发,后转变成了开源项目。