00:00
好,那么接下来的话呢,咱们给大家讲一讲叫power designer这个工具的一个使用啊,前面的话呢,我们讲到了叫ER模型,对吧,那么在实际开发当中,到底我们使用什么样的软件帮我们呢,去生成这个ER模型呢?诶这呢,我们要讲解这个power在那就是属于其中的一个工具啊,相较来讲的话呢,Power在那呢,开发人员呢,使用的还是比较多的啊,也是比较熟悉的一个工具,所以这里呢,我们就拿这个工具呢来进行这个讲解啊,实际当中呢,大家你也可以呢,使用其他的一些工具啊,你比如我这儿呢,还安装了一这样的一个工具,比较轻巧一些,比较小巧,而我们这个拍几在那儿来讲,相对来说呢,就工具大一些,大一些的话呢,它具备的功能呢,就多一些,比如说我们制作这个数据流程图啊,概念数据模型啊,物理数据模型啊,包括呢,数据库建模设计的全过程啊,这个软件呢,都可以搞定啊,它是这个三倍公司啊开发的这样一套这个完整的这个解决方案啊,啊那我们这里呢,讲解这个power瓦几站的时候呢,咱们主要呢,呃给大家呢,就讲解如何呢,去创建叫概念数据模型和物理数据模型啊包括。
01:00
他们二者之间呢,该如何进行转换好,这呢就是我们这一节的内容。那么首先的话呢,大家需要呢,是不是去下载和安装这个power井在的这个工具啊啊,那么这个下载安装的过程呢,我就省略了,诶当然呢,可以直接呢在网上去搜索一下,这里面咱们用的是这个power啪几单的16.5这样一个版本,OK啊下载安装我就不说了,然后呢,大家你把这个软件呢,就给大家启动起来。诶启动起来,那启动起来的话呢,它有一个这样一个欢迎的界面啊,欢迎界面当中其实已经给我们呈现出来,诶我们可以去创建一些相关的结构了啊这个呢,你也可以把这个勾呢给它打上是吧,就close一下就OK了,好然后的话呢,我们就可以呢,选择左上角,你选file也行,选这个也可以,对吧?诶我们可以呢,去创建new一个model,还可以呢,去new一个啊new一个model呢,相当于我们直接呢就创建一个新的文件啊new一个project呢,相当于是创建了一个文件夹,然后在这个文件夹里边呢,你再创建具体的文件啊区别呢就在这儿。啊,Open呢,就是打开一个你已经创建好的这样的一个model,比如说是吧,啊比如我们这呢,直接就用一个model吧。
02:03
好,然后呢,这里边儿呢,就出现了我们到底能够创建哪些类型的这些模型啊,那常见的话呢,就是一些比如说呃,业务模型,还有我们这个概念数据模型,还有呢,叫面向对象的模型,以及呢叫物理数据模型啊常用的呢就这样几个,那我们说呢,主要呢,这里咱们给大家讲解的就是物理数据模型和概念数据模型,开发当中呢,我们用的比较多的呢,都是这个物理数据模型,而这个概念数据模型呢,又属于比较基本的一个,所以我们先讲解这个概念数据模型,后边呢,咱们再呃讲完它之后,咱们再讲一下这个物理数据模型,然后再讲一下他们二者之间该如何相互转换啊这样的一个情况。行,那这儿呢,我们就以这个概念数据模型呢,首先来进行讲解,这呢是不是起个名字啊,我们可以在这写一个,比如中文名字是可以的啊叫概念啊数据哎,这个模型,比如说杠一啊,这样方式好,那我们这块点一下OK。改这就OK了是吧?好,那么这呢,帮我们生成以后呢,下边有一个叫呃,Diagram杠一,然后我们下边呢,就可以去创建了啊,那这里边呢,我们创建一个数据模型,咱们提到了,是不是就涉及到了这样的几个主体的结构啊,咱们叫这个ER模型的话呢,这个E呢叫ntity就是实体对吧?然后呢,实体跟实体之间是不是有这种relationship就关系啊,那实体里边呢,我们再提到具体的这个属性对吧?哎,这样的几个要素啊,那我们如何呢去创建实体呢,我们看这右边。
03:25
在右边呢这块啊,诶我们呢,主要用的就是这样的一个框啊叫NTT啊,你这块点一下,然后在左边这块呢,你一点哎这块就帮我们生成了,对吧?啊你要再点一下是不是又生成一个,再点就又生成一个,哎就这样个概念,然后的话,你点有同学说我点这个是不是就回去了,或者你点鼠标右键啊,就恢复成我们这个箭头了啊暂时呢,比如这两个用不着,你可以点用键的话呢,啊这有具体的,嗯,我们这个edit呢啊在这儿是吧?啊你可以把它呢先delete啊删掉。啊,这样啊,Delete edit是吧,然后呢,Delete删掉。好,那针对于这个实体的话呢,我们是不是要做个编辑啊,诶那咱们就以比如说学生啊,呃,这个班级啊,呃,这个教师啊是吧,这样的几个实体,咱们去讲解一下这几个呃结构啊,包括呢,他们之间的这个关系,好那双击一下,诶我们就进入这样一个实体的一个编辑当中了啊编辑当中首先呢,这个叫general啊,就是常用的一些这个结构的一些设计,对吧?好,那这个name这块呢,比如咱们就写成叫student。
04:25
哎,前面咱们说了,是不是在创建这个表名的时候呢,咱们都用这个小写了是吧。好,那这块呢,你在写name的时候,你发现下边这个code呢,也同步的把这个,那这个student写上了,那这两个区别是什么呢?啊,就是这个呢,其实是我们真正在代码上的一个支撑啊,叫做student,那这个位置呢,就方便我们查看啊,我们可以起一个name啊,那这个呢,完全我们可以把这个呢,就写成是一个中文的啊,中文的比如我们就叫做这个,哎,学生表啊,这是可以的,那下面这个扣的话呢,哎,咱们注意是一定要用这个英文的。啊,一定要用的英文的啊,所以说呢,我们其实可以对于咱们这个,呃,中国人来讲是吧?哎,咱们可以呢,就这样来写啊,你要你本身呢,就是这个这个英语体系的啊,你就俩写成一样的是OK的啊下面呢,就针对我们这个表的是不是一个comment啊,一个介绍是吧?啊你说这是。
05:15
啊,这是啊叫学生啊,信息表是可以这样。OK是吧?那这呢是关于我们这个表的一个说明,然后在下边这块呢,叫attributes,那是不是就我们所谓的这个属性了,好我们点一下啊,这呢就在这个位置啊,我们去创建这个属性的信息就可以了啊,属性信息就可以了,行,那这块我们创建的话呢,针对这个学生表,我们给他几个字段啊,那这个name幕跟code呢,是同样的道理啊,还是这个位置呢,大家可以写这个中文,这个位置呢,可以写这个英文的是吧?诶你看我们这个表上,咱们都设置哪些这个信息啊,比如说呢,有这个叫呃学号是吧。来,我先把这几个字段呢,咱们先给它统一的创建出来啊,还有呢,这个叫哎,学生的姓名啊,还有什么,哎,学生的年龄。
06:03
哎,年龄是吧,还有学生性别。哎,然后咱们再加一个,比如说这个,呃,学生他的这个学校吧,是吧,哎,学校这样的信息,好,那这个呢,我们就必须得用这个英文来表示啊,这个大家注意一下啊,这个我们叫student,嗯,ID吧。那这叫学号是吧,然后这个呢,诶student它的一个name。Student,他的一个age。哎,它的一个真的啊。看16的他的一个事故吧。是吧,School行,嗯,这个呢,至于说大家你说我是横着先把这一条都设计完,我再写下一条呢,还是说我像我这样方式这样写啊都可以啊,大家看你个人习惯就行了,然后呢,这个关于这个学号的话呢,诶我们这可以去去设置它的一个类型,这叫data type设置类型的,对吧?啊这个类型的话呢,你可以选择我们这个下拉框啊这样的方式呢,你去找啊也可以,怎么办呢?诶我直接点这个点点点这个啊,诶通过这样的诶点一下啊,通过这样的一个方式呢,去查看啊也可以。
07:12
那我们这个学号的话呢,咱们就选这个吧,对吧,啊OK一下。啊,就行是吧,哎,那后边我们都说了吧,然后下边这个呢,叫position啊,这个其实就是精度的意思啊,你比如我们像这个浮点类型的话,是不是涉及到这个精度的一个选择是吧?OK,然后后边这个呢,诶它呢就是叫强制的意思,那EG呢,就是我们这个字段呢,你看是否是为空的这样一个设计,然后这个P的话呢,就是primary,就是我们这个主键的一个设置,哎,在后边这个呢,叫displayed,就是我们这个字段呢,你是不是要把它显示出来,哎,你看默认情况下呢,就他们全都是显示的状态。OK,那我们这个学号的话呢,是不是可以设置成主键对吧?啊,我勾一下,哎,我一设置成主键了,是不是自动也飞空啊这样个特征好的,然后下边呢,叫学生的,呃姓名,学生的姓名的话呢,我们是不是就用这个字符串来表示了,哎,字符串,然后字符串的话呢,我们用what串的话呢,你是不是必须要指明它的长度啊,如果呢,我们这个点OK啊,他又给我报错了啊,跟咱们前面讲的这个数讲这个类型的时候呢,是不是一致的对吧?哎,必须要指定它这个长度啊,OK一下。
08:15
打这就可以了,然后你要说也是飞空的,把这个加上,然后下边这个呢,叫学生的一个年龄。年龄的话呢,我们就用这个,比如还是啊用它来表示了。啊可以啊,然后学生的这个性别,那性别的话呢,我们啊男女是吧,哎,咱们就用这个叉来表示了,长度的话,比如我就选一。哎,就选个1OK这个,比如说你要想加这个,呃,非空的限制呢,你也给它勾上就行啊学校那学校的话呢,我们就用个字符串来表示吧,比如长度呢,是20啊这样,哎,OK一下。行,然后这个呢,我们就不打勾了,没问题是吧?好,这个呢叫attributes,就我们设置这个属性的这个位置啊,然后再后边这个呢,叫identifier啊,这个位置呢,一看就要设置这个修饰符的。啊,就是如果呢,我们不希望呢,在呃,不希望这个系统呢,自动帮我们生成这个修饰这个标识符的话呢,我们还可以手动的来设置啊,就在这个位置呢,去设置就行啊。
09:07
行,嗯,我这呢就不设置了啊,咱们呢直接呢就OK,然后点一下这个应用。啊,然后点一下确定。诶大家是不是就看到我们这个表呢,就创建好了,然后呢,要觉得小,你可以按住这个CTRL键啊,滚动我们这个鼠标的这个滚轮,哎就变大了,哎这样啊好,那大家呢,你会发现呢,诶这个表里边是不是帮我们显示的这些字段呢,都是中文的呀,相当于呢,给我们呈现出来的,是不是都是我们在设置的时候呢,这个name这个情况对吧?诶然后这个code呢,怎么没给我们呈现呢?哎,它底层的支持就是这个英文的这个code。啊,如果你需要呢,把它转化成我们这个SQ输出的话呢,呃,它其实呢,就会都用那个扣的那个呃字段了啊行这呢是我们这个学生表啊,学生表的一个创建,行,那么同样的道理的话呢,大家再创建一个比如班级表啊这块我也快速的去创建一下啊,我们再点一下它就是点过来,然后点一下鼠标右键,然后呢双击一下进来,哎,这个位置呢,我们叫班级表。
10:04
你看这个呢,这个位置啊,咱们就直接写成这个英文了啊,叫做这个class对吧?啊这个呢,你可以写上它,然后不写的话呢,直接来这试这个属性就可以了啊这个我们叫什么呀?叫哎班级编号是吧。好,这个呢叫班级名称。嗯,这个班级人数。哎,下边我们再来一个,比如说叫班级介绍,哎这样的情况好,然后这块呢,我们再去设置它这个code,这个code呢,是一定要用这个英文的啊啊这个我们叫这个class ID啊。哎,这个呢,Class name。哎,Class,比如我们这个叫吧,这样啊。哎,这个class,比如我们叫一个嗯,Intro是吧。
11:00
啊,Introduct啊这样一个介绍,好,然后这个类型这块呢,它是一个int类型的啊选中,然后这个呢是不自然的作为我们这个主件啊OK,下边一个班级的名称,这个我们就用一个比如我差来表示的啊,长度呢比如为十,OK。啊,班级人数啊,就用这个啊来表示了。班级介绍啊,这呢用我们这个,我叉这个来一个30啊,OK,行这就可以了,行,然后我们点个应用啊,点个确定啊就可以了,行,那这样的话呢,我们就创建了两个具体的实体了,那创建好这个实体以后呢,下边我们要考虑的是不是就是这两个实体的,呃,Relationship就是关系啊,诶关系的话呢,我们这块就有一个选项叫relationship。好点一下。点上以后的话呢,诶,这时候你把它俩呢,就关联起来,这个学生表跟班级表呢,是不是应该叫一对多的关系啊,一个班级是不是有多个学生啊,一个学生是不是应该在一个班级里边,所以说是一对多的关系啊,哎,有同学可能会想一对多一个班级对应多个学生,一对多诶是不是就这样勾一下。
12:00
哎,这样个情况来我这块定一下啊好,那这个定完之后的话呢,你会发现呢,这块有一个这块呢是不是有像是三个差一样,诶这个就体现了叫一对多的这样的一个关系啊,然后中间呢,这有个叫relationship杠一,那我们可以双击一下,诶对这个呢关系呢也进行一个刻画。啊,咱们这也可以进行刻画,然后这个位置呢,我们就可以写班级和学生的关系。这样是吧,然后那个扣的话呢,我们可以在这去改一下啊,比如说我们就把它呢写成叫class啊,这个呢,主要呢,我们有这个可读性啊,写成这个英文的class和student一个relationship啊,这呢是一个具体的描述,你可以写下说一个班级啊对应多个呃学生是吧,然后呢,一个学生啊对应啊一个班级。哎,这样的一个情况没问题是吧,哎,这样就可以了,好,然后的话呢,你看一下这个啊,这个选项里边呢,我们点开这个选项里边呢,就有具体的描述,诶他们二者之间是呃,One to还是one to还是to还是to many这样的一个关系啊,你要是比如说勾选这个了。
13:06
啊,我要点一下应用啊,你看是不是就反过来了啊,也就是说大家呢,如果刚才你选这个relationship的时候呢,啊,你就随便这样一勾啊,可能这个选成这个学生呢,对于班级呢,是一对多了啊反了是吧?反了以后的话呢,你可以在这块呢去做一个修改啊就可以了啊就可以了啊包括呢,我们在这个位置呢,就是你这怎么看出来你是这两张表呢,是不是在这块就有呈现啊。啊,这是班级表,这是学生表啊,你也可以呢,是不是在这里边去交换一下他俩这个位置啊,也是OK的啊,这没问题。行,那这样的话呢,我们就设置好了,然后点一下这个确定。诶,确定班级一个班级对应多个学生啊,是不是这样的一个关系啊,OK,行,那这样的话呢,我们就设置好了这两个实体以及他们之间的一对多的关系了啊然后呢,我们再想体现一下多对多的关系,那怎么办呢?我们再点上这个NT,然后呢,再再过来,然后点右键,然后呢,再双击,诶咱们这里边儿呢,是不是可以设置这个叫学生表,哎,水性表了,教师表是吧。
14:02
哎,教师表好,然后这个位置呢,咱们就是叫teacher了,看teacher啊啊这呢叫这是学生啊,这是教师信息表啊。行啊,那这块的话呢,跟咱们刚才创,刚才呢,创建这个学生表呢,就类似的啊,哎,咱们把这几个呢,属性呢,给大家去添加一下。好,嗯,这个位置呢,我们写一个,比如说叫教师编号。哎,教师编号啊,这个呢,教师姓名。哎,教师姓名是吧,然后下边呢,我们来一个啊教师的年龄。这没问题,嗯,再来一个教师性别吧。行,我就加这几个了啊啊,还有什么所在学院啊等等的啊,这个我就不说了,好,然后这块呢,大家你看我这块去点空格的时候呢,是不是会出来这么多项啊,诶这一项的话呢,你可以呢,直接在这有个edit啊,去做个delete可以删掉它。
15:01
啊,这没问题是吧,Delete删除啊。刚才点的有点多哈。啊。这样是吧,好,那接下的话呢,是不是这个类型的,诶这个类型扣这块没写了啊,哎,这叫teacher啊,我就比如说你要写全的就这样写呗,哎,Teacher I。啊teacher name啊呃,这块呢,有个小细节啊,我要提前给大家呢去说一下,就是呢,你看我们这里边儿呢,是不是有这个姓名年龄性别,刚才学生的话呢,是不是也有姓名年龄性别对吧?嗯,这块大家在写这个扣的时候呢,建议呢,你把这个呃他们的值呢你区分开。什么意思呀?来,我先把这个写完啊。啊,什么意思啊,你看啊,呃,咱们这里边呢,我叫teacher name teacher teachernder,刚才呢,是不是叫,哎,Student name student age student gender是吧,而我没有呢,其这块呢叫namender,这叫name gender啊,你要是都叫namender,这个也是这样的话呢,其实呢,就是相当于他们的这个字段名是一样的,对吧?呃,那这块呢,有什么问题呢,在我们这个概念数据模型里边呢,是没问题的。
16:12
啊是没问题,但是如果呢,你要是想把这个概念数据模型转化成我们的物理数据模型的时候呢,呃,而且呢,我们这两个实体还建立了这个联系了啊,他会认为呢,你这几个呢是呃相关联的啊,所以呢,你要是名一样的时候呢,在转换的时候呢,就报错了。啊,那怎么办呢?诶大家呢,在建立每个实体的时候呢,它中的这个字段这个名啊呃,建议呢,你这块区分一下,虽然都是姓名啊,但是这个你叫teacher name,这个叫student name啊,这样岔开啊就可以了。好,然后呢,这块我们同样的编号啊,这是一个整形的啊,这呢是一个我差类型,比如来一个15的长度。哎,这个呢,年龄是吧,年龄我们也是吧。啊,这个呢是性别啊,性别来一个叉类型的啊,一个长度可以了,然后这个呢,我们设置成是这个主键啊,其他这个名字呢,比如年龄啊,设置成这个非空的,你就这样加一下就行,好应用确定。
17:04
是不就出来了,好,那么出来以后的话呢,我们接下来是不是给他俩呢,去设置一个多对多的关系啊好,这个多对多的关系呢,我们是一个叫概念数据模型啊,是直接呢就在上面给它搭建起来就行,不像我们真实当中啊,你要概念数据模型的诶要像数据模型里边多的多,是不是要用一个独立的表去呈现的是吧?诶这呢,我们直接呢,就给他们俩搭一起就行啊,哎,这样我们直接连一下就行,然后呢,哎,点右键,然后双击。哎,过来是吧,哎,给这个关系呢,我们去起个名字啊,叫学生啊于。啊,教师的啊,这个多对多关系是吧,哎,我们这块咋写的。啊,这块没写多多,那我们这就直接写关系吧,好,然后呢,Student。Teacher的一个关系是吧,然后这里边儿呢,我们可以在这呢写明一下啊,说一个学生啊,对应多个老师。是吧,呃,一个老师对应多个学生。
18:03
或者你叫教师也行啊,哎,多个学生啊,上面我们都叫教师吧,没问题是吧,然后的话呢,我们在这个啊第二个选项里边呢,我们选择呢,叫many to many啊指明呢,它是多对多的一个关系是吧,然后点一下这个确定啊就可以了,好那么此时的话呢,我们就看到了,这是学生跟教师之间的一个啊多对多的一个关系,那这都是分叉的,就是多对多的一个意思。行可以了是吧,好这呢,就是我们讲的这叫概念数据模型啊,概念数据模型,然后大家呢,你可以点下保存啊,保存在你想保存的位置上就可以了,比如说呢,我们保存在啊,咱们这个哎。高级里边啊,关于咱们这个资料里边啊,这个位置呢,是不是可以起个名字啊,这个比如我们就别起这个名字。啊,你可以起一个呢叫呃,学生。啊,比如叫管理系统是吧,哎,在这里边呢,我们涉及到的这个概念数据模型OK啊好,我们点一下保存。好,那接下来的话呢,我们看一下如何呢,去创建物理数据模型啊,这个呢,我们点一下这个新建啊新建的话呢,物理数据模型是不是在这儿啊啊物理数据模型好这个位置呢,你可以给这个模型呢去起个名字啊,这个呢,我们就呃就起成了叫诶物理呃数据模型杠一啊这样的七吧,然后接下来你会发现呢,我们在这个物理数据模型当中啊,是不是一定要指明一下这个数据库管理系统对吧?呃,因为物理数据模型嘛,你得告诉我到底你对接的是哪一个数据库吧。
19:28
诶,OK啊,就这样个情况,呃,这呢,因为咱们用的这个PD的这个版本呢,稍微靠前一些,所以呢,这块给我们呈现出来呢,只到这个ma5.0了啊,那咱们呢,就选一下这个5.0吧,OK啊行,那选中以后的话呢,我们直接呢就点一下这个OK。诶就可以了是吧,然后我们在这块呢,进行创建就行啊,那对于我们这个物理数据模型来讲呢,主要我们用的几个选项呢,是这三个啊,一个呢叫table,一个呢叫view,就是创建视图的,这个呢叫relationship是吧?哎,就是设置这个关系的啊OK,好,那首先的话,我们点一下这个table,然后过来,哎,这是不是就一个了,然后点一下这个鼠标的右键啊就清掉了,然后双击这块呢,跟咱们讲的这个,呃,这个概念数据模型呢是类似的,好,这块我们就同样的去创建几个表啊,首先呢是这个学生表啊学生表,然后这个位置的话呢,扣我们仍然是用这个英文来表示啊,That student。
20:19
哎,这样的这个信息的话呢,你需要加,你就在这加,然后下边这块呢,就是具体的我们这个叫哎column了啊具体我们在一个真实的表中呢,就是一个列是吧?啊这呢,是不是就设置具体的这个字段了啊这个呢,我们叫哎学生的一个呃学号啊。啊,这个呢,学生姓名。啊,学生的年龄。哎,学生年龄啊,行,我这儿呢,我就少写几个了啊,然后这个扣这块呢,我们就写具体的这个英文啊,Student ID啊。哎,下边啊,Student你也可以写成to也行啊,简写一点,哎,Student name啊,学生的年龄。
21:01
啊,Age是吧,然后这块呢,设置具体的这个类型啊,ID的话呢,这个位置我们点一下啊,是不是enter啊,然后OK一下,然后呢,我们把这个,哎后边这个约束呢,我们也加上第一个这个P的话呢,就是主键的意思,哎,然后后边呢,自动的呃,第三个呢,就是这个非空的意思啊中间这个F的话呢,就是foreign key就是外键对吧,咱们现在是不是也没有涉及到别的表,所以呢,这个也没办法去关联啊,OK,所以这个你看它是不能选的一个状态,然后姓名这块呢,我们给大家设置成是一个。啊,然后比如这个15的这个长度啊,OK,好年龄。年龄我们就用这个in来表示吧,啊就这样哎,你要说这个姓名的话呢,需要诶写错了啊,姓名这块呢,是个非空的啊,你就写到这,我这样勾的话呢,相当于成个联合主键了,对吧?诶这样啊好,那这呢我们就设置可以了,后边这块你看还可以去设置具体的索引是吧?那这个呢,我们就不来举例子了,行,然后这块我们点一个确定啊,这个表就创建好了,然后按住CTRL键啊,滑动我们这个滚轮啊,把它稍微的变大一些,这呢是一张表了,然后我们再来创建一张表啊点一下走到这儿啊,点鼠标右键双击进来。
22:04
这个呢叫班级表。哎,这个我们起名字呢,叫做这个class是吧,好,然后呢,描述的话,你也可以加一加啊,Columns在这呢,我们就写啊叫班级的编号。呃,班级编号,班级名称。哎,还有那班级人数是吧。嗯,再来一个叫班级介绍啊这样的。哎,这样个情况好这呢,同样的跟我们刚才创建这个叫概念数据模型一样啊,我们把这个字段名呢,给它加上啊ID是吧。A class name。Class的一个count。诶,Class一个intro是吧,可以这样好,这呢是具体的类型啊,Int类型的啊int类型这些呢,设置成了一个主键的啊,然后下边呢是一个字符串对吧。哎,Work差类型啊,这个呢,是比如说15个长度啊人数啊,人数呢,我们用这个来表示吧,啊介绍啊,这个呢,我们也用用成这个work差啊,这个比如说30。
23:09
啊30啊,你也可以长一点啊好,那相应的呢,这个有非空的这个要求的话,你就给它加上这个勾就OK了,然后呢,点应用啊叭如就确定一下,OK,那这张表的话呢,我们相当也就给他,哎设计好了,那叫实体是吧?哎,暂时呢还是实体的。那设计好以后呢,接下来我们要考虑他们二者之间的一个关系了,那这个关系的话呢,是一个一对多的关系啊,一个班级是不是对应的多个学生吧,好这块我们点击一下啊呃,一对多啊,我们上面呢,讲这个概念数据模型的时候呢,一对多我是不是这样指的,然后现在这个呢,你看一对多,哎,我得这样去指一下。啊得这样去指一下哈,呃,一对多相当于呢,你看我们这个箭头指向的这个位置呢,其实是一个一对多的这个一是吧,而且呢,你看你呃,生成以后的话呢,你会发现呢,在这个学生表里边,是不是帮我们多了一个叫班级编号,还是一个int,是不是就我们这个呀。
24:00
相当于呢,我们把这个班级表里边这个主键呢,作为我们这个学生表里边儿啊,也同样的生成了一个字段啊,作为我们这个外键的这样一个字段出现的,然后你也可以呢去双击啊,双击的话呢,这个时候也可以去编辑我们这样的一个关系啊,这个位置呢,你可以写上就是啊学生与班级。啊的这个诶关系是吧,然后这个位置呢,同样的你可以改写成跟我们前面一样啊,叫做student class的一个二是吧。这呢你也可以写明啊,说一个学生对应一个班级是吧。啊,一个班级这个对应多个这个,哎,学生。诶没有问题是吧?啊这个呢就写成这样啊,其他这个呢,我们就没啥可设置的啊,点一下应用啊,点一下这个,诶确定啊就可以了,是吧?啊这个呢,就是提到了我们这个表跟这种呃表之间的这种关系了啊嗯,这里边的话呢,如果我们说在稍微啊,相较于我们的叫概念数据模型有一个小区别呢,就在于这儿啊,我们可以做一个调整的啊,就是说我们这个列里边呢,设置到这个主键了,好像呢,也没有看到说这个主键的自增的这样一个位置在哪对吧?诶其实是可以的啊,比如针对这个学号的话呢,我们就让他去自增,你可以呢,诶放到这个位置,然后双击一下。
25:14
双击完以后呢,针对于我们这个student ID啊,希望它是自增的是吧,这个位置你把它打上勾,哎,把这个打上勾啊,它就相当于是个自增的行为了,然后确定一下。啊,在这呢,看不出来是吧,然后这个位置呢,同样的我们去双击一下,哎,针对的是我们这个班级编号啊双击,然后这个呢,你把它勾也同样的去打上。啊,然后确定一下啊,这个时候呢,两个表的这个主件呢,都是自增的,好,然后这个关系这块呢,刚才我们也设计好了啊,大家你会发现呢,我们这个设置完以后的话呢,没有像我们这个概念数据模型里边啊怎么着呀,他是不是帮我们这块显示的一些具体的描述信息啊,在咱这儿呢,就没有了是吧?诶这个稍微注意一下。行,那这个呢,就写成这样,然后呢,我们再去创建一个表,是不是教师表,哎,双击进来。哎,教师表。
26:02
啊,这个呢,我们就要这个a teacher了啊行,这个呢,我就不写这个描述信息了,然后这呢,我们写这个具体的字段啊。哎,教师编号。哎,教师姓名。呃,就是年龄,行,我就写这样的三个字段了啊,然后在这。ID。Teacher name。还teacher age是吧,哎,这样好,下边呢,写这个具体类型啊,这个呢是件类型,然后是这个主键是吧,然后这个呢是姓名,那我们就来一个我叉型的长度呢15,然后年龄啊,这个直接in塔就啊OK,好,然后这块呢,要有飞控的限制呢,你就给它加上就可以了,然后接下来的话呢,关于我们这个教室编号啊,这个我们也是啊,双击一下啊,这个注意先应用一下是吧,先应用一下啊,然后呢再去双击。
27:01
然后进来以后呢,针对我们这个TID啊,我们设置成是一个自增长的啊,确定一下没问题吧,好,然后我们再点一下这个确定好,那这时候呢,我们这个教师呢,是不是就出来了。改出来了啊,那教师表出来以后的话呢,我们接下来是不是要建立跟学生的一个关联关系了,那我们知道了他俩的这个关联,他俩这个关系的话呢,应该是一个多对多的关系了。多对多,呃,一个学生对应多个老师,一个老师对应多个学生,那在我们这个真实的这个,呃,创建数据表的时候呢,咱们讲到过了啊,一二模型提到过这种多对多的关系呢,是不是一定要借助一个中间表去这个体现是吧?所以我们这块呢,需要再建立个中间表啊,都去跟这个中间表呢,去建立这个联系,好,那这我们就得再去,诶诶这个点一下啊,再去造一个表,好这个呢我们再起个名字啊。叫做这个学生啊与这个呃,教师的这个关系表是吧,哎,这个位置就这样来起啊,啊,那这个呢,我们同样的是不是也得给它取一个名字呀,啊也得起个名字啊,这个我们叫一个class class了,这个student啊,然后teacher。
28:07
啊,这个叫relationship啊,我这样写一下吧,好,那么在这个表里边儿呢,我们也可以呢,去设置具体一个字段啊,这个呢,就是啊学生。哎,学生和啊这个教师的,哎这个关系编号,哎就这样子啊好这个位置的话呢,我们就具体呢,把这个字段,这个英文的你对应的这个字段名给它写上啊,比如叫student啊,Teacher是吧,他的teacher这样写吧,他的一个ID啊这样来设置啊ID的话呢,我们自然而然的也是用这个件呢来去表达,OK,然后呢,是一个主键啊自增长的行,呃,就写这样的一个就行啊,你要有其他的一些情况呢,你就在这块去加。啊,当然有同学说说这个多对多的关系去承建的话呢,在我们这个关系表里边儿,不应该加上他们各自的这个主见吗?诶这个各自的主见的话呢,咱们一会儿呢,是不是有这种哎,外键的关联自动的就帮我们加上了,对吧?好点一下这个应用啊这个位置的话呢,你也可以呢,给它设置成是不是一个自增长的。
29:07
好确定一下啊,确定啊,这是不是就有了,好这个有了以后呢,接下来我们该去刻画呢,他们三者之间这个关系了,哎,我们就点一下这个按钮,呃,学生表跟我们这个呢,是不是一个学生是不是在这里边呢,可能会有多条记录啊。啊,那这个他是一他是多,是不是我们就这样往回翻啊,这一个场景是吧,然后这个也同样道理啊,一个教师的话呢,这块呢,是不是有多条记录啊,我们这是一,所以呢,这个你也是这样往这放,哎这样就可以了。哎,相当于我们这样的方式来进行刻画,哎,你看我们加上之后的话呢,自然而然的在我们这个表里边是不是就有学生的学号啊,教师的编号是不是就都有了啊,没问题的是吧?行,然后相应的你是不是在这块呢,还可以去,哎这个双击啊,去刻画我们这个关系就行。是吧,哎,就行啊行这儿呢,我就不在这块呢去再做编辑了啊行,那么这样的话呢,我们关于啊这几个表是不是我们就创建好了关系呢,是不是我们也定义好了,哎相应的我们也可以对它呢进行一个保存是吧。
30:05
保存的话呢,我们也存到这儿啊,这个呢,你可以给大家改起个名字啊,这个呢是啊学生呃,管理啊系统是吧,这个呢,管理系统你看我们这个时候呢,是P开头的啊,就是我们物理的数据模型,刚才我们创建的那个呢,是不是C开头的就叫概念数据模型了是吧?OK啊好保存一下。行,那这样的话呢,我们把这个物理数据模型的这个创建呢,咱们就给大家说清楚了。好,那么关于这个概念数据模型,还有这个物理数据模型啊,咱们呢,就都给大家讲解清楚了,下面的话呢,我们说一个概念呢,就是咱们把这个概念数据模型呢,转换成物理数据模型啊,把物理数据模型呢转换成概念数据模型,OK,那这呢,是不是咱们这个叫概念数据模型,然后呢,这有个叫tools是吧?点开它以后呢,下边有一个转换啊,转换为我们是不是叫物理数据模型,好,我们点一下。诶,然后这个位置呢,我们可以去起个具体的名字,那因为呢,你转化成是物理数据模型了,所以你先指明呢,你是转化成哪个数据库啊哪个数据库,然后这个位置呢,我们可以呢,就哎改一下啊叫概念,比如说我们叫哎转哎物理啊模型哎杠一是吧,哎这样个方式好,别的呢就没啥选项了,我们就直接呢点一下这个确定。
31:16
诶你看这块呢,就做了一个转,呃这个转换啊,呃这块呢,我我再说一下啊,咱们在一开始创建这个概念数据模型的时候呢,我当时是提过这个事儿啊,什么事的话呢,呃,就是大家呢,在创建我们这个学生表和这个教师表的时候呢,因为呢,都有这个姓名年龄和这个性别是吧?呃这个时候呢,大家再去给我们这个字段呢,这个code去命名的时候啊,这不是有这个具体的code,大家不要呢,呃把这个老师的这个code呢,跟这个学生这个code呢起成名一样的,比如说都叫name age和gender。把前面这个前缀呢,都去掉了,呃,那么如果说你是那样命名的话呢,我们在转化的时候呢,会报错,呃,相当于你在这块呢,可以做个查看哈,比如在我们这个概念数据模型的这个,呃,Data item这里边,你看我们这个姓名跟这个教师的姓名啊,这这都不一样的是吧?诶这个大家稍微注意一下啊。
32:05
好呃,你要是呢,启征一样的话呢,我们在转换的时候呢,他就给我们就报这个错误信息了啊。这是一个,然后的话呢,大家你看咱们呢,把这个概念数据模型,我转化成这个物理数据模型的时候呢,诶大家你会发现呢,是不是中间自动的帮我们多生成了一张表啊。啊,因为呢,我们这个物理数据模型当中啊,刻画这个多对多的关系呢,诶你是不是得多需要一张表啊,而且这张表呢,大家你会发现他是不是拿我们这个学生的这个学号和我们这个教师的这个诶编号诶共同构成了一个叫联合主建是吧?诶构成的这叫联合主建,然后大家呢,你也可以在这块呢,是不是去真正意义上加一个主建,对吧?然后呢,把这个学生呃这个学号和我们这个教师的编号是不是作为我们两个这个普通的字段,然后跟我们这两个表呢,这个主键呢去关联啊对吧?呃,相当于去改造一下,我这呢就不多说了啊,大家应该都能明白如何去做,呃,这是一个,然后另外的话呢,我们是不是还可以把这个叫呃物理数据模型转化成概念数据模型,对吧,那此时的话呢,我们就点一下这个叫tools,诶这块呢,是不是generate转化成叫概念数据模型啊,点一下它。
33:10
好,这个位置上你可以写一下叫物理啊,比如我们叫物理转。啊,概念。是吧,哎模型哎可以了是吧,然后我们这块呢,就点一下具体的这个,哎应用。诶这呢就也转成功了啊,这个转成功以后呢,诶大家你这块看一下啊,然后呢,咱们看一下这里边呢,帮我们转成的这个概念模型,那自动的这里边是不是就用这样的一个符号帮我们去表达了,是吧?呃,因为呢,我们物理模型当中有四个表,所以这块呢,表表达出来以后呢,还是有这四个表,哎就这样一个场景,然后这个位置呢,你可以做具体这个编辑。是吧,去这个编辑呢就可以了,行,那么这儿呢,关于这个物理转概念呢,我们就说到这儿,然后呢,还有一个需求我们可以去做的啊,还有一个需求去做的,这儿呢,是咱们这个物理数据模型啊,因为是物理数据模型了,也是针对于MYQ的了,那我们可以考虑呢,把这个啊ER模型呢,转化成具体的SQ语句。
34:05
啊,然后直接呢,我们可以在这个相应的这个工具当中,我们导进来啊,做一个导入啊,我们就直接呢,去生成真正数据库当中的这个表了,怎么做呢?这个我们找一下,这个叫database,在这呢有个叫generate database,我们点击一下。啊,点击一下,然后这个呢,就是我们把它呢,诶保存在哪个位置上啊,我们也可以呢,去选择一下,比如改到我们这个桌面上的啊桌面上诶这没给我呈现我们课件啊,那算了,我们就直接放在这个桌面得了,来确定一下,然后这个位置呢,就是我们具体你转化出去以后,这几个表啊,他们对应的是不是得有一个circleql文件啊,这就我们具体这个S文件啊,比如我们这个就叫这个students了。哎,我这样呢,做这个命名没问题是吧?好,那这时候你转让出去的时候呢,是要把所有的这个表都转让出去嘛,所以这里边有个叫selection啊selection呢就是选项啊选择我们比如说呢,就把这四个表呢全转出去啊OK,我这呢就全打上勾,然后呢点个确定。
35:00
诶,你看就可以了,然后这块呢,就帮我们生成好这个文件了,咱们做个close啊,这块我们就收起来啊,这个也收起来可以了,这呢大家会发现呢,是不是有我们具体一个搜狗文件啊,你也可以呢把它打开。打开以后的话呢,诶大家你简单来看一看,其实你也能看得懂,诶那这呢是先把这几个表呢先删掉是吧,如果你要存在的话,先删掉,确保呢,我们下边这个创建呢是可以成功的,然后相应的这个表中的这个字段啊类型啊,包括呢这个automent,你看这个呢都有是吧?诶这样的一个情况,诶这呢是添加相关这个外建啊这样的行为啊,我们就关掉了,那如果呢,真正我们这个项目当中呢,你涉及到的这个结构呢,比较复杂的时候,我们让他呢去自动的帮我们去生成,呃,然后这时候呢,这里边这个结构呢,也会比较复杂一些是吧?然后回到我们这个,比如说SQ要这个层面,我们就可以呢进行一个导入啊,这时候导入的话呢,大家你会发现我们刚才呢,这个里边呢,没有指明数据库是吧,没有指明数据库哈。啊,就是我们这个迭base,所以这时候呢,你需要呢,先选中一个具体的这个数据库了。
36:01
那这个时候呢,这个数据库最好呢,你一开始也是空的啊,也是空的啊,那选中这个数据库以后呢,我们去点一下这个叫导入是吧?诶找到我们桌面当中的。在桌面当中的,哎,这样的一个文件,然后点一下这个打开,然后点下执行啊是。诶点一下完成,然后这块的话呢,诶我们F5呢做个刷新。稍等一下啊,诶为什么说这个数据库一开始最好是空的呢,因为呢,你要里边本身有一些表呢,刚才不是看到他会把你现有这个表呢给删掉吗?诶我这块因为看了一下没有这个重复的,所以我就没有再去这个用一个空的了啊然后呢,下边大家你会发现呢,是不是我们这几个表的就来了。诶这就来了是吧,诶就没问题啊,还有这个class class在在这儿呢是吧,这个行好这呢,就是我们整个讲的叫power design这样的一个工具的一个使用啊这样工具的使用,诶大家呢,也可以下来呢,熟悉熟悉。好,那么关于咱们这一章啊,咱们就讲到这儿啊。
我来说两句