40、数据密集型网站设计与Web信息系统的综合解析

数据密集型网站设计与Web信息系统的综合解析

1. Web信息系统概述

Web信息系统允许在Web与其他环境之间建立连接。通过类似使用HTTP协议访问HTML文件的URL来调用网关,URL可指定文件名称,可能以“http://”开头,并包含服务器和目录的相关信息,还能通过追加参数来进一步指定。

Web服务器与网关之间的通信机制被称为通用网关接口(Common Gateway Interface,CGI),其具体流程如下:
1. 用户通过点击锚点或提交表单请求URL,此时可向HTTP服务器传输参数(参数传输有多种技术,此处不详细展开)。
2. 服务器根据CGI协议启动网关(也称为CGI程序),并传输参数。
3. 网关接收参数后执行,可能与其他资源(如数据库)进行交互。
4. 网关将结果返回给Web服务器。
5. Web服务器将结果传输给客户端。

CGI协议最典型的用途是与数据库管理系统(DBMS)进行接口,此时CGI程序包含对数据库的查询或更新操作。

从长远来看,Web有望成为各类信息系统的标准接口。当前,Web上的信息系统数量和功能正迅速增长。在探讨数据库在Web信息系统中的作用之前,我们先了解Web信息系统的主要类别。

Web最初起源于科学界,早期主要在个人用户中传播,后来才成为工作工具。“冲浪”一词常用来描述Web的使用方式,暗示其使用较为肤浅和娱乐化。但我们将聚焦于Web在专业或商业目标方面的应用,尤其是在数据库领域。不过,数据密集型应用为终端用户提供大量数据集合,也支持一定形式的“冲浪”。

1.1 Web上的信息发布与查询

Web的初衷是提供信息,尤其是以HTML页面的形式。许多组织利用Web向全球用户提供信息,这些信息通常组织在专门构建的HTML页面中,尽管大部分基于已有信息。用户通过这些系统查询Web上发布的信息。

随着信息需求和发布量的增加,手动管理HTML文档变得困难,主要体现在以下两个方面:
- 数据更新困难 :数据可能发生变化,需要将这些变化传播到网站的数据内容中,但这个过程劳动强度大。而且数据与超文本组织和图形展示相互关联,使得网站的演变更加困难。
- 数据冗余问题 :为了便于阅读和导航,网站可能会冗余存储数据。例如,大学教授页面可能不仅包含指向系主页的链接,还包含教授的姓名和地址,而这些地址与系的地址相同。如果系的地址发生变化,将影响多个页面。

将数据存储在数据库中可以缓解这些问题,它允许页面自动构建,支持各方面的分离,并消除冗余问题。此外,信息本身可能已经存储在数据库中,将其发布在Web上的原因是为了更方便地访问大量相关信息,且成本相对较低。

1.2 Web上的事务处理

最初,通过Web访问的数据库通过其他方式进行更新,如现有的应用程序或本地管理的特定数据加载和修改功能。自然的发展趋势是允许通过Web进行更新,可能通过与显示页面结构相似的页面,将工作分配给不同的人员。例如,在大学网站中,各系的人员更新可以由系的管理部门自行管理。通过浏览器访问替代了其他用户界面,带来了一致性的好处。

1.3 电子商务及其他新应用

除了用户数量的增加和界面的一致性,上述应用在信息系统领域可视为传统应用。而Web催生了许多新应用,这得益于互联网用户的协作和参与精神。

1.3.1 电子商务

电子商务是最重要且具挑战性的新应用之一,即利用Web销售商品和服务。许多公司在Web上销售产品,如书籍、软件工具、机票等。有关产品的信息通常通过数据库管理系统(DBMS)在公司网站上进行组织和存储。这一应用在很大程度上是现有系统的扩展,传统的邮购业务通常基于信息系统和数据库,但仅由公司内部人员使用。现在,基于Web的系统直接向购买者提供访问权限。显然,此时安全问题变得至关重要,尤其是销售付款环节,通常通过在Web上传输信用卡号码来完成。

1.3.2 讨论组

讨论组是另一个新应用。商业组织采用了讨论组的概念,例如,通过Web销售书籍的公司通常提供撰写评论和修订的功能,这些内容成为公共财产。信息管理可以通过简单文件进行,但如果规模增大,数据库的支持将变得有用。

1.3.3 协同工作支持

Web技术的进一步发展影响了其他类型的系统,例如对协同工作形式的支持。计算机支持的协同工作(Computer-Supported Cooperative Work,CSCW)的理念在技术和科学界已经广泛传播多年,涉及能够利用个人或团队活动力量的工具,特别是软件。最先进的协同系统需要对文档进行受控共享,并协调活动和工作流程。工作流管理系统(Workflow Management Systems,WFMS)专门用于此目的,通过控制活动和文档流程来组织办公室工作。互联网为工作流系统的创建提供了非常有用的基础设施,而Web是自然的接口。然而,工作流通常需要一定程度的活动结构化和集成特定软件系统的支持,这可能与Web的开放性相冲突。因此,这些应用通常提供给特定范围的用户,他们根据特定规则进行协作并使用特定工具。工作流通常在内联网中使用,但有时相同的基础设施需要同时用于受保护和开放的应用,这促使了外联网的发展。外联网由特定组织控制,但也允许一定形式的外部访问,用户被分类,每个用户可以使用不同的应用。例如,快递服务公司提供的外联网,公司员工以受保护的方式提供信息,而客户可以使用相同的Web界面监控邮件的投递情况。

1.3.4 集成服务与数据采集

Web的另一个特点是能够提供由不同主体处理的集成服务,合作方式可以是松散的或严格的。例如,许多页面上的“有用链接列表”或“相关站点”属于松散合作;允许在多个站点上进行书目搜索的界面则属于严格合作。数据采集也是一个例子,鉴于Web上有大量可用数据,公司或实体可以通过Web获取和组织信息,可能用于集成到其数据仓库中。

1.3.5 嵌入式系统

Web信息系统的另一个发展方向是嵌入式系统。这些系统不使用传统终端或个人计算机作为接口,而是使用一系列设备,如移动电话、无线掌上电脑、数据采集设备或工业设施的控制系统。这些系统的共同特点是资源有限(计算能力、内存、带宽和显示尺寸等)。目前,从数据库的角度来看,这类系统的特殊之处较少。但在不久的将来,预计连接到互联网的“终端”数量将迅速增长,例如集成到车辆或家用电器中的设备,届时对数据库交互的需求将增加。例如,车辆中的系统可以使用GPS设备确定车辆在地球表面的位置,并从Web获取该地区的天气或旅游信息;对于家用电器,可以通过互联网进行维护和软件更新。

2. 数据密集型网站设计

2.1 设计范围界定

设计Web网站是一项复杂的活动,我们需要明确设计活动的范围。将整个Web视为统一的信息源并不合适,因为信息的呈现形式、质量、实质和可用性缺乏一致性;而将Web视为一组“独立页面”,每个页面作为特定信息源的观点,也不适用于确定Web设计的范围,这是浏览器书签列表和搜索引擎选择单页面链接的视角。实际上,设计应专注于满足特定应用需求且由单个主体控制,或至少由多个协调主体共享相同设计目标的系统。由于网站通常具备这些特性,我们将网站作为设计活动的范围。

我们进一步关注数据密集型网站,即主要目的是向各类用户提供大量信息的网站。这类网站通常具有非常规则的结构,例如大学各系的网站,每个系有自己的教授和课程,其网页往往相似且相互关联。相应地,数据库可以存储教授和课程的信息。鉴于网页的规律性,使用类似数据库设计的技术来设计部分Web页面变得方便。因此,我们主要关注提供信息具有一定规律性的网站,其目标可描述为“发布数据库内容”以供查询。

2.2 数据密集型超文本的逻辑模型

假设一家公司有一个数据库,其概念模式和逻辑模式如图所示(此处简化了之前展示的案例)。该公司希望组织一个网站,提供数据库内容供查询。一个简化但合理的网站组织如下:
- 主页 :包含指向所有分支机构的链接,以及另外两个页面的链接,分别指向所有项目和所有员工的页面。
- 分支机构页面 :每个分支机构页面列出部门列表,每个部门有指向相应经理的链接,以及指向包含该部门员工列表的另一个页面的链接。
- 项目页面 :每个项目页面列出参与该项目的员工链接。
- 员工页面 :每个员工页面包含个人信息,以及指向其所在分支机构和参与项目的链接。

项目、员工、部门和分支机构的页面在各自类别中具有相似性。例如,两个员工页面包含相同的信息,只是值不同,且组织方式相同。这体现了模式和实例的经典区别:页面的规则结构是模式,而对应特定员工的实际内容是符合该模式的实例。因此,引入页面模式的概念来描述一组页面的共同结构是有意义的。

下面是使用类似第11章语法定义的页面模式示例:

page-schema Employee
  (Surname:   string;
   Firstname: string;
   Salary:    integer;
   Dept:      string;
   Branch:    link(City: string; *Branch);
   Projects:  list-of
                    (Project: link(Title: string; *Project);
                     StartDate: date;
                    );
  )

在这个示例中,每个链接由一个具有锚点作用的属性(如Branch链接中的City)和一个引用(如上述示例中的*Branch)组成。锚点由被引用页面模式的一个或多个属性组成,也可以是常量。

Web的一个特点是,虽然数据库中的每个类通常有多个实例,但有些页面模式只有一个实例,例如每个网站的主页。在上述网站中,包含所有员工列表和所有项目列表的页面也具有这种特性,我们称这些页面为唯一页面,从其他页面指向唯一页面的锚点是常量字符串。以下是该网站其他页面模式的定义:

page-schema Company unique
 (Branches:  list-of (Branch: link(City: string; *Branch));
  Employees: link("Employees"; *EmployeeList);
  Projects:  link("Projects"; *ProjectList);
 )
page-schema ProjectList unique
 (Projects:  list-of(Project: link(Title: string; *Project)))
page-schema EmployeeList unique
 (Employees: list-of(Employee: link(Surname:string; *Employee)))
page-schema Branch
 (City:      string;
  Address:   string;
  Depts:     list-of
             (Name:    string;
              Phone:   string;
              Manager: link(Surname: string; *Employee);
              Employees: link("Employees"; *EmployeesOfDept);
             )
 )
page-schema EmployeesOfDept
 (Branch:    link(City: string; *Branch;
  Dept:      string;
  Employees: list-of(Employee: link(Surname:string; *Employee));
 )
page-schema Project
 (Title: string;
  Budget: integer
  ReleaseDate: date;
  Employees:   list-of(Employee:link(Surname:string; *Employee));
 )

2.3 Web超文本的表示层次

上述模式可视为超文本在逻辑层面的描述,它代表了超文本结构,但未描述超文本的所有细节,如页面的实际布局或一些额外的链接,这些通常是网站中常见的。例如,员工页面可能有不同的布局和图形展示,但对应相同的页面模式和数据库内容。

此外,相同的数据内容可以通过不同的页面模式呈现。例如,员工页面可以不只是包含指向分支机构和项目列表的链接,还可以包含更多关于分支机构的信息和指向列出员工项目的页面的链接。此时,页面模式的定义如下:

page-schema Employee
  (Surname:   string;
   Firstname: string;
   Salary:    integer;
   Dept:      string;
   City:      string;
   Address:   string;
   Projects:  link("CurrentProjects"; *ProjectsOfEmp);
  )

基于以上考虑,我们可以区分数据密集型网站的三个不同方面:
- 信息内容 :在数据密集型网站中,信息内容由数据组成。与数据库一样,可区分模式和实例。
- 超文本结构 :描述信息内容如何组织成页面以及页面之间的链接,以实现页面间的导航。在数据密集型网站中,超文本结构可以通过超文本模式定义,并参考数据库模式中的数据。
- 展示 :描述页面内的图形方面以及内容和链接的部署,展示的定义也可以参考超文本模式。

这种划分与数据库架构中的层次(外部、逻辑和物理)有相似之处。类比之下,我们还可以引入“超文本独立性”的概念。实际上,网站的超文本结构可以在不改变相关数据库结构的情况下进行修改,展示也可以在不必然修改超文本结构或数据库结构的情况下进行修改。展示在某种程度上是超文本的实现层面,与数据库不同的是,展示特征对用户可见,尽管它们不影响信息内容。

2.4 数据密集型网站的设计原则

超文本的内容、结构和展示的不同方面提示了一种设计方法:先定义内容,再设计超文本结构,最后进行展示设计。

在数据密集型网站中,内容主要由数据组成,我们可以在概念、逻辑和物理等多个层面进行描述。对于内容而言,最有用的描述无疑是概念层面的描述,它可作为超文本设计的重要输入。因此,数据密集型网站的设计可以看作由数据库设计和超文本设计两条相互关联的活动线组成。

为了确定设计方法的阶段,我们有以下观察:需求分析不仅要关注特定的数据导向方面,还必须考虑网站的目标、用户需求和期望的交互技术。因此,超文本设计一方面要利用概念数据库设计的成果,另一方面要关注专门针对Web交互方面的需求。

超文本设计阶段以概念模式为输入,产生超文本模式作为输出。我们可以发现这两个模型之间存在一些差异:
- 实体映射不同 :概念模型倾向于将现实世界对象的每个类映射到不同的实体;而在超文本中,页面关注应用对象,这些对象通常包含概念模式中的多个实体。
- 关系表示不同 :在概念模型中,关系以非冗余的方式表示,没有“预定义方向”;而在超文本中,链接是有方向的(一个引用从一个页面指向另一个页面,不一定有反向链接),并且多个链接可能对应相同的关系,提供冗余的导航机会。此外,链接可能对应通过遍历两个或多个中间关系获得的路径。
- 额外结构不同 :超文本有额外的页面模式和链接来支持导航(包括主页和一些层次结构或访问页面实例的表单)。

超文本的逻辑模型还指定了概念数据模型中不存在的几个方面,包括概念组织成页面和辅助访问结构。因此,引入一个中间层次,即超文本的概念层次是有用的,其目的是跟踪上述方面。下面是一个简单的示例,展示了超文本概念表示的主要特征,并强调了与图中概念数据库模式的差异:
- 实体转换 :“DEPARTMENT”实体已转换为属性,因为在超文本中该概念不被认为是独立的,但它是一个结构化属性,也参与了多个关系。
- 关系定向 :关系是有方向的,许多是双向的,但有一个“MANAGEMENT”关系是单向的,假设从部门到其经理的信息获取很重要,而反之则不重要。
- 新增概念 :“COMPANY”、“ACTIVITIES”、“PERSONNEL”等概念在实体 - 关系(E - R)模式中没有对应,它们构成了网站的主要访问结构。在复杂的网站中,可能有许多此类概念,对应于层次化组织,以实现对页面实例的导航。

数据密集型网站的设计方法流程如下:

graph LR
    A[需求分析] --> B[概念数据库设计]
    B --> C[逻辑数据库设计]
    A --> D[概念超文本设计]
    B --> D
    D --> E[逻辑超文本设计]
    E --> F[展示设计]
    C --> G[网站生成]
    E --> G
    F --> G

需求分析、数据库组件的概念设计和逻辑设计可以按照之前讨论的方法进行,但在需求分析中要更强调Web框架的特定需求。具体各阶段如下:
- 概念超文本设计 :根据需求和概念数据模式,产生超文本的概念模式。
- 逻辑超文本设计 :根据概念模式产生超文本的逻辑模式。
- 展示设计 :定义逻辑设计中定义的每个页面模式的布局和展示。
- 网站生成 :根据下一节讨论的技术选项,开发数据库与网站之间的连接。

该方法是模块化的,如果已有数据库并通过概念模式进行了文档记录,则可以省略概念和逻辑数据库设计阶段;如果只有逻辑模式可用,则可以进行逆向工程构建概念模式,然后继续使用上述方法。

在之前的示例中,图中的概念模式将在概念超文本设计阶段从E - R模式推导得出;在逻辑超文本设计阶段,将定义图中的逻辑模式和各种页面模式;在展示设计阶段,将设计页面的实际外观,例如在不同布局的页面中进行选择;最后,在网站生成阶段,将使用合适的技术和工具实现页面的实际构建。

综上所述,Web信息系统和数据密集型网站设计是一个涉及多个方面的复杂领域,需要综合考虑信息的发布、查询、事务处理、新应用开发以及网站的设计原则和方法。随着技术的不断发展,这些领域将继续演变和创新,为用户提供更高效、更优质的服务。

3. 总结与展望

3.1 关键要点回顾

为了更好地理解Web信息系统和数据密集型网站设计的核心内容,我们对前面的要点进行总结,如下表所示:
|类别|要点|
| ---- | ---- |
|Web信息系统| - 允许Web与其他环境建立连接,通过URL调用网关,使用CGI协议通信
- 包括信息发布与查询、事务处理、电子商务等多种应用类型
- 不同应用类型有各自的特点和需求,如电子商务需解决安全问题|
|数据密集型网站设计| - 明确设计范围为专注特定应用需求且有规则结构的网站
- 引入页面模式描述页面共同结构,区分信息内容、超文本结构和展示三个方面
- 遵循先定义内容,再设计结构,最后进行展示设计的原则,采用模块化设计方法|

3.2 未来发展趋势

随着技术的不断进步,Web信息系统和数据密集型网站设计将呈现以下发展趋势:
- 智能化与自动化 :未来的Web信息系统将更加智能化,能够自动分析用户需求,提供更个性化的服务。例如,通过人工智能算法对用户的浏览行为和查询历史进行分析,为用户推荐更符合其兴趣的信息。在数据密集型网站设计方面,自动化工具将得到更广泛的应用,实现页面的自动生成和优化,提高设计效率。
- 移动化与多设备适配 :随着移动设备的普及,越来越多的用户通过手机、平板等移动设备访问Web信息系统。因此,网站需要更好地适配不同设备的屏幕尺寸和性能,提供流畅的用户体验。同时,嵌入式系统的发展也将使得更多的设备能够连接到Web,如智能家居设备、智能汽车等,这将进一步拓展Web信息系统的应用范围。
- 大数据与数据分析 :Web上的数据量不断增长,大数据技术将在Web信息系统中发挥重要作用。通过对海量数据的分析,企业可以更好地了解用户需求,优化业务流程,提高决策的科学性。在数据密集型网站设计中,也需要考虑如何有效地存储、管理和分析大量数据,以支持网站的高效运行。
- 安全与隐私保护 :随着Web应用的不断发展,安全和隐私问题日益突出。特别是在电子商务等涉及用户敏感信息的应用中,保障用户数据的安全和隐私至关重要。未来的Web信息系统需要采用更先进的安全技术,如加密技术、身份认证技术等,来保护用户的信息安全。

3.3 实践建议

对于想要在Web信息系统和数据密集型网站设计领域开展实践的人员,以下是一些建议:
- 学习基础知识 :掌握Web开发的基础知识,如HTML、CSS、JavaScript等,了解数据库设计和管理的基本原理,熟悉CGI协议等相关技术。
- 积累项目经验 :通过参与实际项目,积累设计和开发经验。可以从简单的项目开始,逐步提高自己的能力。在项目中,注重团队协作,学习他人的经验和技巧。
- 关注技术动态 :及时关注行业的最新技术动态和发展趋势,学习新的技术和工具。可以通过阅读技术博客、参加技术研讨会等方式,不断拓宽自己的知识面。
- 注重用户体验 :在设计网站时,始终将用户体验放在首位。了解用户需求,设计简洁、易用、美观的界面,提高用户的满意度。

3.4 总结

Web信息系统和数据密集型网站设计是一个充满挑战和机遇的领域。通过深入理解其原理和方法,结合未来的发展趋势,我们可以更好地设计和开发出高效、安全、易用的Web应用。在实践过程中,不断学习和积累经验,注重技术创新和用户体验,将有助于我们在这个领域取得更好的成绩。

以下是一个简单的流程图,展示了从学习到实践的过程:

graph LR
    A[学习基础知识] --> B[积累项目经验]
    B --> C[关注技术动态]
    C --> D[注重用户体验]
    D --> E[设计开发高效网站]

希望以上内容能够为对Web信息系统和数据密集型网站设计感兴趣的读者提供有益的参考,帮助大家在这个领域不断探索和进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值