如果要是单纯的学习数据库的理论,那么将会是一件非常枯燥的事情,我们接下来将会用一个实际的案例的实现来真正的去学习一个数据库,这样会是一个比较有意思的过程。
其实在计算机的行业,任何的东西都可以表示为一个图,其实这话说的很绝对,但也是绝对正确的,因为在计算机的世界中有很多种数据架构,比如说顺序列表数,最复杂是图。其实等到你有了一定的积累之后,你就喜欢将所有的数据结构都表示为图,那么就会产生一个问题,真理不是很简单的,为什么要用复杂的东西呢?
我只能这么讲,等到你的认知到达了一定层次之后,你就会认为图是很简单的。这个简单怎么解释就是你可以将任何一个东西用图来表示,但是你并不能将任何一个东西用数组表示。如果任何一个东西都可以用图表示,那么图就是简单的,我们起码不用考虑如何去选择。
因为如果是你将图用到了极致以后,你就可以不知道任何其他的任何一个数据结构,就可以只记得图,可以不知道数组,链表等一系列的结构,因为其他一切的结构只是图的一种特殊情况,熟练掌握了图,从某种意义上抛弃掉其他的数据结构。
那么多呢,我们就用图来表示一个基本的案例,这个案例是什么呢?就是我们平时看到的电路。我们把一个电路描述成一张图。这个图里边可能有几个基本的原件,我们必须得为他们起名字,这是第1步。一个最为简单的电路图,他们有什么构成呢?
1.电池
2.电阻
3.电线
4.灯
这可能是一个最为简单的电路图,可能还可以除去电阻,但是我们为了方便研究还是加上电阻,因为现实中的电路图可能是导线本身就带有电阻的,我们分别为这几个原件起一个符号名字。为了方便记忆,我们直接用英文名字来表示。
电池:cell
电阻:resistance
电线:wire
灯:light
这几个软件相互链接,然后就构成了一张电路图,其实每个原件与原件之间,包括电池与电线之间的连接都是一种关系。我们可以把原件与和原件之间的联系定义为一种实体叫做连接点。
连接点:LinkPoint
之所以有连接点这个概念,是为了方便表达这张电路图。好的,我们接下来用以上的概念去详细的描述一张电路图,我们用xml文件的方式去表达
<graph>
<ele>
<cell name = cell_1 linkPt = "1" linkPt = "2" />
<resistance name = r_1 linkPt = "3" linkPt = "4" />
<wire name = wire_1 linkPt = "5" linkPt = "6" />
<wire name = wire_2 linkPt = "7" linkPt = "8" />
<wire name = wire_3 linkPt = "9" linkPt = "10" />
<light light = ligtht_1 linkPt = "11" linkPt = "12" />
</ele>
<linkPts>
<linkpt name =1>
<linkpt name =2>
<linkpt name =3>
<linkpt name =4>
<linkpt name =5>
<linkpt name =6>
<linkpt name =7>
<linkpt name =8>
<linkpt name =9>
<linkpt name =10>
<linkpt name =11>
<linkpt name =12>
</linkPts>
<links>
<link name = 1 linkstart = "cell_1 " linkend = "1" linkend = "3" />
<link name = 2 linkstart = "" linkend = "" />
<link name = 3 linkstart = "" linkend = "" />
<link name = 4 linkstart = "" linkend = "" />
<link name = 5 linkstart = "" linkend = "" />
</links>
</graph>
文件的格式就是诸如以上的格式,可能会有一些小的纰漏,主要还是看这个文件格式,最后的那个连接关系就是定义点与点之间的联系.当然我们可以自己去定义这个电力图的文件格式,我们接下来用恩恩斯记的方式把定义的参谋文件转换过去.实际上我们为什么要这么做呢?实际上信息科学本质是计算机数据格式的转换.我们不要一步一步去折腾一些的概念,那样反而会浪费我们的时间,我们只要构想一个模型,然后把自己模型中完整的转换到恩伊斯基中,这是我认为目前为止一个非常高效的学习方式,下一篇的文章,我们将进行这一步转化。用代码的方式来表达这个文件内容。
网友评论