全相符的组件。可能被使用的组件只在某种程度上提供所要求的功能。
2、 需求修改。在这个阶段,使用已经发现的组件的相关信息分析需求,然后修改需求
以反映可用的组件。在无法进行修改的情况下,可能重新进入组件分析活动,以搜索可供选择的解决方案。
3、 带复用的系统设计。在这个阶段,设计系统框架或复用现有的框架。设计员考虑到
复用的组件,并组织安排框架使其适应复用的要求。如果得不到可复用的组件,可能得设计一些新软件。
4、 开发与集成。无法外部获得的软件要进行开发,组件和商用现成系统要集成以创建
新的系统。系统集成在这种模型中可能是开发过程的一部分,而非一项分开的活动。 基于组件的软件工程具有减少需要开发的软件量并因此降低成本与风险的明显优点。它通常也可更快地交付软件。然而,需求方面的妥协不可避免,这可能导致系统不能满足用户的真正需要。此外,可复用组件的新版本不受其使用机构的控制,因此丧失了对系统演变的某些控制。
第六单元:数据库
课文A:数据库概览
一、引言
数据存储传统上是使用单独的没有联系的文件,这些文件有时称为平面文件。在过去,一个机构中的每个应用程序都使用自己的文件。例如,在一个大学中,每个部门都可能有其自己的文件集:档案办公室保存着关于学生信息和学生成绩的文件;经济资助办公室保存着其自己的关于需要经济资助以继续学业的学生的文件;调度办公室保存着教授的姓名和他们所教的课程;工薪发放部门保存着其自己的关于全体教职员工(包括教授)的文件,等等。然而,所有这些平面文件今天都可结合成一个实体——供整个大学使用的数据库。
虽然难以给出一个普遍接受的数据库定义,但我们使用下面常见的定义:一个数据库是被一个机构内的应用程序所使用的具有逻辑相干性的相关数据的集合。
二、数据库管理系统
21
数据库管理系统定义、创建和维护数据库。数据库管理系统也允许对数据库中的数据进行受控的访问。一个数据库管理系统由5个组成部分构成:硬件、软件、数据、用户和规程。
1、硬件
硬件是指允许访问数据的计算机物理系统。例如,终端、硬盘、主机和工作站被认为是数据库管理系统的硬件组成部分。
2、软件
软件是指允许用户访问、维护和更新数据的实际程序。另外,软件还控制着哪个用户可以对数据库中的哪部分数据进行访问。
3、数据
数据库中的数据存储在物理存储设备上。在一个数据库中,数据是独立于对其进行访问的软件的一个实体。这种独立使一个机构可以在不必更改物理数据及其存储方式的情况下更改软件。如果一个机构决定使用一个数据库管理系统,那么该机构所需要的所有信息都应作为一个实体保存在一起,可由数据库管理系统中的软件访问。
4、用户
在数据库管理系统中,用户这个术语有着广泛的定义。我们可以将用户分为两类:终端用户和应用程序。
终端用户是指可直接访问数据库以获取信息的人。终端用户又分为两类:数据库管理员和普通用户。数据库管理员拥有最高程度的特权,可以控制其他用户及其对数据库管理系统的访问,可以将其某些特权授予其他人并保留随时收回这些特权的能力。另一方面,普通用户只能使用数据库的一部分,只能进行有限的访问。
数据库中数据的其他用户就是应用程序。应用程序需要访问和处理数据。例如,工薪发放应用程序需要在月底访问数据库中的部分数据,来开支付工薪的支票。
5、规程
数据库管理系统的最后一个组成部分就是应该明确定义并为数据库用户所遵循的一套规程或规则。
三、数据库体系结构
美国国家标准协会标准计划与需求委员会(ANSI/SPARC)为数据库管理系统确立了一个包含3个层次的体系结构:内层、概念层和外层(图6A-1)。
22
用户视图 用户视图 用户视图 外层 概念层 内层 硬件
图6A-1:数据库体系结构
1、内层
内层决定数据在存储设备上的实际存储位置。该层涉及低级访问方法,以及字节如何传向和传自存储设备。换句话说,内层直接与硬件交互。
2、概念层
概念层定义数据的逻辑视图。数据模型在该层定义,数据库管理系统的主要功能——如查询——也在该层。数据库管理系统把数据的内部视图转化为用户需要看到的外部视图。概念层是中介层,它使得用户不必与内层打交道。
3、外层
外层直接与用户(终端用户或应用程序)交互。它将来自概念层的数据转化为用户所熟悉的格式和视图。
四、数据库模型
数据库模型定义数据的逻辑设计。它也描述数据的不同部分之间的关系。在数据库设计史上,使用过3种数据库模型:层次模型、网络模型和关系模型。
1、层次数据库模型
在层次模型中,数据被组织成一棵倒置的树。每个实体只有一个父,但可有数个子。在分层结构的顶部,有一个实体,称为根。图6A-2给出了一个层次模型例子的逻辑视图。层
23
次模型现在已经过时。
2、网络数据库模型
在网络模型中,实体以图的形式来组织,图中的有些实体可通过多条路径访问(图6A-3)。网络模型没有分层结构。这种模型现在也已经过时。
DEPARTMENT No. Name COURSES No. Name Unit No. Name STUDENTS Unit PROFESSORS ID Name
图6A-2:一个表示大学的层次模型例子
DEPARTMENT No. Name ID Name STUDENTS Courses COURSES No. Name Unit ID PROFESSORS Name
图6A-3:一个表示大学的网络模型例子
3、关系数据库模型
在关系模型中,数据被组织成称为关系的二维表。关系模型没有分层或网络结构强加于数据。然而,表或关系是相互关联的(图6A-4)。关系数据库管理系统组织数据,使其外部视图呈现为关系或表的集合。这并不意味着数据以表的形式存储:数据的物理存储与数据的逻辑组织方式毫无关系。图6A-5给出了一个关系的例子。关系数据库管理系统中的关系具有以下特征:
24
● 名称。关系数据库中的每个关系都应具有一个名称,而这个名称在所有关系中是独一无二的。
DEPARTMENT No. ? ? ? Name ? ? ? PROFESSORS ID ? ? ? Name ? ? ? Dep-No ? ? ? Courses ? ? ? COURSES No. ? ? ? Name ? ? ? Unit ? ? ? STUDENTS ID ? ? ? Name ? ? ? 图6A-4:一个表示大学的关系模型例子
Attributes No. CIS15 CIS17 CIS19 CIS51 COURSES Course-Name Intro to C Intro to Java UNIX Networking Unit 5 5 4 5 Tuples 图6A-5:一个关系例子
● 属性。关系中的每一列都称为一个属性。在图6A-5的表中,属性是列的标题。每个属性赋予存储在其下面的数据以意义。表中的每一列都必须具有一个在关系的范围内独一无二的名称。一个关系的属性总数称为该关系的度。例如,在图6A-5中,关系的度为3。注意属性名并不存储在数据库中:概念层使用属性给每一列赋予一定的意义。
25