课程设计指导书
第1章 概述
案例教学的特点:
1) 项目运作方式。案例教学通过指导学生参与一个实际的项目开发使其能够了解整个软件
项目开发的过程,了解项目整个开发过程中所涉及到的文档,了解项目代码的书写规范。 2) 任务驱动教学。通过使学生完成具体的任务,让他们可以掌握实际工作中需要的技能和
方法。案例教学同时覆盖了所对应课程的必要知识点,也是对课本内容很好的回顾。SQL Server 2005数据库程序设计案例是配合《SQL Server 2005数据库开发和实现》课程展开的,除应用到本门课程的知识外,还会帮助学生强化以前学到的知识,真正将知识转化为实际的技能。 3) 不占用教学课时。教师指导学生在课外时间逐步完成整个案例设计,也可以在学期结束
后增加一个小学期集中完成。学生最好在同一个实验环境中完成开发任务,如果没有条件的话,也可以在宿舍或家中完成学习任务。
目的
培养学生独立开发一套完整的数据库系统的能力。该案例教学要求学生从信息收集开始,逐步进行系统需求分析、数据库设计、编码及调试、数据库维护等任务。
内容
本案例为一个校友录系统。校友录网站功能共分为两大部分:用户个人信息功能和班级功能。用户个人信息功能中包含:创建新账号(包含用户个人信息)、编辑用户个人信息以及上传更新用户个人头像。班级功能中包含:搜索班级、创建学校、创建班级、加入班级、班级留言、班级相册、上传相册以及相册留言等功能。该校友录系统的前台网站是使用ASP.NET开发,后台系统采用SQL Server 2005作为数据库,学生将通过实施该数据库解决方案,学习到网站应用程序架设的全过程,掌握数据库系统的开发、实现和维护,同时学生还将了解到如何结合SQL Server 2005和ASP.NET来开发一套数据库应用程序。
第2章 数据库的生命周期
在企业中部署数据库,需要遵循严格的项目流程。通常,项目流程会被细化为若干个阶段的工作,并且这些工作是周始往复的,这种流程被称作生命周期,如图2-1所示。
图 2-1 数据库的生命周期
在信息收集阶段,必须了解系统中数据的组成,确定所需的数据是已经存在还是需要新建。如在我们的校友录系统中,需要确定系统的使用者,他们对系统的功能要求(如可留言、可上传相片)等。这一阶段,系统调研人员必须详尽了解系统使用者对于系统的功能要求。
需求分析的主要任务是:详细调查现实世界要处理的对象(组织、部门、企业等);充分了解系统的概况;明确用户的各种需求;确定系统的功能。这一阶段我们将根据用户的描述将校友录系统的总体功能划分为两个子功能模块:用户个人信息功能模块和班级功能模块。用户个人信息功能模块中包含:创建新账号(包含用户个人信息)、编辑用户个人信息以及上传更新用户个人头像。班级功能模块中包含:搜索班级、创建学校、创建班级、加入班级、班级留言、班级相册、上传相册以及相册留言等功能。
设计阶段可划分为:概念结构设计阶段,逻辑结构设计阶段和物理结构设计阶段。概念结构设计是整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体数据库管理系统(DBMS)的概念模型。对于我们的校友录系统,就是要确定哪些可以做为实体,哪些做为属性以及确定实体间的联系,并设计出E-R图。逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型。这里我们把E-R图转换为关系模式。物理设计阶段是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
在部署和试运行阶段,运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编写与调试应用程序,组织数据入库,并进行试运行。同时预估数据库系统的工作量,确定系统的安全性,预期系统的存储和内存需求;然后把新的数据库从测试环境中迁移到实际环境中进行使用。
当系统开始运行之后,需要持续地负责保证系统的可用性、进行性能的监视、性能调优
(此部分不在本案例讨论范围)、进行数据备份和恢复,同时进行权限的管理。
但是,任何一个数据库是不可能保持不变的,因为实际的业务、IT架构都会不断的改变,当系统需要进行维护的时候,需要根据收集到的信息再次重复整个生命周期的流程。最后,需要确定数据库的最终状态;确定某些数据是否需要继续保存;是否有新的应用程序需要额外的数据;系统是否对数据有着更多的保密需求;是否需要在应用程序终止使用后,保存相应的数据。
如上所述,数据库专家需要在这样的生命周期中不断地维护数据库的整个环境。后面的几章,我们将按照图中数据库生命周期的各个阶段,逐步完成整个系统的设计。
第3章 需求分析和数据库设计
需求分析是整个数据库设计过程中最重要的步骤之一,是后续各阶段的基础。它包含这样几个步骤:收集资料、分析整理、绘制数据流图、建立数据字典和用户确认。数据库设计又可分为概念设计、逻辑设计和物理设计。接下来将简要的介绍一下收集资料到逻辑设计阶段(为了简化设计,我们略过数据流图和数据字典,并假定此系统通过了用户确认)。
信息收集和需求分析
通常,校友录网站的操作流程如下所示:
1. 新用户通过注册系统,获得用户登录账号。同时发送用户账号信息以及个人信息
到后台数据库相关表进行存储。
2. 注册用户可修改登录密码、个人信息及个人头像,并将数据发送到后台数据库相
关表进行更新。
3. 注册用户可通过搜索功能进行同学、班级以及学校搜索,并可加入搜索到的相关
班级,同时将相关数据发送到后台数据库相关表进行更新。如果没有搜索到学校或班级,则可创建新的学校或班级。
4. 用户登录进入校友录后,可以通过数据库的查询列举所加入的所有班级。
5. 班级成员可在班级首页的留言板或班级留言板中进行留言,同时发送相关留言信
息到后台数据库相关表进行存储。
6. 班级成员可在上传照片页面中上传相片到所属的所有班级,同时发送相关留言信
息到后台数据库相关表进行存储。
7. 班级成员可在班级相册页面内对照片进行评论,同时发送相关评论信息到后台数
据库相关表进行存储。
概念设计——E-R图
概念模型用于信息世界的建模。概念模型不依赖于某一个数据库管理系统(DBMS),但可以方便的转换为计算机上某一DBMS所支持的特定的数据模型。通过对用户对数据的需求进行综合、归纳与抽象,将形成一个完善的概念模型,可以用E-R(实体联系)图来表示。E-R图是对现实世界的一种抽象,它的主要成份是实体、属性和联系。
1. 实体:客观存在并可以互相区分的事物称为实体,是现实世界中各种事物的抽象。
如本案例中一个班级为一个实体。一般来说,每个实体都相当于数据库中的一个表。实体用一个矩形框来表示。
2. 属性:属性是实体所具有的某些特征,通过属性对实体进行刻画。实体是由属性组
成的,如班级有班级名称、创建人等属性。一个实体本身具有许多属性,能够唯一标识实体的属性称为该实体的码。属性用一个椭圆来表示,本案例中,为使E-R图清晰直观,我们将属性内置于实体的矩形框中。 3. 联系:现实世界的事物内部或事物之间都有联系,这些联系在信息世界里反映为实
体内部或实体之间的联系,如班级属于某个学校,那么班级和学校之间是“属于”联系。联系有一对一联系,一对多联系和多对多联系,分别用1:1、1:n和m:n来表示。如一个登录用户名只能填写一份个人资料,那么登录用户和个人资料就是一对一联系;一个班级只能属于一个学校,而一个学校可以拥有多个班级,学校和班级之间就是一对多联系;一个班级可以有多张相片,而一张相片也可为多个班级所拥有,所以班级和相片之间是多对多联系。联系用菱形表示,并用线段联接相关
的两个或多个实体,在菱形两端线段上标明联系的类型。
逻辑设计
概念设计的结果得到一个与计算机、软硬件的具体性能无关的全局概念模式。数据库逻辑设计的任务是将概念结构转换成特定DBMS所支持的数据模型(如关系模型)的过程。本案例中我们将其转换为关系模型。 将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式,这种转换一般遵循如下原则:
? 一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的关键字就是关
系的关键字。
? 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端实体所对应的关
系合并,在被合并关系中增加属性,其新增的属性为联系本身的属性和与联系相关的另一个实体的码。
? 一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。如果与n端的关系模式合并则在n端实体集中增加新属性,新属性由联系对应的1端实体集的码和联系自身的属性构成,新增属性后原关系的码不变。
? 一个m:n联系转换为一个关系模式,与该联系相连的各实体的码以及联系本身具
有的属性均转换为关系的属性,而关系的码为各实体码的组合。
任务布置
1. 根据3.1节的需求分析,作出E-R图(可使用Microsoft Office Visio 2003工具)。 2. 把3.2节的E-R图转换为关系模式(每一实体和多对多联系转换为关系模式)。