【系统分析师之路】系统分析师必知必会(数据库上篇)
系统分析师必知必会 数据库上篇
一. 数据库分片设计
1. 数据分片背景
在数据库中,某个业务表中的数据量很大,急速膨胀,在这样的情况下,为了保持高的数据响应速度,根据数据的时间局部性和空间局部性原则,可以对数据表进行分片设计。
2. 数据分片方法
一般有主要有两种分片方法:水平分片和垂直分片。
除此以外还有导出分片和混合分片。
1)水平分片
把全局关系中的元祖分裂成多个子集,说白了就是把数据分开。
2)垂直分片
把一个关系分解成多个子集,应满足不相交。说白了就是把属性列分开。
3. 分片准则
1)完整性
必须把全局关系的所有数据映射到片段中,绝不允许有属于全局关系的数据却未被映射到任何一个片段。
2)重构性
必须保证能够由同一个全局关系的各个片段来重建该全局关系。
对于水平分片,可用并操作重构全局关系。对于垂直分片,可用联接操作重构全局关系。
3)不相交性
要求一个全局关系被分割后,所得的各个数据片段互不重叠,对垂直分片的主键除外。
全局关系中每个元祖仅属于一个片段,不能在多个片段重复出现。
4. 库表散列技术
表散列与水平分割相似,但没有水平分割那样的明显分割界限,采用Hash算法把数据分散到各个分表中, 这样IO更加均衡。
一般来说,我们会按照业务或者功能模块将数据库进行分离,不同的模块对应不同的数据库或者表,再按照一定的策略对某个页面或者功能进行更小的数据库散列,比如用户表,按照用户ID进行表散列,散列N张表,
就能够低成本的提升系统的性能并且有很好的扩展性。
在实际应用当中,我们可以根据需要把一个数据量很大的表分割,以达到加快查询速度和提升系统的性能。
二. 数据库体系结构
数据库一共有三类体系结构:分别是主从式,集中式和分布式。
1. 集中式
DBMS和应用程序都放在一台机器上。
2. 主从式
也叫做客户机服务器式;DBMS存放在服务器上,而应用程序存放在客户机上。
3. 分布式
数据库在物理上分布在不同的场地,而逻辑上属于一个整体。
对于分布式数据库来说,分布透明性是指用户不必关心数据的逻辑分片,不必关心数据物理位置分配的细节,也不必关心各个场地上的数据库数据模型。
分布透明性可归入物理独立性的范围,包括了以下的三个层次:
1)分片透明性
他是最高层次的分布透明性。用户或应用程序只对全局关系进行操作,不必考虑数据分片。
2)位置透明性
用户或应用程序应当了解分片情况,但不必了解分段的存储场地。
3)局部数据模型透明性
用户或应用程序应当了解分片及各片段存储的场地,但不必了解局部场地上使用的是何种数据模型。
三. 分布式数据库
1. 分布式数据库概念
逻辑统一,物理分布;
分布式数据库必须保证数据库全局数据的一致性,并发操作的可串行性,和故障的可恢复性。
分布式数据库具有物理分布性,位置自治性与协作性,支持数据独立性,集中与自治相结合的控制,适度数据冗余度,分布的事务管理
2. 分布式数据库特点
数据的独立性和位置的透明性
支持全局数据库的一致性和可恢复性
易于扩展性
分布式数据库系统中“每节点对本地数据都能独立管理”和“当某一场地故障时,系统可以使用其它场地上的副本而不至于使整个系统瘫痪”分别称为分布式数据库的自治性和可用性。
3. 分布式数据库优点
具有灵活的体系结构
适应分布式的管理和控制机构
经济性好
系统可靠性高,可用性好
易于扩展,易于集成现有系统
局部应用的响应速度快,如果存取的数据在本地数据库中,那就可以由用户所在的计算机来执行,速度更快。
4. 分布式数据库缺点
开销大故障高
系统的开销较大,主要体现在通信部分,而且故障率高
存取结构复杂
一般来说在分布式数据库中存取数据,比在集中数据库中存取数据更为复杂,开销也更大
数据的安全性和保密性要求高
在具有高度场地自治的分布