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

关系型数据库通过外键关联来建立表与表之间的关系,非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定



比如 有一个学生的数据:

    姓名:张三,性别:男,学号:12345,班级:二年级一班

还有一个班级的数据:

    班级:二年级一班,班主任:李四


关系型数据库中,我们创建学生表和班级表来存这两条数据,并且学生表中的班级存储的是班级表中的主键。

非关系型数据库中,我们创建两个对象,一个是学生对象,一个是班级对象,用java来表示就是:

1
2
3
4
5
6
7
8
9
10
11
12
class  Student {
     String id;
     String name;
     String sex;
     String number;
     String classid;
}
class  Grade {
     String id;
     String name;
     String teacher;
}

通过设置Student类的classid等于Grade类的id来建立这种关系;


关系型数据库中,我们查询一条数据,结果出来一个数组,非关系型数据库中,查询一条数据结果是一个对象。


如果你还不理解对象,建议你看看Java基础中 面向对象 的相关介绍




非关系型数据库Redis/Memcached

怎么又是数据库?,不是已经讲过了mysql了?是的,上面咱们说的mysql是关系型数据库,所以这两个叫做非关系型数据库。


为什么需要它们?


与mysql不同的是Redis和Memcached 的数据是放在内存中的,mysql是放在磁盘中的,而访问内存中的数据速度要远大于放在磁盘中,这就是它们的好处。


那为什么还要学习MySQL,干嘛不直接学习使用Redis和Memcached?


因为:MySQL更适合海量存储数据,Redis和Memcached是在内存中的,需要很大的内存才行,而且放在内存中的数据也容易丢失,如果机器故障重启内存就释放了。


一般互联网公司大都采用MySQL + Redis,或者 MySQL +Memcached的方式进行架构;Redis/Memcached都是基于内存的,所以它们的速度非常快,包括读和写都很快,一般用在一些高并发,大数据量访问的场景之下。




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值