《数据库原理及应用》课件第1章_第1页
《数据库原理及应用》课件第1章_第2页
《数据库原理及应用》课件第1章_第3页
《数据库原理及应用》课件第1章_第4页
《数据库原理及应用》课件第1章_第5页
已阅读5页,还剩175页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章数 据 库 基 础1.1数据库系统1.2关系数据库1.3数据库设计的步骤1.4数据库需求分析1.5数据库概念结构设计1.6数据库逻辑结构设计1.7数据库物理结构设计1.8数据库实施1.9数据库运行和维护

【技能目标】

了解设计数据库的基本步骤;学会设计数据库的基本方法;学会按照用户的需求设计数据库及建立数据库模型。

【知识目标】

掌握数据库的基本概念;了解数据管理技术的发展;了解数据库系统的组成;掌握数据库系统的体系结构;掌握关系模型的概念;掌握关系代数运算;掌握数据库设计的基本步骤;掌握需求分析的方法和步骤;掌握利用E-R图描述数据库概念模型的方法;掌握将E-R模型转化为关系模型的方法;掌握关系数据库规范化理论;学会关系模式的分解;掌握数据库物理结构设计的方法。

1.1.1数据库系统的基本概念

1.数据

描述事物的符号称为数据(Data)。数据有多种表现形式,可以是数字,也可以是文字、图形、图像、声音和语言等。1.1数 据 库 系 统

2.信息

对数据进行加工处理或解释之后得到的对客观事物产生影响的数据称为信息。如可用一组数据(李锐,男,1989-3-6,2009-9-1)描述一个学生,根据预先定义好的语义,可得到信息:李锐是个男生,1989年3月6日出生,2009年9月1日入学。

3.数据库

所谓数据库(DataBase,DB),是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

4.数据库管理系统

数据库管理系统(DataBaseManagementSystem,DBMS)是数据库系统的核心软件之一,是位于用户与操作系统之间的一层数据管理软件。它在操作系统的支持下帮助用户建立、使用和维护数据库。数据库管理系统的功能主要包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。

(1)数据定义功能。

(2)数据操纵功能。

(3)数据库的运行管理功能。

(4)数据库的建立和维护功能。

5.数据库系统

数据库系统(DataBaseSystem,DBS)是指在计算机系统中引入数据库后的系统。1.1.2数据管理技术的发展

随着计算机技术的发展,计算机大量地用于信息管理。数据管理是指对数据进行组织、存储、使用和维护等处理。数据库技术就是一种科学地组织和存储数据,高效地获取和维护数据,安全地共享数据的数据管理技术。数据管理技术经历了从低级到高级的三个阶段,即人工管理阶段、文件系统阶段和数据库系统阶段。

1.人工管理阶段

20世纪50年代中期以前,计算机主要用于科学计算。当时没有磁盘等直接存取的存储设备,没有操作系统,也没有专门的管理数据的软件。数据包含在程序中,数据的输入、输出和使用都是由程序来控制的。这一阶段的数据管理有如下特点:

(1)数据不保存。由于当时计算机主要用于科学计算,因此一般不需要将数据长期保存,数据在使用时随程序一起进入计算机,用完后就撤走。

(2)应用程序管理数据。没有软件对数据进行管理,由应用程序自己管理,应用程序中不仅要规定数据的逻辑结构,而且要设计物理结构,包括存储结构、存取方法、输入方式等,程序员负担很重。

(3)数据不能共享。数据是面向应用的,一组数据只能对应一个程序。当多个应用程序涉及某些相同的数据时,由于必须各自定义,无法互相利用、互相参照,因此会造成大量的数据冗余。

(4)数据不具有独立性。数据的逻辑结构或物理结构发生改变后,必须对应用程序做相应的修改,这进一步加重了程序员的负担。

人工管理阶段是数据管理的最低级阶段。人工管理阶段应用程序与数据之间的关系如图1-1所示。

图1-1人工管理阶段应用程序与数据之间的关系

2.文件系统阶段

20世纪50年代后期到60年代中期,计算机大量地用于管理。当时出现了磁盘、磁鼓等直接存取存储设备,操作系统中已经有了专门的数据管理软件,即文件系统,通过文件系统来管理数据。数据被组织成独立的数据文件,与程序分离。这一阶段的数据管理有如下特点:

(1)数据可以长期保存。计算机大量用于数据处理,需要将数据长期保留在计算机中,进行查询、修改、插入和删除等操作。

(2)文件系统管理数据。文件系统将数据组织成相互独立的数据文件,程序和数据之间由文件系统提供存取方法进行转换,使应用程序与数据之间有了一定的独立性,程序员不必过多地考虑物理细节,同时数据在存储上的改变不一定反映在程序上,从而大大节省了维护程序的工作量。此阶段的文件系统仍存在以下缺点:

(1)数据共享性差,冗余度大。在文件系统中,一个数据文件对应于一个应用程序,数据文件仍然是面向应用的。当多个应用程序具有部分相同数据时,必须建立各自的数据文件,无法共享,因此同样会造成大量的数据冗余。

(2)数据独立性差。在文件系统中,数据文件是面向应用的,一旦数据文件的逻辑结构发生改变,必须修改应用程序;应用程序的改变,例如改用不同的高级语言,也将引起数据文件的改变,因此数据与程序之间仍缺乏独立性。

文件系统阶段应用程序与数据之间的关系如图1-2所示。

图1-2文件系统阶段应用程序与数据之间的关系

3.数据库系统阶段

20世纪60年代后期以来,计算机用于管理的规模越来越大,具有了大容量磁盘,为解决多用户、多应用共享数据的需求,出现了统一管理数据的专门软件即系统数据库管理系统,数据管理技术达到了数据库系统阶段。数据库系统阶段的特点如下:

(1)数据结构化。数据不再面向某一应用,而是面向全组织,具有整体的结构化。不仅数据结构化,而且存取数据的方式也很灵活,可以存取数据库中某一个数据项、一组数据项、一个记录或一组记录。而在文件系统中,存取的最小单位是记录,粒度不能细到数据项。

(2)数据的共享性高,冗余度低,易扩充。由于数据不再面向应用,而是面向整个系统,因此可以被多个用户、多个应用共享使用。数据共享大大减少了冗余,避免了数据之间的不一致性。同时由于数据是面向全局的,容易增加新的应用,使得系统弹性大,易扩充。

(3)数据由DBMS统一管理和控制。数据库管理系统提供了数据的安全性保护、完整性检查、并发控制和数据库恢复等功能,实现了数据共享及对数据的统一管理和控制。

(4)数据独立性高。数据由数据库管理系统统一管理,一方面,若数据的存储由DBMS来管理,用户程序不必了解,应用程序只需处理数据的逻辑结构,这样当数据的物理存储改变时,应用程序不必改变;另一方面,当数据的逻辑结构发生改变,而针对某一应用的逻辑结构没有改变时,应用程序也可以不变,因此数据与程序之间具有较高的独立性。数据库系统阶段的数据管理技术达到了一个全新的高级阶段。数据库系统阶段应用程序与数据之间的对应关系如图1-3所示。图1-3数据库系统阶段应用程序与数据之间的关系1.1.3数据库系统的组成

数据库系统一般由数据库,数据库管理系统、开发工具及应用系统,数据库系统用户和计算机设备等组成。

1.数据库

在数据库系统中,数据库是与一个特定组织的各项应用相关的全部数据的集合。数据库中的数据以文件的形式存储,具有集中性和共享性。所谓集中性是指把数据库看成性质不同的数据文件的集合,其中的数据冗余很小;所谓共享性是指多个应用程序使用不同的语言,为了不同的应用目的可同时存取数据库中的数据。

2.数据库管理系统、开发工具及应用系统

数据库管理系统对数据库中的数据资源进行统一管理和控制,是为数据库的建立、使用和维护配置的系统软件。高级语言及其编译系统和应用开发工具主要用于建立在数据库基础之上的应用程序。应用系统是为特定应用环境开发的数据库应用系统。

3.数据库系统用户

数据库系统用户分为数据库系统分析人员和数据库设计人员、数据库管理员、应用程序员及用户。

(1)数据库系统分析人员和数据库设计人员负责应用系统的需求分析,确定数据库中的数据及设计数据库。

(2)数据库管理员(DataBaseAdministrator,DBA)是全面负责建立、维护和管理数据库系统的人员。DBA负责定义并存储数据库内容,监督和控制数据库的使用,完成数据库日常维护,必要时重新组织和改进数据库。

(3)应用程序员负责设计和编写应用程序,并进行调试和安装。

(4)用户是指使用应用程序访问数据库的人员,他们利用数据库系统完成日常的工作。

4.计算机设备

运行数据库系统的计算机必须有足够大的内存,以存放操作系统、DBMS的核心模块和应用程序等。同时要有足够大的磁盘等直接存取设备存放数据库和较高的传输数据的硬件设备,还要有脱机存储介质,如可擦写光盘、移动硬盘等,以存放数据库的备份。1.1.4数据库系统的体系结构

从数据库管理系统角度看,通常数据库系统的体系结构采用的是三级模式结构,在三级模式之间提供两级映射功能,如图1-4所示。

图1-4数据库系统的体系结构

1.数据库系统的三级模式结构

数据库系统的三级模式结构是指数据库系统由外模式、模式和内模式三级构成。

1)外模式

外模式也称为子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。外模式是模式的子集。一个数据库可以有多个外模式,不同的用户应用需求不同,其外模式也不相同。

外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。DBMS提供外模式描述语言(子模式DDL)来进行外模式定义。

2)模式

模式也称为逻辑模式,是对数据库中全体数据的逻辑结构和特征的描述。它是数据库系统三级模式结构的中间层,它既不涉及数据的物理存储和硬件环境,也与具体的应用程序、所用的应用开发工具无关。一个数据库只有一个模式,它以某一个数据模型为基础,充分考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。

定义模式时不仅要定义数据的逻辑结构,例如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等,还要定义数据之间的联系,定义与数据有关的安全性、完整性要求。DBMS提供模式描述语言(模式DDL)来进行模式定义。

3)内模式

内模式也称为存储模式,是数据库中数据的物理结构和特征的描述,是数据在数据库内部的表示方式。如记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储,索引按照什么方式组织等。DBMS提供内模式描述语言(内模式DDL)来定义内模式。

2.数据库的两级映射功能与数据独立性

为了实现三级模式之间的联系和转换,数据库管理系统在这三级模式之间提供了两级映射:外模式/模式映射和模式/内模式映射。正是这两级映射保证了数据库中的数据具有较高的逻辑独立性和物理独立性。

1)外模式/模式映射

外模式是局部数据的逻辑结构和特征的描述,模式是数据的全局逻辑结构和特征的描述。一个数据库只有一个模式,可以有多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映射,它定义了外模式与模式之间的对应关系。这些映射定义通常包含在各自外模式的定义中。

当模式改变时,由数据库管理员对各个外模式/模式映射作相应改变,可以使外模式保持不变。应用程序是依据外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

2)模式/内模式映射

一个数据库只有一个模式,也只有一个内模式,所以数据库系统只有一个模式/内模式映射,它定义了模式与内模式之间的对应关系,即数据全局逻辑结构和特征与存储结构之间的对应关系。该映射定义通常包含在模式的定义中。

当内模式改变时,即数据的存储结构改变时,由数据库管理员对模式/内模式映射作相应改变,可以使模式保持不变,从而应用程序不必修改,保证了数据与程序的物理独立性,简称数据的物理独立性。

数据库的三级模式结构和两级映射功能,使得数据的定义和描述与程序分离,因而具有较高的逻辑独立性和物理独立性。

1.2.1关系数据库的基本概念

1.数据库的基本模型

数据库的基本模型有三种:层次模型、网状模型和关系模型。

层次模型是数据库系统中最早出现的数据模型,它用树形结构来表示各类实体及实体之间的联系。现实世界中许多实体之间的联系就是一种自然的层次关系,如行政机构、家族关系等。采用层次模型作为数据的组织方式的数据库就是层次数据库。1.2关 系 数 据 库网状模型采用网状结构组织数据,即数据节点之间的关联关系形成一个网状结构。网状模型可以表示现实世界中许多实体之间的非层次关联关系。层次模型是网状模型的一个特例。采用网状模型作为数据的组织方式的数据库就是网状数据库。

关系模型采用二维表格结构来组织数据。采用关系模型作为数据组织方式的数据库就是关系数据库。目前数据库设计主要采用关系数据库。

目前较为流行的关系数据库管理系统有Oracle、DB2、Sybase、MySQL、SQLServer、Access、VisualFoxpro等。

2.关系模型及关系数据库

关系模型由关系数据结构、关系操作和关系完整性约束三部分组成。

1)关系数据结构

关系模型中的数据的基本逻辑结构是二维表,它由行和列组成。数据表包含若干行和若干列。表中的一行称为一个元组或记录,表中的一列称为一个属性或字段。一张二维表就是一个关系。

关系数据库是一些相关表和其他对象的集合。一个关系数据库包含多个数据表。

(a)(b)

图1-5学生成绩管理系统数据库学生表和选课表

2)关系操作

关系模型中的数据操作就是关系操作。关系操作是集合操作,操作对象和操作结果都是关系。关系模型中常用的关系操作包括并、交、差、笛卡尔积、选择、投影、连接、除等查询操作和插入、修改、删除操作两大部分。用关系运算来表达查询要求的方式称为关系代数。关系数据库中用SQL语言实现关系的查询、增加、修改和删除操作。

3)关系完整性约束

关系模型中的关系操作必须满足完整性约束。关系模型中有以下四类完整性约束。

(1)实体完整性。实体完整性保证关系数据库中每个表中的记录都是唯一的。数据库中的表对应着现实世界中的一类事物,每个事物都是可以区别的。实体完整性通过定义主键约束来实现,如学生表中每个学生的记录是唯一的,不允许有相同的记录,学生表中常以学号作为主键。

(2)参照完整性。参照完整性保证相互关联的数据表之间的数据保持一致。参照完整性反映了现实世界中事物之间的相互联系。参照完整性通过定义外键约束来实现,如学生选课表中学生的学号必须是学生表中已有的学生的学号,即只有学生表中已有的学生才能选课,其中选课表中的学号字段是选课表的外键,它的取值要参照学生表中的学号。

(3)域完整性。域完整性保证数据表的列必须满足某种特定的数据类型或约束,如课程表中学分列必须是数值型。

(4)用户定义完整性。用户定义完整性是针对某一具体关系数据库的约束条件。它保证数据表字段或字段之间根据具体数据库要求必须满足某种限制条件,如学生选课表中成绩取值必须是大于等于0和小于等于100之间的数。1.2.2关系代数

关系代数是用关系运算来表达查询的,是一种抽象的查询语言。关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、比较运算符和逻辑运算符,如表1-1所示。

表1-1关系代数运算符

1.传统的集合运算

传统的集合运算是二目运算,包括并、差、交、笛卡尔积四种运算。

设关系R和S具有相同的目n(即都有n个属性),且相应属性取自同一个域,则可以定义并、差、交运算。

1)并

R和S的并是一个n目关系,由所有属于R或属于S的元组组成,记作:

2)差

R和S的差是一个n目关系,由所有属于R而不属于S的元组组成,记作:

3)交

R和S的交是一个n目关系,由所有既属于R又属于S的元组组成,记作:

4)笛卡尔积

设R和S分别为n目和m目关系,则R和S的笛卡尔积是一个n

+

m目的关系,其每个元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则R和S的笛卡尔积有k1

×

k2个元组。记作:

【例1-1】如图1-6所示,图1-6(a)、图1-6(b)表示两个关系R和S,它们都具有三个属性列A、B、C,图中列出了R和S集合运算的结果。图1-6(c)是R和S的并,图1-6(d)是R和S的差,图1-6(e)是R和S的交,图1-6(f)是R和S的笛卡尔积。

图1-6传统集合运算举例

2.专门的关系运算

专门的关系运算包括选择、投影、连接和除。连接运算中有两种最为重要也是最为常用的连接,一种是等值连接,另一种是自然连接。

1)选择

设有关系R,在关系R中找出满足给定条件F的元组组成一个新的关系的运算称为选择。记作:

其中F表示选择条件,它是一个逻辑表达式,其值为True或False。选择运算是一种行运算。现以学生成绩管理系统数据库中的部分关系为例说明选择运算及其他关系运算。学生成绩管理系统数据库的分析设计在后续小节中给出。为了说明方便,对部分关系进行了属性简化,选择了部分属性和部分元组,如图1-7所示。图1-7(a)所示是学生关系student部分,图1-7(b)所示是课程关系course部分,图1-7(c)是学生选课关系sc部分。

图1-7学生成绩管理系统数据库部分

【例1-2】查询“09011012”班学生信息。

查询结果如图1-8(a)所示。

【例1-3】查询“09011012”班男生信息。

查询结果如图1-8(b)所示。

图1-8选择运算举例

2)投影

设有关系R,在关系R中选择出若干属性列组成新的关系的运算称为投影。记作:

其中,A表示属性组,t[A]表示元组t相应于属性组A中属性的取值。投影运算是一种列运算。

【例1-4】查询所有课程的课程名称和开课学期。

查询结果如图1-9(a)所示。

【例1-5】查询所有学生所在班级的班级号。

查询结果如图1-9(b)所示。

图1-9投影运算举例

3)连接

设有两个关系R和S,从R和S的笛卡尔积中选取属性间满足一定条件的元组组成新的关系的运算称为连接。记作:

其中,A和B分别表示R和S上度数相等且可比的属性组,tr[A]、ts[B]分别表示元组tr中相应于属性组A的分量和元组ts中相应于属性组B的分量,θ是比较运算符。

连接运算是从R和S的笛卡尔积中选取R关系中在属性组A上的值与S关系在属性组B上的值满足比较关系θ的元组。

θ为“=”的连接运算称为等值连接。它是从R和S的笛卡尔积中选取A和B属性值相等的元组,记作:

自然连接是一种特殊的等值连接,它要求两个关系中进行比较的属性组必须是相同的属性组,并且在结果中把重复的属性列只取一次,即若R和S具有相同的属性组A,则自然连接记作:

一般的连接操作是从行的角度进行运算。但自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。

【例1-6】如图1-10所示,图1-10(a)和图1-10(b)表示两个关系R和S,图中列出了R和S连接运算的结果。图1-10(c)为的 结果,图1-10(d)所示为 的结果,图1-10(e)所示为 的结果。

图1-10连接运算举例

4)除

给定关系R(X,Y)和S(Y,Z),其中X、Y、Z为属性组。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上的取值x的象集Yx包含S在Y上投影的集合。记作:

其中,Yx为x在R中的象集,x

=

tr[X],表示R中属性组X上值为x的诸元组在Y上的取值得到的分量的集合,即

Yx

=

{t[Y]

|

t∈R,t[X]

=

x}

【例1-7】图1-11所示为两个关系R和S及R

÷

S运算的结果。图1-11(a)、图1-11(b)分别为R和S,图1-11(c)所示为R

÷

S的结果。

图1-11除运算举例关系R中,R在属性A上可以取值为{a1,a2,a3,a4}。其中:

a1的象集为:

a2的象集为:

a3的象集为:

a4的象集为:

S在(B,C)上的投影为:

可以看出,只有a1的象集包含了S在(B,C)上的投影,所以R

÷

S

=

{a1}。以上介绍了八种关系代数运算。其中并、差、笛卡尔积、选择和投影五种运算为基本的运算。其他三种运算,即交、连接和除均可以用这五种基本运算来表达。关系代数中,这八种运算经有限次复合后形成的式子称为关系代数表达式。

下面再以图1-7所示的学生成绩管理系统数据库部分为例,给出几个关系代数表达式的例子。

【例1-8】查询至少选修了课程号为“03201”和“03202”的两门课程的学生的学号。

首先建立一个临时关系M:

其次将sc关系在学号和课程号上的投影除以M,可以得到关系代数表达式为

查询结果如图1-12(a)所示。

【例1-9】查询选修了“03203”号课程的学生的学号。

关系代数表达式为

查询结果如图1-12(b)所示。

【例1-10】查询选修了“数据库原理及应用”课程的学生的学号和姓名。

首先查询数据库原理及应用课程的课程号:

再将结果与进行自然连接,并在学号上投影,查出选修该课程学生的学号:

最后与student关系在学号和姓名上的投影进行自然连接,得到关系代数表达式为

图1-12关系代数表达式举例

数据库设计是指对于一个给定的应用环境,构造最优的数据库模型,建立数据库及其应用系统,使之能有效地存储数据,满足各种用户的应用需求。数据库模型应当满足以下三个要求。

(1)符合用户的需求,既包含用户所需处理的所有数据,又支持用户提出的所有处理功能的实现。

(2)适合现有的某个数据库管理系统,如SQLServer、Oracle和DB2等。1.3数据库设计的步骤

(3)具有较高的质量,如结构合理、易于理解、使用方便、便于维护和效率较高等等。

数据库设计之前,首先必须选定参加设计的人员,包括系统分析人员、数据库设计人员和程序员、用户和数据库管理员。系统分析人员和数据库设计人员是数据库设计的核心人员,他们自始至终参与数据库设计,其水平决定了数据库系统的质量。用户和数据库管理员在数据库设计中主要参与需求分析和数据库的运行维护,他们也是决定数据库设计质量的重要因素。程序员则在系统实施阶段参与进来,负责编制程序和准备软硬件环境。按照规范设计的方法,考虑到数据库及其应用系统开发全过程,将数据库设计分为六个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护,如图1-13所示。

图1-13数据库设计步骤

1.需求分析

在需求分析阶段,数据库系统分析人员和设计人员调查用户的各种需求,收集和分析用户对系统的信息需求和处理需求,与用户进行深入沟通,确认用户需求,建立系统的需求模型。需求分析是数据库设计的基础,只有需求分析做得充分和准确,才能保证数据库设计的速度和质量。

2.概念结构设计

概念结构设计阶段是在需求分析的基础上,依照需求分析中确定的信息需求,通过综合、归纳与概括,建立一个独立于具体数据库管理系统的概念模型,通常要建立E-R模型。概念结构设计是数据库设计的关键。

3.逻辑结构设计

在逻辑结构设计阶段,由概念模型导出数据库管理系统支持的数据模型,即逻辑模型。通常就是将E-R模型转化为关系模型,转化完成后,再对关系模型进行评价和优化,如果达不到用户要求,还要反复修正或重新设计。

4.物理结构设计

物理结构设计就是根据数据库管理系统的特点和处理的需求,为逻辑模型选取一个最适合应用环境的物理结构,包括存储结构和存取方法。

5.数据库实施

在数据库实施阶段,设计人员运行数据库管理系统所提供的数据语言及其宿主语言,根据逻辑结构设计和物理结构设计的结果建立数据库,编制与调试应用程序,组织数据入库并进行试运行。

6.数据库运行与维护

数据库系统设计完成并试运行成功后,就可以正式投入运行了。伴随着数据库系统的正式运行,数据库的维护也同时开始,并从此进入了数据库运行与维护阶段。在数据库运行过程中,维护人员根据数据库运行过程中产生的问题及用户的新需求,不断地对其进行完善。

一个性能优良的数据库需要经过多次反复设计的过程,不可能一蹴而就。在进行数据库设计时,每完成一个阶段,都应进行设计分析与评价,如果设计不符合要求,则要进行修改,重复前面的步骤,直到满意为止。

需求分析是整个数据库设计过程的起点和基础,也是最困难、最耗费时间的阶段。1.4数据库需求分析1.4.1需求分析的任务和步骤

需求分析的任务就是对现实世界要处理的对象(如组织、部门、企业等)进行详细调查和分析,收集支持系统目标的信息要求、处理要求、安全性要求与完整性要求,明确各类用户的各种具体需求,在此基础上确定数据库系统的功能。调查的重点是数据和处理,通过调查、收集与分析,获得用户对数据库的如下要求:

(1)信息要求。信息要求指用户需要从数据库中获得信息的内容与性质。由信息要求可以导出数据要求,即在数据库中存储哪些数据。

(2)处理要求。处理要求指用户需要完成什么处理功能。

(3)安全性和完整性要求。安全性要求指数据库中的数据共享应在DBMS的统一管理之下,只有授权用户才能使用数据库中的数据和执行相应的操作,实施安全保护。完整性要求指操作数据必须保证正确性和相容性。需求调查的具体步骤如下:

(1)调查组织机构情况。包括了解该组织部门的组成情况、各部门的职责等,为分析信息流程做准备。

(2)调查各部门的业务活动情况。包括各部门输入和使用什么数据,如何加工和处理这些数据,输出什么信息,输出到什么部门,输出结果的格式等,这一步骤是调查的重点。

(3)明确对新系统的要求。包括信息要求、处理要求、安全性和完整性要求,这是调查的又一重点。

(4)确定新系统的边界。在前面分析调查结果的基础上,确定哪些功能由计算机完成或将来准备由计算机完成,哪些活动由人工完成。

(5)建立需求分析文档。描述用户单位的组织机构图、业务流程图、数据流程图和数据字典等。1.4.2需求调查的方法

在需求调查过程中,可以根据不同的问题和条件,使用不同的调查方法。常用的需求调查方法有以下几种:

(1)跟班作业。数据库分析和设计人员通过亲自参加业务工作,深入了解业务活动情况。这种方法可以比较准确地了解用户的需求,但比较耗费时间。

(2)召开调查会。通过与用户座谈的方式来了解业务活动情况及用户需求。座谈时参加者之间可以相互启发。

(3)请专人介绍。请业务熟练的专家或用户介绍业务知识和业务活动情况。

(4)询问。针对某些问题找专人询问。

(5)设计调查表让用户填写。设计合理的调查表,对需求调查非常有效,这种方法易于为用户所接受。

(6)查阅记录。查阅与原系统相关的数据记录。

做需求调查时,经常需要同时采用上述多种方法。但无论使用何种调查方法,都必须有用户的积极参与和配合。1.4.3编写需求规格说明书

需求规格说明书是在进行需求分析活动后建立的文档资料。需求规格说明书是数据库系统的一份非常重要的文件,是系统后续开发的标准和依据。需求规格说明书应包括以下内容:

(1)系统概况、目标、范围、背景、历史和现状。

(2)系统的原理和技术,对原系统的改善。

(3)系统总体设计。

(4)系统功能说明。

(5)系统方案及技术、经济和操作上的可行性。通常需求规格说明书还应包括分析过程中得到的数据流程图、数据字典、功能模块图及系统的硬件、软件支持环境的选择和规格要求等。1.4.4学生成绩管理系统数据库需求分析

学生成绩管理系统是为了方便学校教务管理中学生成绩管理工作而设计的基于B/S模式的数据库信息管理系统。该系统利用现代化的计算机技术结合教务管理工作中学生成绩管理的实际要求和工作过程设计完成。限于篇幅,这里主要给出系统的业务流程分析和系统功能需求。

1.业务流程分析

要了解一个业务系统,首先应了解它的业务流程,业务流程是需求分析和设计的基础。学生成绩管理系统的基本业务流程是:首先由系统管理员进行系统管理,包括学生管理、教师管理、课程管理、系部管理、教研室管理、班级管理和成绩管理等,实现将学生、教师、课程、系部、教研室、班级及学生选修课程信息正确录入系统,再由任课教师登记成绩,成绩录入后学生可以进行成绩查询。

图1-14学生成绩管理系统的基本业务流程图

2.系统功能需求

根据以上基本业务流程分析,学生成绩管理系统必须具有系统管理、成绩登记和成绩查询三大部分基本功能。系统管理功能主要是由系统管理员使用,完成学生、教师、课程、系部、教研室、班级、学生选课信息的增加、修改、删除和查询,同时完成用户信息的增加、修改、删除和查询;登记成绩由任课教师使用,完成学生成绩的登记;查询成绩由学生使用,完成学生课程成绩的查询,学生根据课程号查询出课程成绩。不同的用户使用不同的功能,所有用户由管理员统一管理。系统管理部分功能具体列举如下。

(1)学生管理,包括查询、增加、删除和修改学生信息。

(2)教师管理,包括查询、增加、删除和修改教师信息。

(3)课程管理,包括查询、增加、删除和修改课程信息。

(4)系部管理,包括查询、增加、删除和修改系部信息。

(5)教研室管理,包括查询、增加、删除和修改教研室信息。

(6)班级管理,包括查询、增加、删除和修改班级信息。

(7)选课管理,包括查询、增加、删除和修改学生选课信息。

(8)用户管理,包括查询、增加、删除和修改用户信息。

图1-15学生成绩管理系统基本功能模块结构图

1.5.1概念结构设计的任务

概念结构设计的任务就是将需求分析得到的需求分析结果抽象为概念模型。概念模型通常用实体联系模型(E-R模型)来表示。1.5数据库概念结构设计1.5.2实体与联系

1.实体与实体集

现实世界中客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如,一个学生、一门课程、一个系、一件商品、一次选课、一次订货等都是实体。同型实体的集合称为实体集。例如,全体学生就是一个实体集。

2.属性

每个实体都具有一定的特征,通过这些特征可以区分一个个实体。实体的特征称为属性。实体可以用若干个属性来描述。例如,一个学生可以有学号、姓名、性别、出生日期、所在班级号等属性。实体的每个属性都有特定的类型和取值范围,即值域。例如,性别的取值为“男”或“女”,所在班级号取值必须是已有的班级编号,如09031011、09031012、09031021等。在实体的属性中,能够唯一标识实体的属性或属性组称为实体的主码。例如,学生实体的主码可以是学号。

3.实体间的联系

现实世界中的事物之间是相互联系的,所以实体之间是有联系的。实体之间的联系通常是指不同实体集之间的联系。比如班级是一个实体集,学生是一个实体集,班级实体集和学生实体集之间存在联系,如一个班有多名学生,一个学生属于一个班级,通常将班级和学生实体集之间的联系简称为班级和学生之间的联系;课程也是一个实体集,学生和课程实体集之间存在一个学生选修多门课程,一门课程可由多个学生选修的联系,将这种联系简称为学生和课程之间的联系。两个实体之间的联系分为一对一联系、一对多联系和多对多联系三类。

1)一对一联系

如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一的联系,记作1∶1。比如,在学校里,一个班只有一个班长,而一位班长只在一个班任职,则班级和班长之间具有一对一的联系。

2)一对多联系

如果对于实体集A中的每一个实体,实体集B中有n(n≥0)个实体与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B具有一对多的联系,记作1∶n。比如,一个班级有多名学生,而每个学生只在一个班级学习,则班级和学生之间具有一对多的联系。

3)多对多联系

如果对于实体集A中的每一个实体,实体集B中有n(n≥0)个实体与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m(m≥0)个实体与之联系,则称实体集A与实体集B具有多对多的联系,记作m∶n。比如,一名学生可以同时选修多门课程,而一门课程同时有多名学生选修,则学生和课程之间具有多对多的联系。1.5.3实体联系模型

实体联系模型(Entity-RelationshipModel)简称E-R模型,是1976年由P.P.S.Chen提出的。E-R模型是用E-R图来表示的概念模型,它是表示概念模型的最著名的方法。

E-R图提供了表示实体、属性和联系的方法。

(1)实体:用矩形框表示,框内写明实体名称。

(2)属性:用椭圆形表示,椭圆内写明属性名,并将椭圆用无向线与实体连接起来。

表明实体及其属性的图形称为实体图。图1-16是系部(简称为系)实体图。

图1-16系实体图

(3)联系:用菱形框表示,框内写明联系的名称,并用无向线与有关实体连接起来。同时在无向线旁标上联系的类型(1∶1,1∶n,m∶n)。

如果联系具有属性,则也用椭圆形表示出来,并与联系用无向线相连。图1-17是学生和课程之间多对多联系的E-R图。其中联系被命名为选课,成绩是它的属性。

图1-17学生与课程之间的联系

【例1-11】有“供应”联系,表示供应商、项目和零件之间的联系。每个供应商可以为多个项目提供一定数量的零件,每个项目可以由多个供应商提供多种零件,每种零件可由多个供应商提供给多个项目。画出此联系的E-R图。

根据“供应”联系的具体含义可知,供应商、项目和零件三个实体之间存在多对多的联系,联系的名称命名为“供应”,省略各实体的属性,其E-R图如图1-18所示。

图1-18供应商、项目和零件之间的联系1.5.4E-R模型设计的步骤

用E-R图描述实体和实体之间联系得到的模型就是实体联系模型。E-R模型设计分两步完成。第一步设计局部E-R图,第二步将局部E-R图合并成全局E-R图。

1.设计局部E-R图

根据需求分析的结果,分析实体及实体之间的联系,画出局部E-R图。具体步骤如下:

(1)确定数据库中包含的实体。

(2)确定实体的属性及实体间的联系,画出局部E-R图。

2.合并生成全局E-R图

首先将两个局部E-R图合并,然后依次将一个新局部E-R图合并进去,最终合并成一个全局E-R图。

每次合并局部E-R图的步骤如下:

(1)合并。先解决局部E-R图之间的冲突,将局部E-R图合并生成初步E-R图。

(2)优化。对初步E-R图进行修改,消除不必要的冗余,生成基本E-R图。1.5.5学生成绩管理系统数据库概念结构设计

在学生成绩管理系统需求分析的基础上,进行学生成绩管理系统数据库概念结构设计。

1.确定实体及其属性

学生成绩管理系统数据库中包含的实体及其属性如下:

(1)学生(Student):属性包括学号、姓名、性别、出生日期、入学日期、E-mail、电话、住址、评语。

(2)课程(Course):属性包括课程号、课程名、课程性质、先修课、开课学期、学分、学时。

(3)教师(Teacher):属性包括教师号、教师姓名、学历、电子邮箱。

(4)班级(Class):属性包括班级号、班级名、班长。

(5)教研室(TROffice):属性包括教研室号、教研室名、教研室主任。

(6)系(Department):属性包括系号、系名、负责人、电话。

2.画出局部E-R图

1)学生与课程关系的局部E-R图

一门课程同时有多名学生选修,而一名学生可以同时选修多门课程,则学生和课程之间具有多对多联系,联系具有成绩属性,如图1-19所示。

图1-19学生与课程关系的局部E-R图

2)教师与课程关系的局部E-R图

一门课程同时由多名教师讲授,而一位教师可以讲授多门课程,则教师和课程之间具有多对多联系,联系命名为“授课”,如图1-20所示。

图1-20教师与课程关系的局部E-R图

3)班级与学生关系的局部E-R图

一个班级有多名学生,一个学生只属于一个班级,班级和学生之间具有一对多联系,为便于图形表示,联系命名为“班-学生”,如图1-21所示。

图1-21班级与学生关系的局部E-R图

4)系与班级关系的局部E-R图

一个系有多个班级,而一个班级必定属于一个确定的系,则系和班级之间具有一对多联系,为便于图形表示,联系命名为“系-班”,如图1-22所示。

图1-22系与班级关系的局部E-R图

5)教研室与教师关系的局部E-R图

一个教研室有多位教师,而一位教师只能在一个教研室工作,则教研室和教师之间具有一对多联系,为便于图形表示,联系命名为“教研室-教师”,如图1-23所示。

图1-23教研室与教师关系的局部E-R图

6)系与教研室关系的局部E-R图

一个系设有多个教研室,而一个教研室必定属于一个确定的系,则系和教研室之间具有一对多联系,为便于图形表示,联系命名为“系-教研室”,如图1-24所示。

图1-24系与教研室关系的局部E-R图

3.合并局部E-R图生成全局E-R图

合并局部E-R图,经过优化可以得到系统的全局E-R图,如图1-25所示。为了使图形表示清晰,略去了实体的属性,只列出了联系的属性。

图1-25学生成绩管理系统E-R图

1.6.1逻辑结构设计的任务

逻辑结构设计的任务就是将概念结构设计的结构即概念模型转化为逻辑模型。由于概念模型与数据模型无关,所以需要将概念模型转化成某种数据库管理系统支持的数据模型。将概念模型转化为关系模型的具体步骤如下:1.6数据库逻辑结构设计

(1)将概念模型转化为关系模型。

(2)对关系模型进行规范化处理。

关系模型是用关系表示实体及实体间的联系。关系的描述称为关系模式,通常简记为

R(U)或R(A1,A2,…,An)

其中,R为关系名,A1,A2,…,An为域名或属性名,U为全体属性的集合。

能够唯一标识实体的属性或属性组称为候选码,从候选码中选择一个,作为关系模式的主码,主码的属性称为主属性。通常将关系模式的主码用下划线标识出来。

如果一个关系中的属性不是此关系的主码,而是另一个关系的主码,则该属性就是此关系的外码。通常将关系模式的外码用符号

*

标识出来。1.6.2E-R模型向关系模型的转化

E-R模型转化为关系模型就是将实体和实体间的联系转化为关系模式,确定这些关系模式的属性和主码。将E-R模型转化为关系模型应遵循以下五条规则。

(1)一个实体转换为一个关系模式。实体的属性转换为关系的属性,实体的主码就是关系的主码。

(2)一对一、一对多联系不转换为关系模式。两个实体对应的关系模式依靠外码建立联系。一对一联系外码可包含在任何一端关系模式内,一对多联系外码必须包含在多端关系模式内。

【例1-12】一位厂长管理一个工厂,一个工厂只有一位厂长。厂长与工厂之间存在一对一的联系。图1-26是厂长与工厂联系的简略E-R图。将此E-R图转化为关系模式。图1-26厂长与工厂联系的E-R图依据规则(1)、(2),创建两个关系模式:工厂和厂长。两个实体的属性转换为两个关系的属性,联系不转换为关系模式。两个关系依靠外码建立联系,外码可包含在任何一个关系模式内。

设计关系模式如下:

厂长(厂长姓名,年龄,性别,职称,学历,电话,传真,E-mail)

工厂(工厂编号,名称,地址,固定资产总值,职工人数,厂长姓名*)或

厂长(厂长姓名,年龄,性别,职称,学历,电话,传真,E-mail,工厂编号*)

工厂(工厂编号,名称,地址,固定资产总值,职工人数)

【例1-13】一个系设有多个班级,一个班级属于一个确定的系。系与班级之间存在一对多的联系,见图1-22,将E-R图转化为关系模式。

依据规则(1)、(2),创建两个关系模式:系和班级。两个实体的属性转换为两个关系的属性,联系不用转换为关系模式。两个关系依靠外码联系,外码包含在班级关系模式内。

设计关系模式如下:

系(系号,系名,负责人,电话)

班级(班级号,班级名,班长,系号*)

(3)两个实体多对多的联系转换为一个关系模式。该关系模式主码为各实体主码的组合。

【例1-14】将图1-19所示的“选课”联系的E-R图转化为关系模式。

依据规则(1),创建两个关系模式:学生和课程。它们的属性分别为实体的属性,依据规则(3),联系转换为关系模式,关系名为“选课”,联系的属性是“成绩”,主码是(学号,课程号)。设计关系模式如下:

学生(学号,姓名,性别,出生日期,入学日期,E-mail,电话,住址,评语)

课程(课程号,课程名,课程性质,先修课,开课学期,学分,学时)

选课(学号,课程号,成绩)

(4)三个或三个以上实体的多对多联系转换为一个关系模式。该关系模式的主码为各个实体主码的组合。

【例1-15】将图1-18所示的“供应”联系的E-R图转化为关系模式。

依据规则(1),创建三个关系模式:供应商、项目和零件。它们的属性分别为实体的属性,依据规则(4),联系转换为关系模式“供应”,数量是联系的属性,主码是(供应商代码,项目代码,零件代码)。

设计关系模式如下:

供应商(供应商代码,供应商名,状态,供应商所在城市)

项目(项目代码,项目名,项目所在城市)

零件(零件代码,零件名,颜色,重量)

供应(供应商代码,项目代码,零件代码,数量)

(5)具有相同主码的关系模式可以合并。1.6.3关系的规范化

在关系数据库中,关系必须满足一定的规范化要求,才能保证数据的正确性和可靠性。这些规范化要求被称为规范化形式,即范式。范式按级别分为五种:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)和第五范式(5NF)。不同范式级别反映了关系模式的属性间相互依赖的不同程度。五种范式之间的关系如图1-27所示。

在实际的数据库设计中最常用到的是前三种范式。

定义1设R(U)是属性集U上的关系模式,X,Y是U上的子集,且Y不包含于X。若对于R(U)的任意关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数决定Y或Y函数依赖于X。记作:

X→Y

例如,有学生关系模式:

学生(学号,姓名,性别,出生日期,入学日期,E-mail,电话,住址,评语)

其中属性间有函数依赖:学号→姓名、学号→性别等。

又如选课关系模式:

选课(学号,课程号,成绩)

其中属性间有函数依赖:(学号,课程号)→成绩。

由于关系模式的属性之间存在各种函数依赖,有的关系模式的函数依赖存在某些不好的性质,因此造成数据冗余,导致数据操作异常。改造这些不好的关系模式的方法就是进行规范化处理。

1.第一范式

如果关系模式中的每个属性都是不可再分的数据项,则关系模式属于1NF。

定义2在R(U)中,X、Y是U上的子集。如果X→Y,并且对于X的任何一个真子集X′,X′→Y都不成立,则称X完全函数决定Y或者Y完全函数依赖于X。记作:

X→Y(F)或X→Y(完全)

如果X→Y,但Y不完全函数依赖于X,则称Y部分函数依赖于X。记作:

X→Y(P)或X→Y(部分)

例如,选课关系模式:选课(学号,课程号,成绩)

其中(学号,课程号)→成绩,而学号→成绩或课程号→成绩均不成立,则(学号,课程号)→成绩(F)成立。

2.第二范式

如果关系模式满足1NF,且每个非主属性都完全函数依赖于主码,则关系模式属于2NF。

例如,选课关系模式:选课(学号,课程号,成绩),满足1NF,且(学号,课程号)→成绩(F),则该关系模式属于2NF。

【例1-16】设有关系模式S-D-C(SNO,DEPT,DLEADER,CNO,GRADE),反映学校里学生所在的系及系负责人和学生选修课程情况。各属性含义分别是:SNO表示学号,DEPT表示学生所在系,DLEADER表示系负责人,CNO表示课程号,GRADE表示成绩。分析此关系模式是否属于2NF,如果不是2NF,如何规范化成2NF?

S-D-C满足1NF,主码是(SNO,CNO)。函数依赖有:SNO→DEPT,SNO→DLEADER,DEPT→DLEADER,(SNO,CNO)→GRADE(F),(SNO,CNO)→DEPT(P),(SNO,CNO)→DLEADER(P),其中包含两个部分函数依赖,即DEPT和DLEADER部分函数依赖于主码(SNO,CNO),所以S-D-C不属于2NF。将S-D-C规范化成2NF,需要通过关系模式的分解消除部分函数依赖。具体分解如下:

S-D(SNO,DEPT,DLEADER)

S-C(SNO,CNO,GRADE)

分析可知S-D和S-C均是2NF。

定义3在R(U)中,X、Y、Z是U上的子集。如果X→Y,Y→Z,并且Y→X不成立,X不包含Y,则称X传递函数决定Z或Z传递函数依赖于X。记作:

X→Z(传递)

3.第三范式

如果关系模式满足2NF,且不存在非主属性对主码的传递函数依赖,则关系模式属于3NF。

【例1-17】分析例1-16中S-D-C分解后得到的两个关系模式S-D(SNO,DEPT,DLEADER)和S-C(SNO,CNO,GRADE)是否属于3NF,如果不属于3NF,如何规范化成3NF?

分析可知S-C是3NF,但S-D不满足3NF,因为S-D属性间包含传递函数依赖SNO→DLEADER(传递)。要想规范化成3NF,必须进一步进行模式分解,消除非主属性对主码的传递函数依赖,将S-D分解成:

S(SNO,DEPT)

D(DEPT,DLEADER)

分析可知S(SNO,DEPT)和D(DEPT,DLEADER)均是3NF。

由例1-16和例1-17可知,对不规范关系模式进行规范化处理的方法就是进行关系模式的分解。1.6.4学生成绩管理系统数据库逻辑结构设计

1.将E-R图转化成为关系模型

1)学生与课程关系的局部E-R图

由例1-14可知,学生与课程关系的局部E-R图可转化成如下三个关系模式:

学生(学号,姓名,性别,出生日期,入学日期,E-mail,电话,住址,评语)

课程(课程号,课程名,课程性质,先修课,开课学期,学分,学时)

选课(学号,课程号,成绩)

2)教师与课程关系的局部E-R图

由图1-20可知,根据将E-R模型转化为关系模型的规则(1),创建教师和课程两个关系模式,其次教师和课程之间是多对多的联系,根据将E-R模型转化为关系模型的规则(3),需要创建授课关系模式,因此教师与课程关系的局部E-R图可转化成如下三个关系模式:

教师(教师号,教师姓名,学历,E-mail)

课程(课程号,课程名,课程性质,先修课,开课学期,学分,学时)

授课(教师号,课程号)

3)班级与学生关系的局部E-R图

由图1-21可知,根据将E-R模型转化为关系模型的规则(1),需要创建班级和学生两个关系模式,其次班级和学生之间是一对多的联系,根据将E-R模型转化为关系模型的规则(2),联系不需要创建新的关系模式,因此班级与学生关系的局部E-R图可转化成如下两个关系模式:

班级(班级号,班级名,班长)

学生(学号,姓名,性别,出生日期,入学日期,E-mail,电话,

住址,

评语,

班级号*)

4)系与班级关系的局部E-R图

和班级与学生局部E-R图转化方法类似,由图1-22可知,系与班级关系的局部E-R图可转化成如下两个关系模式:

系(系号,系名,负责人,电话)

班级(班级号,班级名,班长,系号*)

5)教研室与教师关系的局部E-R图

同理,由图1-23可知,教研室与教师关系的局部E-R图可转化成如下两个关系模式:

教研室(教研室号,教研室名,教研室主任)

教师(教师号,教师姓名,学历,E-mail,教研室号*)

6)系与教研室关系的局部E-R图

同理,由图1-24可知,系与教研室关系的局部E-R图可转化成如下两个关系模式:

系(系号,系名,负责人,电话)

教研室(教研室号,教研室名,教研室主任,系号*)

综合以上,可以得到系统E-R图转化成关系模型的结果如下:

学生(学号,姓名,性别,出生日期,入学日期,E-mail,

电话,

住址,

评语,

班级号*)课程(课程号,课程名,课程性质,先修课,开课学期,学分,学时)

选课(学号,课程号,成绩)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论