数据库系统相关知识

12:关系 & NoSQL  14:扩展机制(分区 & MySQL主从复制)& 缓存机制  15:关系 & 文件 & 内存  17:ORM  18:分布式缓存(Redis & Memcache)

关系型数据库:是建立在关系模型基础上的数据库,借助集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。简单说,关系型数据库是由多张能互相联接的二维行列表格组成的数据库

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

内存数据库:将数据库整体存储在内存中,提高性能

设计难度冗余程度数据架构扩展性
关系数据库数据结构需要符合关系模式,难度大遵守数据库范式,冗余少以数据库为中心组织、管理数据  数据库独立于应用系统,数据库系统接口标准化,易于在不同应用之间共享数据       
文件系统针对特定的应用系统,难度小多个文件中复制相同的数据属性,冗余大以应用系统为中心组织、管理数据符合特定应用系统要求的文件数据库很难在不同应用系统之间共享
数据模型读写性能存储容量可靠性
关系数据库关系模式外存读写,较低磁盘存储,容量大内建恢复机制,高
内存数据库Key-Value模式内存直接读写,高内存存储,容量受限恢复机制复杂,较低
特征关系数据库NoSQL
并发支持支持并发,效率低并发性能高
存储与查询关系表方式存储,sql查询海量数据存储,查询效率高
扩展方式向上扩展向外(水平)扩展
索引方式B树、哈希键值索引
应用领域通用特定
数据一致性实时一致性弱一致性
数据类型结构化数据非结构化,灵活支持多种类型的的数据格式
事务高事务性弱事务性
水平扩展
数据容量有限数据海量数据
可用性基于分布式数据存储,不存在单点故障和性能瓶颈,可用性高

缓存技术

MemCache: 高性能的分布式的内存对象缓存系统,用于动态Web应用以减轻数据库负载。在内存里维护一个统一的巨大的hash表,能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。

Redis: 一个开源的使用ANSI C语言编写,支持网络,可基于内存亦可持久化的日志型,key-value数据库,并提供多种语言的API。

二者区别:

1.都是基于内存数据库,都支持key-value数据类型。Memcache可用于缓存图片、视频等;Redis支持list、set、hash等数据结构的存储。

2.Redis并不是所有的数据都是一直存储在内存中的。当物理内存使用完时,Redis可以将一些很久没有用的value交换到磁盘。

3.Redis很多方面支持数据库的特性,可以说他就是一个数据库系统,而Memcache只是简单地K/V缓存。

MemCacheRedis
数据类型简单Key/Value结构还提供List、Set、Hash等数据结构的存储
持久性不支持支持
分布式存储Memcache服务器需要通过hash一致化来支撑主从结构多种方式,主从、Sentinel、Cluster等
多线程支持支持把任务封闭在一线程中,不支持
内存管理按照既定的内存,将内存切割成特定长度来存储相应的数据
事务支持弱支持,只能保证事务中的每个操作连续执行有限支持

ORM

object-Relational Mapping,关系型数据库和对象之间一个映射,这样我们在具体的数据库操作的时候,就不需要再去和复杂的SQL语句打交道,只需要像平时操作对象一样即可。

面向对象编程把所有实体看成对象,关系型数据库则是采用实体之间的关系连接数据。很早就有人提出,关系也可以用对象表达,这样的话就能使用面向对象编程,来操作关系型数据库。

ORM把数据映射成对象,如:

数据库的表(table)     类(class)

记录(record,行数据)  对象(object)

对象(field) 对象的属性(attribute)

优点缺点
ORM

1.大大降低学习和开发成本

2.程序员不用再写SQL来进行数据库操作

3.减少程序的代码量

4.降低由于SQL代码质量差异而带来的影响

1.不太容易处理复杂查询语句

2.性能较直接用SQL差

优点缺点
在线访问

1.性能比直接用SQL好

2.可以处理复杂的查询语句

1.程序员必须懂SQL语句

2.修改维护相对困难

分布式数据库

分布式数据库是由一组数据组成的,这组数据分布再计算网络的不同计算机上,网络中的每个节点具有独立处理的能力(场地自治),它可以执行局部应用,同时,每个节点也能通过网络通信子系统执行全局应用。分布式数据库系统是集中式数据库系统技术的基础上发展起来的。具有如下特点:

数据独立性。在分布式数据库系统中,数据独立性这一特点更加重要,并具有更多的内容。除了数据的逻辑独立性与物理独立性外,还有数据分布独立性(分布透明性)。

集中与自治共享结合的控制结构。各局部的DBMS可以独立地管理局部数据库,具有自治的功能。同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用。

适当增加数据冗余度。在不同的场地存储同亦一数据的多个副本,这样可以提高系统的可靠性和可用性,同时也能提高系统性能。

全局的一致性、可串行性和可恢复性。

优点:

1.解决企业部门分散而数据需要相互联系的问题。

2.扩展影响较小

3.满足均衡负载

4.全局应用

5.相当规模的分布式数据库系统出现在故障的概率上不会比集中数据库系统低,但由于其故障的影响仅限于局部数据应用,因此就整个系统来说,可靠性比较高。

数据仓库集成 把多种来源的数据集中在一起,建立数据仓库,所有数据都驻留在单个数据库服务器上,配置大型处理器和储存容量。数据仓库主要用于决策支持,在数据处理过程中强调分析其特点是:集成的数据 面向主题 数据相对稳定 包含历史信息

四个层次:

数据源:基础

数据的存储与管理:核心

OLAP(联机分析处理)服务器:有效集成 多维模型组织 多角度 多层次分析 并发趋势

前端工具:包括各种报表、查询、数据分析、数据挖掘工具以及各种基于数据仓库或数据集市的应用开发工具。

商业智能

BI:数据预处理 建立数据仓库 数据分析 数据展现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值