当前位置:Linux教程 - Linux - 网络数据库教程-第一天

网络数据库教程-第一天



         一、第一天

    错误的技术被用于解决错误的问题

    你可能会注意到现在有很多有关互联网的技术。但是,实际上这些技术中90%都是没有用的。我是说,如果它们有用的话,光是学习这些技术就会把你给累死。大多数的网络技术之所以不被人重视,我想是因为以下原因:

    没有用,很漂亮很有趣,但没有什么意义。
    不能通用于所有浏览器。例如,JavaScript 在不同的浏览器中会出不同的问题。更不用说ActiveX了。
    速度慢、占用过多的带宽,没有到可以实际应用的地步。(任何一种技术...咳咳...包括 Java)
    技术的失败并不使我感到惊奇。太多的人只是将精力集中在自己做的东西有多漂亮,却忘记了制作它是要用于什么用途。还有。许多技术必须是基于客户端的技术,当你必须依赖客户的要求来决定采用或者技术手段时,则不是一件容易的事。

    好在互联网公众并不太关注这些好看但没有用途的东西。它他们希望互联网能为其提高特定的服务或娱乐,帮助他们获得工作甚至找到女朋友,检查银行帐户、股票价格、利率、订购机票等等等等。

    要使互联网为你提供这些服务,你必须首先将相关的数据作出合理得力组织安排,并且随时可以将这些数据更新和修改。对数据的管理需要比较复杂的技术(但绝不是上面所说的无用的绣花枕头)。

    二、设想访问你的站点的都是什么人

    假设有一个公司叫做\"Widgets Inc\",我们看看对于不同的用户,它意味着什么。

    顾客到网站检查他们发给该公司的订单的状况,同时还要看看该公司本周的产品报价和价格表。
    销售代表来该网站浏览所收集到的订单,仓库存货、退单的情况,以及最新的促销奖励。销售代表很有可能直接从该网页中获得订购商品的订单。为什么可能呢?互联网为你提供了一切便利的条件。
    经理从销售代表处获得总结报告(地区。季度、陆运、海运和空运)。
    其他人也空运充该网站获益。供应商、零售商、投资者....机会无所不在。
    或许Widgets Inc是一个具有深谋远虑的公司,所以他们准备了相应的技术和技术支持。有关他们的产品和服务的新闻甚至可以从互联网中直接发布给公众。在他们的网页中提供了内容丰富的动态信息,可以吸引每一个用户。

    但是要使一个网站具备全面的能力,该网站海需要有完善的安全机制。这个机制基于用户名、口令等等。

    让我们进一步假设:你的经理让你为一个重要的客户提供所有历史销售记录。则存储所有历史销售记录也必须是该网站所应具备的功能。

    三、我的选择是什么

    我架构了这个\"Widgets Inc\" 例子来说明数据在互联网中扮演的角色。将数据库集成到网站中在我所举的这个例子中具有非常强大的作用。显示中的例子比如互联网电影数据库。这种数据库加入只采用文本文件的形式组织这样一个灵活的数据库是不可能的。它需要有一个数据库。或者说它需要重新设计其外观和运行机制,它需要用新技术来更新。如果没有一个数据库系统或模板系统,这个工作将无法开展,因为你不可能将这个庞大网站的每一页靠手从键盘输入就架设起来。一个用途广泛动态的网站必须靠数据来支持,简单的网站中的数据只能供你浏览,而要提供网站和用户之间的互动浏览功能,则网站的架构就要复杂许多。更先进的网站可以实现用户和数据之间的互动,就需要使网站数据能够被添加、删除和修改。

    现在我们谈谈网站数据的处理可能采取的结构:

    无结构
    这个主意很糟糕。只是一大把文本文件组成的网站不能满足复杂的功能。
    有组织的文本文件:Delimited or fixed-width fields
    这个主意稍好些,担它仍然存在很多技术问题。你必须无休止地加工数据或者必须牺牲用户介入的速度。数据的维护也将是一个很令人头疼的事。除了必须加入新数据,并且还得处理由于各种疏忽所造成的错误。你还必须编码以处理文件,处理锁定、只读、允许写盘和允许生成数据的结构以及数据之间的各种联系。这样做实在是太费事了。
    标识语言:HTML, SGML, XML,
    这种方法可以实现数据存放和牺牲的很多灵活性,但是你仍然必须建立非常系统的结构化的数据对象。有些语言Perl和Omnimark 在努力实现数据的结构化。很多语言恩公提供这些功能,但同时也得牺牲速度和简单性。
    很多时候编制复杂的数据库常常使人们感到沮丧不已。而这也使得许多公司受到启发。他们制作出相应的软件帮助你处理这些问题,于是出现乐数据库服务器-database server。
    你已经听说过这些名称:Oracle, Sybase, Microsoft SQL Server, Informix, Ingress. 这些程序提供了处理数据库非常好的结构:

    它们将数据存储在表格(tables)中。 Tables的域可以包含许多种结构不同的数据类型,例如整数(integer)、字符串( character string)、货币(money)、日期(date)和二进制大型对象(Binary Large OBject-BLOB)。
    它们提供乐管理表格的管理机制。
    表格和管理机制通过复杂的用户/口令/域保卫机制保证数据的安全性。
    你可以使用功能强大而且相对容易使用的语言同数据交流。例如SQL。而且。你可以将建立存储后的SQL声明,这样即使用户不懂这种语言也可以利用数据库。
    数据库的优势还在于:已经有很多人在使用数据库。你会发现你所要放入你的数据库的很多数据已经具有乐某种数据库格式。你可以充分利用数据的现成结构。

    四、为什么要使用互联网

    在我上学的时候,教授曾经问过这样一个问题:为什么鲸鱼要生活在极地海洋?有一个同学回答说:因为鲸鱼块头太大了,它们的皮肤面积太大,保温的鲸脂层太厚以及因为它们的新陈代谢系统的原因。他总结说:如果鲸鱼不生活在极地海洋中,它们就会热死。

    我的答案很简单:因为极地海洋中有它们所需要的足够的食物。

    那么,你为什么要上互联网呢?因为互联网上有你的观众。那么观众为什么要上互联网呢?因为在互联网中可以找到他们需要的东西。

    即使在一个公司内部的环境中,网络浏览器也是无所不在。它使得网络成为信息交流的方便途径。
    浏览器可以移植。你不需要随身带着你的计算机和个人软件。只要有浏览器你就可以通过网络找到你的数据。
    网络同数据的接口非常快,而且容易编程,即使同某些快速的开发语言例如Visual Basic相比也是如此。
    你无需费心向你的用户(内部网络的用户还不算多,但外部网络的用户则无法用数字估量)分发专门用于你的数据库的软件。
    你无需考虑为每个用户提供软件升级。只要你升级乐拟定服务器上的软件,则你的每一个用户都会获益。
    你无需培训用户使用你的软件几乎所有上网的用户都知道如何使用浏览器及知道如何填写表单。
    当然,一些专业技术例如Visual Basic或Visual C++, Powerbuilder或Developer 2000可以帮你生成数据库界面。但是我在前面的讨论中已经谈了这种制作方法的费时费力。所以我不打算教你用这些语言制作数据库。>>

    五、如何应用

    如何应用?这是一个很难用一句话就能回答清楚的问题。事实上,我需要把其余几天的时间都用来回答这个问题。

    明天我将向你介绍目前可以应用的技术有哪几种。这里所说的技术包括操作系统,你可以用 Windows NT或Unixe的一种。接下来我们将可一下数据库、网络服务器和网络开发工具以及语言。检查完所有这些选项之后,我将以其中的一种为例向你介绍如何用它搭建数据库。

    第3天的课程中我将集中谈两种软件:网络服务器(相对较简单)和数据库服务器(相对较难),什么是服务器,我如何利用服务器工作?这些问题都将得到回答。我还将揭示应用表格和SQL(结构化重新语言- Structured Query Language)的秘诀。

    第4天的课程中我将讨论将数据库同外部网络集成的技术和技巧。

    第5天将是第3和第4天课程的深化。其实我还需要在准备一次课程详细探讨目前所讲的概念。

    你可以进入这些利用数据库搭建的网站了解一下我们所要讲解的什么。

    互联网电影数据库
    这个站点非常有趣。如果你项了解某部电影或某个演员,这个站点可以提供你这些信息。信息我,这个站点可不是用单纯的外部文件就能搭建起来的。
    热联线成员中心
    该站点处理数据的方式不是那么明显,但实际上,在这个站点中显示的页面只是一种\"虚拟文件\" - 它们看起来项网页,但实际上它们是用模板和数据库给拼出来的。
    CD数据库
    这个站点为那些播放在CD-ROM光驱中播放CD时懒得键入歌曲名称的人服务。
    发布人:Crystal 来自:LinuxAid