研讨生第一课高档数据库体系课程之分布式数据库-简书



研讨生第一课高档数据库体系课程之分布式数据库-简书缩略图

前语
时刻:2021年3月11日 13:30-16:30
地址:北京工业大学第三教育楼412教室

2021年3月11日笔者初步了在职研讨生第一课,第一门课程是《高档数据库体系》。正午十二点初步报导,忙完有关入学事宜,一点半王冠教师初步讲课。依照正常的上课时刻是13:30-17:00四节课,每节课 45 分钟,中心歇息时刻应当是是半小时。实践上课时刻13:30 -16:30,中心只歇息了 7 分钟。第一天上课,总的来说还算满足,教师也很担任,时刻短的三小时学习也算收成满满。

接下来的文章内容中,笔者会先来说说对在职研讨生的知道和观点,然后再将三小时的课程收拾成笔记。

一、在职研讨生值不值得上
实际上可以有人对在职研讨生会存在成见,认为在职研讨生没有全日制研讨生声威,没与全日制研讨生好,认为只是花钱买一个学位而已,比方读mba首要就是为了绝交更多的人。但笔者认为在职研讨生值得上。我是上一年年末报的北京工业大学核算机有关专业的在职研讨生的,率直说刚晓得在职研讨生的时分也是存在一些质疑的,可是又非常想前进自个的才能。所以,其时鞠绐系了身边的不少读研的兄弟问问他们的晓得。其间还征询过大学母校两位教师的定见,两位教师对我的主意仍是很撑持的。其间一位教师归于治学和科研情绪非常稳重的人,触摸的一切教师中没有任何一个可以像他那般稳重,依照他的主张在职研讨生同全日制比较,必定没有全日制学习时刻那样足够,可是所承受的教育、拿到的学位证同全日制学生比较根柢没有不一样的;另外一位教师,三十岁拿到博士学位,行政上也即将抵达正处等级,也是对此非常附和我去读的。至今还引认为傲的是大学时刻协助这 教师写过一有些博士论文,并协助其写科研基金请求论文拿到二十多万元的科研经费,尽管这些都只是和化学有关。

留心:以下有关理由首要是站在技能有关作业人员视点思考疑问。在研讨生值得上的理由,首要如下:

1、学的东西并不比全日制研讨生少。
在职研讨生也是要修够必定的学分,课程组织同全日制根柢相同。假定依照每周两天的课程核算,修够学分也需要将近一年半的时刻。且师资待遇同全日制无差异,课程的授课教师均是教授或许研讨生、博士生导师。

2、学习和作业实习相联系,学习的一起相同能堆集作业经历。

3、在职研讨生并非只是花钱就能考过,需要参加国家五月联考。
学校各课程考试可以不会卡主你,可是要想拿到学位证,要参加国家的五月联考。一门专业课和一门英语,其间英语的难度恰当于国家英语四级的难度。

4、学习课程可以辅导自个生长的方向。
作业中想前进自个,假定单单是自学,没有方向,可以会苍茫。笔者之前就是这样,感触有许多东西要学,可是很苍茫,没方向。信赖今后在有关课程作辅导下,自个会有更清楚的学习方针。

5、学习进程会比照艰苦,因为艰苦,所以可以生长。
听之前的在职研讨生师兄师姐说,上一年他们是周六周日两天满满的课程,有时为了赶发展偶尔还会在晚上加课;另外,北京工业大学早上上课时刻是8:00,关于帝都的上班族而言一个多小时的上班时刻再正常不过了。拿笔者来说,8点上课的话,大约一小时非常钟的车程,那么早晨六点支配就要起床;再来看看课表笔者课表上的一句话:”节假期正常上课”。

上课时刻

6、在职研讨生结业后所获得的硕士学位证书,与统招研讨生硕士学位证书相同,都是国家招认、社会认可的。假定是将后想持续读博士,也是完全可以的。

7、这个社会上,学生可所以最贱卖的劳作力。有些研讨生尽管整日忙绿,但做的更多的是一些重复性的作业。学生没有踏入社会,思维较为单纯。可是社会是严格的,从教师的视点上来讲,教师同一般的社会作业人员比较,并无太大差异,所以许多人说学校比照单纯,但其实教师并不单纯。

8、作业中需要更多的标准,在职研讨生可认为你带来更多标准。
作业以来,笔者去过大公司也去过小公司。但历来没有认为触摸的哪一个项目做到了标准,即就是如今地址的公司(公司上万人,规划不算小),一个面向百万用户的app间隔标准也很悠远。笔者认为这种标准有两品种型的人可以可以做到带头牵引的作用,一种是经历比照丰厚的专家等级开发者,另一种是承受过高级教育。后者尽管没有专家等级开发者经历,可是却从有关课程大学到不少标准,这种标准或答应以使用到实践作业。再者,那些博士或承受过更教育的人,学术上本身就需求他们要做到稳重和标准,这种稳重和标准当然也可以会被带到作业中。笔者本科时刻触摸过博士论文写作,对其间的稳重天然是感悟不少。

9、一些原理性东西需要掌控。
一些原理性的东西在实践写代码的进程中,可以用的不多。可是当遇到一些特别难题或需要晓得有关原理的情况,这时才干体现一个开发者的水平。笔者之前在一家创业公司开发的一个项目,数据量非常大,初步是无从下手。数据规划有关常识可以实践开发中很少用到,但笔者最终首要就是从数据规划有关基础常识处置的。

小结

笔者身边的一些全日制的研讨生兄弟,有非常繁忙的,也有比大学还悠哉的。比方我女兄弟每天快要忙成,根柢快全年无休了;我一大学近邻同班同学以及一个学长,他们几乎比大学还逍遥快活。不管是全日制仍是在职,在两者为你供给根柢相同的课程和教育的条件下,究竟能学多少东西,真实要害的在于自个。所以,往后学到的研讨生有关课程内容,笔者方案尽可以的抽出一些时刻将所学的东西以博客文章的方法记载。接下来,总结初度三小时课程学习到的大约内容。

二、一些根柢概念
这儿就先说一些最根柢概念有关的东西。

数据库体系:(database system, dbs)是一个归纳的体系,一般稀有据库(database,db)、数据库打点体系(database manager system,d
研讨生第一课高档数据库体系课程之分布式数据库-简书插图
bms)及其开发东西、使用体系、数据打点员(database administrator, dba)构成。其间bdms是数据库体系中的一组软件。

数据库打点体系:数据库的中心是数据库打点体系(dbms)的重要程度恰当于操作体系(os),价值操作操作体系,一般比操作体系还要凌乱许多。

三、分布式数据库
分布式数据库的重要意义就不多说。如今很火的区块链技能,其实和分布式数据库有不浅的联络,这儿有篇文章你可以看看。

3.1 概念

分布式数据库体系:(distributed database system,ddbs) 是面向地舆上涣散,但打点上需要不一样程度的公司或组织供给数据库打点的打点信息体系。比方一个学校的多个校区学生信息打点或一些跨国公司、连锁店等数据信息打点。
分布式数据打点体系ddbms:同dbms对应的是分布式数据打点体系ddbms (distributed database manager system),它是数据库体系中的一组软件,担任管 理分布环境下逻辑集成数据的存取、 控制、数据变换、通讯。

另外还要晓得,传统的数据库称为会集式数据库。国内研讨始于80年代前期,相对比照齐备的有中科院研发的c-porel体系、武汉大学的wddbs & wooddbs的体系、东北大学 dmu/fo体系。

3.2 分布式数据库体系规划

分布式数据库体系规划

从上图中可以看出,分布式数据库中包括全局数据库体系部分数据库体系。与之对应的别离是全局数据库打点体系gdbms和部分数据库打点体系ldbms。另外,一个用户或一个使用假定只造访他注册的那个站点上的数据则称为本地用户/部分用户/部分使用;假定造访两个或两个以上站点中的数据,称为全局用户或全局使用。ps:上图中的电脑款式就是对应的三个站点。

3.3分布式数据库体系特征

1、物理分布性
数据不是存储在一个站点上,而是涣散存储在多个站点,且用户是感触不到这种分布特性。
2、逻辑全体性
五;上数据是涣散在不一样站点上,可是这些涣散的数据在逻辑上却是一个全体,他们被分布式数据系共同切用户(全局用户)同享,并由一个分布式数据库打点体系打点。
3、站点自治性
即各站点数据由本地dbms打点,具有自治处置才能,结束本站点的使用(部分使用)。

根据以上三点可以推到出另外几个特征:

4、数据分布通明性
分布式数据库体系中,数据的独立性稀有据的逻辑独立性、数据物理独立性以及数据分布独立性,其间数据分布独立性也称为数据分布通明性。数据分布通明性是指用户不必关怀数据是如何被逻辑分片的(数据分片通明性),不必关怀数据及其端是不是被仿制或仿制副本的个数(数据仿制通明性),也不必关怀部分场所上数据库撑持哪些数据模械寥。
5、会集与自治相联系的控制机制
6、存在恰当的数据冗余度
传统的数据库体系即会集式数据库体系,削减冗余度是其方针,因为冗余数据会浪费空间,且简略构成数据副本之间的纷歧致性。但分布式数据库体系中,经过冗余数据可以前进体系的可靠性、可用性以及改进功能,添加冗余度可以便利检索,前进体系的查询速度,但晦气于数据的更新,会添加体系维护的本钱。
7、事务打点的分布性
大型数据库分布在多个站点上,数据的分布性必定会构成事务实施和打点的分布性,即一个全局事务的实施可分化为在若干个站点上实施的子事务(部分事务)。关于事务的概念,如下。

事务:数据库操作的最小单位,事务是一组操作的集结,要保证整个数据库的共同性,事务中的操作要么都操作,要么都不操作,不存在一组操作中一有些实施一有些不实施的情况。比方银行转账,a转给b一千元则会分两步进行:第一步a的账户减去1000,第二步b的账户加上1000,两个进程要么都操作,要么都不操作。假定只实施第一步,那么a来说是一种丢掉;假定只实施第二步,那么对银行来说是一种丢掉。

3.4分布式数据库体系分类

有两个分类标准,一种是依照构成分布式数据库体系的部分数据库打点体系的数据模型,另一种是依照分布式数据库的全局控制体系类型。

依照构成分布式数据库体系的部分数据库打点体系的数据模型分类:

同构型
假定各个站点上的数据库的数据模型都是同一数据模型(如联络模型),则称该数据库体系是同构型。可是具有相同类型的数据模型若为不一样公司的产品,其性质(如数据标明的格局)也不尽相同。因而ddbs又可以分为同构同质和同构异质两种。关于数据模型,该节(3.4 节)后边会说到一点。
异构型
假定各站点上数据库的数据模型的类型是各纷歧样的,则称该分部式数据库体系是异构ddbs。

依照分布式数据库的全局控制体系类型分类:

全局控制会集型ddbs
全局控制涣散性ddbs
全局控制可变型ddbs

弥补:联络模型概念

常见的数据模型有联络模型、网状模型、层次模型等,其间联络模型最为常见。联络模型可以了解为一组联络,其间的每一个联络的数据规划都是一张标准化的二维表。联络模型需求联络是标准化,标准化的最根柢条件就是联络的每一个分量都有必要是不可以再分的数据项,浅显的说法就是不存在大表中嵌套小表。如图所示的表格就不契合联络模型的根柢需求。

不契合联络模型

另外,要晓得撑持联络模型的数据库就是联络数据库。

3.4分布式数据库体系中数据的分片与分布

3.4.1 数据的分片

数据的分片也成数据切割,是分布式数据库的特征之一。全局数据库是有各个部分数据库逻辑组合而成;反之,各个部分数据库由全局数据库的魔种逻辑切割而得。可以愿望一份学生名单,第一行别离是学号、名字、性别、出世年月等。接下来的若干行就是具体的学生信息。在联络型数据库中,就有三种分片方法。即水平分片、笔直分片、混合分片。水平分片即依照若干行区别,如学号小于10的化为一组,其他化为一组;笔直分片可以愿望成将学生的名字和学号独立出来,其他信息再独立成一有些;混合分片就是水平分片和笔直分片两种方法联系。
之所以存在数据分布一说,是因为应有的需要。联络型数据库中不一样站点的用户需要该联络中的元组(一组集结,集结中的元素类型可以纷歧样)可以不一样。比方,某个联络中的元组和区域有关,上海站点的用户需要的是包括”上海”的那些元组,而北京站点的用户需要的是包括”北京”的那些元组等。

3.4.2 数据的分布

数据分布是指数据库中的数据不是存储在一个站点的核算机存储设备上,而是根据需要将数据区别成逻辑片段,依照某种战略将这些片段涣散在各个站点上。一般有四种分布战略:会集式、切割式、仿制式、混合式。

会集式:一切数据都放在一个站点上。这样对数据的控制打点比照溶质,数据的共同性可以得到保证。但因为一切数据放在一个站点,所以站点担负较重,参加站点毛病,则整个体系直接溃散。
切割式:一切数据只需一份,被切割成若干逻辑片段,每个逻辑片段指派到特定的站点。该方法可以充分使用各个站点的存储设备且数据存储量大。假定某个站点呈现毛病,体系仍能运转。可是关于去哪聚的查询和批改会比照耗时。
仿制式:全局数据由多个副本,每个站点都有一个无缺副本。该方法可靠性高,呼应速度快,数据库的恢复也比照简略。可是要保证各个站点数据的同步批改,即将付出高昂的价值。
混合式:统筹切割师和仿制式的做法。

四、传统数据库(会集型数据库)方法规划
会集型数据库有三级方法和两级映像。三级方法即外方法、方法(或概念方法)、内方法。两级映像即外方法/方法映像和方法/内方法映像。

4.1 三级方法

外方法
外方法(亦称子方法或许用户方法),是数据库用户可以看到和运用的部分数据的逻辑规划和特征的描绘。外方法保证了数据库的平安性,每个用户只能看到和造访对应外方法中的数据,数据库的其他数据对该用户均不可以见。一般情况下来说,1、外方法是方法的的子集,一个数据库可以有多个外方法。2、一个外方法可以被多个使用程序所运用,一个使用程序只能运用一个外方法。
方法或概念方法
方法(亦称逻辑方法)是数据库全体数据的逻辑规划和特征描绘,是一切用户的公共数据视图。是数据库体系规划的中心层,既不触及数据的物理存储细节,也不触及具体的使用程序、开发东西和言语。一般来说,方法是数据库在逻辑级的视图,一个数据库只需一个方法。

内方法
一个数据库只需一个内方法(亦称存储方法),内方法是数据物理规划和存储方法的描绘,是数据库中数据的内部标明方法。

4.2 两级映像

外方法/方法映像保证了数据和程序之间的逻辑独立性;方法/内方法映像保证了数据和程序之间的物理独立性。

外方法/方法映像
方法描绘数据的全局逻辑规划,外方法描绘数据的部分逻辑规划,外方法是方法的子集。同一个方法可以有多个外方法,每一个外方法在数据库体系中都有一个对应外方法/方法映像。当方法改动时,数据库可以对各个外方法/方法映像做相应的改动,然后使外方法坚持不变,,所以使用程序可以不批改。所以说外方法/方法映像保证了数据和程序之间的逻辑独立性。

方法/内方法映像
方法和内方法有且只需一个。方法/内方法映像界说了数据全局逻辑规划与存储规划的对应联络。当数据库的存储方法发生改变时,方法/内方法映像做相应的改动,可使方法坚持不变,进而使外方法也坚持不变,最终可抵达使用程序不变的意图。所以说方法/内方法映像保证了数据和程序之间的物理独立性。

五、分布式数据库方法规划
和会集型数据库不一样,分布式数据库方法规划中有六级方法规划和五级映像,具体可以看下图。

分布式数据库方法规划

1、全局外方法
全局外方法是全局使用的用户视图,所以也称为全局视图。同会集型数据库类似全局外方法是全局概念方法的子集。但和会集型数据库最大的不一样点是:分布式数据库的全局视图数据不是从某一个站点数据库中抽取出来的,而是从一个逻辑集结(各部分数据库构成的逻辑集结)中抽取出的。
2、全局概念方法或全局方法
全局概念方法首要描绘分布式数据库中全局数据的逻辑规划和数据特性。和会集式数据库类似,全局概念方法是分布式数据的全局概念视图。
3、分片方法
分布式数据库中,数据存储的单位是数据的逻辑片段。分片方法描绘全局数据的逻辑区别,首要是描绘数据分片以及全局联络与片段之前的影响。
4、分配方法
分配方法就是根据选定的数据分配战略,界说各片段物理上存放的站点。
5、部分概念方法或部分方法
部分概念方法是全局概念方法的子集。部分站点方法仅与站点有关,即部分概念方法”捆绑于”特定站点。
6、部分内方法
部分内方法是分布式数据库中关于物理数据库的描绘。类似于会集式数据库中的内方法。

六、总结
文章中的不少内容是笔者从书中提炼出来的,写出一篇文章出来,感触对这些概念也清楚了许多。三个小时支配的课程大约是讲了这么多的东西,内容不是许多,可是也不少。首要触及一些概念疑问比照多,关于菜鸟而言,仍是要花上一些时刻去晓得的。下周的课程大约是要讲分布式数据库的方案,课程的ppt课件也现已下发,依照教师的意思大约是要提前晓得联络代数、数据库事务有关的内容,才干保证跟的上下次课程的发展。

分布式数据库第次课程弥补 (2021年3月18日)
因为该篇文章在实践的课程大纲中算是第一章节,可是初度三个小时的课程该章节中有有些常识点未触及,弥补的常识点是在第次上课时所讲。所以这儿就在之前写的文章中做些简略弥补。后期的博客文章笔记收拾大约是依照章节来发布,这样每篇文章就会相对比照体系些。

分布式数据库的分布通明性
分布式数据库的数据独立性也称分布通明性。用户或用户程序运用分布式数据库时,不必关怀数据的分布情况,包括:全局数据的逻辑分片、 片段的物理方位分配、各站点数据库的数据模型。三者也就是分片通明性、方位通明性、部分数据模型通明性,说白了就是数据库每层的独立性,保证层级之间的低耦合。

分片通明性
用户编写程序时要晓得全局数据的分片情况(即下图的supplier),但不必晓得各逻辑片段的仿制副本情况,也不必 关怀各片段及其副本的站点方位分配情况。

方位通明性
用户编写程序时要晓得全局数据的分片情况、 各逻辑片段的仿制副本情况(即下图的supplier1),以及各片段和它们的副本的站点方位分配情况,但不必晓得各站点上数据库的数据模型。

部分数据模型通明性
用户编写程序时要晓得全局数据的分片情况、 各逻辑片段的仿制副本情况,以及各片段和它们 的副本的站点方位分配情况(即下图的supplier1 at site1,site1位具体的站点),但不必晓得各站点 上数据库的数据模型。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

|京ICP备18012533号-338