精华内容
下载资源
问答
  • 关系型数据库,是指采用了关系模型来组织数据的数据库,其以行列的形式存储数据,以便于用户理解,关系型数据库这一系列的行列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个...

    关系型数据库:
    关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。
    常见的关系型数据库:mysql,oracle,SQL Server
    存储方式::行存储,一个表里每一个对象的记录存储一行,一行里包括了该记录的所有特征
    在这里插入图片描述
    优缺点以及应用场景:
    优点:

    1)复杂查询可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。

    2)事务支持使得对于安全性能很高的数据访问要求得以实现。

    缺点:

    1)不擅长大量数据的写入处理

    2)不擅长为有数据更新的表做索引或表结构(schema)变更

    3) 字段不固定时应用不方便

    4)不擅长对简单查询需要快速返回结果的处理

    使用场景:

    1)需要做复杂处理的数据;

    2)数据量不是特别大的数据;

    3)对安全性要求高的数据;

    4)数据格式单一的数据;

    非关系型数据库:
    NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
    常见的非关系型数据库:

    (1)键值对存储(key-value):Redis键值对存储,优势:快速查询,缺点:存储数据缺少结构化。

    (2)列存储:Hbase,优势:快速查询,扩展性强。缺点:功能相对于局限。

    (3)文档数据库存储:MongoDB,早起应用多。优势:要求不特别的严格。缺点:查询性不高,缺少统一查询语法。

    (4)图形数据库存储:应用于社交网络,优势:利用图结构相关算法。缺点:需要整个图计算才得出结果,不容易做分布式集群方案。
    存储方式:
    以列为单位进行数据的存储,一列作为一个记录,每个对象的记录会存储多行,各行相对独立;
    在这里插入图片描述
    优缺点以及使用场景:
    优点:

    1)nosql数据库简单易部署,基本都是开源软件,不需要像使用oracle那样花费大量成本购买使用,相比关系型数据库价格便宜。

    2)nosql数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查询速度远不及nosql数据库。

    3)nosql的存储格式是key,value形式、文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,而数据库则只支持基础类型。

    4)不支持Join处理,各个数据都是独立设计的,很容易把数据分散在多个服务器上,故减少了每个服务器上的数据量,即使要处理大量数据的写入,也变得更加容易,数据的读入操作当然也同样容易。

    缺点:

    1)无法对表进行复杂的计算,不支持join等功能。

    使用场景:

    1)海量数据存储;

    2)多格式的数据存储;

    3)对查询速度要求快的数据存储;
    对非关系型数据库中又该如何选择合适的数据库呢
    redis是一个高性能的(key/value)分布式内存数据库,
    应用的场景:
    (1) 缓存(数据查询,短连接,新闻内容,商品内容等),使用最多
    (2) 聊天室在线好友列表
    (3) 任务队列(秒杀,抢购,12306等)
    (4) 应用排行榜
    (5) 网站访问统计
    (6) 数据过期处理(可以精确到毫秒)
    (7) 分布式集群架构中的session问题

    Mongodb存储的也是key/value,只不过它的value是json类型,适合存储对象类型的数据,
    1)网站实时数据处理。它非常适合实时的插入、更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
    2)缓存。由于性能很高,它适合作为信息基础设施的缓存层。在系统重启之后,由它搭建的持久化缓存层可以避免下层的数据源过载。
    3)高伸缩性的场景。非常适合由数十或数百台服务器组成的数据库,它的路线图中已经包含对MapReduce引擎的内置支持。

    关系型数据库和非关系型数据库的比较

    区别 关系型数据库 非关系型数据库(Nosql)
    存储方式 表格式存储。 存储在表的行和列中。他们之间很容易关联协作存储,提取数据很方便 通常存储在数据集中,就像文档、键值对或者图结构。
    存储结构 结构化数据。 数据表都预先定义了结构(列的定义),结构描述了数据的形式和内容。这一点对数据建模至关重要,虽然预定义结构带来了可靠性和稳定性(优点),但是修改这些数据比较困难(缺点)。 基于动态结构,使用与非结构化数据。因为Nosql数据库是动态结构,可以很容易适应数据类型和结构的变化。
    查询方式 结构化查询语言来操作数据库(就是我们通常说的SQL) 关系型数据库表中主键 关系型数据库使用预定义优化方式(比如索引)来加快查询操作 以块为单元操作数据,使用的是非结构化查询语言(UnQl),它是没有标准的 Nosql中存储文档的ID 更简单更精确的数据访问模式
    事务 遵循ACID规则(原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)) 支持对事务原子性细粒度控制,并且易于回滚事务。 遵循BASE原则(基本可用(Basically Availble)、软/柔性事务(Soft-state )、最终一致性(Eventual Consistency)) Nosql数据库是在CAP(一致性、可用性、分区容忍度)中任选两项,因为基于节点的分布式系统中,很难全部满足,所以对事务的支持不是很好,虽然也可以使用事务,但是并不是Nosql的闪光点。
    性能 为了维护数据的一致性付出了巨大的代价,读写性能比较差。在面对高并发读写性能非常差,面对海量数据的时候效率非常低。 Nosql存储的格式都是key-value类型的,并且存储在内存中,非常容易存储,而且对于数据的 一致性是 弱要求。Nosql无需sql的解析,提高了读写性能。
    展开全文
  • 非关系型数据库NOSQL RedisNOSQL介绍关系型数据库和非关系型数据库的区别关系型数据库(Mysql Oracle SqlServer)非关系型数据库(NOSQL)Redis的介绍使用Redis的好处应用场景Redis使用redis服务器打开redis图形化...

    NOSQL介绍

    (1)什么是NOSQL
    NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库
    NOSQL是非关系型数据库
    Redis: 就是NOSQL 非关系型数据库
    MySql Oracle :关系型数据库

    关系型数据库和非关系型数据库的区别

    关系型数据库(Mysql Oracle SqlServer)

    1:数据是由一张张的表组成,而且这些表与表之间有关系(一对一,一对多,多对多)
    2:数据是存在硬盘上,每次访问时,是将数据从硬盘读取到内存中
    在这里插入图片描述

    非关系型数据库(NOSQL)

    》1: 数据是有一个个的键值对:键 值
    》2:数据是存在内存中,在满足需要的时候,也可以将数据存在硬盘上(Redis的持久化)
    在这里插入图片描述

    Redis的介绍

    Redis(Remote Dictionary Server ) 远程字典服务,是一个非关系型数据库

    使用Redis的好处

    每一次页面加载后都会重新请求数据库来加载,对数据库的压力比较大,而且分类的数据不会经常产生变化,所有可以使用redis来缓存这个数据。
    在这里插入图片描述

    Redis的特点

    高效性:Redis读取的速度是110000次/s,写的速度是81000次/s
    原子性:Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
    支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)
    稳定性:持久化,主从复制(集群)
    其他特性:支持过期时间,支持事务,消息订阅。

    应用场景

    Redis一般用来存储经常访问的,但有不经常改变的数据
    配合关系型数据库做高速缓存
    在这里插入图片描述
    由于其拥有持久化能力,利用其多样的数据结构存储特定的数据
    在这里插入图片描述

    Redis不适用场景

    1 ) 需要事务支持
    2 ) 基于sql的结构化查询存储,处理复杂的关系,需要即席查询(用户自定义查询条件的查询)

    Redis使用

    虽然 访问redis 较快,但是第一次是没有数据的
    访问service,获取json,将json保存到redis

    redis服务器

    打开start.bat,打开服务器
    在这里插入图片描述

    打开redis图形化工具

    在这里插入图片描述

    JedisUtil工具读写数据

    package com.wzx.lvyou.util;
    
    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
    import redis.clients.jedis.JedisPoolConfig;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    
    /**
     * Jedis工具类
     */
    public final class JedisUtil {
        private static JedisPool jedisPool;
    
        static {
            //读取配置文件
            InputStream is = JedisPool.class.getClassLoader().getResourceAsStream("jedis.properties");
            //创建Properties对象
            Properties pro = new Properties();
            //关联文件
            try {
                pro.load(is);
            } catch (IOException e) {
                e.printStackTrace();
            }
            //获取数据,设置到JedisPoolConfig中
            JedisPoolConfig config = new JedisPoolConfig();
            config.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));
            config.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdle")));
    
            //初始化JedisPool  创建redis连接池
            jedisPool = new JedisPool(config, pro.getProperty("host"), Integer.parseInt(pro.getProperty("port")));
    
    
        }
    
    
        /**
         * 获取连接方法
         */
        public static Jedis getJedis() {
       // 获取redis对象
            return jedisPool.getResource();
        }
    
        /**
         * 关闭Jedis
         */
        public static void close(Jedis jedis) {
            if (jedis != null) {
                jedis.close();
            }
        }
    }
    
    

    jedis.properties

    host=192.168.21.101
    port=6379
    maxTotal=100  //最大连接数
    maxIdle=10    //最大空闲数
    

    CategoryServlet使用redis

        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
          
            //访问service,获取json,将json保存到redis
            Jedis jedis = JedisUtil.getJedis();
            String json = jedis.get("category_list");
    
            if (json != null) {
                System.out.println("redis cache");
                response.getWriter().println(json);
    
            } else {   //访问redis 较快,但是第一次是没有数据的,所以访问数据库
                System.out.println("mysql data");
                //创建业务对象
                CategoryService categoryService = new CategoryService();
                //所有的分类
                List<Category> categoryList=categoryService.findAll();
                //显示
                ResponseInfo info = new ResponseInfo();
                info.setCode(200);
                info.setData(categoryList);
                json = new ObjectMapper().writeValueAsString(info);
                //将数据保存到redis
                jedis.set("category_list",json);
                response.getWriter().println(json);
            }
            //关闭连接
            JedisUtil.close(jedis);
    
        }
    
    展开全文
  • 目录: 1.什么是数据库 2.数据库的种类 3.数据库的存储方式 4.关系型数据库的优缺点及使用场景 ...数据库根据其数据的存储方式可以分为关系型数据库和非关系型数据库。常见的关系型数据库有Oracle、D...

    目录:

    1.什么是数据库

    2.数据库的种类

    3.数据库的存储方式

    4.关系型数据库的优缺点及使用场景

    5.非关系型数据库的优缺点及使用场景

    1.什么是数据库:

     视为电子化文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。

    2.数据库的种类:

    数据库根据其数据的存储方式可以分为关系型数据库和非关系型数据库。常见的关系型数据库有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。常见的非关系性数据库有 NoSql、Cloudant,Hbase等

    3.数据库的存储方式:

    关系型数据库:

    1)以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表组成了数据库。

    2)关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名。 元组:可以理解为二维表中的一行,在数据库中经常被称为记录。 属性:可以理解为二维表中的一列,在数据库中经常被称为字段。 域:属性的取值范围,也就是数据库中某一列的取值限制。 关键字:一组可以唯一标识元组的属性。数据库中常称为主键,由一个或多个列组成。 关系模式:指对关系的描述,其格式为:关系名(属性1,属性2,…,属性N)。

    3)数据存储方式:行存储,一个表里每一个对象的记录存储一行,一行里包括了该记录的所有特征

    key    列1    列2    列3

    1         1       1         1

    非关系型数据库:

    1)以列为单位进行数据的存储,一列作为一个记录,每个对象的记录会存储多行,各行相对独立;

    2)数据存储方式:

    key   列名     值

    1        列1      1

    1         列2      1

    1         列3      1

    4.关系型数据库的优缺点及使用场景:

    优点:

    1)复杂查询可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。

    2)事务支持使得对于安全性能很高的数据访问要求得以实现。

    缺点:

    1)不擅长大量数据的写入处理

    2)不擅长为有数据更新的表做索引或表结构(schema)变更

    3) 字段不固定时应用不方便

    4)不擅长对简单查询需要快速返回结果的处理

    使用场景:

    1)需要做复杂处理的数据;

    2)数据量不是特别大的数据;

    3)对安全性要求高的数据;

    4)数据格式单一的数据;

    5.非关系型数据库的优缺点及使用场景:

    优点:

    1)nosql数据库简单易部署,基本都是开源软件,不需要像使用oracle那样花费大量成本购买使用,相比关系型数据库价格便宜。

    2)nosql数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查询速度远不及nosql数据库。

    3)nosql的存储格式是key,value形式、文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,而数据库则只支持基础类型。

    4)不支持Join处理,各个数据都是独立设计的,很容易把数据分散在多个服务器上,故减少了每个服务器上的数据量,即使要处理大量数据的写入,也变得更加容易,数据的读入操作当然也同样容易。

    缺点:

    1)无法对表进行复杂的计算,不支持join等功能。

    使用场景:

    1)海量数据存储;

    2)多格式的数据存储;

    3)对查询速度要求快的数据存储;

     

     

    展开全文
  • 那么对于关系型数据库和非关系型数据库你应该怎么选择,它们适用的场景和特点有什么区别? 2.特点 关系型数据库在使用时需要你用SQL语言对数据的结构和类型提前定义,使用表的结构对数据进行存储;非关系型数据库...

    关系型数据库和非关系型数据库

    1.问题背景:

    数据库是我们在开发过程中必不可少的东西,你开发一个应用或者网站肯定需要对某些数据进行存储。那么对于关系型数据库和非关系型数据库你应该怎么选择,它们适用的场景和特点有什么区别?

    2.特点

    • 关系型数据库在使用时需要你用SQL语言对数据的结构和类型提前定义,使用表的结构对数据进行存储;非关系型数据库可以使用列导向、文件导向、键值对或者基于图形式进行数据存储,不必拘泥于关系型数据库的表格形式,而且在数据存储之前你不需要对数据的结构进行定义,随时可以对不同结构的数据库进行插入操作。

    • 关系型数据库支持垂直拓展,就是通过增加存储数据的电脑硬件环境来提高数据操作的速度;非关系型数据库支持水平拓展,就是通过分片或者增加更多的存储节点来增加安全性和操作的速度。

    • 关系型数据在查询或者其他操作时严格遵循各表之间的对应关系,非关系型数据库则不用考虑这种问题,数据库中每条数据之间的关系不是很明确。

    3使用场景

    关系型数据库

    • 对数据严格和清晰定义或者对数据的格式有明确要求的系统
    • 数据库单机部署

    非关系型数据库

    • 数据定义不清晰、数据有很快增长趋势的系统
    • 分布式的数据库部署环境
    展开全文
  • 非关系型数据库以文档的,键值对的,图形的或基于列式存储的,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间空间的...
  • 测试脚本: Mysql测试脚本: [php] view plaincopyprint? 1.  2.  header("Content-Type:text/html;charset=utf-8");  3.  $con = mysql_connect("localhost","root","123456");
  • NoSQL非关系型数据库概述

    千次阅读 多人点赞 2020-09-21 13:31:02
    文章目录NOSQL概念关系型数据库和非关系型数据库的区别:NoSQL非常重要的原因NoSQL的应用场景 NOSQL概念   NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。...
  • 遇见Reddis非关系型数据库 ...图解关系型数据库和非关系型数据库的互补关系 redis:是一个NOSQL数据库(not only SQL)非关系型数据库 redis应用场景:缓存、聊天室的在线好友列表、任务队列、应用排行榜… ...
  • 非关系型数据库

    2018-04-17 13:23:30
    NoSQL概述NoSQL = Not Only SQL应用场景: - High performance 高并发读写 - 数据库并发负载 ...- 海量数据的高效率存储访问 例如 空间facebook 交互时网站 ...去掉关系型数据库的关系型特性,数据之间无关系,
  • 非关系型数据库——HBase(基础)

    千次阅读 2020-07-20 09:40:14
    HBase基础什么是NoSQLNoSQL和关系型数据库对比NoSQLBI、大数据的关系HBase概述HBase应用场景增量数据-时间序列数据信息交换-消息传递内容服务-Web后端应用程序Apache HBase生态圈HBase分布式环境部署HBase物理架构...
  • 非关系型应用场景: 秒杀有一个严重的问题就是超卖,店家本来想卖100件衣服,秒杀活动结束,店家卖出了200件 造成超卖的原因是数据库系统是多线程的,多个线程争抢读库存改库存,多线程的条件下就容易出现超卖...
  • 存储的一种非关系型数据库。 内存中:读取写入速度非常快 持久化存储:写入磁盘或者文件(两种本分数据的方式.aof RDB) 支持主从配置 应用场景:图片验证码,手机验证码保存在redis中,session保存在redis ...
  • 在Python Web开发过程中我们有必要根据不同的应用场景来选择非关系型的数据库(no-SQL)来提升网站性能。当我们的网站流量变得非常大时,从传统关系型数据库如MySQL中读写数据会变得很消耗时间计算资源。例如当MySQL...
  • 点击蓝字关注我吧【本文详细介绍了非关系型数据库Redis中Lua脚本的基本概念使用方法,欢迎读者朋友们阅读、转发收藏!】1 Lua 简介Lua 是一个小巧的脚本语言,其设计目的是为了嵌入应用程序中,从而为应用程序...
  • 【本文详细介绍了非关系型数据库Redis中Lua脚本的基本概念使用方法,欢迎读者朋友们阅读、转发收藏!】1 Lua 简介Lua 是一个小巧的脚本语言,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展...
  • 关系型数据库:存储下来表现为表,但表中数据不能过度冗余(由行列组成的二维表),一个表可以没有行但必须有一个列;最终提供的数据就是行,跟列关系不大,列只是说明其是什么属性 数据库的模型: ·数据模型 ·...
  • 1、简述redis应用场景。 基于redis访问速度块、支持的数据类型丰富的特点,所以redis最常用来存储热点数据。 2、redis的优点是什么? (1)响应快速 Redis 响应非常快,如果存入一些常用的数据,就能有效提高系统的...
  • Nosql数据库的分类及应用场景

    千次阅读 2017-07-05 16:17:32
    当前使用最多的是key-value模型,是一种非关系型数据库,主要是解决是海量数据下的数据库性能扩展能力。 它最大的特点在于要求的数据量大,对事物的要求低。   NoSQL 它打破了长久以来关系型数
  • 当前使用最多的是key-value模型,是一种非关系型数据库,主要是解决是海量数据下的数据库性能扩展能力。 它最大的特点在于要求的数据量大,对事务的要求低。 NoSQL 它打破了长久以来关系型数据库与ACID理论大...
  • NOSQL和关系型数据库比较1.1.2. 非关系型数据库的优势:1.1.3. 关系型数据库的优势:1.1.4. 总结 1.2.主流的NOSQL产品1.3 什么是Redis1.3.1 redis的应用场景 二、下载安装三、命令操作3.1 数据结构3.2 字符串...
  • (1)是文档型的非关系型数据库,使用bson结构。其优势在于查询功能比较强大,能存储海量数据,缺点是比较消耗内存。 (2)一般可以用来存放评论等半结构化数据,支持二级索引。适合存储json类型数据,不经常变化。...
  • NoSQL:即 Not-Only SQL( 泛指非关系型的数据库),作为关系型数据库的补充。 作用:应对基于海量用户海量数据前提下的数据处理问题。 常见 Nosql 数据库: Redis memcache HBase MongoDB 特征: 可扩容,...
  • 1.mongodb(1)是文档型的非关系型数据库,使用bson结构。其优势在于查询功能比较强大,能存储海量数据,缺点是比较消耗内存。(2)一般可以用来存放评论等半结构化数据,支持二级索引。 适合存储json类型数据,不...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 437
精华内容 174
关键字:

关系型数据库和非关系型应用场景