一、数据库概述 (详情参考: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开发,后转变成了开源项目。