分布式数据库系统和分布式系统
一、分布式系统
何为网络?
首先是由网线连接设备形成各个局域网,然后通过ISP,也就是网络服务提供商或者骨干网(光纤)连接起来形成互联网。
分布式系统有三种类型:
- 客户端/服务器
根据功能将服务器分成多个,比如数据服务器,应用服务器,日志服务器,web服务器等。 - P2P,也就是点对点
完全的分布式系统,没有中心节点,每个节点功能相似 - master和worker
有一个或一组节点为中心节点,负责任务的调度,其他节点均为worker,负责完成具体工作。
分布式系统的CAP性质
Consistency一致性,多份数据之间需要保持一致
Availability,可用性
Partition tolerance,可以容忍网络断开。
在我记忆里,三者一般只能两个达到最好,所以存在一个选择和平衡。一般会尽量朝着 A、P 的方向设计,然后通过其它手段保证对于一致性的商务需求。牺牲一致性,只是不再要求关系型数据库中的强一致性,而是只要系统能达到最终一致性即可。
分布式文件系统,常见的有NFS和AFS
其中NFS是无状态的读写,所以崩溃后直接重启即可
AFS以数据页为单位,可以存大文件,因为是存在本地硬盘当中。
现在的话,还有HDFS,HBASE。
分布式数据库
首先了解普通关系数据库的设计
数据库第一步是进行
- 需求分析
随后主要设计两块内容:
结构设计(模式)和行为设计(界面,模块,事务等)
-
概念模式,也就是E-R图,将抽象出来的需求转化为概念模式,
设计理念有自顶向下(从全局到局部)、自底向上(局部到全局),核心扩张以及混合策略。
具体E-R图中实体连接属性,实体之间关系有1对1,1对多,多对多。期间会设计e-r图的合并,就会出现冲突,比如命名冲突,结构冲突,联系冲突等(能记多少是多少)。 -
逻辑模式设计
一般就是将概念模式转化为关系模型,网状模型层次模型等
如图
期间需要根据范式理论,也就是123范式和BC范式去消除依赖或者模型分解,有水平分解(按8-2理论,也就是数据访问的局部性,按量分开)和垂直分解(将属性集分开,分为各个子集) -
物理设计
-
数据库实施
-
维护
数据库的三模式结构:
逻辑模式:数据库逻辑结构和特征的描述,具体指数据库某时刻的状态
外模式:用户能看到的局部逻辑模式和视图
内模式:指物理结构的存储方式和数据表示方法
分布式数据库
三大特点:数据是分布的,数据之间是互相逻辑相关的,各节点自治性
分布式数据库分为全局(分布式数据库特有的)和局部两部分
全局部分包括全局概念模式,分片模式和分布模式
局部部分包含局部内模式和局部概念模式
分片指的是片段和全局之间的关系
分布指的 是存储位置的选择
大数据的四V特性:
“大量化(Volume)、多样化(Variety)、快速化(Velocity)、价值密度低(Value)”
对于Redis是一无所知,边学习边记录