本书采用项目导向的形式编写,以任务为核心,由任务驱动,选择学生比较熟悉的“学生管理数据库系统”的案例来组织教学内容,通过对连贯的项目、具体任务的介绍,可以较容易地掌握相关知识并且形成系统概念,易学易会。
本书通过对学生管理数据库关系模式的设计,数据库的创建和管理,表和记录的操作,数据的查询,视图的管理等12个项目循序渐进地展开教学内容。主要介绍了学生管理数据库的创建和管理,同时也介绍了数据库的Web应用,将一个以数据库为后台数据中心的Web应用系统有序地展示在读者面前,从而帮助读者逐步实现系统分析、设计和应用数据库的能力。
本书可以作为应用型本科、高职高专以及成人教育相关课程的教材,也是一本很好的自学教材和参考书。
项目一 掌握数据库基础知识 1
任务一 学生管理数据库系统基本需求 2
任务二 数据库基础知识 7
任务三 数据库系统的结构 14
任务四 初步认识SQL Server 2005 24
项目小结 37
上机实训 37
习题 39
项目二 设计数据库关系模式 43
任务一 认识关系数据库 44
任务二 数据库设计步骤 60
任务三 使用E-R模型设计数据库模式 69
项目小结 74
上机实训 74
习题 75
项目三 创建和管理数据库 77
任务一 创建数据库 79
任务二 查看数据库 87
任务三 修改数据库 90
任务四 删除数据库 94
任务五 分离或附加数据库 95
任务六 备份或还原数据库 99
项目小结 105
上机实训 105
习题 106
项目四 创建和管理数据库表 107
任务一 创建数据库表 108
任务二 设计表数据完整性 117
任务三 修改数据库表 126
任务四 删除数据库表 131
任务五 创建和管理索引 133
项目小结 141
上机实训 141
习题 143
项目五 编辑数据库表记录 147
任务一 插入记录 148
任务二 更新记录 152
任务三 删除记录 155
任务四 数据的导入和导出 157
项目小结 168
上机实训 168
习题 169
项目六 数据查询 171
任务一 基本查询 173
任务二 连接查询 189
任务三 子查询 197
任务四 集合查询 203
项目小结 205
上机实训 206
习题 207
项目七 创建和管理数据库视图 209
任务一 创建视图 210
任务二 系统存储过程在视图中的
应用 217
任务三 修改视图 220
任务四 删除视图 223
任务五 使用视图 225
项目小结 228
上机实训 228
习题 229
项目八 数据库编程基础 231
任务一 Transact-SQL基础 232
任务二 表达式 236
任务三 流程控制 241
任务四 函数 246
项目小结 262
上机实训 262
习题 263
项目九 创建和管理数据库存储过程 265
任务一 创建存储过程 266
任务二 执行存储过程 275
任务三 修改存储过程 282
任务四 查看存储过程 283
任务五 删除存储过程 288
项目小结 289
上机实训 290
习题 291
项目十 创建和管理触发器 293
任务一 创建DML触发器 295
任务二 管理DML触发器 303
任务三 创建和管理DDL触发器 307
项目小结 311
上机实训 312
习题 312
项目十一 安全管理数据库 315
任务一 身份验证管理 316
任务二 权限管理 322
任务三 角色管理 332
项目小结 346
上机实训 346
习题 348
项目十二 数据库综合应用案例 349
任务一 创建应用程序项目文件 351
任务二 数据组件的设计和使用 365
任务三 用户页面设计 374
任务四 通过ASP.NET页面操纵
数据库 382
项目小结 393
上机实训 393
习题 394
习题参考答案 395
参考文献 399
项目一
掌握数据库基础知识
项目导入
数据库技术是信息处理的基础,它不仅反映数据本身所代表的基本信息,还反映数据之间的联系,是相关数据的集合。数据库技术是计算机领域发展最快的学科之一,目前,数据库技术已从第一代的网状、层次数据库系统,第二代的关系数据库系统,发展到以面向对象模型为主要特征的第三代数据库系统。其中建立在关系模型基础上的关系数据库是当前最流行的、应用最广泛的数据库,当前所开发的基于数据库的应用系统基本上都是关系数据库。
因此,在本项目中,首先对数据库的基础知识进行初步的讨论,然后对数据库开发所使用的平台SQL Server 2005再作概括介绍。
项目分析
数据库技术是为了解决计算机信息处理过程中大量数据有效地组织和存储的问题,在数据库系统中减少数据存储冗余、实现数据共享、保障数据安全以及高效地检索数据和处理数据而设计的,所以,数据库是相关数据的集合。
本教材中以“学生管理数据库系统”为教学案例,以关系数据库技术作为基础,不但需要对数据库的基础理论有一定的了解,同时还需要掌握一种数据库开发平台,即数据库管理系统(DBMS)的使用方法,才能在开发平台上有效地开发出一个实用的学生管理数据库系统。因此,本项目将包括数据库的基础知识介绍和数据库开发平台SQL Server 2005的使用能力训练两部分内容。
能力目标
* 了解学生管理数据库的基本需求。
* 了解数据管理技术的3个阶段。
* 掌握数据库、数据管理系统和数据库系统的基本概念。
* 掌握SQL Server数据库的基本组成和有关知识。
知识目标
* 能根据实际环境进行数据库应用系统的需求分析和功能设计。
* 具备使用数据库理论分析相关信息抽象数据的能力。
* 了解并掌握数据库开发平台SQL Server 2005的概况和基本设置方法。
任务一 学生管理数据库系统基本需求
【任务要求】
根据学生管理的工作流程,对学生管理数据库系统进行整体分析与规划。
* 分析学生管理数据库系统的整体需求,掌握需求分析的基本方法。
* 规划学生管理数据库系统应具备的功能模块。
【知识储备】
一个数据库应用系统的开发设计通常要经历多个环节,简单地说可以分为对应用系统前台应用界面(应用层)和后台数据库(数据层)两个部分的设计,每一部分的设计都是一个庞大、复杂的工程,因此,通常都是结合软件工程的原理和方法进行数据库软件的设计。从一个应用软件开发的角度讲,一般一个数据库应用系统的开发流程如图1-1所示。
图1-1 数据库应用系统开发流程
就数据库系统的规划设计来讲,一般设计过程包括需求分析、数据库概念结构设计、数据库逻辑结构设计、数据库物理结构设计、数据库实施及数据库的运行维护6个环节。设计一个数据库应用系统,首先要对系统的应用环境进行分析,掌握用户需求,这是整个开发的基础。需求分析的准确与否,关系到数据库应用系统的开发质量,本任务将主要讨论学生管理数据库系统的需求分析环节。
1. 需求分析的任务
需求分析是指在开发设计开始阶段,收集用户的功能要求,了解系统的应用环境,对需要使用的数据进行收集整理,建立起一个完整数据集的过程。比如系统的用户种类、相关应用的历史数据、有关表单资料的查阅以及实际运作流程等,从而得出所开发系统功能的运行过程。
用户需求包括数据需求和处理需求两部分。数据需求是指数据库中存储哪些数据结构;处理需求是指用户要完成什么处理功能,以及对这些处理的响应时间、处理方法等有什么要求。
需求分析阶段的任务主要包括以下几个方面。
(1) 分析用户活动,产生业务流程图。
了解用户当前的业务活动和职能,理清其处理流程。把用户业务分成若干个子处理过程,使每个处理功能明确、界面清楚,并画出业务流程图。
(2) 确定系统范围,产生系统范围图。
在和用户经过充分讨论的基础上,确定计算机所能进行数据处理的范围,确定哪些工作由人工完成,哪些工作由计算机系统完成,即确定人机界面。
(3) 分析用户活动所涉及的数据,产生数据流图。
深入分析用户的业务处理,以数据流图形式表示出数据库的方向和对数据所进行的加工。数据流图有四个基本成分:数据流、加工或处理、文件、外部实体。
(4) 分析系统数据,产生数据字典。
数据字典提供对数据库时间描述的集中管理,其功能是存储和检索各种数据描述。数据字典是数据收集和数据分析的主要成果,在数据库设计中占有很重要的地位。
2. 需求分析的方法
调查了解了用户的需求以后,还需要进一步分析和表达用户的需求。用于需求分析的方法有很多种,主要的方法有自顶向下和自底向上两种,其中自顶向下的结构化分析方法(Structured Analysis,SA)是一种简单实用的方法。
1) SA方法
SA方法是从最上层的系统组织入手,采用自顶向下、逐层分解的方法分析系统。SA方法把每个系统都抽象成图1-2所示的数据流图形式。
图1-2 系统最上层的数据流图
在SA方法中,处理过程的处理逻辑常常借助判定表和判定树来描述,系统中的数据则借助数据字典(DD)来描述。
2) 数据流图
数据流图(Data Flow Diagram,DFD)表达了数据与处理的关系。数据流图中的基本元素如下。
(1) 圆圈符:表示处理,输入数据在此进行变换产生输出数据。在其中注明处理的名称。
(2) 矩形符:描述一个输入源点或输出汇点。在其中注明源点或汇点的名称。
(3) 箭头:命名的箭头描述一个数据流。内容包括被加工的数据及其流向,流线上要注明数据名称,箭头代表数据流动的方向。
(4) 右开口矩形框:向右开口的矩形框表示文件和数据存储,要在其内标明相应的具体名称。
3) 数据字典
数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是各类数据结构和属性的清单。它与数据流图互为解释,数据字典贯穿于数据库需求分析直到数据库运行的全过程。在不同的阶段,其内容形式和用途各有区别,在需求分析阶段,它通常包含以下5个部分的内容。
(1) 数据项。
数据项是不可再分的数据单位,通常包括数据项名、含义、别名、类型、长度、取值范围以及与其他数据项的逻辑关系。
(2) 数据结构。
数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。它包括数据结构名、含义及组成该数据结构的数据项名或数据结构名。
(3) 数据流。
数据流可以是数据项,也可以是数据结构,它表示某一加工处理过程的输入或输出数据。数据流包括数据流名、说明、流出的加工名、流入的加工名以及组成该数据流的数据结构或数据项。
(4) 数据存储。
数据存储是处理过程中要存储的数据,它可以是手工凭证、手工文档或计算机文档。数据存储包括数据存储名、说明、输入数据流、输出数据流、数据量、存取频率和存取方式。
(5) 处理过程。
处理过程包括处理过程名、说明、输入数据流、输出数据流,并简要说明处理工作、频度要求、数据量及响应时间等。
最终形成的数据流图和数据字典是“系统需求分析说明书”的主要内容,是下一步进行概念结构设计的基础。
在本任务中,从项目准备的角度,对学生管理数据库系统先做一个整体的概括分析,对学生管理数据库中所需要准备的数据及其相关理论进行一个框架层面上的了解,为后续进行数据库规划和应用开发做好充足的知识和技能上的准备。
【任务实施】
学生管理数据库系统,具有不同的用户群体,不同的用户群体又对数据有着不同的需求,正确地分析相应用户的要求并恰当地将其表达出来,是学生管理数据库系统设计的起始工作。在本任务实施前,首先要对用户环境进行准确的分析。
1. 用户类型分析
学生管理数据库系统通常的用户为学生、教师和教学管理人员。不同的用户有不同的信息查询和信息管理要求。学生管理数据库系统,应便于应用系统的管理员对数据库中的基本信息数据进行管理和维护,教师用户能够对基本信息进行查询并对部分信息进行更新管理,学生对与自己相关的数据可以进行查询,对个人的基本信息可以进行维护。
2. 功能需求分析
学生管理数据库系统其主要功能是实现基础资料、学生管理、课程管理和成绩管理四大模块的管理。其中,基础资料中包括院系、班级、宿舍、教师基本资料的管理,还包括对记录的增加、删除、修改和查询;学生管理中,包括学生档案和学生学籍的管理,还包括对其中学生各个属性的增加、删除、修改和查询;课程管理中,包括对新的课程进行设置,以及对班级选课的管理;成绩管理中,包括对学生成绩的录入和对学生成绩进行分析管理。
【任务实践】
1. 设计完成学生管理数据库系统的数据流图
根据任务实施环节对学生管理数据库系统应用环境的分析,绘制学生管理数据库系统的数据流图,如图1-3所示。
图1-3 学生管理数据库系统的数据流图
2. 设计相关功能模块
根据功能需求分析的情况,确定学生管理数据库系统的功能模块。
(1) 基本信息管理:包括院系信息管理和专业信息管理等功能。
(2) 班级信息管理:包括班级信息管理和班级信息浏览等功能。
(3) 教师信息管理:包括教师信息录入和管理等功能。
(4) 学生基本信息管理:包括学生信息的录入、管理、查询以及导入、导出等功能。
(5) 系统维护:主要用于实现数据的备份、还原和清理功能。
(6) 用户管理:主要用于实现用户管理、更改密码等功能。
……