【系统分析师之路】原创章节 数据建模技术思维导图

【系统分析师之路】原创章节数据建模技术思维导图

章节导航

一. 持久化概念

什么是数据持久化?
将数据保存到可永久保存的媒体当中,JDBC和文件IO都是持久化的机制,在应用当中它和数据缓存相反,数据缓存是将数据库数据放在内存中,而持久化刚好是相反的方向。
在这里插入图片描述

二. 数据持久层

数据持久层就是建立逻辑数据操作接口,隐藏数据化访问代码的细节,提供对象持久化操作机制。
数据持久层带来了什么好处?
首先他实现了逻辑层和数据层的分离;然后因为提供了ORM关系对象映射,实现了面向对象的数据库访问;其次通过数据持久层实现了数据库访问细节的隐藏。
因为数据持久层这些优点,他使程序员可以专注于业务逻辑的开发,提高了数据访问的效率因为简化了数据库的操作,因为数据持久层的加入可以解决数据对象不匹配的问题,增加了架构的可伸缩性和可扩展性
那么数据持久层有哪些特征呢?
首先他是以数据为中心的,针对需求提供了相应的数据读写的接口;在保证封装的前提之下增加了系统的可伸缩性,以及数据库无关性。

在这里插入图片描述

三. 数据持久层架构

数据持久层存在以下五种架构:第一种是在线访问OnlineAccess,他是最基本的数据访问模式,它会占用一个数据库的连接来实现相应的交互数据访问
第二个是数据访问对象DAO,它是J2EE基本设计模式之一,他实现了底层的数据操作和高层的业务逻辑相互分离;
第三个是数据传输对象DTO,他是EJB设计模式的一种应用,它本身就是一组对象或者数据的容器;
第四种数据持久层技术是OfflineDataModel离线数据模型;他是以数据为中心,定义了数据结构和规则
最后一种就是关系对象模型,它往往以中间件的形式而存在,它的主要应用就是将应用程序中的数据转化为数据库中的记录。
在这里插入图片描述

四. 当前主流数据持久层技术

当前主流的数据库持久层层技术有很多,Hibernate技术,MyBatis技术,CMP容器持久化技术以及Bee框架;以上四种技术都是数据持久层的技术实现了数据的持久化保存。它将POJO与数据库表建立持久层关系。Bee框架开发效率极高的持久层技术,他最大的特点就是简单易使用;
Hibernate技术,他是开源的持久化框架,实现了对JDBC非常轻量级的对象封装;它的特定可以全自动生成SQL语句,自动化实现多表关联;
MyBatis技术它也是开源的持久化架构,它同时支持Java和.NET,这和Hibernate是不一样的;它可以半自动化地生成对象关联的框架,以及DAO层对象,因为半自动化的原因吧,可以对SQL语句进行性能优化,从这点上就可以体现出性能与效率之间有成反比。具备二级缓存机制这点上,hibernate和MyBatis都是具备的。
CMP是容器的持久化技术,由EJB进行容器的管理,
在这里插入图片描述

五. 缓存技术

缓存技术是我们将一些经常需要访问的数据内容放到缓存服务器中的一个副本里面,这样不必每次都建立数据请求,而可以由缓存直接提供了。
使用缓存技术带来的好处主要体现在性能方面,比如减轻了服务器的负担,降低网络拥塞,增加系统可扩展性。在大规模系统中保证了系统正常运行。
在这里插入图片描述

六. 数据库缓存技术

MemCached技术和Redis技术是最为常用的数据库缓存机制。他们的出现提高了数据库访问的性能(因为减少了数据库的访问次数),增加了可扩展性(可以用在分布式数据库缓存系统当中)。
MemCached的最大特点就是真正的也是最先出现的内存数据库,所以它一旦断电了数据也就不在了,所以持久化,事务管理是跟他占不上边了,但是MemCached却可以支持多线程支持内存管理;
Redis比MemCached最大的不同就是支持持久化,可以有限支持事务。

在这里插入图片描述

Redis技术

Redis分布式存储方案当中,最为常见的有三种模式:主从模式,集群模式这两种比较常见,除此之外还有哨兵模式。
Redis中数据需要同步是怎么实现的?
首先读取Redis中的内容,看看我们所请求的数据是否已经存在缓存中了,如果命中就不用操作数据库直接返回了(性能就比数据库CURD快了N倍),如果没有命中只好去读数据库了,在读数据库的同时,更新缓存的内容。
从Redis的同步机制就可以知道,命中的越多那么性能就越好,如何才可以保证高命中率呢?那么就需要有一个很好的淘汰机制相配合。这里的淘汰机制就是用到了局部性原理,具体到淘汰算法就有:最近最少使用,随机淘汰,淘汰使用频率最低的数据,淘汰放入缓存时间最长的,最后还可以设置不让淘汰。
最后聊聊近几年比较热点的Redis失效机制。
首先有一个叫做惰性策略的概念。访问缓存中的数据的同时,随便确认一下该数据项目的过期时间,过期的话就删除;说到这里你应该可以理解为什么他叫惰性策略了。因为惰性是要命中为前提的,如果没有命中那就不会触发淘汰,也就不可能及时删除所有过期的数据。所以他叫惰性策略。我们还可以定期轮询Redis中的数据,看看哪些因为过期可以删除,当然也不可能删除所有已经过期的KeyValue。
在这里插入图片描述

七. 分布式存储系统

什么是分布式存储系统?
将数据分散存储在多台独立设备上。
与传统的存储系统比有什么优点?
传统的存储系统无法满足大规模存储应用需要,单台服务器往往还可以成为性能的瓶颈。
分布式存储系统有什么特点呢?
采用了可扩展的存储结构(集群),多台服务器可以共同分担存储的负荷,所以可用性也比传统存储系统有优势,一台服务器宕机不会影响整体存储(前提是数据有很好的备份);最后还可以根据服务器位置来存储数据,北京的数据放在北京的服务器,上海的服务器存放上海的数据,那么在操作时性能上就有很好的体现了。

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的横打

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值