项目1 掌握数据库基础知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
项目一掌握数据库基础知识
项目导入
数据库技术是信息处理的基础,它不仅反映数据本身所代表的基本信息,还反映数据之间的联系,是相关数据的集合。
数据库技术是计算机领域发展最快的学科之一,目前,数据库技术已从第一代的网状、层次数据库系统,第二代的关系数据库系统,发展到以面向对象模型为主要特征的第三代数据库系统。
其中建立在关系模型基础上的关系数据库是当前最流行的、应用最广泛的数据库,当前所开发的基于数据库的应用系统基本上都是关系数据库。
因此,在本项目中,首先对数据库的基础知识进行初步的讨论,然后对数据库开发所使用的平台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 数据库应用系统开发流程 项目准备 需求分析
数据库 基本理论
数据库规划 数据库实施 系统维护 应用开发 概念结构设计 逻辑结构设计 物理设计 数据库实施 与维护 创建数据库 创建数据表 创建索引 与视图 应用开发案例
系统安全 数据维护
(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运行时的核心部分,它包括如下内容:
✧数据的并发控制
✧数据的安全性保护
✧数据的完整性控制
✧数据库恢复。