怎样理解各种各类的数据库

时间:2022-11-22 00:41:00
    我是asp.net的初学者,对于数据库方面的理解还不是很透彻,总是存在许多疑问,到底应该如何来理解数据库与web应用程序之间的关系呢?我也查看了相关方面的书籍,但是他们讲得都太专业了,我理解不了,只知道数据库可分为关系型数据库和桌面型数据库.数据库文件与数据库应用系统之间又是什么关系呢?
    打个比方吧,比如word,我们可以用它来编辑一个word文档,当我们编辑好一个word文档之后,我们就可以把word文档保存在磁盘上的任何一个位置,甚至我们还可以把它拷到其它任何一台计算机上,可以说编辑完之后,word文档与相应的word程序就是一个相对独立的关系了,他们之间没有很大的联系了,顶多在需要打开的时候还可能用到它,但是其它任何一个word应用程序也都可以打开它的.
    我是从word文档与word应用程序的关系来理解数据库与数据库应用程序的关系的.我们通过数据库应用程序创建一个数据库文件,当然这个数据库中包含若干的数据表,数据表中有许多的数据.那么我们就可以把创建好的数据库文件导出来,放在我们的网站的某个目录下,这个数据库就是一个文件而已,我们可以通过web应用程序来完成对它里面的数据的添加,查询,更新,删除等工作,当我们要把网站移到别一台服务器上时,就只要把数据库连同网站的所有内容复制到另一台服务器上就可以了,只要能保证目标服务器支持网站web应用程序能运行,不需要做额外的什么工作.
    但是显然我对以上数据库的理解肯定是不对的,以上的理解完全没有用到数据库应用程序,只是用到了数据库文件.我发现在有些网站的目录下是有数据库文件的,但有些就没有数据库文件的,那么我们需要的数据库文件又是放在哪呢?那么在这种情况下当我们要把网站从一台计算机移到另上个服务器,我们又要如何在这个目标服务器上配制相关的数据库呢?
    于是我又从另一个观点来理解数据库文件与数据库应用程序之间的关系,打个比方吧.(水平有限,也许比方打得不够确切,还望你们能够理解我的意思)
    把数据库比作一个仓库,仓库中放有我们的货物,数据库应用程序就是一个仓库管理员,当我们要拿货物的时候都要经过仓库管理员,仓库管理员会具体管理货物的摆放和挑选等方面工作.
    数据库应用程序就是一个充当仓库管理员的角色,sql语言就是我们与"仓库管理员"交流的语言,当我们要创建数据库或数据表的时候,我们只要告诉他一声,他就会把相应的数据库或数据表创建好,但是他创建好的数据库或数据表可以存入在他那里,也可能放在我们这.当我们需要从已创建好的数据库或数据表中查找,添加,修改,删除相应的数据的时候,那么我们也只要通知管理员一声,他就会帮我们完成相应的工作,并把我们需要的数据回传给我们.当然了,当数据库或数据表在创建的时候是存在"管理员"那里的话,那么我们只要知告诉他数据库或数据表的名字,他就是找到相应数据库或数据表并完成我们的工作,当数据库或数据表在我们这里的时候,我们有仅要告诉他数据库或数据表的名字,还要告诉他数据库或数据表的位置,那们他才能找到相应的数据库或数据表来完成我们的工作.
     自以为那么来理解数据库文件与数据库应用程序的关系可以解决我们在网站开发中遇到许多有关数据库方面的疑问,比如某个服务器空间说他们的空间支持什么什么数据库,意思就是他们网站提供了相应的数据库应用程序,通过他我们可以执行相应的数据操作.而有些数据库是不用通过数据库应用程序,web应用程序可以直接对他进行相应操作,我们暂且叫他们为独立的数据库文件,就像我们开头打的那个比方的例子,这样的数据库与相应数据应用程序无很大的联系,两者保持一定的独立性,比如Access创建的数据库文件好像就是这种.我们在申请网站空间的时候,他们会说明空间的大小,以及相应的数据库的容量,这个数年据容量可能就是我们说的我们可以把数据放在他们的数据库应用程序中的容量.而我们把数据库或数据表导出放在网站目录下,那么这些数据库或数据表占用的是网站空间的容量,而不是数据库的容量.
     也许我讲了半天,各位高手们只要用几句专业术语就能概括了,专业语言固然是好,可以更为精辟简洁的表达一个概念,但是作为初学者的我们却是一个麻烦,有时我们费了很多的力气却理解,但很多时候还理解不对.因此我们也需要一些浅显易懂,语言形象的书籍来帮助我们这些初学者入门.我写了这么多,就是在我读了一些数据库之后对它与web应用程序之间的关系,可能有许多误区,还望各位高手们指正,开导,帮我理解好他们之间的关系,不能理解他们之间的关系,我感觉自己的心中有个疙瘩未解一样,在使用数据控件的时候就不能很好的把握.
      我还想请教一个问题,当我们在使用关系型数数据库在自己的电脑上建好网站后,当我要上传的服务器上时,怎么把数据库传上去,还有我们还要修改数据源控件或web.config文件中的stringconnect配置节吗?