ORM
- ORM(Object-Relationl Mapping),它在关系数据库和对象之间作一个映射,这样在具体的操作数据库的时候就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作即可
- 面向对象编程把所有实体看成对象,关系型数据库则是采用实体之间的关系连接数据。关系也可以用对象表达,这样的话,就能使用面向对象编程来操作关系型数据库
- ORM把数据库映射成对象。如 数据库的表==>类 ; 记录(行数据) ==> 对象 ; 字段 ==> 对象的属性
- ORM优点:
- 大大降低学习和开发成本
- 程序员不用再写SQL来进行数据库操作。
- 减少程序的代码量
- 降低由于SQL代码质量差而带来的影响
- ORM缺点
- 不太容易处理复杂查询语句
- 性能较直接用SQL差
数据库分类比较
- 关系型数据库:是建立在关系模型基础上的数据库,借助集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。简单说,关系型数据库是由多张能互相联接的二维行列表格组成的数据库
- NoSQL: 泛指非关系型数据库,NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战尤其是大数据应用难题,包括超大规模数据的存储*
- 内存数据库: 将数据库整体存储在内存中,提高性能
缓存技术
- MemCache: 是一个高性能的分布式的内存对象缓存系统,用于动态Web应用以减轻数据库负载。通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等
- Redis: 开源的使用ANSI C语言编写、支持网络、可给予内存亦可持久化的日志型、key-value数据库,并提供多种语言的API
- Redis与MemCache差异
- 都是将数据存放在内存中,都是内存数据库。他们都支持key-value数据类型。同时Memcache 还可以用于缓存其他东西,例如图片、视频等,Redis还支持list、set、hash等数据结构的存储
- 在Redis中,并不是所有的数据都一直存储在内存中的。这是和MemCache相比最大的区别。当物理内存用完时, Redis可以将一些很久没用到的value交换到磁盘
- ** Redis在很多方面支持数据库的特性,可以这样说他就是一个数据库系统,而Memcache只是简单的K/V缓存**
关系数据库和其他数据库的比较
image.png
image.png
并发控制
image.png
image.png
image.png
image.png
image.png
image.png
案例真题
image.png
image.png
image.png