数据库原理与应用(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-24 05:13:24

点击下载

作者:席亮,邹贵红,等

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

数据库原理与应用

数据库原理与应用试读:

前言

数据库技术是信息系统的核心和基础,是信息化建设的基础设施。数据库信息量的大小和使用频率已成为衡量一个国家信息化程度的重要标志,因此,作为当代的大学生,学习和掌握数据库知识是非常必要的,作为计算机相关专业的学生更要学好数据库技术。“数据库原理与应用”是计算机类专业的核心课程,也是信息处理类专业的必修课程。课程教学目标是系统地介绍数据库基本原理,并结合具体的学生成绩管理系统介绍数据库理论知识的具体应用。通过该课程的学习,使读者在数据库应用软件的开发过程中能够设计合理的数据库,从而提高软件开发的质量,同时能够进行数据库的查找和维护操作,达到熟练地应用数据库技术的目的。

数据库基本原理抽象又很重要,但是,其实践操作更为重要。目前很多教材数据库的基本原理知识介绍非常详细,但是实践部分内容不足,或前后章节案例独立,学生获得的对完整系统后台数据库的设计和维护知识不完整。鉴于此,编者结合自己多年来的数据库理论及数据库技术实践教学经验编写了本教材。

本书的特点是,以应用为目的,以能力培养为目标,案例引导,内容全面,通俗易懂,图文并茂,知识连贯,概念清晰,实践性强。全书所有案例围绕一个完整的学生成绩管理系统展开,将数据库的相关知识恰当地融入到案例的分析和设计过程中,通过一个案例体现其应用。使学生通过案例的学习,掌握数据库知识及其在实际项目中的使用,避免学生学习了数据库理论而不知道如何使用的现象。同时,通过案例学习使读者对数据库的设计有一个完整、清晰的思路。书中每个案例后面配有针对性的习题,部分任务后面还配有具体的实训项目,供读者练习,有助于增强读者对相关知识的理解和实际应用能力的培养。

全书共分10个模块,模块1是数据库理论基础;模块2是数据库环境的搭建与使用;模块3是表的操作;模块4是数据库查询语句;模块5是T-SQL语句;模块6是数据库完整性;模块7是视图和索引;模块8是游标、事务和锁;模块9是存储过程和触发器;模块10 是SQL Server 安全管理。本书建议教学学时为64学时,其中理论32学时,实验32学时。书中模块1、模块3、模块4、模块7为教学重点。

本书由哈尔滨理工大学计算机科学与技术学院席亮、广州华夏职业学院邹贵红、酒泉职业技术学院李艳荣担任主编,广东女子职业技术学院张莉、广东阳江职业技术学院刘志军、成都农业科技职业学院任华、克拉玛依职业技术学院田娟担任副主编,克拉玛依职业技术学院王丽丽老师参与编写。全书由席亮统稿审核。

在编写过程中,编者参阅了大量的资料,在此向各位参与编写的作者表示感谢,由于编者水平有限,书中难免存在疏漏之处,欢迎大家批评指正,衷心希望广大使用者尤其是任课教师提出宝贵的修订意见和建议,以便再版时及时加以修正。

本书既可以作为普通高等教育院校和高职高专院校的数据库原理及应用课程的教材,也可以作为有一定的面向对象编程基础和数据库基础进行 Web 应用程序开发人员的参考资料。

为了使本书更好地服务于授课教师的教学,我们为本书配了教学讲义,期中、末考卷答案,拓展资源,教学案例演练,素材库,教学检测,案例库,PPT课件和课后习题、答案。请使用本书作为教材授课的教师,如果需要本书的教学软件,可到华信教育资源网www.hxedu.com.cn 下载。如有问题,可与我们联系,联系电话:(010)69730296、13331005816。编者2017年7月模块1数据库理论基础学习目标通过本模块的学习,了解数据库的基本概念及数据库管理技术的发展过程;了解数据库系统结构及其组成;熟悉关系数据库的三个组成要素;熟练掌握关系优劣的判定及优化;掌握数据库设计的基本步骤和数据库的完整性约束机制。主要内容(1) 数据库基础。(2) 关系数据库。(3) 数据库设计。(4) 数据库的完整性约束机制。重点与难点(1) 关系数据理论。(2) 概念结构设计。(3) 逻辑结构设计。任务1 数据库基础

一、四个基本概念

1.数据(Data)

数据是数据库中存储的基本对象。由于早期的计算机常用于科学计算,因此所使用的数据多数是整数或者浮点数,因此通常人们对数据的理解是数值型数据是数据,但实质上数据类型有数值型数据、文本数据、图形、图像、视频、音频、学生的成绩信息、超市货物销售信息等。所有的数据与其语义是密不可分的,如下一组数据:(刘冰,2010,北京大学,计算机)

这组数据如果没有语义约定,则可以理解为:2010年刘冰在北京大学学习计算机专业,或者理解为:刘冰在2010年离开北京大学去外地从事计算机生意,或者理解为:刘冰是2010年在北京大学从事计算机教育工作。

如果对这组数据加上相应的语义:(姓名,学习时间,学习地点,学习专业)

则对该组数据只能有一种确定的理解,即2010年刘冰在北京大学学习计算机专业。因此,所有进入数据库中的数据必须有相应的语义解释。

2.数据库(DataBase,简写为DB)

顾名思义就是按照数据结构来组织、长期存储和管理数据的仓库。它产生于60年前,随着信息技术和市场的发展,特别是20世纪90年代以后,数据管理不再仅仅是存储和管理数据,而转变成对用户所需要的各种数据的管理。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统,都在各个方面得到了广泛的应用。数据库中数据的三个基本特点是长期存储、有组织、可共享。

3.数据库管理系统(DataBase Management System,简称DBMS)

数据库管理系统是一种操纵和管理数据库的大型系统软件,用于建立、使用和维护数据库,它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。常见的数据库管理系统软件有:Sybase、DB2、Oracle、SQL Server、Access、PostgreSQL、Informix等。DBMS提供的功能有以下几个方面。(1) 数据定义:DBMS提供数据定义语言DDL(Data Definition Language),主要用于建立、修改数据库的库结构。DDL所描述的库结构仅仅给出了数据库的框架,数据库的框架信息被存放在数据字典(Data Dictionary)中。(2) 数据操纵:DBMS提供数据操纵语言DML(Data Manipulation Language),供用户实现对数据的增加、删除、修改、查询等操作。(3) 数据库的运行管理:数据库的运行管理功能是 DBMS的运行控制、管理功能,包括多用户环境下的并发控制、安全性检查和存取限制控制、完整性检查和执行、运行日志的组织管理、事务的管理和自动恢复,即保证事务的原子性。这些功能保证了数据库系统的正常运行。(4) 数据组织、存储与管理:DBMS 要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等,需确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率,选择合适的存取方法提高存取效率。(5) 数据库的维护:这一部分包括数据库的数据载入、转换、转储,数据库的重组和重构以及性能监控等功能,这些功能分别由各个实用程序来完成。

数据库管理系统是数据库系统的核心,是管理数据库的软件。数据库管理系统就是实现把用户意义下抽象的逻辑数据处理,转换成为计算机中具体的物理数据处理的软件。有了数据库管理系统,用户就可以在抽象意义下处理数据,而不必顾及这些数据在计算机中的布局和物理位置。

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

数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。应当指出的是,数据库的建立、使用和维护等工作只靠一个DBMS远远不够,还要有专门的人员来完成,这些人被称为数据库管理员(Data Base Administrator,简称DBA)。

在一般不引起混淆的情况下常常把数据库系统简称为数据库。

二、数据管理技术

数据管理技术是指对数据进行分类、组织、编码、存储、检索和维护的技术,经历了人工管理、文件管理、数据库管理三个阶段。数据管理技术是应数据管理任务的需要而产生的,主要有数据处理和数据管理两方面内容,数据的处理是指对各种数据进行收集、存储、加工和传播的一系列活动的总和;数据管理则是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。

1.人工管理时期

在计算机出现之前,人们运用常规的手段从事记录、存储和对数据加工,也就是利用纸张来记录和利用计算工具(算盘、计算尺)来进行计算,并主要使用人的大脑来管理和利用这些数据。

到了20世纪50年代中期,计算机主要用于科学计算。当时没有磁盘等直接存取设备,只有纸带、卡片、磁带等外存,也没有操作系统和管理数据的专门软件。数据处理的方式是批处理。该阶段管理数据的特点如下。(1) 数据不保存。因为当时计算机主要用于科学计算,对于数据保存的需求尚不迫切。(2) 系统没有专用的软件对数据进行管理,每个应用程序都要包括数据的存储结构、存取方法和输入方法等。程序员编写应用程序时,还要安排数据的物理存储,因此程序员负担很重。(3) 数据不共享。数据是面向程序的,一组数据只能对应一个程序。(4) 数据不具有独立性。程序依赖于数据,如果数据的类型、格式或输入/输出方式等逻辑结构或物理结构发生变化,则必须对应用程序做出相应的修改。

2.文件系统阶段

20世纪50年代后期到60年代中期,随着计算机硬件和软件的发展,磁带、磁盘等直接存取设备开始普及,这一时期的数据处理系统是把计算机中的数据组织成相互独立的被命名的数据文件,并可按文件的名字来进行访问,对文件中的记录进行存取的数据管理技术。数据可以长期保存在计算机外存上,可以对数据进行反复处理,并支持文件的查询、修改、插入和删除等操作,这就是文件系统。文件系统数据管理示意如图1-1所示。图1-1 文件管理实现示例

文件系统实现了记录内的结构化,但从文件的整体来看却是无结构的。其数据面向特定的应用程序,因此数据共享性、独立性差,且冗余度大,管理和维护的代价也很大。

3.数据库系统阶段

20世纪60年代后期以来,计算机在软件和硬件方面都得到较大发展,更重要的是出现了大容量磁盘,存储容量大大增加且价格逐步下降,在此基础之上,基本克服了文件系统管理数据时的不足,并且满足和解决实际应用中多个用户、多个应用程序共享数据的要求,从而使数据能为尽可能多的应用程序服务,这就出现了数据库这样的数据管理技术。文件系统数据管理示意如图1-2所示。图1-2 数据库管理实现示例

数据库的特点是数据不再只针对某一个特定的应用,而是面向全组织,具有整体的结构性,共享性高,冗余度减小,具有一定的程序与数据之间的独立性,并且对数据进行统一的控制。

此阶段的特点如下。(1) 数据结构化。在描述数据时不仅要描述数据本身,还要描述数据之间的联系。数据结构化是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。(2) 数据共享性高、冗余少且易扩充。数据不再针对某一个应用,而是面向整个系统,数据可被多个用户和多个应用共享使用,而且容易增加新的应用,所以数据的共享性高且易扩充。数据共享可大大减少数据冗余。(3) 数据独立性高。数据在磁盘上的数据库中怎样存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,当数据的物理存储改变时,应用程序不用改变;同时,数据的逻辑结构改变了,用户程序也可以不变。(4) 数据由DBMS统一管理和控制。数据库为多个用户和应用程序所共享,对数据的存取往往是并发的,即多个用户可以同时存取数据库中的数据,甚至可以同时存放数据库中的同一个数据,为确保数据库数据的正确有效和数据库系统的有效运行,数据库管理系统提供以下4方面的数据控制功能。

① 数据安全性控制:防止因不合法使用数据而造成数据的泄露和破坏,保证数据的安全和机密。

② 数据的完整性控制:系统通过设置一些完整性规则,以确保数据的正确性、有效性和相容性。

③ 并发控制:多用户同时存取或修改数据库时,防止相互干扰而给用户提供不正确的数据,并使数据库受到破坏。

④ 数据恢复:当数据库被破坏或数据不可靠时,系统有能力将数据库从错误状态恢复到最近某一时刻的正确状态。

数据库技术的研究领域主要有三个领域:数据库管理系统软件的研制、数据库设计、数据库理论。

三、数据模型

我们把客观存在的事物以数据的形式存储到计算机中,经历了对现实生活中事物特性的认识、概念化到计算机数据库里的具体表示的逐级抽象过程,即现实世界-概念世界-机器世界三个领域。通常把概念世界称为信息世界,将机器世界称为存储或数据世界。

1.三个世界(1) 现实世界:我们管理的对象存于现实世界中。现实世界中事物与事物之间存在着联系,这种联系是客观存在的,是由事物本身的性质决定的。例如学校使用的教务系统中有教师、学生和课程三类对象,这些对象之间存在教师为学生授课、学生选修课程并取得成绩的联系。(2) 概念世界:概念世界是我们头脑中对现实世界的客观反映,是对客观事物及其联系的一种抽象描述而产生的。概念模型是现实世界到机器世界必然经过的中间层次,由数据模型表示,当前流行的DBMS所支持的数据模型分为三种:层次模型、网状模型、关系模型,每种概念模型都涉及到下面几个术语。

① 实体:我们把客观存在并且可以相互区别的事物称为实体。实体可以是物理存在的事物,也可以是抽象事件,如学生、课程、学生选修课程后的成绩、教师等都是实体。

② 属性:描述实体或者联系的特性或者性质的数据项称为属性,属于一个实体所有实例都具有的性质。利用属性便于我们区分每一个实体A是A,不是B,如实体学生的学号、姓名、班级、性别、出生日期、家庭地址等是属性,我们通过学生的学号以区分每一个学生,像学生的学号这样,能够唯一标识实体的属性或最小属性组合,称为实体的码,又称为候选码或者关键字。如学生实体中的“学号”、教师实体中的“教工号”均可作为码。

③ 联系:实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。联系分为两种,一种是实体内部各属性之间的联系。另一种是实体之间的联系。例如一个学校有多个班级,每个班级有一名班长,一个班级有多名学生组成,一门课程由多名学生选修,一名学生选修多门课程等,都是实体内部或者实体与实体之间存在的联系。这种联系是客观存在的。(3) 机器世界:存入计算机系统里的数据是将概念世界中的事物数据化的结果。为了准确地反映事物本身及事物之间的各种联系,数据库中的数据必须有一定的结构,这种结构用数据模型来表示。数据模型将概念世界中的实体,及实体间的联系进一步抽象成便于计算机处理的方式。

2.E-R模型

E-R模型(又称实体-联系模型)简称E-R图。它是描述概念世界,建立概念模型的实用工具。E-R图包括实体、属性和实体之间的联系三个要素。

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

属性——用椭圆或者圆角矩形框表示,并在框内写上属性的名字,然后用连线与实体连接起来。

如学生实体有学号、姓名、班级、性别、出生日期、家庭住址属性,用E-R图表示如图1-3所示。图1-3 学生实体属性图

实体之间的联系——用菱形框表示,框内标注联系名称,用连线将菱形框分别与对应实体相连,并在连线上注明联系类型,如果两个实体发生联系时产生新属性,则该属性不属于两个实体中的任何一个,它属于联系,因此要用连线与该联系相连。如单独的课程是没有成绩属性的,而学生如果没有选修行为发生时,也没有成绩属性,当学生选修课程成功后,一定会产生成绩属性,因此该属性必然属于联系“选修”。

联系归结为三种类型:(1) 一对一的联系(1:1)。

设A、B为两个实体,若A中的每个实例至多和B中的一个实例有联系,反过来,B中的每个实例至多和A中的一个实例有联系,称A与B是一对一的联系,记作1:1。注意,1:1联系不一定都是一一对应的关系。可能存在着无对应。如一个班级只有一个正班长,一个正班长不能同时在其他班级再兼任正班长,但对于新报到的学生班级,可能班长暂缺,故班级与班长之间属于一对一的联系,如图1-4(a)所示。(2) 一对多的联系(1:m)。

如果A实体中的每个实例可以和B中的几个实例有联系,而B中的每个实例与A中的一个实例有联系,那么A对B属于一对多的联系,记作1:m,如一个班级有多名学生,而一名学生只在一个班级就读,班级与学生之间属于一对多的联系,如图1-4(b)所示。(3) 多对多的联系(m:n)。

若实体A中的每个实例可与实体B中的多个实例有联系,反过来,B中的每个实体也可以与A中的多个实体有联系,称A对B或B对A是多对多的联系,记作m:n,如一个学生可以选修多门课程,一门课程由多个学生选修,学生和课程间存在多对多的联系,并且当选修联系发生时,将产生新属性成绩,如图1-4(c)所示。图1-4 两个实体之间的三种联系实例

E-R图的设计过程由抽取实体、确定属性、定义联系、绘制E-R图四步组成。

例如,学生_选修系统的需求描述为:一个院系有一名辅导员,这名辅导员管理多个班级,每个班级有多名学生,并且不能在该校内出现双学位的情况;每个学生选修多门课程,每门课程也有多个学生选修。

首先,抽取实体。

鉴于实体一定是名词,但名词不一定是实体的原则,对上述需求的描述,从中找出名词:院系、辅导员、班级、学生、双学位、课程。分析名词发现,“双学位”仅是限制学生在该学校中只属于一个班级罢了,并不与其他产生联系,因此舍弃;其他两两之间均有联系,因此,保留得到实体有:院系、辅导员、班级、学生、课程。

其次,确定属性。

实际生活中,每个实体的属性可能有几十个甚至几百个不等,但对于不同的应用系统,只要把每个实体对于本系统应该需要的属性给出即可,如院系的属性通常有:院系编号、院系名称、院系联系电话、院系办公地点、院系负责人、院系成立日期、院系专业数、院系教师总人数、院系学生总人数等,对于本应用,仅需要将院系编号、院系名称、院系联系电话、院系办公地点四个属性用上即可。绘制每个实体的属性如图1-5至图1-9所示。图1-5 院系实体属性图图1-6 辅导员实体属性图图1-7 班级实体属性图图1-8 学生实体属性图图1-9 课程实体属性图

再次,定义联系。

院系与辅导员:一个院系有一名辅导员,这名辅导员只能在这个院系中工作,院系与辅导员之间是一对一的联系;

辅导员与班级:一名辅导员管理多个班级,一个班级由一名辅导员管理,辅导员与班级之间是一对多的联系;

班级与学生:一个班级由多名学生组成,由于不能在本校攻读双学位,因此一个学生只能在一个班级就读,班级与学生之间是一对多的联系;

学生与课程:一名学生选修多门课程,一门课程是由多名学生选修,学生与课程之间是多对多的联系。

最后,绘制学生选修系统E-R图如图1-10所示。

这是一个简单的需求,如果项目较大时,需求量也会随之增加,因此,直接绘制 E-R图一般比较困难,所以一般先绘制分E-R图,再合并分E-R图得到总E-R图。图1-10 学生选修系统E-R图

四、数据库系统结构

考察数据库系统的结构可以有多种不同的层次或不同的角度。

从数据库管理系统角度看,数据库系统通常采用外模式、模式、内模式三级模式结构;这是数据库管理系统内部的系统结构。

从数据库最终用户角度看,数据库系统的结构分为单用户结构、主从式结构、分布式结构和客户/服务器结构。这是数据库系统外部的体系结构。

1.数据库系统模式的概念

在数据模型中有“型”(Type)和“值”(Value)的概念。型是指对某一类数据的结构和属性的说明,值是型的一个具体赋值。例如:课程定义为(课程号,课程名,开课学期,考试类别,学分,学时),则是从“型”上记录课程;(C06,数据库系统应用,5,考试,3,68)则是该课程“型”的一个“值”。

模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及到型的描述,不涉及到具体的值。模式的一个具体值称为模式的一个实例(Instance)。同一个模式可以有很多实例。模式是相对稳定的,而实例是相对变动的,因为数据库中的数据是在不断更新的。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。虽然实际的数据库管理系统产品种类很多,它们支持不同的数据模型,使用不同的数据库语言,建立在不同的操作系统之上,数据的存储结构也各不相同,但它们在体系结构上通常都具有相同的特征,即采用三级模式结构(早期微机上的小型数据库系统除外)并提供二级映象功能。

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

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

模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序,与所使用的应用开发工具及高级程序设计语言(如C,COBOL, FORTRAN)无关。DBMS提供模式描述语言(模式DDL)来严格地定义模式。

一个数据库只有一个模式;模式是数据库数据在逻辑级上的视图;数据库模式以某一种数据模型为基础;定义模式时不仅要定义数据的逻辑结构(如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。(2) 外模式(External Schema)。

外模式也称子模式(Subschema)或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。DBMS提供子模式描述语言(子模式DDL)来严格地定义子模式。

一个数据库可以有多个外模式;外模式就是用户视图;外模式是保证数据安全性的一个有力措施。(3) 内模式(Internal Schema)。

内模式也称存储模式(Storage Schema),它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式(例如,记录的存储方式是顺序存储、按照B树结构存储还是按 Hash 方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定)。DBMS提供内模式描述语言(内模式DDL,或者存储模式DDL)来严格地定义内模式。

一个数据库只有一个内模式;一个表可能由多个文件组成,如:数据文件、索引文件。它是数据库管理系统(DBMS)对数据库中数据进行有效组织和管理的方法,其目的首先是为了减少数据冗余,实现数据共享;其次是为了提高存取效率,改善性能。

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

对数据库系统的综合解读如图1-12所示。图1-12 数据库三级模式的综合解读图

3.数据库的二级映象功能与数据独立性

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

正是这两层映象保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。(1) 外模式/模式映象。

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

当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映象作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。(2) 模式/内模式映象。

数据库中只有一个模式,也只有一个内模式,所以模式/内模式映象是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在内部是如何表示的。该映象定义通常包含在模式描述中。当数据库的存储结构改变了(例如选用了另一种存储结构),由数据库管理员对模式/内模式映象作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。

在数据库的三级模式结构中,数据库模式即全局逻辑结构是数据库的中心与关键,它独立于数据库的其他层次。因此设计数据库模式结构时应首先确定数据库的逻辑模式。

数据库的内模式依赖于它的全局逻辑结构,但独立于数据库的用户视图即外模式,也独立于具体的存储设备。它是将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率。

数据库的外模式面向具体的应用程序,它定义在逻辑模式之上,但独立于存储模式和存储设备。当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式就得做相应改动,所以设计外模式时应充分考虑到应用的扩充性。

特定的应用程序是在外模式描述的数据结构上编制的,它依赖于特定的外模式,与数据库的模式和存储结构独立。不同的应用程序有时可以共用同一个外模式。数据库的二级映象保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改。

数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去。另外,由于数据的存取由DBMS管理,用户不必考虑存取路径等细节,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。

4.数据库系统的组成

数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。下面分别介绍这几个部分的内容。

1) 硬件平台及数据库。

由于数据库系统数据量都很大,加之DBMS丰富的功能使得自身的规模也很大,因此整个数据库系统对硬件资源提出了较高的要求,这些要求是:(1) 要有足够大的内存,存放操作系统、DBMS 的核心模块、数据缓冲区和应用程序。(2) 有足够大的磁盘等直接存取设备存放数据库,有足够的磁带(或微机软盘)作数据备份。(3) 要求系统有较高的通道能力,以提高数据传送率。

2) 软件。

数据库系统的软件主要包括:(1) DBMS。DBMS是为数据库的建立、使用和维护配置的软件。(2) 支持DBMS运行的操作系统。(3) 具有与数据库接口的高级语言及其编译系统,便于开发应用程序。(4) 以DBMS为核心的应用开发工具。应用开发工具是系统为应用开发人员和最终用户提供的高效率、多功能的应用生成器、第四代语言等各种软件工具。它们为数据库系统的开发和应用提供了良好的环境。(5) 为特定应用环境开发的数据库应用系统。

3) 人员。

开发、管理和使用数据库系统的人员主要是:数据库管理员、系统分析员和数据库设计人员、应用程序员和最终用户。不同的人员涉及不同的数据抽象级别,具有不同的数据视图。任务2 关系数据库

关系数据库,是建立在关系数据模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格。关系数据库的定义造成元数据的一张表格或造成表格、列、范围和约束的正式描述。每个表格包含用列表示的一个或更多的数据种类。每行包含一个唯一的数据实体,这些数据是被列定义的种类。当创造一个关系数据库的时候,你能定义数据列的可能值的范围和可能应用于那个数据值的进一步约束。而SQL语言是标准用户和应用程序到关系数据库的接口。其优势是容易扩充,且在最初的数据库创造之后,一个新的数据种类能被添加而不需要修改所有的现有应用软件。目前主流的关系数据库有Oracle、SQL Server、DB2、Access、PostgreSQL、Informix等。

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

一、关系数据结构

关系模型的数据结构非常单一。在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。在用户看来,关系模型数据结构是一张二维表,但关系一定是一张二维表,二维表不一定是关系。(1) 域(Domain)。

定义1.1 域是一组具有相同数据类型的值的集合。

例如,整数、实数、长度小于18个字符的字符串集合、{男,女}、大于等于0且小于等于18的正整数等,都可以是域。(2) 笛卡尔积(Cartesian Product)。

定义1.2 给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}

其中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组(Tuple)。

元素中的每一个值di叫作一个分量(Component)。

笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。例如给出三个域:D1=学生集合STUDENT=刘冰冰,李筱筱D2=专业集合SPECIALITY=软件工程专业,古代汉语专业D3=课程集合COURSE=数据结构,操作系统,古代汉语,汉语修辞

则D1,D2,D3的笛卡尔积为:

D1×D2×D3={(刘冰冰,软件工程专业,数据结构),(刘冰冰,软件工程专业,操作系统),(刘冰冰,软件工程专业,古代汉语),(刘冰冰,软件工程专业,汉语修辞),(刘冰冰,古代汉语专业,数据结构),(刘冰冰,古代汉语专业,操作系统),(刘冰冰,古代汉语专业,古代汉语),(刘冰冰,古代汉语专业,汉语修辞),(李筱筱,软件工程专业,数据结构),(李筱筱,软件工程专业,操作系统),(李筱筱,软件工程专业,古代汉语),(李筱筱,软件工程专业,汉语修辞),(李筱筱,古代汉语专业,数据结构),(李筱筱,古代汉语专业,操作系统),(李筱筱,古代汉语专业,古代汉语),(李筱筱,古代汉语专业,汉语修辞)}

其中(刘冰冰,软件工程专业,数据结构)、(李筱筱,古代汉语专业,古代汉语)等都是元组,刘冰冰、软件工程专业、数据结构、李筱筱、古代汉语专业、古代汉语等都是分量。

该笛卡尔积的基数为2×2×4=16,也就是说,D1×D2×D3一共有2×2×4=16个元组。这16个元组可列成一张二维表如表1-1所示。表1-1 学生_专业_课程的笛卡尔积(3) 关系(Relation)。

定义1.3 D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为R(D1, D2,…,Dn)。

这里R表示关系的名字,n是关系的目或度(Degree)。

关系中的每个元素是关系中的元组,通常用t表示。

当n=1时,称该关系为单元关系(Unary relation)。

当n=2时,称该关系为二元关系(Binary relation)。

关系是笛卡尔积的有限子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。n目关系必有n个属性。

若关系中的某一属性组的值(最小值的集合)能唯一地标识一个元组,则称该属性组为码(key),或称为候选码(Candidate key)。

若一个关系有多个码,则选定其中一个为主码(Primary key)。主码的诸属性称为主属性(Prime a ttribute)。不包含在任何侯选码中的属性称为非码属性(Non-key a ttribute)或非主属性。在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)。

一般来说,在域上进行的笛卡尔积运算是没有实际意义的,如 D1×D2×D3(如表1-1所示)中,若学生集中没有一个攻读双学位的学生,因此软件工程专业的学生,只能学习本专业的课程数据结构、操作系统,而不可能攻读古代汉语专业的课程古代汉语、汉语修辞;反之亦然。表1-2给出学生刘冰冰就读软件工程专业、李筱筱攻读古代汉语专业。表1-2 S_P_C关系

关系可以有三种类型:基本关系(通常又称为基本表或基表)、查询表和视图表。基本表是实际存在的表,它是实际存储数据的逻辑表示。查询表是查询结果对应的表。视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。

关系存在六个性质:列值同域性;列名唯一性;列序无关性;码值唯一性;行序无关性;列值原子性。

二、关系操作集合

关系模型给出了关系操作的能力,但不对RDBMS语言给出具体的语法要求,即不同的RDBMS可以定义和开发不同的语言来实现这些操作。

关系模型中常用的关系操作包括:并(Union)、交(Intersection)、差(Difference)、选择(Selection)、投影(Project)、连接(Join)、除(Divide)、查询(Query)类操作和增加(Insert)、删除(Delete)、修改(Update)等更新类操作两大部分。查询的表达能力是其中最主要的部分。

关系操作的特点是集合操作方式,即操作的对象和结果都是集合。这种操作方式也称为一次一集合(set-at-a-time)的方式。相应地,非关系数据模型的数据操作方式则为一次一记录(record-at-a-time)的方式。

早期的关系操作能力通常用代数方式或逻辑方式来表示,分别称为关系代数和关系演算。关系代数是用对关系的运算来表达查询要求的方式。关系演算是用谓词来表达查询要求的方式。关系演算又可按谓词变元的基本对象是元组变量还是域变量分为元组关系演算和域关系演算。关系代数、元组关系演算和域关系演算三种语言在表达能力上是完全等价的。关系代数、元组关系演算和域关系演算均是抽象的查询语言,这些抽象的语言与具体的DBMS中实现的实际语言并不完全一样。但它们能用作评估实际系统中查询语言能力的标准或基础。实际的查询语言除了提供关系代数或关系演算的功能外,还提供了许多附加功能,例如集函数、关系赋值、算术运算等。

另外还有一种介于关系代数和关系演算之间的语言,即 SQL 语言(Standard Query Language)。SQL 不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集查询(Query)、数据定义(DDL)、数据操纵(DML)和数据控制(DCL)于一体的关系数据语言。它充分体现了关系数据语言的特点和优点,是关系数据库的标准语言。

因此,关系数据语言可以分为三类:(1) 关系代数语言,例如ISBL(Information System Base Language)。(2) 关系演算语言分为元组关系演算语言和域关系演算语言,例如APLHA为元组关系演算语言的代表,QBE是域关系演算语言。(3) 具有关系代数和关系演算双重特点的语言,例如结构化查询语言(Structured Query Language,简称为SQL)。

这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。

三、关系完整性约束

关系模型允许定义三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支持。用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。

1) 实体完整性。

实体完整性指关系中行的完整性,主要用于保证操作的数据非空、唯一且不重复,即实体完整性要求每个关系有且仅有一个主码,每一个主码值必须唯一,且不允许为“空”(NULL)。例如,公民关系中属性“身份证号”为主码;同一学校内学生关系中学号是主码。如有学生信息关系,学号为学生关系的主码,按照实体完整性规则定义如表1-3至1-5所示,表1-3为主码取值正确的关系,表1-4和表1-5为主码取值错误的情况。表1-3 主码取值正确的表表1-4 主码取空值的表表1-5 主码取重复值的表

2) 参照完整性。

参照完整性也称为引用完整性。现实世界中的实体之间通常存在着某种联系,在关系模型中,实体以及实体之间的联系都是用关系来表示的,自然而然在关系中存在着实体与实体之间的引用,参照完整性就是描述实体之间这种引用的。

设有学生关系、专业关系分别如表1-6和表1-7所示,在学生关系中,学号为主码;在专业关系中,专业编号为主码。表1-6 学生关系表表1-7 专业关系表

将学生关系与专业关系分别记作:

学生(学号,姓名,性别,专业编号)

专业(专业编号,专业名称,专业负责人)

带有下划线的属性代表是该关系的主码。

在这两个关系之间存在着属性的引用:学生关系中的属性“专业编号”引用了专业关系中的主码“专业编号”,通过这种引用限制学生关系中的属性“专业编号”的取值必须是专业关系中存在的值,即学生关系中“专业编号”的取值参照了专业关系中的“专业编号”的取值。这种通过一个关系中某属性的取值限制另一个关系中某属性取值的规则称为参照完整性约束。

分析学生关系与专业关系发现,其实在个别高校的专业选择上,大学一年级是不分专业的,通过一年的学习与了解,大二再选择专业,因此学生在大学一年级时期,是没有专业的,这种情况下,学生关系中属性“专业编号”是没有值的,即取空值。

因此,学生关系中属性“专业编号”的取值有两种情况。(1) 值为空;(2) 为专业关系中某个元组的“专业编号”值。

定义1.4 设F是关系R的一个或一组属性,但不是关系R的码,如果F与关系S的主码相对应,则称F是关系R的外码(Foreign Key),并且关系R称为参照关系(Referencing Relation),关系S为被参照关系(Referenced Relation)或目标关系(Target R elation)。关系R和S不一定是不同的关系。例如在学生关系与专业关系之间,学生关系称为参照关系,该关系中属性“专业编号”的取值参照了专业关系中主码“专业编号”的取值,专业关系称为被参照关系,将学生关系中“专业编号”称为外码,表示它的取值受限于专业关系中主码的取值。学生关系与专业关系的参照图如图1-13所示。图1-13 学生专业关系参照图

注意:

外码并不一定要与相对应关系的主码同名。但在实际开发中,为了便于识别,当外码与相应的主码属于不同的关系时,一般取相同的名字。

参照完整性规则就是定义外码与被参照的主码之间的引用规则。

对于外码取值,一般应符合如下要求:(1) 取空值NULL;(2) 等于被参照关系中某个元组的主码值。

例如有仓库、产品、库存关系分别如下:

仓库(仓库编号,仓库名,面积,位置,联系电话);

产品(产品编号,产品名称,产品体积,最多堆垛层数,生产日期,保质期);

库存(产品编号,仓库编号,入库日期,库存量)。

分析这三个关系:关系库存中属性“产品编号”引用了关系产品中的码“产品编号”,同时关系库存中属性“仓库编号”引用了关系仓库中码“仓库编号”,因此,关系库存中属性“产品编号”和“仓库编号”是外码,关系库存是参照关系,关系仓库与关系产品均是被参照关系。根据参照完整性规则对外码取值的约定,关系库存中属性“产品编号”和“仓库编号”的取值有两种:空值或被参照关系中某个组的主码值。

进一步分析关系库存发现,该关系的主码为组合属性(产品编号,仓库编号,入库日期),按照实体完整性规则,该关系的主码取值不能取空值或者重复的值。

综合以上得出:关系库存中外码“产品编号”和“仓库编号”的取值仅仅限于被参照关系中某个组的主码值。

3) 用户定义的完整性。

用户定义的完整性也称为域完整性或语义完整性,它是指明关系中属性的取值范围,也就是属性的域,即限制关系中的属性的取值类型及取值范围,防止属性的值与应用语义矛盾。用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。如在高校学生信息管理系统中,性别取{男,女}、学生年龄(单位:岁)取[10,50]、姓名最长取50个字符、身高(单位:米)取[0.45, 2.80]等。任务3 数据库设计

数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术,具体说,数据库设计是指利用现有的数据库管理系统,针对具体的应用要求构建适合的数据库模式,建立数据库及其应用的系统,使之能有效地收集、存储、操作和管理数据,满足各类用户的信息与处理要求。数据库设计问题是数据库在应用领域的主要研究课题。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。

1.数据库设计概述

数据库设计虽然是一项应用课题,但它涉及的内容很广泛,所以设计一个性能良好的数据库并不容易。数据库设计的质量与设计者的知识、经验和水平有密切的关系。数据库设计中面临的主要困难和问题有:

① 懂得计算机与数据库的人一般都缺乏所开发数据库应用系统领域的业务知识和实际经验,而熟悉该业务且有经验的人通常又不懂得计算机软件开发,同时具备这两方面知识的人少之又少;

② 在开发初期往往不能明确应用业务所需要数据库系统的目标;

③ 客户的需求往往在一开始不很明确,而是在设计过程中不断修改或提出新的要求,甚至在数据库建立之后还会要求修改数据库结构和增加新的应用;

④ 缺乏很完善的设计工具和方法;

⑤ 数据库应用系统业务千差万别,很难找到一种适合所有应用业务的工具和方法,这就增加了研究数据库自动生成工具的难度,因此,开发适合一切数据库应用系统业务的全自动数据库生成工具是不可能的。

在进行数据库设计时,必须确定系统的目标,这样可以确保开发工作进展顺利,并能提高工作效率,保证数据模型的准确和完整。数据库设计的最终目标是数据库必须能够满足客户对数据的存储和处理需求,同时定义系统的长期和短期目标,能够提高系统的服务以及新数据库的性能期望值——客户对数据库的期望也是非常重要的。新的数据库能在多大程度上方便终端用户?新数据库的近期和长期发展计划是什么?是否所有的手工处理过程都可以自动实现?现有的自动化处理是否可以改善?这些都只是定义一个新的数据库设计目标时所必须考虑的一部分问题或因素。

成功的数据库系统应具备如下一些特点:(1) 功能强大。

① 能准确地表示业务数据;

② 使用方便,易于维护;

③ 对最终用户操作的响应时间合理;

④ 便于数据库结构的改进;

⑤ 便于数据的检索和修改;

⑥ 维护数据库的工作较少;

⑦ 有效的安全机制以确保数据安全;

⑧ 冗余数据最少或不存在;

⑨ 便于数据的备份和恢复;

⑩ 数据库结构对终端用户来说是透明的。

数据库设计的工作量大且比较复杂,是一项数据库工程,也是一项软件工程。数据库设计的很多阶段都可以对应于软件工程的阶段,软件工程的某些方法和工具同样也适合于数据库工程,但由于数据库设计是与用户的业务需求紧密相关的,因此,它还有很多自己的特点。(2) 综合性。

数据库设计涉及的范围很广,包含了计算机专业知识及业务系统的专业知识,同时它还要解决技术及非技术两方面的问题。

非技术问题包括组织机构的调整,经营方针的改变,管理体制的变更等。这些问题都不是设计人员所能解决的,但新的管理信息系统要求必须有与这相适应的新的组织机构、新的经营方针、新的管理体制,这就是一个较为尖锐的矛盾。另一方面,鉴于同时具备数据库和业务两方面知识的人很少,因此,数据库设计者一般都需要花费相当多的时间去熟悉应用业务系统知识,这一过程有时很麻烦,可能会使设计人员产生厌烦情绪,从而影响系统的最后成功。而且,由于承担部门和应用部门是一种委托雇佣关系,在客观上存在着一种对立,当在某些问题上意见不一致时会使双方关系比较紧张,这在MIS(管理信息系统)中尤为突出。(3) 结构设计与行为设计相分离。

结构设计是指数据库的模式结构设计,包括概念结构、逻辑结构和存储结构;行为设计是指应用程序设计,包括功能组织、流程控制等方面的设计。在传统的软件工程中,比较注重处理过程的设计,不太注重数据结构的设计。在一般的应用程序设计中只要可能就会推迟数据结构的设计,这种方法对于数据库设计就不太适用。

数据库设计与传统的软件工程的做法正好相反。数据库设计的主要精力首先是放在数据结构的设计上,比如数据库的表结构、视图等。

为了使数据库设计更合理、更有效,需要有效的指导原则,这种原则就称为数据库设计方法。

首先,一个好的数据库设计方法,应该能在合理的期限内,以合理的工作量,产生一个有实用价值的数据库结构。这里的“实用价值”是指满足用户关于功能、性能、安全性、完整性及发展需求等方面的要求,同时又服从特定DBMS的约束,可以用简单的数据模型来表达。其次,数据库设计方法还应具有足够的灵活性和通用性,不但能够使具有不同经验的人使用,而且不受数据模型及DBMS的限制。最后,数据库设计方法应该是可再生的,即不同的设计者使用同一方法设计同一问题时,可以得到相同或相似的设计结果。

多年来,经过人们不断的努力和探索,提出了各种数据库设计方法。运用软件工程的思想和方法提出的各种设计准则和规程都属于规范设计方法。

新奥尔良(New Orleans)方法是一种比较著名的数据库设计方法,这种方法将数据库设计分为四个阶段:需求分析、概念结构设计、逻辑结构设计和物理结构设计,如图1-14所示。这种方法注重数据库的结构设计,而不太考虑数据库的行为设计。S.B.Yao 等人又将数据库设计分为五个阶段,主张数据库设计应包括设计系统开发的全过程,并在每一阶段结束时进行评审,以便及早发现设计错误,及早纠正。各阶段也不是严格线性的,而是采取“反复探寻、逐步求精”的方法。在设计时从数据库应用系统设计和开发的全过程来考察数据库设计问题,既包括数据库模型的设计,也包括围绕数据库展开的应用处理的设计。在设计过程努力把数据库设计和系统其他部分的设计紧密结合,把数据和处理的需求、分析、抽象、设计和实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计。图1-14 新奥尔良方法的数据库设计步骤

常见的数据库设计方法有:基于E-R模型的数据库设计方法,基于第三范式的设计方法,基于抽象语法规范的设计方法等都是在数据库设计的不同阶段上使用的具体技术和方法。数据库设计方法从本质上看仍然是手工设计方法,其基本思想是过程迭代和逐步求精。

按照规范设计的方法,同时考虑数据库及其应用系统开发的全过程,将数据库设计分为如下几个阶段:

① 需求分析;

② 概念结构设计;

③ 逻辑结构设计;

④ 物理结构设计;

⑤ 数据库实施;

⑥ 数据库运行和维护。

数据库设计全过程如图1-15所示。

数据库设计开始之前,首先必须选定参加设计的人员,包括系统分析人员、数据库设计人员和程序员、用户和数据库管理员。系统分析和数据库设计人员是数据库设计的核心人员,他们将自始至终参与数据库设计,他们的水平决定了数据库应用系统的质量。用户和数据库管理员在数据库设计中也是举足轻重的,他们主要参加需求分析和数据库的运行维护,他们的积极参与不但能加速数据库设计,而且也是决定数据库设计的质量的重要因素。程序员则在系统实施阶段参与进来,分别负责编制程序和准备软硬件环境。

如果所设计的数据库应用系统比较复杂,还应该考虑是否需要使用数据库设计工具和CASE工具以提高数据库设计质量并减少设计工作量。(1) 需求分析阶段。

进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。作为地基的需求分析是否做得充分与准确,决定了在其上构建数据库大厦的速度与质量。需求分析做得不好,甚至会导致整个数据库设计返工重做。图1-15 数据库设计的全过程(2) 概念结构设计阶段。

概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。(3) 逻辑结构设计阶段。

逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。(4) 数据库物理设计阶段。

数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。(5) 数据库实施阶段。

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

数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。

设计一个完善的数据库应用系统是不可能一蹴而就的,它往往是上述六个阶段的不断反复。

需要指出的是,这个设计步骤既是数据库设计的过程,也包括了数据库应用系统的设计过程。在设计过程中把数据库的设计和对数据库中数据处理的设计紧密结合起来,将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计。事实上,如果不了解应用环境对数据的处理要求,或没有考虑如何去实现这些处理要求,是不可能设计一个良好的数据库结构的。

2.需求分析

需求分析简单地说就是分析用户的要求。需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。

1) 需求分析的任务。

需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,确定新系统功能的同时,收集支持系统目标的基础数据及其处理方法。需求分析是在用户调查的基础上,通过分析,逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。

调查的重点是“数据”和“处理”,通过调查要从用户那里获得对数据库的下列要求:(1) 信息需求。定义所设计数据库系统用到的所有信息,明确用户将向数据库中输入什么样的数据,从数据库中要求获得哪些内容,将要输出哪些信息,也就是明确在数据库中需要存储哪些数据,对这些数据将做哪些处理等,同时还要描述数据间的联系等。(2) 处理需求。定义系统数据处理的操作功能,描述操作的次序,包括操作的执行频率和场合,操作与数据间的联系,还要明确用户要完成哪些处理功能,每种处理的执行频度,用户需求的响应时间以及处理的方式(比如是联机处理还是批处理)等。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载