数据库系统原理实验_第1页
数据库系统原理实验_第2页
数据库系统原理实验_第3页
数据库系统原理实验_第4页
数据库系统原理实验_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《数据库系统原理》实验指导信息管理系2010.9背景知识介绍学籍管理是学校管理中一项繁琐的工作,管理人员需要建立学生的学籍,汇总每学期没有拿到规定学分的学生以及这些学生的详细情况;学生完成一门课程的学习后,教师需要录入学生的考试成绩,计算平均成绩、汇总各分数段的人数,学生需要查询已结业的各门课程的成绩;班主任需要查询本班学生学习情况,包括各门课程的平均成绩和每个学生的考试通过情况,为此,设计一套实用的学籍管理系统就可以大大简化管理人员、班主任和任课教师的工作,方便学生查询自己的学习情况。该系统主要实现的功能如表1所示。表1学籍管理主要功能表序号功能名称功能说明1学生管理登记学生的基本信息,并提供查询的功能2课程管理登记课程的基本情况,提供查询功能3教师管理登记教师的基本信息,提供查询统计功能4成绩管理登记各门课程的考试成绩,提供查询统计功能5授课管理登记教师授课情况,提供查询功能6编码维护维护系统中使用的编码学籍管理基本情况:一个学院包含多个班级和多名教师,每个班级包括多名学生,根据学校规定,一个班级只有一个班主任,一个老师也只担任一个班级的班主任,一个学院有多名班主任,学院的属性有学院编号和学院名称,班级的属性有班级编号和班级名称,学生的属性有学号、姓名、性别和出生日期;每个学生可以选修多门课程,每门课程也可以被多个学生选修,学生选修课程后参加考试会有考试成绩,一个教师可以讲授多门课程,每一门课程也可以有多个教师讲授,教师授课要考虑授课地点以及授课的学期,一个教师可以受聘一种职称,一个职称可以聘任多个教师,每门课程属于一种课程类型,而每种课程类型可以包含很多门课程,每门课程最多只有一门先修课程。课程的属性包括课程编号、课程名称、课程介绍、开设学期、总学时、学分以及先修课程,教师的属性有教师编号、姓名、性别、出生日期、参加工作时间,职称的属性有职称编号和职称名称,课程类型的属性有课程类型编号和课程类型说明。实验一学籍管理概念结构设计1、实验目的1)熟练掌握概念结构设计的方法2)熟练掌握PowerDesigner进行CDM设计及检测CDM模型的方法2、实验内容PowerDesignerCDM可以描述概念结构,根据前面对学籍管理基本情况的描述,使用PowerDesigner进行学籍管理CDM设计。3、实验步骤1)选择filenewmodelConceptualDataModel,建立CDM模型(即概念数据模型)。2)创建实体,在CDM的图形窗口中,单击设计元素面板上Entity工具(实体),再单击图形窗口的空白处,在单击的位置就出现一个实体符号。点击Pointer工具或右击鼠标,释放Entitiy工具。如图1-1所示。图1-13)双击创建的实体符号,打开图1-2所示窗口,在此窗口“General”标签中可以输入实体的名称、代码、描述等信息。图1-24)添加实体属性:上述窗口的“Attributes”选项标签可以添加属性,如图1-3所示。图1-3其中:P列表示该属性是否为主标识符;D列表示该属性是否在图形窗口中显示;M列表示该属性是否为强制的,即该列是否为空值。5)设置检查约束如果需要给某些属性设置检查约束,首先选中某属性,然后鼠标点击图1-4红色矩形框所示按钮,或者双击属性,打开对话框,选StandardChecks标签,如图1-5所示。图1-4图1-5在这个选项卡可以定义属性的标准检查约束,窗口中每项的参数的含义,如表2所示。表2对话框中参数的含义参数说明Minimum属性可接受的最小数值Maximum属性可接受的最大数值Default属性不赋值时,系统提供的默认值Unit单位,如公里、吨、元Format属性的数据显示格式Lowercase属性的赋值全部变为小写字母Uppercase属性的赋值全部变为大写字母Cannotmodify该属性一旦赋值不能再修改ListOfValues属性赋值列表,除列表中的值,不能有其他的值Label属性列表值的标签6)建立联系:在图形窗口中创建两个实体后,单击Relationship工具,单击一个实体,在按下鼠标左键的同时把光标拖至别一个实体上并释放鼠标左键,这样就在两个实体之间创建了联系,右键单击图形窗口,释放工具。双击联系图标,打开窗口如图1-6所示。图1-6如果联系具有属性则使用associationLink工具。7)验证CDM的正确性toolsCheckModel,打开图1-7所示窗口,选择要检测的内容,单击确定。检查结果包括警告和错误,警告不影响生成PDM(物理模型),有错误则不能生成PDM。图1-7实验二学籍管理逻辑结构和物理结构设计1、实验目的1)熟练掌握E-R图转换为关系模式的方法2)掌握使用PowerDesigner将CDM转化为PDM的方法3)掌握设计视图的方法2、实验内容1)PowerDesigner中的PDM可以描述逻辑结构和物理结构,选择SQLServer2000为DBMS,使用PowerDesigner进行学籍管理PDM的设计。两种方法可以实现,一种方法是直接使用PDM设计元素进行设计,另一种方法是直接将CDM转换为PDM。2)设计用户自模式(视图)。为学籍管理人员建立如下子模式:学生基本情况(学号,姓名,性别,班级,学院,获取总学分)为学生建立如下子模式:考试通过基本情况(学号,姓名,班级,课程名称,成绩)为教师建立如下子模式:选修学生情况(课程编号,学号,姓名,班级,学院,平均成绩)授课效果(课程编号,选修学期,平均成绩)3、实验步骤:1)toolsGeneratePhysicalDataModel。如图2-1所示。从DBMS下拉列表框选择MicrosoftSQLServer2000,选择Share单选按钮,单击OK即可。图2-12)创建视图从设计元素面板上选择视图(view),在设计区创建一个视图,双击该视图,进入如图2-2所示界面,创建视图一般需要设置“General”选项卡中的属性和图2-3所示“SQLQuery”选项卡中的SQL语句。图2-2图2-3实验三学籍管理数据库实施1、实验目的1)熟练掌握数据库实施的内容。2)使用PowerDesigner生成数据库脚本并自动创建数据库,熟练掌握利用PowerDesigner进行数据库实施的方法。2、实验内容使用PowerDesigner生成学籍管理数据库及其对象的创建脚本并自动创建数据库,进行学籍管理数据库实施。3、实验步骤1)选择Database->GenerateDatabase。如图3-1所示。设置directory和filename,单击确定。图3-12)执行脚本,生成数据库对象。首先启动SQLServer2000,建立数据库。PowerDesigner提供两种方法执行脚本,一种是在SQLServer2000中手工执行脚本,生成数据库对象,还有一种是通过ODBC连接数据库口自动执行。前一种方法很简单,我们重点说一下后一种方法。3)通过控制面板管理工具中的ODBC数据源先创建好数据源,然后Database->connect,如图3-2所示,下拉列表中选择创建好的数据源名称,单击connect。图3-24)Database->executeSQL,如图3-3所示。图3-3打开要执行的脚本文件,单击run即可。5)产生测试数据。Database->generatetestdata。实验四学分学期转换函数设计1、实验目的通过韩式的编写与调试,熟练掌握SQL函数的编写、调试与使用方法。2、实验内容1)编写学分转换函数,将考试成绩转换为学分。2)编写学期转换函数。3、实验步骤1)学分转换函数功能要求:在学籍管理中,根据学生选修课程的成绩,查询所获得学分情况。如果成绩大于等于60,则可以获得该课程的学分,否则所得学分为0。入口参数:成绩和课程学分。返回值:应得学分。参考:Createfunctioncreditconvert(@scorenumeric(3,1),@ccreditsnumeric(3,1))--@score:考试成绩--@numeric课程规定学分Returnsnumeric(5,2)--应得学分AsBeginReturnCasesign(@score-60)When1then@ccreditsWhen0then@ccreditsWhen-1then0Endend2)学期转换函数功能要求:在学籍管理系统中,没门课程都会规定学期(如学生入学后第4学期)开课,而入学时间不同,对应的具体开课时间也不同。如2010-2011-1对应于08级的同学应该是第5学期,该函数的作用既是实现将形如“2010-2011-1”的学期表示形式转换为5的其表示形式。入口参数:学年和入学年份返回值:数字表示的学期。参考:Createfunctiontermconvert(@tremchar(11),@clnochar(6))--@trem:学年--@clno:班级编号Returnsint--在校第几学期AsBeginreturn(convert(numeric,substring(@trem,1,4))-convert(numeric,’20’+substring(@clno,1,2)))*2+convert(numeric,substring(@trem,11,1))end实验五存储过程设计1、实验目的熟练掌握存储过程的编写、调试与使用方法。2、实验内容1)编写汇总平均成绩的存储过程,实现自动汇总某学期各班平均成绩、每个同学的平均成绩及所获得学分。3、实验步骤1)汇总平均成绩的存储过程入口参数:学期算法:建立班级的游标,使用循环结构,根据班级编号中的入学年份和入口参数(如“2010-2011-1”表示的学期),通过学期转换函数,使用选课表、课程表、班级表和学生表查询班级在本学期开设的所有课程的平均成绩。如果平均成绩是0,说明本班所有课程成绩没有登记;否则汇总本班级每个学生在本学期的所有课程平均成绩。处理完一个班级后,通过游标处理下一个班级。参考:Createprocedurep_averagescore@tremvarchar(11)--入口参数:学期AsBeginDeclare@cnovarchar(5)--课程编号Declare@clnamevarchar(30)--班级名称Declare@clnovarchar(6)--班级编号Declare@avgscorenumeric(10,2)--平均成绩Declare@ctermint--学期--定义班级游标Declareclass_cursorcursorforselectclname,clno,dbo.termconvert(@term,clno)fromclasswheredbo.termconvert(@term,clno)<=8--过滤掉已经毕业的班级Openclass_cursorFetchnextfromclass_cursorinto@clname,@clno,@ctermWhile@@fetch_status=0BeginSet@avgscore=(selectisnull(avg(score),0)fromsca,studentb,classc,coursedwherea.sno=b.snoandb.clno=c.clnoandb.clno=@o=oandd.cterm=@cterm)--根据班级平均成绩判断该班的成绩是否登记,如果平均成绩>0,则计算每名学生的平均成绩If@avgscore>0BeginPrint@term+’学期’+@clname+’各门课程总平均成绩为’+str(@avgscore,5,1)--每个学生的平均成绩和获得的学分Print‘该班每个学生的平均成绩如下:’Selecte.sname,d.avgscore,totalcreditfrom(selecta.sno,avg(score)avgscore,sum(dbo.creditconvert(score,ccredits))totalcreditfromstudenta,scb,coursecwherea.sno=o=oandc.cterm=@ctermgroupbua.sno)d,studente,classfWheree.sno=d.snoande.clno=f.clnoandf.clno=@clnoEndElsePrint@term+’学期’+@clname+’成绩没有登记’Fetchnextfromclass_cursorinto@clname,@clno,@ctermEndCloseclass_cursorDeallocateclass_cursorend思考题编写统计某班某课程不同分数段的人数和平均成绩的存储过程。入口参数:课程编号、班级编号算法:统计不同分数段,需要使用循环结构,每次统计一个分数段的人数,然后调整下一个分数段的区间,最后汇总平均成绩。实验六触发器设计1、实验目的掌握触发器的编写和调试方法2、实验内容在成绩表上增加修改学分的触发器,实现修改成绩时自动修改学生的学分。3、实验步骤1)变更一下学生表的结构,增加总学分字段2)编写触发器。参考:Createtriggert_tcreditsonscforinsert,update,deleteAsDeclare@tcreditsnumeric(4,0)--总学分Declare@snochar(5)--学号Declareinsert_cursorcursorforselectsnofrominsertedDeclaredelete_cursorcursorforselectsnofromdeletedBegin--处理删除记录Opendelete_cursorFetchnextfromdelete_cursorinto@snoWhile@@fetch_status=0BeginS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论