精华内容
下载资源
问答
  • 数据库种类

    千次阅读 2018-04-25 16:46:28
    数据库种类大体分为:关系型数据库和非关系型数据库一、关系型数据库 关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系...

        数据库种类大体分为:关系型数据库和非关系型数据库

    一、关系型数据库

        关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。

    典型产品:MysqlOracle、DB2、Sqlserver

    二、非关系型数据库

    (1)键值存储数据库(key-value)

     键值数据库就类似传统语言中使用的哈希表。可以通过key来添加、查询或者删除数据库,因为使用key主键访问,所以会获得很高的性能及扩展性。

    键值数据库主要使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署、高并发。

    典型产品:Memcached、Redis、MemcacheDB

    (2)列存储(Column-oriented)数据库

    列存储数据库将数据存储在列族中,一个列族存储经常被一起查询的相关数据,比如人类,我们经常会查询某个人的姓名和年龄,而不是薪资。这种情况下姓名和年龄会被放到一个列族中,薪资会被放到另一个列族中。

    这种数据库通常用来应对分布式存储海量数据。

    典型产品:Cassandra、HBase

    (3)面向文档(Document-Oriented)数据库

    文档型数据库的灵感是来自于Lotus Notes办公软件,而且它同第一种键值数据库类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以 看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。

    面向文档数据库会将数据以文档形式存储。每个文档都是自包含的数据单元,是一系列数据项的集合。每个数据项都有一个名词与对应值,值既可以是简单的数据类型,如字符串、数字和日期等;也可以是复杂的类型,如有序列表和关联对象。数据存储的最小单位是文档,同一个表中存储的文档属性可以是不同的,数据可以使用XML、JSON或JSONB等多种形式存储。

    典型产品:MongoDB、CouchDB

    (4)图形数据库

    图形数据库允许我们将数据以图的方式存储。实体会被作为顶点,而实体之间的关系则会被作为边。比如我们有三个实体,Steve Jobs、Apple和Next,则会有两个“Founded by”的边将Apple和Next连接到Steve Jobs。

    典型产品:Neo4J、InforGrid


    展开全文
  • 数据库分类

    千次阅读 2019-04-20 22:42:28
    2.2非关系型数据库种类 2.2.1 键值存储数据库(key-value) 2.2.2 列存储(Column-oriented)数据库 2.2.3 面向文档(Document-Oriented)数据库 2.2.4 图形数据库 数据库通常分为层次式数据库、网络式...

    目录

    1 关系型数据库

    2 非关系型数据库

    2.1 非关系型数据库诞生背景

    2.2 非关系型数据库种类

    2.2.1 键值存储数据库(key-value)

    2.2.2 列存储(Column-oriented)数据库

    2.2.3 面向文档(Document-Oriented)数据库

    2.2.4 图形数据库


       

           数据库通常分为层次式数据库网络式数据库关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。

          而在当今的互联网中,最常见的数据库模型主要是两种,即关系型数据库非关系型数据库

    1 关系型数据库

           虽然网状数据库和层次数据库已经很好的解决了数据的集中和共享问题,但是在数据库独立性和抽象级别上扔有很大欠缺。用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。而关系型数据库就可以较好的解决这些问题。

           关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。

            关系型数据库诞生40多年了,从理论产生发展到现实产品,例如:Oracle和MySQL,Oracle在数据库领域上升到霸主地位,形成每年高达数百亿美元的庞大产业市场。

    2 非关系型数据库

    2.1 非关系型数据库诞生背景

           NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSql数据库在特定的场景下可以发挥出难以想象的高效率和高性能,它是作为对传统关系型数据库的一个有效的补充。

           NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。

          1、NOSQL不是否定关系数据库,而是作为关系数据库的一个重要补充 
          2、NOSQL为了高性能、高并发而生,忽略影响高性能,高并发的功能 
          3、NOSQL典型产品memcached (纯内存),redis(持久化缓存),mongodb(文档的数据库) 

    2.2 非关系型数据库种类

    2.2.1 键值存储数据库(key-value)

           键值数据库就类似传统语言中使用的哈希表。可以通过key来添加、查询或者删除数据库,因为使用key主键访问,所以会获得很高的性能及扩展性。

           键值数据库主要使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署、高并发。

    典型产品:Memcached、Redis、MemcacheDB

    有谁在使用:GitHub (Riak)、BestBuy (Riak)、Twitter (Redis和Memcached)、StackOverFlow (Redis)、 Instagram (Redis)、Youtube (Memcached)、Wikipedia(Memcached)

    适用的场景:

           储存用户信息,比如会话、配置文件、参数、购物车等等。这些信息一般都和ID(键)挂钩,这种情景下键值数据库是个很好的选择。

    不适用场景:

    1.  取代通过键查询,而是通过值来查询。Key-Value数据库中根本没有通过值查询的途径。
    2.  需要储存数据之间的关系。在Key-Value数据库中不能通过两个或以上的键来关联数据。
    3.  事务的支持。在Key-Value数据库中故障产生时不可以进行回滚。

    (1)Memcached

            Memcaced是一个开源的、高性能的、具有分布式内存对象的缓存系统。通过它可以减轻数据库负载,加速动态的web应用,最初版本由LiveJoumal 的Brad Fitzpatrick在2003年开发完成。目前全球有非常多的用户都在使用它来架构主机的大负载网站或提升主机的高访问网站的响应速度。注意:Memcache 是这个项目的名称,而Memcached是服务端的主程序文件名。 
           缓存一般用来保存一些进程被存取的对象或数据,通过缓存来存取对象或数据要比在磁盘上存取快很多,前者是内存,后者是磁盘,Memcached是一种纯内存缓存系统,把经常存取的对象或数据缓存在memcached的内存中,这些被缓存的数据被程序通过API的方式被读取,memcached里面的数据就像一张巨大的hash表,数据以key-value对的方式存在。Memcached通过缓存经常被存取的对象或数据,从而减轻频繁读取数据库的压力,提高网站的响应速度,构建出快速更快的可扩展的Web应用。 
            官网:http://memcached.org/ 
            由于memcached为纯内存缓存软件,一旦重启所有数据都会丢失,因此,新浪网基于Memcached开发了一个开源项目  Memcachedb。通过为Memcached增加Berkeley DB的特久化存储机制和异步主复制机制,使Memcached具备了事务恢复能力、持久化数据能力和分布式复制能力,memcached非常适合需要超高性能读写速度、持久化保存的应用场景,但是最近几年逐渐被其他的持久化产品替代如Redis

        Memcached小结: 
             1、key-value行数据库 
             2、纯内存数据库 
             3、持久化memcachedb(sina)

    (2)Redis

            和Memcached类似,redis也是一个开源、Linux平台、key-value型存储系统。但redis支持的存储value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)等。这些数据类型都支持push/pop、add/remove及取交集、并集和差集及更丰富的操作,而且这些操作都是原子性的。为了保证效率,redis的数据都是缓存在内存中。区别是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在基础上实现了master-slave(主从)同步。 

            redis是一个高性能的key-value数据库。redis的出现、很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python、Ruby、Erlang、PHP客户端,使用方便。 
    官方:http://www.redis.io/documentation 
    redis特点: 
    1)支持内存缓存,这个功能相当于memcached 
    2)支持持久化存储,这个功能相当于memcachedb,ttserver 
    3)数据库类型更丰富。比其他key-value库功能更强 
    4)支持主从集群、分布式 
    5)支持队列等特殊功能 
    应用:缓存从存取memcached更改存取redis

    适用场景:

    1. 缓存
    2. 基础消息队列系统
    3. 排行榜系统
    4. 计数器使用
    5. 社交网站的点赞、粉丝、下拉刷新等应用;

    选择注意,Redis的使用场景,是redis适合的解决的问题,也有不适合解决的问题。

    1. 从数据规模角度讲,小数据规模使用redis比较合适,大数据规模使用redis不合适;(大数据规模,在一定程度上,可以用SSDB替代redis使用);
    2. 从数据冷热角度看,热数据适合放在redis中,冷数据不适合放在redis中。

    (3)Cassandra

            Apache Cassndra是一套开源分布式Key-Value存储系统。它最初由Facebook开发,用于存储特别大的数据。Facebook目前在使用此系统。 
    主要特点: 

    1. 分布式 
    2. 基于column的结构化 
    3. 高伸展性 
    4. Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成一个分布式网络服务,对Cassandra的一个写操作,会被复制到其他节点上去,对Cassandra的读操作。也会被路由到某个节点上面去读取。 

           Cassandir是一个混合型的非关系的数据库,类似于Google的BigTable。其主要功能比Dynomie(分布式的key-value存储系统)更丰富,Cassandra最初由Facebook开发,后转变成了开源项目。

    2.2.2 列存储(Column-oriented)数据库

            列存储数据库将数据存储在列族中,一个列族存储经常被一起查询的相关数据,比如人类,我们经常会查询某个人的姓名和年龄,而不是薪资。这种情况下姓名和年龄会被放到一个列族中,薪资会被放到另一个列族中。

            这种数据库通常用来应对分布式存储海量数据

    典型产品:Cassandra、HBase(HBase是Apache的Hadoop项目的子项目)

    有谁在使用:Ebay (Cassandra)、Instagram (Cassandra)、NASA (Cassandra)、Twitter (Cassandra and HBase)、Facebook (HBase)、Yahoo!(HBase)

    适用的场景:

    1.  日志。因为我们可以将数据储存在不同的列中,每个应用程序可以将信息写入自己的列族中。
    2.  博客平台。我们储存每个信息到不同的列族中。举个例子,标签可以储存在一个,类别可以在一个,而文章则在另一个。

    不适用场景:

    1.  如果我们需要ACID事务。Vassandra就不支持事务。
    2.  原型设计。如果我们分析Cassandra的数据结构,我们就会发现结构是基于我们期望的数据查询方式而定。在模型设计之初,我们根本不可能去预测它的查询方式,而一旦查询方式改变,我们就必须重新设计列族。

    HBase:

    1、定位:开源、Linux平台、列存储nosql数据库

    可用于海量数据存储、与Hadoop生态圈结合、定位于“大”的列存储nosql数据库

    2、特点:

    • 功能:命令执行速度非常看,读写性能可达10万/秒;数据结构是key-value类似字典的功能,可以键过期-缓存,发布订阅-消息系统,简单的事物功能;
    • 部署:相对其他数据库,hbase的部署比较复杂,依赖Hadoop,zookeeper等组件,Hbase集群包括一个mater节点,多个regionServer,zookeeper管理所有regionServer,需要依次部署Hadoop、zookeeper之后,再部署HBASE集群;
    • 使用:用redis-cli客户端连接,一般用简单的 set ,get,del 进行数据管理; 在单实例redis的基础上,进行可以数据持久化,主从复制,高可用和分布式等功能;
    • 监控:在命令行界面有一些常用的命令显示状态和性能,在图形界面方面,有开源监控工具来监控和记录数据库的状态,比如cachecloud;
    • 备份:Hbase一般用作海量数据的仓库,本身通过多层副本来保证数据安全性,不用进行专门的备份
    • 高可用:HBASE集群基于Hadoop,需要依次部署Hadoop单机模式、集群模式、HA模式,通过Hadoop HA实现高可用;
    • 扩展:HBASE以集群形式,依次是单机模式,伪分布模式,完全分布模式,底层基于HDFS,zookeeper可以很好地进行扩展;

    3、适用场景:

    1. 用于简单数据写入和海量、结构简单数据查询的业务场景;
    2. 用于成为其他数据库备份和下沉的数据库;

    4、Hbase不适合的场景:

    1. 对数据分析需求高,需要能够用sql或者简单的MapReduce实现分析需求的业务场景,不适合用Hbase;
    2. 单表数据量,不超过千万时,使用Hbase,体现不出Hbase的优势,而且会比较慢,不适合用Hbase。

    2.2.3 面向文档(Document-Oriented)数据库

            文档型数据库的灵感是来自于Lotus Notes办公软件,而且它同第一种键值数据库类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。

           面向文档数据库会将数据以文档形式存储。每个文档都是自包含的数据单元,是一系列数据项的集合。每个数据项都有一个名词与对应值,值既可以是简单的数据类型,如字符串、数字和日期等;也可以是复杂的类型,如有序列表和关联对象。数据存储的最小单位是文档,同一个表中存储的文档属性可以是不同的,数据可以使用XML、JSON或JSONB等多种形式存储。

    典型产品:MongoDB、CouchDB

    有谁在使用:SAP (MongoDB)、Codecademy (MongoDB)、Foursquare (MongoDB)、NBC News (RavenDB)

    适用的场景:

    1.  日志。企业环境下,每个应用程序都有不同的日志信息。Document-Oriented数据库并没有固定的模式,所以我们可以使用它储存不同的信息。
    2.  分析。鉴于它的弱模式结构,不改变模式下就可以储存不同的度量方法及添加新的度量。

    不适用场景:

           在不同的文档上添加事务。Document-Oriented数据库并不支持文档间的事务,如果对这方面有需求则不应该选用这个解决方案。

    (1)MongoDB

            MongoDB是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能最丰富,最像关系数据库的。他支持的数据库结构非常松散,类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongodb最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 

    特点: 
            高性能、易部署、易使用、存储数据非常方便 
    主要功能特性: 

    1. 面向集合存储,易存储对象类型的数据 。“面向集合”(Collenction-Orented)意思是数据库被分组存储在数据集中,被称为一个集合(Collenction)每个 集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档,集合的概念类似关系型数据库(RDBMS)里的表(table)不同的是它不需要定义任何模式(schema) 
    2. 模式自由 。模式自由(schema-free)意为着存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。 
    3. 支持动态查询 
    4. 支持完全索引,包含内部对象 
    5. 支持查询 
    6. 支持复制和故障恢复 
    7. 使用高效的二进制数据存储,包括大型对象 
    8. 自动处理碎片、以支持云计算层次的扩展性
    9. 功能:数据文件存储格式为BSON,模式自由,整体架构与关系型数据库有对应关系,具有较好的高可用性和伸缩性,有插件式存储引擎,新版本默认是writedtiger存储引擎;
    10. 部署: 部署比较简答,下载软件,设置好配置文件即可启动服务;
    11. 使用:不支持SQL语句,使用与SQL对应的json方式管理数据库;
    12. 监控:有比较丰富的监控和性能命令,官方有比较完善的图形监控系统,但需要购买;
    13. 备份:支持冷备份和热备份,可以使用mongoexport/mongimport进行逻辑备份,也可以使用基于oplog的mongodump/mongorestore物理热备份;
    14. 高可用:MongoDB master-slave主从复制:在master节点上加 --master参数,从数据库加 -slave和-source参数,就可以实现同步,这种目前不建议;

    适用场景:

    1. 网站后台数据库:mongodb非常适合插入、更新与查询,并可以实时复制和高伸缩性,适合更新迭代快、需求变更多、以对象为主的网站应用;
    2. 小文件系统:对于json文件,二进制数据,适合用mongodb进行存储和查询
    3. 日志分析系统:对于数据量大的日志文件,IM会话消息记录,适合用mongodb来保存和查询;
    4. 缓存系统:mongodb数据库也会使用大量的内存,合理的设计,也可以作为缓存系统使用;不过目前缓存系统使用更多的方案是 memcached和redis。

    Mongodb不适合的场景:

    1. 高度事务性的系统:即传统的OLTP业务,mongodb,乃至其他nosql,对事务性支持都不太好;
    2. 传统的统计分析应用:即传统的OLAP业务,需要高度优化的查询方式,mongodb支持不好;
    3. 使用SQL语句比较方便的业务:mongodb是json类型的查询方式,虽然也灵活,但不如用SQL方便,如果业务和适合SQL,则就不太合适mongodb了。

    2.2.4 图形数据库

            图形数据库允许我们将数据以图的方式存储。实体会被作为顶点,而实体之间的关系则会被作为边。比如我们有三个实体,Steve Jobs、Apple和Next,则会有两个“Founded by”的边将Apple和Next连接到Steve Jobs。

    典型产品:Neo4J、InforGrid

    有谁在使用:Adobe (Neo4J)、Cisco (Neo4J)、T-Mobile (Neo4J)

    适用的场景:

    1.  在一些关系性强的数据中
    2.  推荐引擎。如果我们将数据以图的形式表现,那么将会非常有益于推荐的制定

    不适用场景:

    不适合的数据模型。图数据库的适用范围很小,因为很少有操作涉及到整个图。

     

    https://blog.csdn.net/qq_27565769/article/details/80731213

    https://blog.csdn.net/michelleqiao/article/details/5297758

    https://blog.csdn.net/xin_ge_cheng_xu/article/details/79663549

    https://blog.csdn.net/hzp666/article/details/79168675

    https://blog.csdn.net/arthursunbao/article/details/38340637

     

    展开全文
  • 一、数据库种类有哪些 早期较为时兴的数据库种类有三种,分别是层次式数据库、网络式数据库和关系型数据库。而在如今的互联网中,最常见的数据库种类主要有2种,即关系型数据库和非关系型数据库。 二、层次数据库...

    一、数据库种类有哪些

    早期较为时兴的数据库种类有三种,分别是层次式数据库、网络式数据库和关系型数据库。而在如今的互联网中,最常见的数据库种类主要有2种,即关系型数据库和非关系型数据库。

    二、层次数据库介绍

    层次数据库是最开始研制的数据库系统软件,它把数据根据层次构造(树结构)的方法呈现。层次数据库以前是非常热门的数据库,但伴随着关系数据库的逐渐流行,如今早已非常少应用了。

    较为具备象征性的层次数据库是IMS(Information Management System)数据库,由IBM企业研发。

    三、关系型数据库详细介绍

    网络数据库和层次数据库在数据独立性和抽象性级別上有所欠缺,用户开展存储时,需要声明数据的存储结构和相对路径。而关系数据库就可以较切实解决这种问题。

    和Excel工作簿一样,关系型数据库也选用由列和行构成的二维表来管理数据,简单易懂。另外,它还利用SQL(Structured Query Language,结构化查询语言)对数据开展实际操作。

    更多关系数据库知识点请见:树懒学堂_关系数据库与非关系数据库

    四、非关系型数据库详细介绍

    伴随着互联网技术Web2.0的兴起,传统关系型数据库在应对大数据量,比如大规模和高并发的微博、微信或者SNS类型的web2.0动态网页时,已经有些力不从心,曝露了许多难以克服的难题。因此出现了针对大规模数据量场景,以性能卓越和应用便捷为目的的的数据库产品——NOSQL数据库。

    非关系型数据库主要是根据“非关系实体模型”的数据库,也称之为NoSQL数据库,NOSQL的原意是“Not only SQL”,而不是“NoSQL”的含意,因而,NoSQL的出现并不是要完全否认关系型数据库,只是做为传统关系型数据库的一个合理补充。NOSQL数据库在特殊的情景下能够充分发挥出无法想象的高效率和卓越性能。

    非关系型数据库还能够细分化为四个小项:

    • 键值(Key-Value)储存数据库;
    • 列储存(Column-oriedted)数据库;
    • 面向文本文档(Document-Oriented)数据库;
    • 图型(Graph)数据库。

    更多非关系数据库知识点请见:树懒学堂_关系数据库与非关系数据库

    五、不同种类数据库应用领域区别

    在数据库应用角度来区分的话,数据库还可以分为面向操作型和面向数据分析型,以下是根据实际应用场景的不同对数据库的简单的介绍。

    1.面向操作的关系型数据库

    • 典型性应用领域:ERP,CRM,信用卡交易,中小型电商
    • 数据储存方法:表格
    • 流行厂商:Oracle Database,Microsoft SQLServer,IBM DB2,EnterpriseDB(PostgreSQL),MySQL
    • 优点:完善的生态环境保护,事务保证/数据一致性
    • 缺点:严苛的数据模型界定,数据库拓展限制,和非结构型的结合应用较难。

    2.面向数据分析的关系型数据库

    • 典型性应用领域:数据仓库,商务智能,数据科学研究
    • 数据储存方法:表格
    • 流行厂商:Oracle Exadata,Oracle Hyperion,Teradata,IBM Netezza,Google BigQuery
    • 优点:信息内容和计算的一致性
    • 缺点:必须由数据库技术专业的IT工作人员维护保养,数据相应通常是分钟级

    3.面向操作的非关系型数据库

    • 典型性应用领域:Web,mobile,and IoT applications,social networking,user recommendations,shopping carts
    • 数据储存方法:有很多存储结构(document,graph,column,key-value,time series)
    • 流行厂商:MongoDB,Amazon DynamoDB,Amazon,Redis
    • 优点:便捷性,协调能力(不用预定义的方式),水平伸缩(适应大规模数据量),成本低(开源系统)
    • 缺点:欠缺事务保证

    4.面向数据分析的非关系型数据库

    • 典型性应用领域:索引数以百万计的数据点,预测分析,诈骗检验
    • 数据储存方法:Hadoop不用原有的数据构造;数据能够跨好几个服务器存储
    • 流行厂商:Cloudera,Hortonworks,MapR,MarkLogic,Snowflake,DataBricks,ElasticSearch
    • 优点:适用批量处理,并行处理文件;主要是开源的,资金投入较低
    • 缺点:迟缓的响应速度;不宜迅速检索或高速更新

    文章转载自:https://www.shulanxt.com/doc/dbdoc/db-type

     

    展开全文
  • 易语言数据库分类源码,数据库分类,取列表,加入列表,取出列表
  • 数据库种类及关系型数据库原理

    千次阅读 2017-09-14 08:02:25
    一、数据库种类及关系型数据库原理1.1数据库种类:按照早期的数据库理论,比较流行的数据库模型有三种: 层次式数据库 网络式数据库 关系型数据库 在当今互联网中,最常用的数据库模型: 关系型数据库 非关系型...

    一、数据库种类及关系型数据库原理

    1.1数据库种类:

    按照早期的数据库理论,比较流行的数据库模型有三种:
    层次式数据库
    网络式数据库
    关系型数据库
    

    在当今互联网中,最常用的数据库模型:
    关系型数据库
    非关系型数据库

    关系型数据库使用类似于excel表格来表示
    关系型数据库使用结构化查询语言SQL语句来对数据进行存取
    代表作品,mysql oracle

    随着互联网web2.0网站的兴起,传统的关系型数据库在应付web2.0网站,特别是对于规模日益扩大的海量数据,超大规模和高并发的微博、微信、SNS类型的web2.0纯动态网络瓶颈都难以有效突破,于是开始出现了大批针对特定场景,以高性能和使用便利为目的的功能特异化的数据库产品,NoSQL(非关系型)类的数据库就是在这样的情境中诞生并得到了非常迅速的发展。

    【动态请求越来越多,对数据库的要求越来越高,传统的数据库遵循SAD理论(保持数据一致性,存放磁盘等)存取数据很慢,在这种情况下,非关系型数据库就诞生了】

    NoSQL:
    Google的BigTable
    Amazon的Dynamo
    成功的商业NoSQL

    开源NoSQL:
    Facebook的Cassandra
    Apache的HBase
    Redis,mongodb

    1.2非关系型数据库种类

    (1)键值(Key-Value)存储数据库

    键值数据库就类似传统语言中使用的哈希表。可以通过key来添加、查询或者删除数据,因为使用key主键访问,所以会获得很高的性能及扩展性。
    键值(Key-Value)数据库主要是使用一个哈希表,这个表中有一个特定的键和一个特向指定的数据。Key/Value模型对于IT系统来说的有时在于简单、易部署、高并发。
    典型产品:Memcached、Redis、MemcacheDB、Berkeley DB
    

    (2)列存储(Column-oriented)数据库

    列存储数据库将数据存储在列族(column family)中,一个列族存储经常被一起查询的相关数据。举个例子,如果我们有一个Person类,我们通常会一起查询他们的姓名和年龄而不是薪资。这种情况下,姓名和年龄就会被放入一个列族中,而薪资则在另一个列族中。
    这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是有列家族来安排的。
    典型产品:Cassandra,HBase
    

    (3)面向文档(Document-Oriented)数据库

    文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。
    面向文档数据库会将数据以文档的形式存储。每个文档都是自包含的数据单元,是一系列数据项的集合。每个数据项都有一个名称与对应的值,值既可以是简单的数据类型,如字符串、数字和日期等;也可以使复杂的类型,如有序列表和关联对象。数据存储的最小单位是文档,同一个表中存储的文档属性可以是不通的,数据可以使用XML、JSON或者JSONB等多种形式存储。
    典型产品:MogoDB、CouchDB
    

    (4)图形(Graph)数据库

    图形数据库允许我们将数据库以图的方式存储。实体会被作为顶点,而实体之间的关系则会被作为边。比如我们有三个实体,Steve Jobs、Apple和Next,则会有两个"Founded by"的边将Apple和Next连接到Steve Jobs.
    图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要指定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。
    典型产品:Neo4J、InfoGrid
    

    1.3非关系型数据库产品介绍

    (1)Memcached(key-value)

      Memcached是一个开源的、高性能的、具有分布式内存对象的缓存系统。通过它可以减轻数据库负载,加速动态Web应用,最初版本由LiveJournal的Brad Fitzpatrick在2003年开发完成。目前全球有非常多的用户都在使用它来构建自己的大负载网站或提高自己的高访问网站的响应速度。
    注意:Memcache是这个项目的名称,而Memcached是服务器端的主程序文件名。
    

    (2)redis(key-value)

    和Memcached类似,redis也是一个key-value型存储系统。但redis支持的存储value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)等。这些数据类型都支持push/pop、add/remove及取交集、并集、差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不方式的排序。与memcached一样,为了保证效率,redis的数据都是缓存在内存中。区别是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且再此基础上实现了master-slave(主从)同步。
    Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。
    官网:http://www.redis.io/documemtation
    

    redis特点:

    1.支持内存缓存,这个功能相当于memcached
    2.支持持久化,这个功能相当于memcachedb,ttserver
    3.数据类型更丰富。比其他key-value库功能更强
    4.支持集群,分布式
    5.支持队列等特殊功能
    

    (3)MongoDB(Document-oriented)

    MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,累似json的bjson格式,因此可以存储比较复杂的数据类型。Mogodb最大的特点是他支持的查询语言非常强大,它的语法有点类似于面向对象的查询语言,几乎可以实现关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、易使用,存储数据非常方便。
    

    主要功能特性:

    1.面向集合存储,易存储对象类型的数据
    2.模式自由
    3.支持动态查询
    4.支持完全索引, 包含内部对象
    5.支持查询
    6.支持复制和故障恢复
    7.使用高效的二进制数据存储,包括大型对象(如视频等)
    8.自动处理碎片,以支持云计算层次的扩展性
    9.支持ruby,python,java,c++,php等多种语言
    10.文件存储格式为bson(一种json的扩展)
    11.可通过网络访问
    
    默认端口27017
    http://www.mongodb.org/display/DOCS/Manual
    http://www.mongodb.org/display/DOCS/Home
    

    (4)Cassandra(Column-oriented)

        Apache Cassandra是一套开源分布式Key-Value存储系统。它最初由Facebook开发,用于存储特别大的数据。Facebook目前在使用此系统。
        主要特性:
        分布式
        基于column的结构化
        高伸展性
        Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能是比较简单的事情,只管在集群里面添加节点就可以了。
    

    其他不常用非关系型数据库

    HBase,MemcacheDB,Berkeley DB,Tokyo Cabinet\Tokyo Tyrant(ttserver)

    展开全文
  • 数据库分类及主流数据库对比

    千次阅读 2019-11-11 09:52:54
    1 数据库分类 1.1 关系型数据库 1.2 非关系型数据库 2 数据库对比 1 数据库分类 数据库根据数据结构可分为关系型数据库和非关系型数据库。非关系型数据库中根据应用场景又可分为键值(Key-Value)数据库、列...
  • 数据库种类介绍

    千次阅读 2019-06-17 11:31:25
    什么是数据库数据库种类
  • 易语言ACCESS数据库分类统计源码,ACCESS数据库分类统计,填表格
  • 数据库种类:一、 开放性 1. SQL Server 只能在windows上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且windows...
  • 易语言数据库分类源码
  • 数据库分类介绍

    2020-12-14 16:45:19
    数据库共有三种类型,关系数据库、非关系型数据库和键值数据库。 目前关系型数据库主要有MySQL、SQL Server、数蚕数据库、Oracle数据库、DB2。 MySQL:MySQL是目前最受欢迎开源的SQL数据库管理系统,与其他的大型...
  • 易语言源码易语言数据库分类源码.rar 易语言源码易语言数据库分类源码.rar 易语言源码易语言数据库分类源码.rar 易语言源码易语言数据库分类源码.rar 易语言源码易语言数据库分类源码.rar 易语言源码易语言...
  • ACCESS数据库分类统计.rar
  • 数据库种类大全及区别: 【备注:鸣谢链接:https://blog.csdn.net/aaronthon/article/details/81714528】 一、 数据库共有2种类型:关系型数据库、非关系型数据库 。 1、关系数据库 MySQL、MariaDB(MySQL的代替品...
  • 易语言ACCESS数据库分类统计
  • 本文侧重于大数据下的NoSQL数据库特点,在介绍NoSQL数据库之前,需要简单介绍下数据库种类的发展史,有因有果的逻辑才能被大家所认可嘛。 计算机刚刚兴起的年代,是没有专门存储数据的库的,基本上所有的数据信息都...
  • 数据库(1)-数据库种类

    千次阅读 2014-02-18 14:39:30
    数据库分类: 关系型数据库 关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表组成了数据库。用户用查询(Query)来检索数据库中的数据。一个Query是一个用于指定数据库中行和...
  • 数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。  1.数据结构模型  (1)数据结构  所谓数据结构是指数据的组织形式或数据之间的联系。...
  • 只是简单的,介绍了目前常用的数据库种类
  • 超全的数据库分类介绍

    万次阅读 多人点赞 2018-01-17 11:15:00
    数据库分类数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。 而在当今的互联网中,最常见的数据库模型主要是两种,即关系型数据库和非关系...
  • 介绍:数据库就是存储和管理数据的仓库,数据按照一定的格式进行存储,用户可以对...数据库分类 关系型数据库 介绍:是指采用了关系型模型来组值数据的数据库,简单来说,关系型模型指的就是二维表格模型,好...
  • 一.数据库的概述数据库就是一个存放数据的仓库。这个仓库是按照一定的数据结构(数据结构是...数据库有很多种类和功能,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛
  • 数据库种类与 数据库结构

    千次阅读 2008-08-03 14:21:00
    数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。1.数据结构模型(1)数据结构所谓数据结构是指数据的组织形式或数据之间的联系。如果用D表示数据,用...
  • 这篇我们放轻松,浅略一下数据库种类和各自特性。 一,从数据库的历史说起 我之前在技术面试中区分过数据库和DBMS的区别,这里指的数据库概念要自己区分好。 数据库是用来存储数据的,随着计算机技术的发展,数...
  • SQLite数据库种类

    2012-07-04 16:38:24
    一、内存数据库:  在SQLite中,数据库通常是存储在磁盘文件中的。然而在有些情况下,我们可以让数据库始终驻留在内存中。最常用的一种方式是在调用sqlite3_open()的时候,数据库文件名参数传递":memory:",如:...
  • 数据库分类和对比

    2020-06-25 18:53:49
    关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 509,391
精华内容 203,756
关键字:

数据库种类