分布式数据库知识点整理

局部数据:只提供本站点的局部应用所需要的数据。

全局数据:虽然物理上存储在个站点上,但是参与全局应用。

局部用户:一个用户或一个应用如果只访问他注册的那个站点上的数据称为本地或局部用户或本地应用;

全局用户:如果访问涉及两个或两个以上的站点中的数据,称为全局用户或全局应用。

全局外模式:是全局应用的用户视图,也称全局视图。从一个由各局部数据库组成的逻辑集合中抽取,即全局外模式是全局概念式的子集。

全局概念模式:描述分布式数据库中全局数据的逻辑结构和数据特性,是分布式数据库的全局概念视图。

分片模式:描述全局数据的逻辑划分。每个全局关系可以通过选择和投影的关系操作被逻辑划分为若干片段。分片模式描述数据分片或定义片段,以及全局关系与片段之间的映像。这种映像是一对多的。

分配模式:根据选定的数据分布策略,定义各片段的物理存放站点,即定义片段映像的类型,确定分布式数据库是冗余的还是非冗余的,以及冗余的程度。如果一个片段分配在多个站点上,则片段的映像是一对多的,分布式数据库是冗余的,否则是不冗余的。

局部概念模式:是全局概念模式的子集。全局概念模式经逻辑划分成一个或多个逻辑片段,每个逻辑片段被分配在一个或多个站点上,称为该逻辑片段在某个站点上的物理映像或称物理片段。局部内模式:是分布式数据库中关于物理数据库的描述,描述的内容不仅包含局部本站点的数据的存储描述,还包括全局数据在本站点的存储描述。

2. 什么是分布式数据库系统?主要特点?

物理上分散而逻辑上集中的系统,它使用计算机网络将地理位置分散而管理和控制又需要不同程度集中的多个逻辑单位连接起来,共同组成一个统一的数据库系统。分布式数据库系统可以看成是计算机网络和数据库系统的有机结合。

(1)物理分布性 (2)逻辑整体性 (3)站点自治性

(4)数据分布透明性(5)集中与自治相结合的控制机制

(6)存在适当的数据冗余度(7)事务管理的分布性

1987 年提出12 条规则:(1)本地自治性(2)不依赖于中心站点(3)可连续操作性(4)位置独立性(5)数据分片独立性(6)数据复制独立性(7)分布式查询处理(8)分布式事务管理(9)硬件独立性(10)操作系统独立性(11)网络独立性(12)数据库管理系统独立性

区别分布式数据库系统与只提供远程数据访问功能的网络数据库系统:

分布式数据库系统中的数据是物理分布在用计算机网络连接起来的各个站点上;每一个站点可以使一个集中式数据库系统,而且都有自治处理的能力,完成本站点的局部应用;而每一个站点上的数据并不是互不相关的,它们构成一个逻辑整体,统一在分布式数据库管理系统的管理下,共同参与并完成全局应用,而且,分布式数据库系统中的这种“分布”对用户来说是透明的,也就是说,本地与远程结合的“接缝”是被隐蔽的,用户应该完全感觉不到远程与本地结合的接缝的存在,即“一个分布式系统应该看起来完全像一个非分布式系统”。这是分布式数据库系统的定义,也是区分一个系统是否为真正意义上的分布式数据库系统的主要依据。

在分布式数据库系统中,为什么要对数据进行分片?什么是关系的片段?主要类型?

原因:减少网络上的通信,提高系统的相应效率

数据分片是指数据存放单位不是全部关系,而是关系的一个片段。也就是关系的一部分。包括:1)水平分片:按一定的条件把全局关系的所有元组划分成若干不相交的子集,每个子集为关系的一个片段。2)垂直分片:把一个全局关系的属性集分成若干子集,并在这些子集上做投影运算,每个投影为垂直分片。(3)混合型分片:将水平分片与垂直分片方式综合使用则为混合型分片。

5.为什么说分布式数据库系统中,数据独立性这一目标比集中式数据库系统更为重要,也更为复杂?

分布式数据库系统中,数据独立性这一目标比集中式数据库系统更为重要,也更为复杂。数据独立性是数据库技术追求的主要目标之一。除了数据的逻辑独立性与数据的物理独立性之外,还有数据的分布独立性,也称为分布透明性。

所谓数据分布独立性:指用户或用户程序使用分布式数据库如同使用集中式数据库那样,不必关心全局数据的分布情况,包括全局数据的逻辑分片情况、逻辑片段的站点位置分配情况,以及各站点上数据库的数据模型等。也就是说,全局数据的逻辑分片、片段的物理位置分配、各站点数据库的数据模型等情况对用户和用户程序透明。

分布式数据库系统的优点:(1)良好的可靠性和可用性(2) 提高系统效率,降低通信费用(3)较大的灵活性和可伸缩性(4)经济性和保护投资(5)适应组织的分布式管理和控制(6)数据分布具有透明性和站点具有较好自治性

分布式数据库系统的问题:最重要的问题是通信网络速度问题(1)如何控制数据的分片、分布与冗余度(2)如何实现异构数据库的互联(3)如何优化分布式数据库的查询处理(4)如何更好地实现分布式数据库的更新处理(5)如何实现分布式数据库的并发控制机制(6)如何实现分布式数据库的恢复控制机制(7)如何实现目录管理

分布式数据库的创建方法、方法特点和适用范围。

(1)组合法:一种自底向上(bottom-up)的创建方法。

适用范围:采用组合法的分布式数据库系统通常是异构或者同构异质DDBS。

(2)重构法:按照分布式数据库系统的设计思想和方法,从总体设计做起。

适用范围:采用重构法创建的分布式数据库系统,通常是同构异质或同构同质DDBS。大多选择同构型分布式数据库系统。

2.2 分布式数据库设计的目标:

除包括集中式数据库设计中的目标外,还包括:

目标一:本地性或近地性    目标二:控制数据的适当冗余

目标三:工作负荷分布      目标四:存储的能力和费用

2.3 概述分布式数据库设计的关键问题及解决方法。

关键问题:(1)访问的多个数据对象是存放在同一站点上还是分布在多个站点所需的时间和费用有很大区别。(2)数据对否被复制、复制副本的多少问题(3)数据分片、片段如何复制、数据或片段如何分布、分布式数据库管理系统的透明性

解决方法:1)分布式数据库遵循本地性或近地性,尽量减少通信次数和通信量,90/10 准则,分片和分布方案(本地和远程访问次数)择优;(2)控制数据适当冗余,冗余增加了可靠性、可用性,提高了效率,维护数据一致性开销增加(3)工作负荷分布(4)存储能力和费用

2.5阐述分布式数据库设计的自顶向下和自底向上设计方法及其使用范围。

(1)自顶向下:从概念设计到形成规格说明设计分布式数据库。

适用范围:通常是同构异质或同构同质DDBS。

(2)自底向上:通过聚集现存数据库来设计分布式数据库。

适用范围:通常是异构或者同构异质DDBS。

2.6 数据分片基本准则?数据分片有哪些基本类型和方法

(1)完备性原则:要把所有的数据映射到各个片断中

(2)可重构原则:关系分片后的各个片断可重构整个关系

(3)不相交原则:关系分片后的各个片断不能重叠。

分片方法:水平分片,垂直分片,混合分片

2.7 为什么说在关系型分布式数据库中使用导出式水平分片,使关系之间的连接变得更加容易?试举一例。

原因:可将连接条件代之以子查询,从而使它变为一般的判别条件。(全局关系的导出式水平分片不是以其自身的属性性质为基础,而是从另一个关系的属性性质或水平片段推到出来的。)

设全局关系SC(S#,C#,GRADE), S(S#,SNAME,AGE,SEX)

若要将SC 划分为男生的各门课成绩和女生的各门课成绩,这就不可能从SC 本身的属性性质来执行选择,必须从关系S 的属性性质或水平片段导出。

define fragment SC1 as select SC.S#,C#,GRADE from SC,S where SC.S#=S.S# and SEX='M'

define fragment SC2 as select SC.S#,C#,GRADE from SC,S where SC.S#=S.S# and SEX='F'

如果S 已经进行水平分片,分为SF 和SM,分别为男生全体和女生全体,则上述的片段定义可以给予片段SF 和SM 导出:

define fragment SC1 as select * from SC where S# in (select SF.S# from SF)

define fragment SC2 as select * from SC where S# in (select SM.S# from SM)

使用导出式水平分片,使关系之间的连接变得更加容易。即可将连接条件代之以子查询,从而使它变为一般的判别条件。

2.8 DATAID-D方法的分布式数据库设计与传统的集中式数据库设计在步骤和内容上有什么不同?

DATAID-D 是作为集中式数据库设计DATAID-1 方法论的扩充而构造的,DATAID-1 方法分成四个阶段:需求分析、概念设计、逻辑设计和物理设计。DATAID-D 要求对其增加两个阶段:分布要求分析阶段和分布设计阶段。

分布要求分析阶段位于概念设计阶段之后进行,主要工作:1. 收集用户分布要求信息2. 水平分片的划分谓词3. 每一应用在各站点激活的频率

分布设计阶段在全局逻辑设计之后进行,主要工作:(1)分布要求和全局逻辑模式作为输入(2)形式为全局数据库模式和逻辑访问表(3)输出为分片模式和分配模式

3.1概述分布式查询优化与集中式查询优化的异同。

分布式查询和集中式查询的相同点即在本地的CPU 和I/O 代价,不同点为分布式查询比集中式查询多了通讯代价。

在集中式数据库系统中,查询优化的目的在于为每个用户查询寻求总代价最小的执行策略。通常,总代价是以查询处理期间的CPU 代价和I/O 代价来衡量的。由于集中式数据库系统大都运行在单个处理器的计算机上,要达到使总代价最小的查询优化目的,就意味着要尽可能降低I/O 代价,使查询的响应时间最短。

在分布式数据库系统中,一个查询可能涉及多个站点,通常以两种不同的目标来考虑查询优化。一种目标是以总代价最小为标准,除了如集中式数据库系统一样考虑CPU 代价和I/O 代价之外,总代价还包括通过网络在站点之间传输数据或信息的代价。这是由于分布式数据库系统中数据是分布和冗余,使得查询处理中,一般需要考虑站点间传递数据和信息所需要的通信费用,它会引起查询总代价的增加。另一种目标是以每个查询的响应时间最短为标准。因为,分布式数据库系统是由多台计算机组成的系统,数据的分布和冗余也增加了查询的并行处理的可能性,从而可以缩减查询处理的响应时间,加快查询处理速度。

在分布式查询优化中,常同时使用这两种标准,根据系统应用的不同,一种作为主要标准,另一种作为辅助标准。

可以先找到一个总代价最小的执行方案,然后在总代价不增加的条件下修正方案使得响应时间也尽可能的短

3.2 试述分布式查询优化的层次结构。

? 查询分解

? 数据本地化

? 全局优化

? 局部优化

3.3 基于关系代数等价变换的查询优化算法的原理与步骤。

基本原理:

1.    把查询问题转化为关系代数表达式;

2.    分析得到查询树;

3.    进行全局到片段的变换得到基于片段的查询树;

4.    利用关系代数等价变换规则的优化算法,尽可能先执行 选择和投影操作,后执行连接合并操作

5.    对该查询树进行优化,从而达到查询优化的目的。

优化算法:

l   连接操作和合并操作尽可能上提(树根方向);

l   选择操作和投影操作尽可能下移(叶子方向);

l   尽可能先执行选择和投影操作,后执行连接和合并操作。

l   经过选择和投影操作不但可以减少其后操作量,还可以减少操作次数。

实现步骤和方法

1.    将一个查询问题转换成关系代数表达式。

2.    从关系代数表达式到查询树的变换:对一个关系代数表达式进行语法分析,可以得到一棵语法树 (或查询树),即查询树根节点是最终的查询结果,叶子节点是查询涉及的所有关系或片段,中间节点是按关系代数表达式中的操作顺序组成的一组关系操作符。

3.    从全局查询到片段查询的变换:把基于全局关系的查询树中的全局关系名,用其重构该全局关系的各个片段名替换,变换成相应片段上的查询树。

4.    利用关系代数等价变换规则优化算法,对片段的查询树进行优化   处理,最后达到优化查询目的。

 3.4 基于半连接算法查询优化的基本原理和适用情形。

基本原理:

(1)采用半连接操作的分布式查询处理是在从一个站点传送关系到另一个站点做连接之前,先除去那些与连接无关的数据,减少做连接操作的关系中的数据量,从而减少站点间数据的传输量,减少传输的代价。

(2)如果只需要一个关系中一小部分元组参与和另一个关系连接的话,这是一个使数据传输量最小化的非常有效的方案。此时有T 半< T 全,采用半连接方案是合适的。在分布式数据库的查询优化中,这是常用的方法之一。

采用半连接优化算法的步骤:

(1)计算每种半连接方案的代价,并从中选择一种最佳方案;

(2)选择传输代价最小的站点计算采用全连接方案的代价;

(3)比较两种方案,确定最优方案。

适用情形:只需要一个关系中的一小部分元组参与和另一个关系连接

3.5 基于直接连接算法查询优化的基本原理和适用情形。

基于连接算法的的查询优化处理中的站点以来算法、分片和复制算法、站点依赖和数据复制算法,以及Hash 划分算法,主要是使得连接操作的数据传送量最小(最好是无数据传送)和负载均衡,从而达到优化目的。

如果局部处理费用是主要的,则采用直接连接方案;

3.8 (1)找出Boce厂的所有雇员(2)找出所有雇员的平均工资(3)找出在如下每个站点工资最高的雇员姓名:Toronto,Edmonton,Vancouver,Montreal(4)找出该公司中工资最低的雇员姓名。

1、将Boce 站点上的employee 片段副本传送到Toronto 站点,呈现给用户

2、 1)在New York 站点的employee 关系上使用函数avg()取得平均工资X

2)将X 传送到Toronto 站点,呈现给用户

3、 1)分别在Toronto,Edmonton,Vancouver,Montreal 这四个站点的employee片段副本上使用函数max()取得最高工资X1,X2,X3,X4

2)在四个站点上分别投影出最高工资X1,X2,X3,X4 所对应的雇员姓名Y1,Y2,Y3,Y4

3)分别将Y2,Y3,Y4 传送到Toronto 站点

4)最后在Toronto 站点将Y1,Y2,Y3,Y4 执行并操作,得到最后结果呈现给用户

4、1)在New York 站点的employee 关系上使用函数min()取得最低工资X

2)在employee 关系上投影出最低工资X 所对应的雇员姓名Y

3)将Y 传送到Toronto 站点,呈现给用户

4.1 分布式数据库事务的定义、特性、结构和状态,分布式事务的性质。

定义:分布式数据库系统中的事务是一个分布式操作的序列,被操作的数据分布在不同的站点上,所以称为分布式事务。

特性:分布式数据库系统中的事务具有事务的ACID 四个特性,即原子性、一致性、隔离性和耐久性。

结构:分布式数据库系统中事务的结构以begin transaction 原语作为一个事务的开始,以commit 原语作为一个事务成功完成的结束,以rollback 或abort原语作为事务失败的结束。

状态:活动、部分提交、失败、回滚/夭折、提交

分布式事务所持有的性质:大量的数据传递、通信原语和控制报文等

4.3 分布式数据库系统中的事务管理与集中式数据库系统中的事务管理有何不同?

分布式与集中式相比,会多遇到一些问题:(1)处理数据项的多个副本;(2)单个站点的故障;(3)通信网络的故障;(4)分布式提交。

4.4 什么是事务的提交点?为什么说他很重要?

当事务所有的站点数据库存取操作都已成功执行,并且所有操作对数据库的影响都已记录在日志中时,该事务就到达提交点。

提交点后事务就成为已提交的事务,并假定其结果已永久记录在数据库中(事务的永久性)。

事务在日志中写入提交记录[commit,T]。

在系统发生故障时,需要扫描日志,检查那些已在日志中写入[start_transaction,T],但没有写入[commit,T]的所有事务T。恢复时必须回滚这些事务以取消它们对数据库的影响。此外,还必须对日志中记录的已提交子事务的所有写操作进行恢复,这样它们对数据库的作用才可根据这些记录重做。

4.5 日志、档案库和检查点的作用是什么?典型的日志包含哪些内容?为什么要“先写日志”?

日志的作用是为了能够从故障状态中恢复有影响的事务。

档案库的作用是为了防止因介质故障而破坏日志和数据库。

检查点的作用是为了便于恢复事务。

典型的日志包含了每个改变数据项值的写操作记录。

因为系统崩溃时主存中的内容可能丢失,所以恢复时只能考虑已写回磁盘的日志内容。因此,在事务到达提交点以前,还未写到磁盘的日志的任何部分,必须被写入磁盘,即“先写日志”。

4.6 列出分布式数据库系统中可能出现的故障类型。哪些故障也可能出现在集中式数据库系统中?

事务故障、系统故障、介质故障、站点故障、通信故障(包括报文故障、网络分割故障)。

事务故障、系统故障、介质故障也可能出现在集中式数据库系统中。

4.7 请用自己的语言描述两阶段的提交过程。

主要思想:将本地原子性提交行为的效果扩展到分布式事务, 保证分布式事务提交的原子性, 并在不损坏日志的情况下, 实现快速故障恢复,提高DDB系统的可靠性。

两阶段提交协议把事务的提交过程分为两个阶段:

第一阶段:表决阶段,即形成一个共同的决定。

第二阶段:执行阶段,目的是实现这个决定。

表决阶段:目的是形成一个共同的决定。首先,协调者在日志中写入一条开始提交记录,再发送“准备”消息给所有参与者,进入等待状态。其次,当参与者收到“准备”消息后,检查是否能够提交本地事务。如能提交,参与者在日志中写入一条开始提交的记录,并发送“建议提交”消息给协调者,然后进入就绪状态;否则,参与者写入撤销记录,并发送“建议撤销”消息给协调者。第三,协调者收到所有参与者的消息后,就做出是否提交事务的决定。

只要有一个参与者投了反对票(建议撤销),协调者从整体上撤销整个事务,发送“全局撤销”消息给所有参与者,进入撤销状态;否则,协调者写入提交记录,发送“全局提交”消息给所有参与者,然后进入提交状态。

执行阶段: 实现表决阶段的决定,提交或者撤销。根据协调者的指令参与者或提交事务或撤销事务,并给协调者发送确认消息。协调者在日志中写入一条事务结束记录并终止事务。

4.8 为什么说两阶段提交协议在不丢失运行日志信息的情况下,可以从任何故障恢复?

因为在执行过程中维护了事务日志,记录了执行恢复所需要的信息。

4.9 分布式数据库系统中对多副本数据更新通常采用什么方法?快照方法的优点和缺点是什么?

主文本更新法、快照方法。

快照方法的优点:既避免了某些并发空控制的开销,又便于复杂查询的完成,是提高系统可用性的有效方法。

缺点:快照只是一个只读关系,其中数据只能读而不能写。

5.1 为什么说分布式并发控制比集中式并发控制要复杂?

分布式数据库中的并发控制是以集中式数据库中的并发控制技术为基础的,分布式并发控制主要解决多个分布式事务对数据并发执行的正确性。在分布式数据库系统中,事务是一个分布式操作的序列,被操作的数据分布在不同的站点上。由于数据的分布对用户是透明的,所以,用户应用对数据的请求是总体的、全局的,应答这类请求的数据,可能存在于构成该分布式环境的任何站点上。另外,在分布式数据库中,允许数据被复制在多个站点上,当需要对数据执行更新操作时,也必须同时正确地更新它的所有副本。当来自同一站点或/和不同站点的多个一事务对数据进行并发操作时,如果不能正确处理,数据库的完整性和一致性很容易遭到破坏口因此,分布式并发控制比集中式并发控制要复杂得多。

5.2 描述分布式事务的可串行化理论的一些定义:事务、冲突操作、并发调度、串行调度、一致性调度、两个调度等价、可串行化调度。

冲突操作:如果有两个操作P 和Q 对同一个数据x 进行操作,其中有一个是写操作w[x],则P 和Q 称为冲突操作。

并发调度:

串行调度: 即一个事务的第一个动作是在另一个事务的最后一个动作完成后开始。一个调度中不同事务的各个操作不会互相交叉, 事务是相继执行的。

一致性调度:如果执行一个调度S,可以使得数据库从一个一致性状态转变为另一个一致性状态,则称调度S 为一致性调度。串行调度是一致性调度。

两调度等价:

可串行化调度:如果一个调度等价于某个串行调度,则该调度称为可串行化调度。该调度可以通过一系列非冲突动作的交换操作使其成为串行调度。

5.5 什么是两阶段封锁协议?它如何保证可串行性?为什么人们经常更愿意采用严格两阶段封锁和严酷两阶段封锁?

所谓两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁:1.在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁。2. 在释放一个封锁之后,事务不再申请和获得任何其他封锁。因此保证可串行性。

由于实现基本2PL 协议要锁管理器必须要知道事务的锁点位置;保守2PL要事先声明续集和写集,这都是难以实现的。严格2PL 和严酷2PL 容易实现。严格2PL 的实现方法是:事务在提交或者撤销之前,绝对不释放任何一个写锁;事务结束时(提交或者撤销),同时释放所有的锁。严酷2PL 的实现方法是:事务T 在提交或撤销之前,不能释放任何一个锁(写锁或者读锁),因此它比严格2PL 更容易实现。

5.7 什么是多粒度封锁和意向锁?它们在什么情况下使用?

多粒度封锁是:封锁的粒度不是单一的一种粒度,而是有多种粒度。可以定义多粒度树,根节点是整个数据库,叶节点表示最小的封锁粒度。

意向锁是:如果对一个节点加意向锁,则说明该节点的下层节点正在被封锁。对任一节点封锁时,必须先对它的上层节点加意向锁。

具有意向锁的多粒度加锁方法中,任意事务T 要对一个数据对象加锁,必须先对它的上层节点加意向锁。申请封锁时应该按自上而下的次序进行,释放锁时则应该按自下而上的次序进行。具有意向锁的多粒度加锁方法提高了系统的并发度, 减少了加锁和释放锁的开销。它已经在实际的DBMS 系统中广泛应用,例如Oracle 中。

全局时标分配方法:使用全局的单调递增的计数器,全局的计数器维护是个难题。全局唯一时间的形成与调整:每个站点设置一个计数器, 每发生一个事务, 计数器加一。发送报文时包含本地计数器值, 近似同步各站点计数器。

基本时标法规则:每个事务在本站点开始时赋予一个全局唯一时标。在事务结束前,不对数据库进行物理更新。事务的每个读操作或写操作都具有该事务的时标。对每个数据项x, 记下写和读操作的最大时标,记为WTM(x)和RTM(x)。如果事务被重新启动,则被赋予新的时标。

保守时标法规则:每个事务只在一个站点执行, 它不能激活远程的程序,但是可以向远程站点发读/写请求。站点i 接收到来自不同站点j 的读/写请求必须按时标顺序,即每个站点必须按时标顺序发送读/写数据请求,在传输中也不会改变这个顺序。每个站点都为其它站点发来的读/写操作开辟一个缓冲区, 分别保存接收到的读/写申请。

连锁超市分布式数据库系统

需求分析

l   连锁超市总部负责产生并管理该连锁超市的整体汇总数据。

l   连锁超市的各个门店之间一般不进行数据交换。有关供应商信息、合同信息、商品信息和销售信息等经营基础数据都是各门店单独管理和使用,门店之间互不相关。

l   每一个远程站点(总部和各门店)分别有一个数据库系统,各自组成一个独立的子系统,可以分别独立进行相应的业务处理。

l   该连锁超市的会员卡实行全国联网消费,会员可以进行异地消费。

l   会员能在线查询自己的相关信息和修改一些基本信息。

l   职员限定在一所门店工作,能管理该门店的商品信息、销售信息,并可以管理会员注册。

l   一般管理员只能对所在门店的供应商信息、合同信息进行管理,以及对该门店的职员信息进行查询。

l   高级管理员,属于总部职员,能管理所有职员信息,包括修改、添加、删除职员信息,创建整体汇总数据和对汇总数据进行管理等。

系统功能分析:

l   公司总部负责管理该连锁超市的整体汇总数据,商品的业种和品牌,会员信息和会员消费明细以及整个连锁超市的所有职员信息。

l   连锁超市各门店可以查询总部职员信息中隶属于本门店的职员信息;有关供应商信息、合同信息、商品信息和销售信息等经营基础数据都是各门店单独管理和使用,门店之间互不相关。

l   各个站点(公司总部和各门店)分别有一个数据库系统,各自组成 一个独立的子系统,可以分别独立进行本部门业务处理。

l   供应商为连锁超市提供的商品包括品牌和业种两个属性,由总部统一进行管理,同时供应商在提供给超市商品的同时要签订一份供货合同,以保证其法律效力,合同由各门店自己保管。

l   每个门店记录各自的销售记录,并将销售记录汇总给总部,由总部对销售汇总表进行分析和决策,门店没有权限查询整体销售记录以及其他门店的销售记录。

l   每个门店只可以查询自身门店的员工信息,但员工的信息由总部统一管理,总部可以看到各门店所有的员工信息,同时,总部也将各门店的基本信息统一管理,增加或删除某个门店的数据信息由总部高级管理员进行操作。

l   会员在任意一家门店都可以注册或使用会员卡进行刷卡消费活动,会员信息由总部统一管理。

分布设计

l   各门店是相对独立且拥有同样的对自身数据的管理和访问权限,垂直分片是没有必要的。

l   由于各门店管理本店的库存、销售等数据,水平分片是十分必要的。

非冗余分配

l   基础信息的片段,采用非冗余分配

l   整体汇总数据,由总部产生,分配在总部的站点上

l   整个连锁超市的职员也分配在总部站点上

冗余分配

l   业种信息和品牌信息被冗余地分配到各门店的数据库中

l   会员信息和会员消费明细信息也被冗余地分配到各门店的数据库中

相关推荐