基于.sql的学生成绩管理系统 课程设计的报告报告_第1页
基于.sql的学生成绩管理系统 课程设计的报告报告_第2页
基于.sql的学生成绩管理系统 课程设计的报告报告_第3页
基于.sql的学生成绩管理系统 课程设计的报告报告_第4页
基于.sql的学生成绩管理系统 课程设计的报告报告_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、 .wd. .wd. .wd.一、实验题目学生证管理系统数据库的设计与实现描述:设计一个学生证管理系统。实现以下功能:1.录入某位学生的学生证信息2.给定学号,查询某位学生的学生证信息;3.给定班号,显示该班所有学生的学生证信息; 4.给定学号,修改该学生的学生证信息;5.给定学号,删除该学生的学生证信息;三、实验目的数据库课程设计课程实验是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节,通过实验到达深化理解和灵活掌握教学内容的目的,以及提高学生分析问题、解决问题的应用能力。同时,使学生的工作标准和科学作风得到培养。通过该课程的学习,要求学生能独立分析问题,

2、设计算法,实现程序的各项功能,得到正确的可执行程序,学会调试程序,对设计过程进展系统的总结。本实践课的主要目的:1、掌握运用数据库原理进展系统分析和设计的方法;2、掌握关系数据库的设计方法;3、掌握利用SQL Server 2000技术;4、熟悉各种SQL语句及对数据库的访问方法。四、实验要求1对各个系统进展系统功能需求分析2. 数据库设计分析阶段,进展详细的数据库需求分析,进展概念数据库的设计,画出数据库的E-R图局部和整体E-R图3. 设计出详细的逻辑数据库构造,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定4. 通过企业管理器

3、或是查询分析器实现各个二维关系建议最好用SQL代码实现,要求建设相关的索引5. 根据系统功能需求设计相应的查询视图6. 要求根据系统功能需求建设存储过程7. 根据功能需求建设相应的触发器以保证数据的一致性8. 通过建设用户和权限分配实现数据库一定的安全性,考虑数据库的备份与恢复五、实现思路一系统需求分析 需求分析师整个数据库设计过程的根基,要收集数据库所有用户的信息内容和处理要求,并加以规格化分析。这是最费时、最复杂的一步,但是也是最重要的一步,相当于待构建的数据库大厦的地基,它决定了以后各步设计的速度和质量。需求分析做的不好,可能会导致整个数据库设计返工重做。在分析用户需求时,要确保用户目标

4、的一致性。需求分析的任务是:对现实世界要处理的对象组织、部门、企业等进展详细的调查,通过对原系统的了解,收集支持新系统的根基数据并对其进展处理,在此根基上确定新系统的功能。具体地说,需求分析阶段的任务包括下述三项。1.调查分析用户活动2.收集和分析需求数据,确定系统边界3.编写系统分析报告在本课程设计中,是对学生证的信息进展管理,学生证的信息不仅包括学生本身信息,也包括系别的信息及注册学生证的相关注册信息,因此本课程设计中要用到三个表,即学生信息表、系别信息表和学生证注册表。对学生证信息的处理包括信息的录入、查询、修改及删除。1.数据流图: 录入、修改、查询、删除学生证 身份证明学生 注册2.

5、数据字典:数据字典是对系统中数据的详细描述,是各类数据构造和属性的清单。任何字典最主要的用途都是供人查阅不了解的条目的解释,数据字典的作用也正是在软件分析和设计过程中给人提供关于数据的描述信息。数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。只有数据流图和对数据流图准确的定义放在一起,才能共同构成系统的规格说明。 我们采用卡片形式书写数据字典,每张卡片上保存描述一个数据元素的信息。这种做法较好的实现了上述要求,特别是更新修改起来很方便,能够单独处理每个数据元素的信息。每张卡片上包含的信息有:名字,描述,定义,位置。1对学生信息的管

6、理编号1名称学生信息管理简述维护学生信息的完整性输入学生姓名、学号、班级号、出生年月、性别、民族、籍贯处理新增学生信息的录入修改学生信息删除学生信息记录查询个人学生信息及班级学生信息输出学生信息表2对系别信息的管理编号2名称系别信息管理简述维护系别信息的完整性输入系别名,班级号等处理1.新增系别信息的录入2.修改系别信息3.删除系别信息记录4.查询系别信息输出系别信息表3对学生证注册信息的管理编号3名称学生证注册信息管理简述维护学生证注册信息的完整性输入学号,注册日期,截止日期处理1.新增注册信息的录入2.修改注册信息3.删除注册信息记录4.查询注册信息输出注册信息表二概念构造设计概念构造设计

7、就是将需求分析得到的用户需求抽象为信息构造,即概念模型。概念模型作为概念构造设计的表达工具,为数据库提供一个说明性构造,是设计数据库逻辑构造即逻辑模型的根基。因此,概念模型必须具备以下特点:1语意表达能力丰富。2易于交流和理解。3易于修改和扩大。4易于向各种数据模型转换。1.局部E-R图: 学生信息表: 学生 姓名 学号 班级号 性别 出生年月 籍贯 民族 系别信息表: 系别 系别名 班级号 注册信息表: 注册信息 学号 注册日期 截止日期 2.全局E-R图: 系别 系别名 学生证 1 班级号 1 注册日期拥有 注册 截止日期 n 1 学生 姓名 学号 性别 出生年月 籍贯 民族三逻辑构造设计

8、数据库逻辑设计的任务是将概念模型转换成特定DBMS所支持的数据模型的过程。在本课程设计中,存在三个实体学生,系别,学生证,两个联系包含,注册,在学生实体中,学号作为其关键字;在系别实体中,系别名作为其关键字;而学生证的信息是由学生信息、系别信息及注册信息组成。因此得到以下关系模式:实体关系模式: 学生学号,姓名,性别,出生年月,籍贯,民族 系别系别名,班级号联系关系模式: 拥有系别名,学号 注册学号,注册日期,截止日期四物理构造设计数据库物理设计的任务是为上一阶段得到的数据库逻辑模式,即数据库的逻辑构造选择适宜的应用环境的物理构造,既确定有效地实现逻辑构造模式的数据库存储模式,确定在物理设备上

9、所采用的存储构造和存取方法,然后对该存储模式进展性能评价、修改设计,经过屡次反复,最后得到一个性能较好的存储模式。数据库物理设计内容包括记录存储构造的设计,存储路径的设计,记录集簇的设计。确定数据存放位置:一台装有Windows系统的计算机的C盘。确定存储构造:确定关系、索引、聚簇。六、实现过程一建表 在企业管理器中,新建数据库,并设置名为student。在该数据库中创立三个表,即学生信息表、系别信息表和注册信息表,分别命名为S,D,C。首先设计学生信息表S,包括以下属性,及各属性的数据类型和长度:含义标识数据类型长度约束姓名stu_namevarchar30Not null学号stu_noc

10、har10Not null,primary key班级号class_nochar6Not null性别stu_sexchar2出生年月stu_birthdaydatetime8民族stu_nativechar10Default 汉籍贯stu_birthdayvarchar30系别信息表D:含义标识数据类型长度约束系别名deptvarchar30Not null班级号class_nochar6注册信息表C:含义标识数据类型长度约束学号stu_nochar10Not null,primary key注册日期login_datedatetime8Not null截止日期validity_dateda

11、tetime8Not null 在设计表后即可向表中添加数据,在添加时要注意各项的约束条件及数据长度限制。二设置安全性及用户权限1.在企业管理器中,安全性一项中,新建登录。1设置登录名为ll,并设置SQL server身份验证密码,及默认登录的数据库为student。2设置该登录用户的服务器角色为:System Administrators。3设置该登录用户均可访问所有数据库。 2.编辑SQL server注册属性。1选择使用SQL Server身份验证。2设置登录名ll及密码。 3选择总是提示输入登录名和密码。3.在student数据库中,为用户设置权限。1设置用户ll的数据库角色为:pub

12、lic和db_owner。2设置ll的用户权限,即对S,D,C三个表均能够Select,Update,Delete,Insert和DRI。三创立学生证视图创立学生证信息的视图,从三个表中选择学生证所需信息,以便对视图以外的数据进展保密,简化了查询操作,并保证了数据的逻辑独立性。以下创立视图Stu_card,连接D表,C表和S表,选择所需数据项组成视图。CreateviewStu_card(Dept,SName,SNo,ClassNo,Sex,Birthday,Native,Birthplace,LoginDate,ValidityDate)ASSELECT dept,S.*,login_dat

13、e,validity_dateFROM D,C,SWHERE D.class_no=S.class_no and C.stu_no=S.stu_no四实现对学生证的各操作功能1.录入学生证信息1对某学生的学生证信息录入之前,需先判断该学生的学生证信息是否存在,如已经存在就不能再录入了;如果不存在,还需判断该学生的学生信息是否存在,因为如果该学生已存在学生信息,但没有注册学生证,那么该学生也不存在学生证信息。在判断之后再根据不同情况进展学生证信息的录入。创立存储过程InsertIf,判断是否录入学生证信息:create procedure InsertIf -判断是否录入( sno varcha

14、r(10) )-设置参数,通过学号查询该学生的学生证信息使否存在asbegindeclare cant varchar(50)declare sel varchar(50)declare aa varchar(70)declare bb varchar(70)set cant=信息已存在,不能录入set sel=无此学生证信息,请录入 set aa=有此学生信息,但未注册,请注册执行InsertC!set bb=无此学生信息,请录入学生信息并为其注册执行InsertS和InsertC!if exists (select * from Stu_card where SNo=sno) -如果存在该

15、学生print cant -的学生证信息就打印出来else beginprint selif exists(select * from S where Stu_no=sno)-如果不存在print aa -该学生证信息,但存在学生信息,说明为注册else print bb -不存在学生信息,可以录入该学生信息并注册endend2判断后,如不存在学生证信息但存在学生信息,那么需注册。创立存储过程InsertC,对学生进展注册create procedure InsertC -注册,向表C中添加学生证注册信息(sno char(10),logindate datetime,validate dat

16、etime)asinsert into C values(sno,logindate,validate)3判断后,如不存在学生信息,那么需录入该学生信息,并进展学生证注册创立存储过程InsertS,录入学生信息:create procedure InsertS /向S表中添加学生信息(sname varchar(30),sno char(10),classno char(6),sex char(2),birthday datetime,native char(2),birthplace varchar(30)as insertinto S values(sname,sno,classno,se

17、x,birthday,native,birthplace)在录入学生证信息时,先添加学生信息,再执行存储过程InsertC,注册学生证,才完整的录入一条学生证信息。2.查询学生证信息1给定学号,查询某位学生的学生证信息由于学生证信息是在视图中表达的,因此通过查询视图,可以查看学生的学生证信息.创立存储过程QureyInfor,传递参数sno,通过给定学号,判断该学生的学生证信息是否存在,如不存在,那么告知不存在该学生证信息;如存在,那么显示出该学生的学生证信息.create procedure QureyInfor( sno char(10)asbegin declare cant varch

18、ar(50)set cant=信息不存在if exists (select * from Stu_card where SNo=sno)select *from Stu_cardwhere SNo=snoelseprint cantend2给定班号,查询该班所有学生的学生证信息该查询与前一查询方法是一样的,通过查询视图,查看信息。创立存储过程DisplayInfor,传递参数classno,通过给定班级号,判断该班学生的学生证信息是否存在,如不存在,那么告知不存在该班学生证信息;如存在,那么显示出该班全部学生的学生证信息。create procedure DisplayInfor( class

19、no char(6) )asbegin declare cant varchar(50)set cant=无相关信息if exists (select * from Stu_card where ClassNo=classno)select *from Stu_cardwhere ClassNo=classnoelseprint cantend3.修改学生证信息学生证信息的修改,虽然是对视图进展修改,但实质是对各表的修改。对于学生证信息的修改,是先通过给定学生学号,先判断该学生的学生证信息是否存在,如存在,再通过添加表信息来添加学生证信息。1首先创立存储过程ModIf,用来判断需修改的学生证信

20、息是否存在,如不存在,那么告知不存在该学生证信息;如存在,那么将该学生证原本信息显示出来,说明可以进展修改。create procedure ModIf( sno char(10) )asbegindeclare cant varchar(50)set cant=无此学生证信息,不能修改if exists (select * from Stu_card where SNo=sno)beginselect * from Stu_card where SNo=snoendelse print cantend2再创立存储过程ModS,ModC及ModD,通过更新操作update对表进展修改,以修改学

21、生证信息。create procedure ModS /更新S表中学生信息(sname varchar(30),sno char(10),classno char(6),sex char(2),birthday datetime,native char(2),birthplace varchar(30)as update S Set stu_name=sname,stu_no=sno,class_no=classno,stu_sexsex,stu_birthday=birthday,stu_native=native,stu_birthplace=birthplacecreate proced

22、ure ModD /更新D表中学生信息(deptvarchar(30),classno char(6),)as update S Set dept=dept,class_no=classnocreate procedure ModC -修改表C中信息(sno char(10),logindate datetime,validate datetime)asupdate Cset stu_no=sno,login_date=logindate,validity_date=validate4.删除学生证信息在删除学生证信息时,并不是将学生证中的学生信息及相关系别信息也相应删除,而只是删除该学生证的注

23、册信息。应保证在删除学生证信息同时保存该学生的学生信息及相关的系别信息。(1)判断该学生证信息是否存在 创立存储过程,给定学号参数,判断是否存在该学生的学生证信息,如不存在,那么告知不存在该学生证信息,即无法删除;如存在,那么告知存在信息,并显示出该条信息。 该操作同样可以使用存储过程ModIf来完成,因此不需再重新创立。(2)删除信息 创立存储过程DelInfor,给出要删除的学生学号,通过delete操作删除注册信息表C中的该条记录,即完成学生证信息的删除工作。create procedure DelInfor( sno char(6) )asdelete from Cwhere stu_

24、no=sno(3)显示删除后信息 在删除完成后,通过显示剩余全部学生证信息,确认要删除的学生证信息是否删除成功。 创立触发器DisplayAll,完成删除工作的检验工作,当对表C进展delete操作时,通过查询视图,显示剩余全部学生证信息。create trigger DisplayAllon Cfor deleteasselect *from Stu_card七、实验总结通过一周的课程设计,完成了一个简单的学生证管理系统,并成功实现了各要求所需功能。首先,在设计方面,考虑到数据的冗余及冲突等问题,将学生证信息分别存储到三个表中,考虑了系别信息数据,学生信息数据及学生证注册信息数据的独立性问题。其次,在设计表时,注意了数据的数据类型及长度的选择,考虑各种数据的添加情况,如汉族非少数民族,在添加该项时将“汉设置为默认情况,同时还要保证不浪费数据的存储空间。第三,使用了视图view,实现数据的保密性,将学生证所需信息以视图方式存放,在数据查询时使用视图查询。第四,对于各功能的实现,均使用了存储过程

温馨提示

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

评论

0/150

提交评论