当前位置: 首页 > 编程日记 > 正文

分布式数据库概述

1.前言
        随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩充,数据库应用已经普遍建立于计算机网络之上。这时集中式数据库系统表现出它的不足:数据按实际需要已在网络上分布存储,再采用集中式处理,势必造成通信开销大;应用程序集中在一台计算机上运行,一旦该计算机发生故障,则整个系统受到影响,可靠性不高;集中式处理引起系统的规模和配置都不够灵活,系统的可扩充性差。在这种形势下,集中式DB的“集中计算”概念向“分布计算”概念发展。分布计算主要体现在客户机/服务器模式和分布式数据库体系结构两个方面。本章将分别介绍这两种技术。

2.分布式数据库系统概述
        随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩大,以分布式为主要特征的数据库系统的研究与开发受到人们的注意。分布式数据库是数据库技术与网络技术相结合的产物,在数据库领域已形成一个分支。分布式数据库的研究始于20世纪70年代中期。世界上第一个分布式数据库系统SDD-1是由美国计算机公司(CCA)于1979年在DEC计算机上实现。20世纪90年代以来,分布式数据库系统进入商品化应用阶段,传统的关系数据库产品均发展成以计算机网络及多任务操作系统为核心的分布式数据库产品,同时分布式数据库逐步向客户机/服务器模式发展。

3.DDBS的分类
       (1) 同构同质型DDBS:各个场地都采用同一类型的数据模型(譬如都是关系型),并且是同一型号的DBMS。
      (2)同构异质型DDBS:各个场地采用同一类型的数据模型,但是DBMS的型号不同,譬如DB2、ORACLE、SYBASE、SQL Server等。
      (3)异构型DDBS:各个场地的数据模型的型号不同,甚至类型也不同。随着计算机网络技术的发展,异种机联网问题已经得到较好的解决,此时依靠异构型DDBS就能存取全网中各种异构局部库中的数据。

4.DDBS的特点和优缺点
DDBS的基本特点:
(1)物理分布性:数据不是存储在一个场地上,而是存储在计算机网络的多个场地上。
逻辑整体性:数据物理分布在各个场地,但逻辑上是一个整体,它们被所有用户(全局用户)共享,并由一个DDBMS统一管理。
(2)场地自治性:各场地上的数据由本地的DBMS管理,具有自治处理能力,完成本场地的应用(局部应用)。
(3)场地之间协作性:各场地虽然具有高度的自治性,但是又相互协作构成一个整体。
DDBS的其他特点
(1)数据独立性
(2)集中与自治相结合的控制机制
(3)适当增加数据冗余度
(4)事务管理的分布性
DDBS的优点
(1)具有灵活的体系结构
(2)适应分布式的管理和控制机构
(3)经济性能优越
(4)系统的可靠性高、可用性好
(5)局部应用的响应速度快
(5)可扩展性好,易于集成现有的系统
DDBS的缺点
(1)系统开销较大,主要花在通信部分 。
(2)复杂的存取结构(如辅助索引、文件的链接技术),在集中式DBS中是有效存取数据的重要技术,但在分布式系统中不一定有效。
(3)数据的安全性和保密性较难处理。

5.数据分片
类型:
(1)水平分片:按一定的条件把全局关系的所有元组划分成若干不相交的子集,每个子集为关系的一个片段。
(2)垂直分片:把一个全局关系的属性集分成若干子集,并在这些子集上作投影运算,每个投影称为垂直分片。
(3)导出分片:又称为导出水平分片,即水平分片的条件不是本关系属性的条件,而是其他关系属性的条件。
(4)混合分片:以上三种方法的混合。可以先水平分片再垂直分片,或先垂直分片再水平分片,或其他形式,但他们的结果是不相同的。
条件:
(1)完备性条件:必须把全局关系的所有数据映射到片段中,决不允许有属于全局关系的数据却不属于它的任何一个片段。
(2)可重构条件:必须保证能够由同一个全局关系的各个片段来重建该全局关系。对于水平分片可用并操作重构全局关系;对于垂直分片可用联接操作重构全局关系。
(3)不相交条件:要求一个全局关系被分割后所得的各个数据片段互不重叠(对垂直分片的主键除外)。

6.数据分配方式
(1)集中式:所有数据片段都安排在同一个场地上。
(2)分割式:所有数据只有一份,它被分割成若干逻辑片段,每个逻辑片段被指派在一个特定的场地上。
(4)全复制式:数据在每个场地重复存储。也就是每个场地上都有一个完整的数据副本。
(5)混合式:这是一种介乎于分割式和全复制式之间的分配方式。

7.体系结构
                             %E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84.jpg
        数据分片和数据分配概念的分离,形成了“数据分布独立型”概念。
数据冗余的显式控制。数据在各个场地的分配情况在分配模式中一目了然,便于系统管理。
        局部DBMS的独立性。这个特征也称为“局部映射透明性”。此特征允许我们在不考虑局部DBMS专用数据模型的情况下,研究DDB管理的有关问题。

8.分布式数据库管理系统
                              %E5%88%86%E5%B8%83%E5%BC%8F%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F%E7%9A%84%E7%BB%93%E6%9E%84.jpg
        接受用户请求,并判定把它送到哪里,或必须访问哪些计算机才能满足该要求。
        访问网络数据字典,了解如何请求和使用其中的信息。
        如果目标数据存储于系统的多个计算机上,就必须进行分布式处理。
        通信接口功能。在用户、局部DBMS和其他计算机的DBMS之间进行协调。
        在一个异构型分布式处理环境中,还需提供数据和进程移植的支持。这里的异构型是指各个场地的硬件、软件之间存在着差别。
%E5%88%86%E5%B8%83%E5%BC%8F%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F%E7%9A%84%E7%BB%93%E6%9E%841.jpg
 
9.小  结
(1)“分布计算”概念突破了集中式DBS的框架,数据分布使系统走上分布式DB的道路,功能分布使系统走上C/S道路。这是DBS的两个发展。
(2)C/S系统包括一个计算机网络,通常用一个局域网连结。几乎在所有情况下,客户机都是微机;服务器有时用小型机或大型机,但多数情况下也使用微机或高档微机。应用程序在客户机上处理,DBMS和OS的数据管理分放在服务器上。
(3)C/S结构经历了从两层、三层到多层的演变过程。总的趋势是使客户机越来越“瘦”,变成浏览器;而服务器的种类越来越多,容易实现系统的组装。
(4)C/S系统使应用与用户更加贴近,为用户提供较好的性能和更复杂的界面。
(5)分布式系统是在集中式系统的基础上发展而来的。DDB是数据库技术与网络技术结合的产物。随着计算机网络技术的飞速发展,DDBS日趋成为数据库领域的主流方向。
(6)DDB具有数据分布性和逻辑整体性的特点。DDBS能够支持涉及多个场地的全局应用。DDB的数据存储有数据分片和数据分配两种策略。
(7)DDB的模式结构为理解DDBS提供了一种通用的概念结构。分布透明性是DDBS追求的目标。DDBMS是负责管理分布环境下,逻辑集成数据的存取、一致性、有效性和完备性的软件系统。
(8)DDBS中数据分布在各个场地,系统中压倒一切的性能目标是尽量减少网络中传送信息的次数和传送的数据量。分布式查询中基于半联接的优化策略是常用的技术。
(9)对于并发控制和恢复,DDBMS环境中会出现大量在集中式DBMS环境中碰不到的问题。分布式的并发控制有主场地方法和主拷贝方法,再辅之于备份场地技术。

相关文章:

JavaScript中substr()和substring的区别

例子: var letters "abcdefg"; console.log(letters.substr(1,3))//结果为bcd console.log(letters.substring(1,3));//结果为bc区别: substr(start,length)是从起始索引号开始提取指定长度的字符串;substring(start,stop)是提取…

vc++学习篇(三)——预处理命令之条件编译(#ifdef,#else,#endif,#if等)

预处理就是在进行编译的第一遍词法扫描和语法分析之前所作的工作。说白了,就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译。这样做的好处是,经过处理后的代码,将会变的很精短。 关于预处…

Tech.Ed2005 讲义下载地址

前天刚刚下载了微软技术大会 Tech.Ed2005 讲义全文,我打了包,供大家下载 下载地址:Tech.Ed2005 讲义下载

Educational Codeforces Round 54

这套题不难,但是场上数据水,导致有很多叉点 A. 因为是让求删掉一个后字典序最小,那么当a[i]>a[i1]的时候,删掉a[i]一定最优!这个题有个叉点,当扫完一遍如果没有满足条件的,就删去最后一个字符…

武夷游记(二)

在竹筏漂流九曲溪之前导游就告诫我们:要给艄公小费,才能划得慢而且讲得多。但同船渡的都是年轻人,不明就理的我们不知道什么时候给。果不其然,一路上船划得飞快,势如强弩,连超了好几艘竹排,要是…

【bzoj3261】最大异或和 可持久化Trie树

题目描述 给定一个非负整数序列 {a},初始长度为 N。 有M个操作,有以下两种操作类型:1、A x:添加操作,表示在序列末尾添加一个数 x,序列的长度 N1。2、Q l r x:询问操作,你需要…

如何给HTML添加事件?

第一种方式&#xff1a; 直接在相应的HTML标签中添加相应的属性&#xff0c;通过属性去添加事件。 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>HTML添加事件的方式&#xff08;一&#xff09;</title><scri…

Case When 解决简单的是与否

昨天晚上买了一个sql的新书&#xff0c;特别的高兴&#xff0c;晚上就阅读了很多&#xff0c;突然发现以前经常在SQL中使用的case when的用法&#xff0c;以前在csdn上面看到好多&#xff0c;但是就是不知道怎么用&#xff0c;可能那个时候还没有用到的地方&#xff0c;不过现在…

Vue异步组件Demo

Vue异步组件Demo 在大型应用中&#xff0c;我们可能需要将应用拆分为多个小模块&#xff0c;按需从服务器下载。为了进一步简化&#xff0c;Vue.js 允许将组件定义为一个工厂函数&#xff0c;异步地解析组件的定义。Vue.js 只在组件需要渲染时触发工厂函数&#xff0c;并且把结…

JS笔记(一):声明提升

我们习惯将 var a 2; 看作一个声明&#xff0c;而实际上JavaScript引擎并不这么认为。他将 var a 和 a 2 当作两个单独的声明&#xff0c;第一个是编译阶段的任务&#xff0c;第二个则是执行阶段的任务。 ——《你不知道的Js》 变量提升 变量提升的概念已经为大家所熟知&…

event对象(触发机制)

Event 对象代表事件的状态&#xff0c;比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态&#xff0c;常用事件如下&#xff1a; 事件触发时机onchange用户改变域的内容onclick鼠标点击某个对象onfocus、onblur元素获得焦点、失去焦点时触发onkeydown、o…

3种方式理解旋转变换

有V1(x1,y1), 求这个点绕坐标原点旋转θ角度后的坐标V2(x2,y2) 1.三角函数 假设(x1,y1)(Rcosα,Rsinα) (x2,y2) (Rcos(αθ),Rsin(αθ)) (Rcosαcosθ-Rsinαsinθ,RcosαsinθRsinαcosθ) (x1cosθ-y1sinθ,x1sinθy1cosθ) 2.坐标轴旋转 如果有向量Ax&#xff1d…

Yahoo中国变脸?

今天看到一则消息“门户雅虎走了”&#xff0c;到Yahoo中国网站一看&#xff0c;果然首页变成简洁的以搜索为主的页面。原来的Yahoo首页成为现在的“资讯首页”。似乎Yahoo中国要在搜索上大干一场……

ubuntu14.04上搭建android开发环境

这几天心血来潮&#xff0c;想在ubuntu上写写android软件。所以就上网找些资料在ubuntu上搭建android环境。结果要么时不完整的&#xff0c;要么就是过时的。所以我把我搭建android环境的过程写下了&#xff0c;以便以后忘了能够參考參考&#xff0c;也给来看这篇博文的读者一些…

nuxt.js实战之移动端rem

nuxt.js的项目由于是服务端渲染&#xff0c;通过js动态调整不同尺寸设备的根字体这种rem方案存在一种缺陷。由于设置字体的代码不能做服务端渲染&#xff0c;导致服务端返回的代码一开始没有相应的跟字体&#xff0c;直到与前端代码进行合并根字体改变&#xff0c;这就造成我们…

Window对象中setInterval()和setTimeout()的区别

- setInterval("",time)&#xff1a;每隔指定的时间执行一次调用的函数或计算表达式&#xff0c;如果不停止会无限次去执行&#xff1b; - setTimeout("",time)&#xff1a;在指定时间的最后执行一次调用的函数或计算表达式&#xff0c;仅执行一次。 <…

妹妹生了个女儿,纪念一下

下午艺花打电话告诉我&#xff0c;春兰生了个女儿。 赶紧发了短信过去询问情况&#xff0c;没想到妹夫就打了电话过来&#xff0c;换了她上线&#xff0c;声音里透着初为人母的喜悦&#xff0c;很为她高兴。她说生产不是很顺利&#xff0c;后来剖腹才产下了小外甥女&#xff0c…

如何获取HTML元素对应JavaScript对象?

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head><body><!--如何获取HTML元素对应JavaScript对象--><!--我们首先要明白标签和元素的区别&#xff1a;标签&#xff1a;div标签&a…

HTML样式以及使用

HTML的样式包含&#xff1a; 1&#xff0c;标签{style &#xff0c;link} 2。属性{rel"styleSheet"外部样式表&#xff0c;type"text/css",margin-left:边距} 外部样式的插入方法&#xff1a;当中myStyle.css是你自定义的css文件&#xff0c;里面能够写上你…

VMWARE虚拟机安装系统提示CPU已被客户机操作系统禁用和secureCUT乱码

错误&#xff1a;VMWARE虚拟机安装系统提示CPU已被客户机操作系统禁用 改正&#xff1a;找到虚拟机的位置找到下图灰色的部分&#xff1a;打开 .vmx后缀的操作系统配置文件&#xff0c;加入以下代码&#xff1a; cpuid.1.eax :: 2.补充一个secureCUT乱码的 1.找到会话管理----…

代码 设计 生活 (2)--- 菜鸟

刚开始涉足这个领域&#xff0c;可以说自己是个十足的菜鸟&#xff0c;不对&#xff0c;菜鸟是行内行对新人的称呼&#xff0c;应该说我当时孤陋寡闻的连菜鸟这个词都没听说过。既然进了这行&#xff0c;也就先从基层的菜鸟做起吧。说实话初中和高中是有开计算机课程的&#xf…

如何用JavaScript操作form表单组件?

一、用JavaScript操作按钮&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>JavaScript操作form表单组件</title></head><body><span></span><br /><!--用JavaScript操…

电梯演讲(团队)

各位同学大家好&#xff0c;我的产品时间管理系统是为了解决大学生们制定计划难和执行计划难的痛苦&#xff0c;他们需要一个能够帮助他们制定时间计划并且可以起到一定督促作用的软件&#xff0c;但是现有的方案并没有很好的解决这些需求&#xff0c;我们可以帮助用户 一键定做…

1291 火车线路(区间修改,区间最值)

1291 火车线路 时间限制: 1 s空间限制: 128000 KB题目等级 : 大师 Master题目描述 Description 某列火车行使在C个城市之间(出发的城市编号为1&#xff0c;结束达到的城市的编号为C)&#xff0c;假设该列火车有S个座位&#xff0c;现在有R笔预订票的业务。现在想对这R笔业务进行…

在DataTable中创建计算列

我们知道DataTable是内存中的一个表&#xff0c;可以用DataColumn和DataRow来构造一个DataTable,并且用DataColumn的Expression属性来创建计算列。 (1)创建计算列,该列的值是其它列的计算值.如&#xff1a; DataSet1.Tables("myTable").Columns("Pri…

go 网络请求篇

---恢复内容开始--- 今天特意找了下go的网络请求篇&#xff0c;get请求是ok的&#xff0c;post请求一直不下来&#xff0c;搜索了下&#xff0c;代码都差不多&#xff0c;无法拿到post数据&#xff0c;先整理一篇&#xff0c;亲测可用。 针对post &#xff0c;先来说下post 四种…

jQuery添加DOM节点常用的5种方法

一、内部插入&#xff08;前插入、后插入&#xff09;&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>jQuery添加DOM节点常用的五种方法</title><script type"text/javascript" src"…

未能从程序集 XX加载类型XXX的错误解决方法(借以提醒NHibernate使用者)

这是写.hbm.xml文件最容易犯的错误之一首先,Class的Name属性必须是"完全限定类名,程序集名"这里,例如<class name"ibiz.core.domain.product,ibiz.core">很多人在这里写成"product"或者"product,ibiz.core",这样,没有写上namesp…

正则最常用到的东西

一种组合方式: (.*?)匹配除换行符以外任意字符,匹配模式加上re.S,则开启无敌模式,匹配一切.需要的内容放在括号里面. 两个方法: re.searchgroup()可以找到第几个括号的东西,在确定只有一个内容时,使用re.search会提高效率, 因为re.search找到第一个就不会去找了,而findall会遍…

2005年你看过的,认为比较好的书,请大家一起来评评

我今年看过的书:设计模式 第三遍了..呵呵..有时候莫名其妙的拿到书就很兴奋..充满魔力的书...敏捷软件开发&#xff1a;原则、模式与实践 第二遍了..和第一本一样..同样充满着魔力..Java编程思想 (第二版) 看第二遍了,主要是补充一下以前看不懂的,或者忽略过的技术..比如垃…