数据结构及数据库原理实验指导书孙毅浙江工业大学机电工程学院CAD研究所2OO1.7.1实验一:(数据结构)Hanoi塔问题求解1.知识辅导:堆栈问题是数据结构中二种主要的线性结构之一。其基本操作是线性表操作的子集,已广泛应用于各种软件产品中。栈操作主要发生在线性表的表尾进行插入或删除操作。其在计算机中的存储结构可利用数组或链表方式来实现。压栈及出栈操作可通过栈顶元素的变化来实现。从空间的合理应用及操作的便利方式上考虑,利用链表结构有利于计算机代码的管理与实现。2.实验目的通过对Hanoi塔问题的求解,复习并掌握数据结构中线性结构的存储结构实现方式、操作方法的实现,并培养软件编程实现过程中对程序模块的安全检测与控制能力。3.实验内容:设有A、B、C三根立柱(如图所示)和N个大小不等的中空圆盘从小到大依次编号(1,2,3,……,N)已在A柱上堆成塔形,试将此盘全部移至轴,且按原样迭成塔形。在移动中有如下限制:每次只能移动一个圆盘;123ABC2任何时候均不得大盘压在小盘中;圆盘只允许套在A、B、C三根立柱上。4.实验思考说明:该问题可归结为三个子任务:(1)将1~N-1号盘移至B轴。移动时C轴作辅助轴;(2)将N号盘由A轴移至C轴;(3)再将号盘从B轴移动至C轴,A轴作辅助轴。其中:(2)只需移动一次完成;(1)和(3)与原问题的提法完全相同,只不过圆盘数量少1个,且A、B、C三个立轴的作用也有所不同。可设计一个过程:movetow(height,from,to,using);/*height表示圆盘的高度(号数),from表示圆盘移动的源轴,to表示目标轴,using表示辅助轴*/这样,Hanoi塔问题的求解就演变为下面三个过程操作:其中send(N,from,to)表示将N号盘从from轴移至to轴。5.实验安排:此实验安排在线性结构内容结束以后进行,学生在实验前应完成对实验内容内容预习,并掌握求解方法,写出完成Hanoi塔问题的程序代码。课内安排二课时的上机时间,主要解决代码的调试,程序的容错性检测。movetow(N,A,B,C)movetow(N-1,A,B,C)Send(N,A,C)movetow(N-1,B,C,A)3函数递归调用函数安全检测代码实现4实验二、(数据库系统原理)数据库系统实现1.前言数据库原理是一门理论和实践很强的课程。本课程的学习知识点要求掌握两方面内容:第一方面是数据库系统管理和设计理论,第二方面是完成一个具体系统的实现(上机实践)以巩固对本课程所学的知识。因此数据库的实验将主要围绕这上述两个方面进行。通过对网络环境下的相关数据库产品(WindowsNT4.0,SQLServer7.0)的学习、熟悉和了解,利用给出的一个具体问题,让学生通过对综合问题的分析,先进行书面设计要求达到3NF模式然后在RDBMS下设计,最后对数据库编程以达到利用高级语言处理数据库的目的。本部分内容的学习工作量比较大,对基础性知识的需求也较高,实验过程的可控性较差,因此,上机实验成为学生掌握所学知识的一个主要途径。上机过程与知识点的理论学习同步分阶段进行。2.实验内容:下面是某系统面向数据库需求的基本情况,根据系统的需求叙述完成各个实验阶段的内容:有学校教学工作流程如下:1、教师:工作证号、姓名、职称、办公室2、学生:学号、姓名、性别、专业、班级代码3、课程:课程代码、课程名称、学时4、班级:班级代码、班级名称、宿舍楼5、学生选课:学号、课程代码、成绩6、教师授课:工作证号、课程代码、教室、授课时间其中:一个学生可以选择多门课程,一门课程可以被多个5学生选择;一个教师可以教多门课程,一门课程也可以由多个教师来教。3.各阶段的实验内容:实验阶段1:实验要求:(1).找出各实体之间的联系、指出是各个实体间联系的类型,并利用E-R方法建立学校教学工作流程的实体联系模型。(2).试写出本系统的需求报告,画出E-R模型图并对该图作出说明。(如实体定义的依据、实体属性域的基本内容等)实验指导:数据库设计的第一个重要阶段是概念设计。在该阶段应首先根据实际的应用需求,对系统的研究对象:数据进行抽象,建立正确的数据模型(正确的数据结构、合理的数据操作、完备的数据约束)以保证数据库系统的安全与强壮。从客观应用到数据模型的抽象过程或分为三级:第一级抽象--概念模型:理解实体、实体集、属性、码、域、及联系等概念与数据项之间的对应关系。1976年P.P.P.Chen提出的E-R(EntityRalation)模型是学习数据库设计中最常用的模型,需重点加以理解与掌握:实体型:矩形+实体名;课程教师联系名参考书mn1实体型A实体型B联系名116属性:椭圆形,用无向线与实体相边;联系:菱形+联系名,无向边与实体相连,在边上标注联系的名称。第二级抽象--数据模型:(层次、网状)关系型数据模型是当前最常用的实用型数据库管理模型,典型的ORACLE、Syebase、SQLServer等系统都是关系型数据库数据管理模型。在进行数据库系统的概念设计时,应兼顾到其后以数据模型实现问题。实验方式:该部分的实验内容是下一步进行建立数据库结构的基础,可以教师在堂辅导或课外自习完成。实验内容名称E-R模型实验阶段2:逻辑数据库设计及数据录入71、逻辑数据库设计在分析产生E-R模型的基础上,根据E-R模型的实体及属性域完成建立逻辑数据库设计任务,主要有以下二个方面的任务:(1)是要建立与数据库表域相对应的逻辑表结构:如表1;(2)建立数据库中各表之间及域之间发生的关系模式。并在建表过程中加以实现。[表1]表名(实体名)主键(PK)相关表外键(FK)属性名类型(长度)缺省值约束关系是否为空注:以下页中按表1所示方式完成逻辑数据库表结构的设计任务。89(3)要求学生在QueryAnalyzer中利用CreateTable语句建立关系。CreateTable语句格式如下:CreateTable[dbo].[关系名]([属性名][类型](长度)[NULL|NOTNULL]...)ON[PRIMARY]GO指导:QueryAnalyzer是SQLServer系统软件中的一个查询设计器软件平台,可直接调用,也可通过Enterprisemanager环境下的tool功能进行调用。在运行过程中请注意首先正确选择(或建立)数据库才能执行上述操作。学习:也可利用Enterprisemanager环境进行数据库的表结构设计,再对其进行SQL语句生成,对系统自动生成的语句进行学习。2、数据录入数据录入有两种方式:一种是用VB和SQL语句编程序录入;另一种方式是在Enterprisemanager环境下录入。本实验要求学生在Enterprisemanager环境下录入。实验指导:Enterprisemanager是SQLServer数据库系统的主要可视化操作平台,几乎所有的数据库管理及控制操作均可通过该软件完成。有关此软件模块的使用请参考相关的参考文献可使用说明。步骤:1、进入Enterprisemanager;2、选择STUDENT数据库;3、选择Table项;4、选择所建立的表名开始录入数据.10实验阶段3:数据库查询(8学时)实验指导:数据库的系统结构从DBMS的角度看,通常采用三级模式:外模式、模式、内模式(如图所示)。外模式:又称为用户模式,是数据库用户可见和使用的局部数据的逻辑结构和特性描述,不同的用户可通过不同的外模式访问数据库。数据查询和视图是外模式在数据库实现中的具体手段。模式是数据库中全体数据的逻辑结构和特性描述,是全局性的共同数据逻辑结构,一个数据库只有一个模式;内模式是与实际存储结构有关的逻辑结构和数据描述,如存储方式,索引机制、加密方法等以内视图的方式表现出的存储模式。在本实验中,主要是熟悉在数据库环境下,对外视图的操作与控制。QueryAnalyzer是SQLServer数据库的查询处理器软件,SQL语句的操作与实现均可在此软件中进行。但其执行方式是以命令式的形式进行的,如下图所示为SQLServer方式下的三级模式实现机制:基本表、视图、数据文件是其主要的组成元素。通过以下的实验内容可学习与掌握SQL语言的语法及应用。重点掌握对各个组成元数据库内模式模式外模式1外模式2外模式3应用A应用B应用D应用E应用C外模式/模式映象模式/内模式映象11素的创建、修改及删除操作(见附表)。操作对象创建删除修改基本表(模式)CREATETABLEDROPTABLEALTERTABLE视图(外模式)CREATEVIEWDROPVIEW索引(内模式)CREATEINDEXDROPINDEX数据库CREATEDATEBASE实验内容:(1)。利用QueryAnalyzer查询数据库在QueryAnalyzer中,利用SQL语言完成下列查询并写出完整的SQL语句。查找选修“数据库”课程学生的学号、姓名和专业;查找选修“王老师”所授课程学生的学号、姓名;查找在“J200”教室上课的学生所在班级;查找给“计算机专业”上“数据结构”课程教师的职称;查找“C02学生所选课程授课教师的办公室;SQL视图1视图2基本表1基本表2基本表3基本表4存储文件1存储文件2存储模式模式外模式12查找选择“李老师”“早8:00”在“J280教室所开课程的学生专业和班级;完成上述的SQL查询,并将结果填入下的列表中查询序号名称内容1相关表名相关表间的关联SQL语句2相关表名相关表间的关联SQL语句3相关表名相关表间的关联SQL语句4相关表名相关表间的关联SQL语句135相关表名相关表间的关联SQL语句6相关表名相关表间的关联SQL语句查询结果粘贴处:(将上述六个查询结果数据的打印件附在此处,空间不够时,请折叠)14(2)。利用VB6.0编程序查询数据库在VB6.0中首先利用ODBC或ADO方式连接数据库;然后编程序设计一个人机交互界面,列出上述六个查询,将SQL语句嵌入VB6.0中完成数据库查询实验考核:实验考核采取实验报告和程序检验相结合的方式;1、实验报告:E-R模型图关系模型查询语句查询结果2、程序功能检验:在C/S架构下检验实验三的程序功能;实验要求通过对一个现实世界的应用问题的分析,学会利用数据库的理论知识(管理策略、数据组织方式、方案分析及规划以及数据库的逻辑组织及实现)正确分析问题、解决问题,并在完成分析及理解的基础上,完成若干数据库方面的实验内容:1、用E-R图方法设计概念数据库;2、用关系方法设计数据库模型;3、用SQLServer7.0建立关系数据库;4、利用VB6.0(或其它编程语言,如VC++、PowerBuild、Delphi等)等前端编程语言设计用户界面接口程序并完成对SQLServer7.0数据库管理。实验环境:数据库原理实验要求如下环境,服务器端:WindowsNT4.0网络、C/S结构的数据库服务器(SQLServer7.0)、VB6.0(或其它编程语言环境)。实验学时数:15课外4学时+上机20学时。