当前位置:文档之家› 项目1 掌握数据库基础知识

项目1 掌握数据库基础知识

项目1 掌握数据库基础知识
项目1 掌握数据库基础知识

项目一掌握数据库基础知识

项目导入

数据库技术是信息处理的基础,它不仅反映数据本身所代表的基本信息,还反映数据之间的联系,是相关数据的集合。数据库技术是计算机领域发展最快的学科之一,目前,数据库技术已从第一代的网状、层次数据库系统,第二代的关系数据库系统,发展到以面向对象模型为主要特征的第三代数据库系统。其中建立在关系模型基础上的关系数据库是当前最流行的、应用最广泛的数据库,当前所开发的基于数据库的应用系统基本上都是关系数据库。因此,在本项目中,首先对数据库的基础知识进行初步的讨论,然后对数据库开发所使用的平台SQL Server 2005再作概况的介绍。

项目分析

数据库技术是为了解决计算机信息处理过程中大量数据有效地组织和存储的问题,在数据库系统中减少数据存储冗余、实现数据共享、保障数据安全以及高效地检索数据和处理数据而设计的,所以,数据库是相关数据的集合。

本教材中以学生管理数据库系统为教学案例,以关系数据库技术作为基础,不但需要对数据库的基础理论有一定的了解,同时还需要掌握一种数据库开发平台,即数据库管理系统(DBMS)的使用方法,才能在开发平台上有效地开发出一个实用的学生管理数据库系统。因此,本项目将包括数据库的基础知识介绍和数据库开发平台SQL Server 2005的使用能力训练两部分内容。

能力目标

1.了解学生管理数据库的基本需求;

2.了解数据管理技术的3个阶段;

3.掌握数据库、数据管理系统和数据库系统的基本概念;

4.掌握SQL Server数据库的基本组成和有关知识。

知识目标:

1.能根据实际环境进行数据库应用系统的需求分析和功能设计;

2.具备使用数据库理论分析相关信息抽象数据的能力;

3.了解并掌握数据库开发平台SQL Server 2005的概况和基本设置方法。

任务1 学生管理数据库基本需求

任务要求

根据学生管理的工作流程,对学生管理数据库系统进行整体分析与规划。

1.分析学生管理数据库系统的整体需求,掌握需求分析的基本方法;

2.规划学生管理数据库系统应具备的功能模块。

知识储备

一个数据库应用系统的开发设计通常要经历多个环节,简单地说可以分为对应用系统前台应用界面(应用层)和后台数据库(数据层)设计两个部分的设计,每一部分的设计都是一个庞大、复杂的工程,因此,通常都是结合软件工程的原理和方法进行数据库软件的设计。从一个应用软件开发的角度讲,一个数据库应用系统的一般设计环节如图1-1所示。

就数据库系统的规划设计来讲,一般设计过程包括:需求分析、数据库概念结构设计、数据库逻辑结构设计、数据库物理结构设计、数据库实施及数据库的运行维护6个环节。设计一个数据库应用系统,首先要对系统的应用环境进行分析,掌握用户需求要求,这是整个开发的基础,需求分析的准确与否,关系到数据库应用系统的开发质量,本任务将主要讨论学生管理数据库系统的需求分析这个环节。

1. 需求分析的任务

需求分析是指在开发设计开始阶段,收集用户的功能要求,了解系统的应用环境,对需要使用的数据进行收集整理,建立起一个完整数据集的过程。比如系统的使用用户的种类、相关应用的历史数据、有关表单资料的查阅以及实际运作流程等,从而得出所开发系统的功能运行过程。

用户需求包括数据和处理两部分需求:数据需求是指数据库中存储哪些数据结构;处理需求是指用户要完成什么处理功能,以及对这些处理的响应时间、处理方法等有什么要求。 需求分析阶段的任务主要包括以下几个方面:

图1-1 数据库应用系统开发流程 项目准备 需求分析

数据库 基本理论

数据库规划 数据库实施 系统维护 应用开发 概念结构设计 逻辑结构设计 物理设计 数据库实施 与维护 创建数据库 创建数据表 创建索引 与视图 https://www.doczj.com/doc/dc9033919.html, 应用开发案例

系统安全 数据维护

(1) 分析用户活动,产生业务流程图

了解用户当前的业务活动和职能,理清其处理流程。把用户业务分成若干个子处理过程,使每个处理功能明确、界面清楚,画出业务流程图。

(2) 确定系统范围,产生系统范围图

在和用户经过充分讨论的基础上,确定计算机所能进行数据处理的范围,确定哪些工作由人工完成,哪些工作由计算机系统完成,即确定人机界面。

(3) 分析用户活动所涉及的数据,产生数据流图

深入分析用户的业务处理,以数据流图形式表示出数据库的方向和对数据所进行的加工。数据流图有四个基本成分:数据流、加工或处理、文件、外部实体。

(4) 分析系统数据,产生数据字典

数据字典提供对数据库时间描述的集中,它的功能是存储和检索各种数据描述,数据字典是数据收集和数据分析的主要成果,在数据库设计中占有很重要地位。

2. 需求分析的方法

调查了解了用户的需求以后,还需要进一步分析和表达用户的需求,用于需求分析的方法有很多种,主要的方法有自顶向下和自底向上两种,其中自顶向下的结构化分析方法(Structured Analysis ,SA )是一种简单实用的方法。

(1) SA 方法

SA 方法是从最上层的系统组织入手,采用自顶向下、逐层分解的方法分析系统。SA 方法把每个系统都抽象成图1-2所示的数据流图形式。

在SA 方法中,处理过程的处理逻辑常常借助判定表和判定树来描述,系统中的数据则借助数据字典(DD )来描述。

(2) 数据流图

数据流图(Data Flow Diagram ,DFD )表达了数据与处理的关系。数据流图中的基本元素如下:

表示处理,输入数据在此进行变换产生输出数据。在其中注明处理的名称。

② 图1-2 系统最高层的数据流图

描述一个输入源点或输出汇点。在其中注明源点或汇点的名称。

③箭头:

命名的箭头描述一个数据流。内容包括被加工的数据及其流向,流线上要注明数据名称,箭头代表数据流动方向。

④右开口矩形框:

向右开口的矩形框表示文件和数据存储,要在其内标明相应的具体名称。

(3)数据字典

数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是各类数据结构和属性的清单。它与数据流图互为解释,数据字典贯穿于数据库需求分析直到数据库运行的全过程,在不同的阶段,其内容形式和用途各有区别,在需求分析阶段,它通常包含以下五个部分的内容。

①数据项

数据项是不可再分的数据单位,对数据项的描述,通常包括数据项名、含义、别名、类型、长度、取值范围以及与其他数据项的逻辑关系。

②数据结构

数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或有若干个数据项和数据结构混合组成。它包括数据结构名、含义及组成该数据结构的数据项名或数据结构名。

③数据流

数据流可以是数据项,也可以是数据结构,表示某一加工处理过程的输入或输出数据。对数据流的描述应包括数据流名、说明、流出的加工名,流入的加工名以及组成该数据流的数据结构或数据项。

④数据存储

数据存储是处理过程中要存储的数据,它可以是手工凭证、手工文档或计算机文档。对数据存储的描述应包括数据存储名、说明、输入数据流、输出数据流、数据量、存取频率和存取方式。

⑤处理过程

对处理过程的描述包括处理过程名、说明、输入数据流、输出数据流,并简要说明处理工作、频度要求、数据量及响应时间等。

最终形成的数据流图和数据字典是“系统需求分析说明书”的主要内容,是下一步进行概念结构设计的基础。

在本任务中,我们从项目准备的角度,对学生管理数据库应用系统先做一个整体的概括分析,对学生管理数据库中所需要准备的数据及其相关理论进行一个框架层面上的了解,为后续进行数据库规划和应用开发作好充足的知识和技能上的准备。

任务实施

学生管理数据库系统,具有不同的用户群体,不同的用户群体又对数据有着不同的需求要求,正确地分析相应用户的要求并恰当地将其表达出来,是学生管理数据库系统设计的起始工作。在本任务实施前,首先要对用户环境进行准确的分析。

1.用户类型分析

学生管理数据库通常的用户为学生、教师和教学管理人员。不同的用户有不同的信息查询和信息管理要求。学生管理数据库系统,要方便应用系统的管理员对数据库中的基本信息数据进行管理和维护,教师用户能够对基本信息进行查询并对部分信息进行更新管理,学生对与自己相关的数据可以进行查询,对个人的基本信息可以进行维护。

2.功能需求分析

学生管理数据库系统其主要功能是实现了基础资料、学生管理、课程管理和成绩管理四大模块的管理。其中,基础资料中又包括院系、班级、宿舍、教师基本资料的管理,包括了对其的增加、删除、修改和查询;学生管理中,包括学生档案和学生学籍的管理,包括了对其中学生各个属性的增加、删除、修改和查询;课程管理中,包括了对新的课程进行设置,以及对班级选课的管理;成绩管理中,包括了对学生成绩的录入和对学生成绩进行分析。任务实践

1.设计完成学生管理数据库系统的数据流图

根据任务实施环节对学生管理数据库系统应用环境的分析,绘制学生管理数据库系统的数据流程图,如图1-3所示。

图1-3 学生管理数据库系统数据流图

2.设计相关功能模块。

根据功能需求分析的情况,确定学生管理数据库系统的功能模块如下:

(1)基本信息管理:包括院系信息管理和专业信息管理等功能;

(2)班级信息管理:包括班级信息管理和班级信息浏览等功能;

(3)教师信息管理:包括教师信息录入和管理等功能;

(4)学生基本信息管理:包括学生信息的录入、管理、查询以及导入、导出等功能;

(5)系统维护:主要用于实现数据的备份、还原和清理功能;

(6)用户管理:主要用于实现用户管理、更改密码等功能。

任务2 了解数据库基础知识

任务要求

通过本任务的学习应掌握以下内容:数据、数据库、数据库管理系统和数据库系统的基本知识。

知识储备

1.数据库管理技术的产生

数据库技术产生于20世纪60年代末70年代初,其主要目的是有效地管理和存取大量的数据资源。近年来,数据库技术和计算机网络技术的发展相互渗透,相互促进,已成为当今计算机领域发展迅速,应用广泛的两大领域,数据库技术不仅应用于事务处理,并且进一步应用到情报检索,人工智能,专家系统,计算机辅助设计等数据管理领域。谈数据管理技术,先要讲到数据处理。所谓数据处理,是指对各种数据进行收集、存储、加工和传播的一系列活动的总和。纵观数据处理的历史,可以认为,数据库技术萌芽于五十年代后期,形成于六十年代中期,成熟于七十年代,广泛应用于八十年代。

2.数据库管理技术的发展

数据库管理技术主要研究如何存储、使用和管理数据,是计算机数据管理技术发展的新阶段,是计算机技术中发展最快、应用最广的技术之一。数据管理的水平是和计算机硬件、软件的发展相适应的,随着计算机技术的发展,数据管理技术经历了三个阶段的发展:人工管理阶段;文件系统阶段;数据系统阶段。

(1)人工管理阶段(20世纪50年代)

在这一阶段,计算机主要用于科学计算,硬件设施方面,外部存储只有磁带、卡片和纸带等,没有磁盘等直接存取设备。软件方面,只有汇编语言,没有操作系统和数据管理软件,数据量小,数据无结构,由用户直接管理,数据依赖于特定的应用程序,缺乏独立性。此阶段应用程序与数据之间的关系是一一对应的关系,如图1-4所示。

人工管理阶段的数据具有以下几个特点:

① 数据不保存

当时的计算机主要用于科学计算,一般不需要

长期保存数据。每处理一批数据,都要特地为这批

数据编制相应的应用程序,计算任务完成后,用户

作业退出计算机系统,数据空间随着程序空间一起

被释放。

② 没有专门的软件对数据进行管理

每个应用程序都要包括存储结构、存取方法、输入/输出方式等内容的设计。一旦数据发生改变,就必须修改应用程序,因而数据与程序不具有独立性。 ③ 数据不共享 一组数据对应一个应用程序。如果多个应用程序涉及某些相同的数据,则必须各自进行定义,因此程序间有大量的数据冗余。 ④ 数据不具有独立性 数据的独立性包括了数据的逻辑独立性和数据的物理独立性。当数据的逻辑结构或物理结构发生变化时,必须对应用程序做相应的修改。 (2) 文件系统阶段(20世纪50年代后期~60年代中期) 在这一阶段,计算机已大量用于数据的管理。硬件方面,有了磁盘、磁鼓等直接存取存储设备。软件方面,操作系统中已经有了专门的管理软件,一般称为文件系统。数据处理方式有

批处理,也有联机实时处理。此阶段

应用程序与数据之间的关系如图1-5

所示。

文件系统阶段的数据具有以下几个特点:

① 数据长期保存

数据以“文件”形式可长期保存在外部存储器的磁盘上。由于计算机大量用于数据处理,数据需要长期保留在外存上反复进行查询、修改、插入及删除等操作。

② 文件系统管理数据

所有的文件由文件管理系统统一进行管理和维护,数据文件可以脱离程序而独立存在。文件系统把数据组织成相互独立的数据文件,按文件名访问,按记录进行存取,可以对文件进行修改、插入及删除操作。文件系统实现了记录内的结构性,但文件之间整体无结构,数图1-5 文件系统阶段应用程序与数据之间的关系 应用程序1 应用程序2 应用程序n 文件1 文件2 文件n 存取 方法

文件系统

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

应用程序 1 应用程序 2 应用程序 n 数据 组 n 数据组 2 数据组 1 … …

据之间的联系要通过程序去构造。程序和数据之间由文件系统提供存取方法进行转换,使应用程序与数据之间有了一定的独立性。

③ 数据共享性差,冗余度大

由于文件之间缺乏联系,造成每个应用程序都有对应的文件,而不能共享相同的数据,因此,数据的冗余度大,同样的数据有可能在多个文件中重复存储。这往往在进行更新操作时就可能使同样的数据在不同的文件中不一样,造成数据的不一致性。

④ 数据独立性差

文件系统中的文件是为某一特定应用服务的,文件的逻辑结构对该应用程序来说是优化的,因此要想对现有的数据增加一些新的应用会很困难,系统不容易扩充。一旦数据的逻辑结构改变,必须修改应用程序,修改文件结构的定义。因此数据与程序之间仍缺乏独立性。可见,文件系统仍然是一个不具有弹性的整体无结构的数据集合,即文件之间是孤立的,不能反映现实世界事物之间的内在联系。

(3) 数据库系统阶段(20世纪60年代后期至今)

在此阶段,数据管理规模一再扩大,数据量急剧增加。硬件已有大容量磁盘,硬件价格下降,软件价格上升。介于这种情况,为了提高系统性能 ,为了解决共享数据的需求,从文件系统中分离出了专门的软件系统——数据库管理系统,用来统一管理数据。数据库阶段应用程序与数据之间的关系如图1-6所示。

数据库系统阶段的数据管理具有以下几个特点:

① 数据结构化

数据库是存储在磁盘等外部存储设备上的数据集合,是按一定的数据结构组织起来的。与文件系统相比,文件系统中的文件之间不存在联系,因而从总体上看数据没有结构的;而数据库中文件是相互联系的,并在总体上有一定的结构形式。这就是文件系统与数据库系统的最大区别。数据库正是通过文件之间的联系反映现实世界事物间的自然联系。

② 数据的共享性高,冗余度低,易扩充

数据库中的数据是面向整个系统,是有结构的数据,不但可以被多个应用共享,而且容易增加新的应用,易于修改、易于扩充。这样就大大减少了数据冗余,提高了共享性,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。 应用程序1

应用程序1 应用程序n …

数据库管理系统 (DBMS ) 数据1 数据n 数据2 数据库DB 图1-6 数据库阶段应用程序与数据之间的关系

③数据独立性高

数据独立是数据库技术努力追求的目标,数据独立性包括数据的物理独立性和数据的逻辑独立性两方面。

物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。数据在磁盘上存储由DBMS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。

逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,当数据的逻辑结构改时,用户程序也可以不变。在数据方式下,用户不是自建文件,而是取自数据库中的某个子集,是数据库管理系统从数据库映射出来的,所以叫做逻辑文件,但实际上的物理存储只出现一次。

④数据由数据库管理系统统一管理和控制。

数据库系统提供了4个方面的数据控制功能,分别是并发控制、恢复、完整性和安全性。数据库中各个应用程序所使用的数据由数据库系统统一规定,按照一定的数据模型组织和建立,由系统统一管理和集中控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。

任务实施

数据库理论及其应用技术是在人们运用计算机进行数据处理过程中产生的一门有关数据采集、整理、存储、分类、排序、检索、维护、加工、统计和传输等一系列操作过程的知识和技术,其中有很多概念性的知识需要理解。本任务作为数据库概念设计的前述知识,通过任务实践来介绍数据库系统的基本概念。

任务实践

1.数据(Data)

(1)数据的定义

数据是描述事物的符号记录。数据的概念包括两个方面:一是存储在某一种媒体上的数据形式;二是描述事物特性的数据内容。

(2)数据的表现形式

数据是数据库中存储的基本对象。数据在大多数人的第一印象中就是数字,其实数字只是其中一种最简单的表现形式,是数据的一种传统和狭义的理解。按广义的理解来说,数据的种类有很多,如文字、图形、图像、声音、视频、语言以及学校学生的档案等,都是数据,都可以转化为计算机可以识别的标识,并以数字化后的二进制形式存入计算机。

在日常生活中,人们需要描述各种事物,可直接用自然语言描述。在计算机中,为了存储和处理这些事物,就要抽出对这些事物感兴趣的特征组成一个记录来描述。例如:在学生管理数据库中,学生的基本信息情况是学生的姓名、性别、出生年月,这都说明了学生的基

本特征,就可以这样来描述一个学生:(张三,男,1994/04)。

(3)数据与信息的关系

信息与数据既有联系,又有区别。信息是对数据加工处理之后所得到的并可以对决策产生影响的数据。数据是信息的表现形式;信息是数据有意义的表示。可以用图1-7表示出数据与信息之间的关系。

图1-7 数据与信息关系图

(4)数据与其语义

学生记录就是一个数据。对于此记录来说,要表示特定的含义,必须对它给予解释说明,数据解释的含义称为数据的语义,数据与其语义是不可分的。可以这样认为:数据是信息的符号表示或载体,信息则是数据的内涵,是对数据的语义解释。例如:学生记录(张三,男,1994/04)可以解释为张三是名男同学,出生年月为1994年4月,这样它才具有了表述信息的功能。

2.数据库(DB,DataBase)

数据库是指长期存放在计算机内的、有组织的、可共享的数据集合。从字面意思来说就是存放数据的仓库,该仓库建立在计算机存储设备上,且数据是按一定的格式存放的,可供多用户共享,具有尽可能小的冗余度和较高的数据独立性和易扩展性。它不仅描述事物的数据本身,还包括相关事物之间的联系。

数据库具有两个比较突出的特点。

(1)集成性

把在特定的环境中与某应用程序相关的数据及其联系集中在一块并按照一定的结构形式进行存储,即集成性。例如,可以将图书馆的馆藏图书和图书借阅情况保存在数据库中,以便于对图书信息的管理。

(2)共享性

数据库中的数据能被多个应用程序的用户所使用,即共享性。例如,学生管理数据库即可以给教务处提供学生信息,又可以给学工处等其他部门提供学生信息。数据库的用户分为3种:

①数据库管理员:

他们使用数据库管理系统提供的工具软件对数据库进行各种维护和管理,以便使其更好地为其他用户服务。

②应用程序员:

他们使用数据库语言和程序设计语言编写使用和操纵数据库中数据的程序。

③非程序员用户:

他们通过联机终端设备,使用数据库查询语言访问数据库。

3.数据库管理系统(DBMS,DataBase Managenent System)

数据库管理系统是数据库系统的核心组成部分,是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。用户在数据库系统中的一些操作,如数据定义、数据操纵、数据库的运行管理及数据控制等都是数据库管理系统来实现的。如图1-8所示。

图1-8 数据库管理系统

数据库管理系统主要包括以下几个功能:

①数据定义

DBMS提供数据定义语言(DDL,Data Definition Language),定义数据库的三级模式结构,两级映像以及定义数据的完整性和安全控制等约束。用户可以方便地对数据库中的数据对象(包括表、视图、索引、存储过程等)进行定义。

②数据操纵

DBMS提供数据操纵语言(DML,Data Manipulation Language),用户可以使用DML操纵数据实现对数据库的基本操作,如查询、插入、删除及修改等。

③数据库的运行管理

数据库的运行管理功能是DBMS的运行控制、管理功能,所有数据库的操作都要在数据库管理系统的统一管理和控制下进行,以保证事务的正确运行和数据的安全性、完整性。这也是DBMS运行时的核心部分,它包括如下内容:

?数据的并发控制

?数据的安全性保护

?数据的完整性控制

?数据库恢复

④数据字典

数据字典是一个自动的或手动的存储数据元的定义和属性的文档。对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。数据字典本身也可以看成是一个数据库,只不过它是系统数据库,是一组表和视图结构,存放在SYSTEM表空间中。

4.数据库系统(DBS,DataBase System)

数据库系统是由数据库及其管理软件组成的系统,是指在计算机系统中引入数据库后的系统,其构成主要有数据库及相关硬件、数据库管理系统及其开发工具、应用系统、数据库管理员和用户这几部分,其中,在数据库的建立、使用和维护的过程要有专门的人员来完成,这些人就被称为数据库管理员(DBA,DataBase Administrator)。

数据库系统结构如图1-9所示。

图1-9 数据库系统结构

数据库系统一般由4个部分组成:

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

②硬件:构成计算机系统的各种物理设备,包括存储所需的外部设备。硬件的配置应满足整个数据库系统的需要。

③软件:包括操作系统、数据库管理系统及应用程序。

④人员:主要有4类。第一类为系统分析员和数据库设计人员,系统分析员负责应用系统的需求分析和规范说明,并参与数据库系统的概要设计。数据库设计人员负责数据库中

数据的确定、数据库各级模式的设计。第二类为应用程序员,负责编写使用数据库的应用程序。第三类为最终用户,他们利用系统的接口或查询语言访问数据库。第四类为数据库管理员,负责数据库的总体信息控制。

数据库系统在整个计算机系统中的地位如图1-10所示。

任务3数据库系统的结构

任务要求

1. 了解三级组织结构描述方法;

2. 熟悉模式之间的映射关系;

3. 掌握数据模型的概念。

知识储备

数据库系统有着严谨的体系结构。虽然各个厂家、各个用户使用的数据库管理系统产品类型和规模可能相差很大,但它们在体系结构上通常都具有相同的特征,即采用三级模式结构,并提供两种映像功能。

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

从数据库管理角度看,数据系统通常采用三级模式结构,这是数据库管理系统内部的系统结构;从数据库最终用户角度看,数据库系统的结构分为集中式结构、分布式结构、客户/服务器结构,这是数据库系统外部的结构。 应用开发工具 最终 用户

图1-10 数据库在计算机系统中的地位

编译系统 硬件 DBMS 应用系统 操作系统

数据库系统的三级模式结构是指数据库系统由外模式、概念模式、内模式三级构成,如图1-11所示。

图1-11 数据库系统的三级模式结构

(1)内模式

内模式也称为存储模式,一个数据库只有一个内模式,它是整个数据库的最底层表示。内模式是数据物理结构和存储方式的描述,是数据在数据内部的表示方式。

内模式定义的是存储记录的类型、存储记录的物理顺序、索引和存储路径等数据的存储组织。DBMS提供了内模式描述语言(内模式DDL)来严格定义内模式。

(2)模式

模式也称为逻辑模式或概念模式,是数据库全体数据的逻辑结构和特性的描述,是所有用户的公共数据视图,它是数据库模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序、所使用的应用开发工具及高级程序设计语言无关。

模式实际上是数据库在逻辑上的视图,一个数据库只有一个模式。定义模式时,不仅要定义数据的逻辑结构还要定义数据记录由哪些数据项组成,以及数据项的名字、类型、取值范围等,而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求。DBMS提供了模式描述语言(模式DDL)来严格地定义模式。

(3)外模式

外模式也称为子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)能够

看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

外模式一般是模式的子集。一个数据库可以有多个外模式。这样,不同的用户通过不同的外模式实现各自的数据视图,也达到共享数据的目的。同一外模式可以被一个用户的多个应用程序所使用,但一个应用程序只能使用一个外模式。

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

2.数据库的两级映射

数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。为了能够在内部实现这三个抽象层次的联系和转换,DBMS在这三级模式之间提供了两层映射。

(1)外模式/模式映射。

对应于同一个模式,可以有任意多个外模式。它定义了某一个外模式和模式之间的对应关系,这些映射定义通常包含在各自的外模式中,当模式改变时,该映射要做相应的改变,以保证外模式保持不变,实现了数据与程序的逻辑独立性。

(2)模式/内模式映射。

它定义了数据逻辑结构和存储结构之间的对应关系,说明逻辑记录和字段在内部是如何表示的。这样,当数据库的存储结构改变时,可相应地修改该映射,从而使模式保持不变,保证了数据与程序的物理独立性。

正是这两层映射保证了数据库系统中的数据具有较高的逻辑独立性和物理独立性。

模式是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及到型的描述,不涉及到具体的值。模式的一个具体值称为一个实例,同一个模式可以有很多实例。模式是相对稳定的,而实例是相对变动的,因为数据库中的数据是在不断更新。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。

3.数据模型

数据模型是现实世界中数据特征的抽象。在数据库中采用数据模型来抽象、表示和处理现实世界中的数据和信息。数据模型应满足三方面的要求:

(1)能够比较真实地模拟现实世界;

(2)容易为人所理解;

(3)便于在计算机上实现。

4.数据模型的分类

在数据库系统设计过程中针对不同的使用对象和应用目的往往分层次采用不同类型的

模型,可以将这些模型分为两类,一种模型是概念模型;另一种是数据模型。

(1) 概念模型

也称信息模型。它从用户的观点出发对数据和信息建模的,主要用于数据库的概念级设计。通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。换句话说,就是先将现实世界中的客观对象抽象为实体和联系,它并不依赖于计算机系统或某个DBMS 系统,这样的模型就是物理数据模型。

(2) 数据模型

是按计算机系统对数据建模,主要用于在

DBMS 中实现数据的存储、操纵、控制等。数据

模型是数据库系统的核心和基础,各种机器上

实现的DBMS 软件都是基于某种数据模型的。

为了把现实世界中的具体事物抽象、组织

为某一DBMS 支持的数据模型,人们常常首先

将现实世界抽象为信息世界,然后将信息世界

转换为机器世界。无论是概念模型还是数据模

型都要能较好地刻画与反映现实世界,要与现

实世界保持一致。现实世界中客观对象的抽象

过程如图1-12所示。

任务实施

1. 数据模型的组成要素

数据模型是模型中的一种,是对现实世界数据特征的抽象,它描述了系统的三个方面:静态特性、动态特性和完整性约束条件。因此,数据模型通常由三部分组成:数据结构、数据操作和数据完整性约束。

(1) 数据结构

数据结构是所研究的对象类型的集合,用于描述系统的静态特性,是数据模型的基础。数据操作和约束都建立在数据结构上,不同的数据结构具有不同的操作和约束。

数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。例如,建立一个学生管理数据库,学生(对象)的基本情况(类型)如学号、姓名、性别、出生日期、入学日期、学制、班号、宿舍号等构成了数据库的基本框架,而每个学生的课程信息和成绩信息等对象与学生的基本信息存在着数据关联,这种数据关联也必须存储在数据库中。数据模型按其数据结构类型的不同分为层次模型、网状模型、关系模型和面向对象模型。

(2) 数据操作

数据操作是指对数据库中各种对象实例的操作,用于描述系统的动态特性。例如,根据

反映现实世界 图1-12 现实世界中客观对象的抽象过程

用户的要求对数据库中的数据进行增加、删除、查询、修改等各种操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言等。

(3)数据的完整性约束

数据的完整性约束是指在给定的数据模型中,数据及其数据关联所遵守的一组规则,用以保证数据库中数据的正确性、一致性。例如,学生管理数据库中,学号作为学生信息在数据库中的唯一标志,每个学生的学号都不能为空值,并且不能有重复值。

此外,数据模型还应该提供自定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。例如,在学生管理数据库中规定学生的性别只能输入男或女,输入的成绩不能超过100分等,这些系统数据的特殊约束要求,用户能在数据模型中自己来定义并产生制约。

2.概念模型

概念模型是现实世界到机器世界的一个中间层次,是面向数据库用户的实现世界的模型,主要用来描述世界的概念化结构,它使数据库的设计人员在设计的初始阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力分析数据以及数据之间的联系等,与具体的数据管理系统无关。针对于抽象的信息世界,建立概念模型涉及的一些基本概念。

(1)实体(Entity)

将现实世界中客观存在并可以相互区别的事物称为实体。实体即可以是具体的事物,例如,一名学生,一门课程,也可以是抽象的事件,例如,学生的选课,老师的授课等都是实体。

(2)属性(Attribute)

属性是指实体所具有的特性,一个实体可以由若干个属性描述。例如,教师实体可以由教师号、教师姓名、教师性别、教师职称等属性组成。属性的具体取值称为属性值,用来描述一个具体实体。属性值(10001,张杨,男,讲师)具体代表教师实体的一位教师。

(3)域(Domain)

属性的取值范围称为该属性的域,例如,学号的域为12位数字组成的字符编号集合。

(4)实体型(Entity Type)

用实体类型名和所有属性来共同表示的同一类实体,称为实体型。例如,教师(教师号、教师姓名、教师性别、教师职称)就是一个教师实体型。

(5)实体集(Entity Set)

同一类型实体的集合,例如全体学生就是一个实体集,学生实体集={‘张三’,‘李四’,‘张梅’……}。

(6)键(Key)

键是能够唯一地标识出一个实体集中每一个实体的属性或属性组合,键也被称为关键字或码。例如,教师号在教师实体中就是键。

(7) 联系(Relationship )

实体集之间的对应关系称为联系,它反映了现实世界事物之间的相互关联,主要指实体内部的联系(各属性之间的联系)和实体间的联系。实体之间的联系类型比较复杂,一般分为一对一、一对多、多对多三类。

? 一对一联系(1:1)

如果对于实体集A 中的每一个实体,实体集B 中至多有一个与之相对应,反之,实体集B 中的每一个实体,也至多有一个实体集A 的实体与之对应,则称实体集A 与实体集B 具有一对一联系,记作:1:1。例如,每个班级只有一个班长,班长和班级之间是一对一联系。

? 一对多联系(1:n )

如果对于实体集A 中的每一个实体,实体集B 中有n 个实体与之相对应,反之,如果实体集B 中的每一个实体,实体集A 中至多只有一个实体与之相对应,则称实体集A 与实体集B 具有一对多联系,记作:1:n 。例如,每个学生只能属于一个班级,每个班级可以有多名学生,班级和该班级中的学生之间是一对多联系。

? 多对多联系(m :n )

如果对于实体集A 中的每一个实体,实体集B 中有n (n ≥0)个实体与之相对应,反之,如果实体集B 中的每一个实体,实体集A 也有m (m ≥0)个实体与之相对应,则称实体集A 与实体集B 具有多对多的联系,记作:m:n。例如,每个教师可以上多门课程,每门课程又可以被多名教师授课,课程与教师之间是多对多联系。

两个实体型之间的三类联系如图1-13来表示。

任务实践

1. 概念模型的表示

概念模型的表示方法很多,最常用的是实体—联系方法,是由美籍华人陈平山于1976年提出的,它通过简单的图形方式描述现实世界中的数据,这种图称为实体—联系图,简称E-R 图。E-R 图提供了表示实体、属性和联系的方法。E-R 图有三个要素:

(1) 实体

用矩形表示实体,矩形内标注实体名称。

图1-13 两个实体型之间的联系示意图

一对一 一对多

多对多

实体集A 实体集B 实体集A 实体集A 实体集B 实体集B

(2) 属性

用椭圆表示属性,椭圆内标注属性名称,并用连线与实体连接起来。

(3) 实体之间的联系

用菱形表示,菱形内注明联系名称,并用连线将菱形框分别与相关实体相连,并在连线上注明联系类型(1:1、1:n 或n :m )。

图1-14所示为两个实体之间的三种联系。图1-15为一个班级、学生的完整E-R 图,班级实体型与学生实体型之间是一对多的关系。

2. 层次模型的表示

层次模型是数据库系统中最早出现的数据模型,用树形结构表示实体类型及实体间联系的数据模型称为层次模型。现实世界中很多事物是按层次组织起来的。层次数据模型的提出,首先是为了模拟这种按层次组织起来的事物,层次数据库也是按记录来存取数据的。层次模型数据库系统的典型代表是IBM 公司的IMS (Information Management System )数据库管班长

班级 学生 班级 教师 课程

任职

所属 授课 1

1

1 n m n (a )1:1联系 (b )1:n 联系

(c )m :n 联系 图1-14 两个实体之间的三类联系 属于

学生

学号 性别 姓名 出生日期

班级

班主任

班名 班号 1

n

图1-15 班级、学生的E-R 图

理系统,这是一个曾经广泛使用的数据库管理系统。

层次模型的表示方法是:树的结点表示实体集(记录的型),结点之间的连线表示相连两实体集之间的关系,这种关系只能是“1:M”的。通常把表示1的实体集放在上方,称为父结点,表示M 的实体集放在下方,称为子结点。

(1) 层次模型的数据结构

层次模型有以下两个特点:

① 有且仅有一个结点无父结点,该结点称为根节点。

② 其他结点有且仅有一个父结点。

在层次模型中,每个节点表示一个记录类型,记录之间的联系用节点之间的连线表示这种联系是父子之间的一对多的联系。所以层次模型数据库系统只能处理一对多的实体联系。每个记录类型可包含若干字段,记录类型描述的是实体,字段描述的是实体的属性。各个记录类型及其字段都必须命名,并且名称要求唯一。

若用图来表示,层次模型是一棵倒立的树。结点

层次从根开始定义,根为第一层,根的子女称为第二

层,根称为其子女的双亲,同一双亲的子女称为兄弟。

图1-16所示为一个系的层次模型。

层次模型对具有一对多层次关系的描述非常自

然、直观、容易理解,这是层次数据库的突出优点。

层次模型中实体集之间多对多的联系的处理,解决的方法是引入冗余结点。例如,学生和课程之间的多对多的联系,引入学生和课程的冗余结点,转换为两棵树:一棵树的根是学生,子结点是课程,它表现了一个学生可以选多门课程;一棵树的根是课程,子结点是学生,它反映了一门课程可以被多个学生选。至于冗余结点可以用虚拟结点实现:在冗余结点处仅存放一个指针,指向实际结点。

(2) 层次模型的数据操作与约束条件

① 层次模型的树是有序树(层次顺序)。对任一结点的所有子树都规定了先后次序,这一限制隐含了对数据库存取路径的控制。

② 树中父子结点之间只存在一种联系,因此,对树中的任一结点,只有一条自根结点到达它的路径。

③ 不能直接表示多对多的联系。

④ 树结点中任何记录的属性只能是不可再分的简单数据类型。

(3) 层次模型的存储结构

层次数据库中不仅要存储数据本身,还要存储数据之间的层次联系,层次模型的数据存储常常是和数据之间联系的存储结合在一起的,常用的实现方法有两种。

① 顺序法 系

教研室 教师 学生 图1-16 一个层次模型的示例

相关主题
文本预览
相关文档 最新文档