iOS数据库相关程序员Java技术升华

研究生第一课高级数据库系统课程之分布式数据库

2018-03-13  本文已影响340人  ZhengYaWei

前言

时间:2018年3月11日 13:30-16:30
地点:北京工业大学第三教学楼412教室

2018年3月11日笔者开始了在职研究生第一课,第一门课程是《高级数据库系统》。中午十二点开始报道,忙完相关入学事宜,一点半王冠老师开始讲课。按照正常的上课时间是13:30-17:00四节课,每节课 45 分钟,中间休息时间应当是是半小时。实际上课时间13:30 -16:30,中间只休息了 7 分钟。第一天上课,总的来说还算满意,老师也很负责,短暂的三小时学习也算收获满满。

接下来的文章内容中,笔者会先来说说对在职研究生的认识和看法,然后再将三小时的课程整理成笔记。

一、在职研究生值不值得上

事实上可能有人对在职研究生会存在偏见,认为在职研究生没有全日制研究生权威,没与全日制研究生好,认为只是花钱买一个学位而已,比如读MBA主要就是为了结交更多的人。但笔者认为在职研究生值得上。我是去年年底报的北京工业大学计算机相关专业的在职研究生的,坦白说刚了解在职研究生的时候也是存在一些质疑的,但是又非常想提高自己的能力。于是,当时就联系了身边的不少读研的朋友问问他们的了解。其中还咨询过大学母校两位老师的意见,两位老师对我的想法还是很支持的。其中一位老师属于治学和科研态度非常严谨的人,接触的所有老师中没有任何一个可以像他那般严谨,按照他的建议在职研究生同全日制相比,肯定没有全日制学习时间那样充足,但是所接受的教学、拿到的学位证同全日制学生相比基本没有差别的;另外一位老师,三十岁拿到博士学位,行政上也即将到达正处级别,也是对此非常赞同我去读的。至今还引以为傲的是大学期间帮助这帮老师写过一部分博士论文,并协助其写科研基金申请论文拿到二十多万元的科研经费,虽然这些都只是和化学相关。

注意:以下相关理由主要是站在技术相关工作人员角度思考问题。在研究生值得上的理由,主要如下:

小结

笔者身边的一些全日制的研究生朋友,有非常忙碌的,也有比大学还悠哉的。比如我女朋友天天快要忙成,基本快全年无休了;我一大学隔壁同班同学以及一个学长,他们简直比大学还逍遥快活。无论是全日制还是在职,在两者为你提供基本一样的课程和教学的条件下,到底能学多少东西,真正关键的在于自己。所以,今后学到的研究生相关课程内容,笔者打算尽可能的抽出一些时间将所学的东西以博客文章的形式记录。接下来,总结第一次三小时课程学习到的大概内容。

二、一些基本概念

这里就先说一些最基本概念相关的东西。

数据库系统:(Database System, DBS)是一个综合的系统,一般有数据库(Database,DB)、数据库管理系统(Database Manager System,DBMS)及其开发工具、应用系统、数据管理员(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分布式数据库系统特点

基于以上三点可以推到出另外几个特点:

事务:数据库操作的最小单位,事务是一组操作的集合,要保证整个数据库的一致性,事务中的操作要么都操作,要么都不操作,不存在一组操作中一部分执行一部分不执行的情况。比如银行转账,A转给B一千元则会分两步进行:第一步A的账户减去1000,第二步B的账户加上1000,两个步骤要么都操作,要么都不操作。如果只执行第一步,那么A来说是一种损失;如果只执行第二步,那么对银行来说是一种损失。

3.4分布式数据库系统分类

有两个分类标准,一种是按照构成分布式数据库系统的局部数据库管理系统的数据模型,另一种是按照分布式数据库的全局控制系统类型。

按照构成分布式数据库系统的局部数据库管理系统的数据模型分类:

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

补充:关系模型概念

常见的数据模型有关系模型、网状模型、层次模型等,其中关系模型最为常见。关系模型可以理解为一组关系,其中的每一个关系的数据结构都是一张规范化的二维表。关系模型要求关系是规范化,规范化的最基本条件就是关系的每一个分量都必须是不可再分的数据项,通俗的说法就是不存在大表中嵌套小表。如图所示的表格就不符合关系模型的基本要求。


不符合关系模型

另外,要知道支持关系模型的数据库就是关系数据库。

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

3.4.1 数据的分片

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

3.4.2 数据的分布

数据分布是指数据库中的数据不是存储在一个站点的计算机存储设备上,而是根据需要将数据划分成逻辑片段,按照某种策略将这些片段分散在各个站点上。通常有四种分布策略:集中式、分割式、复制式、混合式。

四、传统数据库(集中型数据库)模式结构

集中型数据库有三级模式和两级映像。三级模式即外模式、模式(或概念模式)、内模式。两级映像即外模式/模式映像和模式/内模式映像。

4.1 三级模式

4.2 两级映像

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

五、分布式数据库模式结构

和集中型数据库不同,分布式数据库模式结构中有六级模式结构和五级映像,具体可以看下图。


分布式数据库模式结构

六、总结

文章中的不少内容是笔者从书中提炼出来的,写出一篇文章出来,感觉对这些概念也清晰了很多。三个小时左右的课程大概是讲了这么多的东西,内容不是很多,但是也不少。主要涉及一些概念问题比较多,对于新手而言,还是要花上一些时间去了解的。下周的课程大概是要讲分布式数据库的设计,课程的PPT课件也已经下发,按照老师的意思大概是要提前了解关系代数、数据库事务相关的内容,才能保证跟的上下次课程的进度。

分布式数据库第二次课程补充 (2018年3月18日)

因为该篇文章在实际的课程大纲中算是第一章节,但是第一次三个小时的课程该章节中有部分知识点未涉及,补充的知识点是在第二次上课时所讲。所以这里就在之前写的文章中做些简单补充。后期的博客文章笔记整理应该是按照章节来发布,这样每篇文章就会相对比较系统些。

分布式数据库的分布透明性

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

上一篇下一篇

猜你喜欢

热点阅读