学生档案管理系统课程设计实验报告_第1页
学生档案管理系统课程设计实验报告_第2页
学生档案管理系统课程设计实验报告_第3页
学生档案管理系统课程设计实验报告_第4页
学生档案管理系统课程设计实验报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计评分表学生姓名: 班级: 学号:课程设计题目:项目内容满分实 评选题能结合所学课程知识、有一定的能力训练。符合选题要求(5人一题)10工作量适中,难易度合理10能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10理论依据充分,数据准确,公式推导正确10能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等10能体现创造性思维,或有独特见解10成果质量总体设计正确、合理,各项技术指标符合要求。10说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰10设计说明书栏目齐全、合理,符号统一、编号齐全。格式、绘

2、图、表格、插图等规范准确,符合国家标准10有一定篇幅,字符数不少于500010总 分100指导教师评语: 指导教师签名: 年 月 日· 实验题目:学生档案管理系统· 实验时间、地点:2010-11-212010/11/24.软件楼206机房· 实验目的:通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高分析问题和解决问题的能力以及动手能力· 实现过程和思路1系统需求分析 (1) 通过对调查用户的信息要求.处理要求.完整性与安全性要求根据具体的数据库管理系统开

3、发令用户满意的档案管理系统。 当用户进入该系统后要实现某某学生档案信息的查询,更新和修改。“档案管理系统”主要研究通用的档案管理信息化解决方案,研究各单位各行业档案系统的普遍特征,研发适合各类型层次单位的档案信息管理系统软件。通过通用性的研究,将该系统的可应用拓展到其他单位或者行业的档案信息系统建设,以期提高档案工作信息化水平.(2)系统需求分析阶段结果用户登录档案管理个人成绩管理个人信息管理个人所在系管理查看信息修改信息删除信息查看成绩添加成绩删除成绩查看系别添加系别删除系别 2 概念模型设计(1)概念设计是整个数据库设计的关键,它通过对用户需求进行综合,归纳与抽象,形成一个独立于具体dbm

4、s的概念模型,是各种数据库的共同基础。(2)将各实体画出e-r图 学号政治面貌出生日期家庭住址电话号码就读学校学生基本信息姓名性别年龄系编号专业班级 图2-1 学生基本信息实体的e-r图 学生成绩学号语文数学物理英语 图2-2 学生成绩实体e-r图学生所属系别专业系编号学号系人数专业 图2-3 学生所属系专业实体e-r图学生基本信息学生成绩学生所属系别拥有属于图2-4各实体之间的联系e-r图3 逻辑结构设计 将e-r 图转换为一个关系模式(1)把每一个实体转换为关系学生基本信息(学号 ,姓名,系别年龄,班级,出生日期,政治面貌,专业,家庭住址,电话号码 ,系编号,就读学校)学生成绩(学号,语文

5、,数学,英语,物理)学生所属系别(系编号,学号,专业,系人数)(2)把每一个联系转换为关系模式属于(学号,系编号)拥有(成绩学号,学生信息学号)4物理结构设计(1)确定数据库的物理结构,主要是存取方法和存取结构为数据库各表建立索引如下:create unique index 学生信息索引 on 学生基本信息表(学号)create unique index 学生成绩索引 on 学生成绩表(学号)create unique index 学生专业索引 on 学生所属系专业表(系编号) 5数据库实施阶段二 数据库实施阶段 建立数据库.数据表.视图.索引.触发器及存储过程。 1.建立学生档案数据库 cr

6、eate database 学生档案数据库2.建立数据表 (1)学生基本信息表 create table 学生基本信息表 ( 学号 char(10) , 姓名char(7), 性别char(2) check(性别in('男','女') , 年龄int, 班级 char(10), 出生日期 datetime, 政治面貌 char(6), 专业 char(10), 家庭住址 char(25), 电话号码 char(11), 系编号 char(10), 就读学校 char(20), ) (2)学生成绩表 create table 学生成绩表 ( 学号 char(10)

7、, 语文 char(6), 数学 char(6), 英语 char(6), 物理char(6), ) (3)学生所属系专业表 create table 学生所属系专业表 ( 系编号 char(10), 学号 char(10), 系名char(10), 系人数 int, )3.建立视图 (1) 查询学生基本信息的视图定义如下。 create view 学生信息视图(学号,姓名,性别,年龄,班级,出生日期,政治面貌,专业,家庭住址,电话号码 ,系编号) as select * from 学生基本信息表 (2)显示学生成绩的视图定义如下。 create view 学生成绩视图(学号,语文,数学,英语

8、,物理) as select * from 学生成绩表 (3)显示学生所属系专业的视图定义如下。 create view 学生专业视图(系编号,学号,系名) as select *from 学生所属系专业表4.建立索引 create unique index 学生信息索引 on 学生基本信息表(学号)create unique index 学生成绩索引 on 学生成绩表(学号)create unique index 学生专业索引 on 学生所属系专业表(系编号)5.建立触发器 (1)插入触发器当插入学生基本信息表中某一基本信息时,触发学生所属系专业表和学生成绩表,插入相应的记录。触发学生基本信

9、息表drop trigger 触发学生基本信息1gocreate trigger 触发学生基本信息1on 学生基本信息表for insert asselect * from 学生基本信息表go举例:当在学生基本信息表中插入某一字段,将触发insert事件,例如:在学生基本信息表插入该学生所一个部分新记录,并将结果显示到查询分析器上。insert into 学生基本信息表(学号,姓名,性别,年龄,专业)values ('09111603','李红','女',18,'软件工程')插入触发器在学生基本信息表插入一个触发器,并保证结在学生

10、基本信息表添加的【学号】和【系编号】部分信息要在学生所属系专业表中相应添加并将结果显示到查询分析器上。drop trigger 触发学生基本信息2gocreate trigger 触发学生基本信息2on 学生基本信息表for insert asdeclare 系编号 varchar(10)declare 学号 varchar(10)beginselect 系编号=系编号 ,学号=学号 from insertedinsert into 学生所属系专业表(系编号,学号) values (系编号,学号)endgo举例:当向学生基本信息表中再增加一列【学号】和【系编号】insert into 学生基本

11、信息表(系编号,学号 )values ('002','09111629') (2)更新触发器 创建一个触发器,它实现当学生基本信息表中学号字段的更改,将同步实现学生成绩表和学生所属系专业表的学号的改变。drop trigger 更新学生成绩表gocreate trigger 更新学生成绩表on 学生基本信息表 -在学生基本信息表中创建触发器 for update -触发什么事件as -事件触发后所要做的事情 if update(学号) -判断是否更新了学号 begin update 学生成绩表 set 学生成绩表.学号=i.学号from 学生成绩表as br ,

12、 deleted as d ,inserted as i -deleted和inserted临时表 where br.学号=d.学号 end godrop trigger 更新学生成绩表1gocreate trigger 更新学生成绩表1on 学生基本信息表 -在学生基本信息表中创建触发器 for update -触发什么事件as -事件触发后所要做的事情 if update(学号) -判断是否更新了学号 begin update 学生所属系专业表set 学生所属系专业表.学号=i.学号from 学生所属系专业表 as bt, deleted as d ,inserted as i -dele

13、ted和inserted临时表 where bt.学号=d.学号 end go举例:当把学生基本信息表中学号09111603改为09111604时,将触发 “触发学生成绩表1”的触发器select * from 学生基本信息表select * from 学生成绩表select * from 学生所属系专业表 update 学生基本信息表 set 学号='09111604' where 学号='09111603'delete from 学生基本信息表 where 学号='09111629'更新触发器在学生基本信息表创建限制学生年龄在18到30岁之间

14、的触发器drop trigger 限制学生年龄在18到30岁gocreate trigger 限制学生年龄在18到30岁on 学生基本信息表for update,insertasif exists(select * from inserted where 年龄<18 or 年龄>30)beginprint '请输入学生年龄在18到30 岁之间的数'rollback transactionendgo举例:当向学生基本信息表中插入年龄小于18岁的记录select* from 学生基本信息表insert into 学生基本信息表( 学号,姓名,年龄)values (

15、9;09111605','张',17)(3)删除触发器当删除学生基本信息表中学号基本信息时,将同步实现学生所属系专业表和学生成绩表相应的记录整行的删除。 触发学生所属系专业表drop trigger 删除学生所属系专业表gocreate trigger 删除学生所属系专业表on 学生基本信息表for deleteasbegindelete 学生所属系专业表from deleted as d ,学生所属系专业表 as brwhere d.学号=br.学号endgodrop trigger 删除学生成绩表gocreate trigger 删除学生成绩表on 学生基本信息表f

16、or deleteasbegindelete 学生成绩表from deleted as d1 ,学生成绩表 as br1where d1.学号=br1.学号endgo举例:当删除学生基本信息表中学号为09111603的记录,将同步实现学生所属系专业表和学生成绩表相应的学号记录的整行删除。select * from 学生基本信息表select * from 学生成绩表select * from 学生所属系专业表 deletefrom 学生基本信息表where 学号='09111603'删除触发器在学生基本信息表创建一个触发器,并保证结在学生基本信息表删除的【学号】和【系编号】部分

17、信息要在学生所属系专业表中相应删除并将结果显示到查询分析器上。drop trigger 触发学生基本信息3gocreate trigger 触发学生基本信息3on 学生基本信息表for deleteasbegindelete 学生所属系专业表 from deleted as djoin 学生所属系专业表 on 学生所属系专业表.学号=d.学号and 学生所属系专业表.系编号=d.系编号endgo举例:当向学生基本信息表中再删除一列【学号】和【系编号】select * from 学生所属系专业表delete from 学生基本信息表where 学号='09111629' and

18、系编号='002'(4)综合触发器举例在学生所属系专业表中增加一个学生人数字段(系人数)表示该系当前最新的学生人数,该字段的值随着学生信息表中的记录数发生改变,即:当学生基本信息表中新增学生记录,并且分配了具体的所属系别后,该系的学生人数自动加1;当学生表中删除某记录并且删除的记录原有所属系别时,该系的学生人数自动减1;当学生信息表中的所属系别值发生改变时,原来系别的学生人数自动减1,新的系别的学生人数自动加1。以上处理要求分别用insert、delete、update触发器实现其处理功能。insert触发器:drop trigger 增加系人数gocreate trigger

19、 增加系人数 on 学生基本信息表after insert -插入数据成功以后触发asselect * from 学生所属系专业表declare 插入的系编号 varchar(11)select 插入的系编号 = 系编号 from inserted -将插入数据的所属系别取出保存变量update 学生所属系专业表 set 系人数 = isnull(系人数,0)+1where 系编号 = 插入的系编号 -将所属系别的学生人数加1go 举例:在学生基本信息表中插入系编号为 002的记录,将会触发 【增加系人数】触发器 则在学生所属系专业表中系编号为002的系人数将增加1个。insert into

20、学生基本信息表(学号,姓名 ,系编号)values('09111604','王明','002')delete触发器:drop trigger 减少系人数gocreate trigger 减少系人数 on 学生基本信息表after delete-删除数据成功以后触发asselect * from 学生基本信息表select * from 学生所属系专业表declare 删除前系编号 varchar(10)select 删除前系编号 = 系编号 from deleted -将删除数据的所属系别取出保存变量update 学生所属系专业表 set 系人数

21、 = isnull(系人数,0)-1where 系编号 =删除前系编号 -将所属系别的学生人减少1go举例:在学生基本信息表中删除系编号为 002的记录,将会触发 【减少系人数】触发器 则在学生所属系专业表中系编号为002的系人数将减少1个。 delete from 学生基本信息表where 系编号='002' update触发器:解决的是转系的问题drop trigger 转系触发器gocreate trigger 转系触发器 on 学生基本信息表after update -修改数据成功以后触发asselect * from 学生基本信息表select * from 学生所属

22、系专业表declare 删除前系编号 varchar(10), 插入的系编号 varchar(10)if update(系编号) -判断是否修改了所属系别列beginselect 删除前系编号 = 系编号 from deleted-存储修改之前的系别数据select 插入的系编号 =系编号 from inserted-存储修改之后的系别数据update 学生所属系专业表 set 系人数 = isnull(系人数,0)-1where 系编号 = 删除前系编号-将原所属系别的学生人数减1update 学生所属系专业表 set系人数 = isnull(系人数,0)+1where 系编号= 插入的系编

23、号-将新所属系别的学生人数加1endgo举例:当更把在学生基本信息表中系编号为 002的记录改为001时,将会触发 【减少系人数】触发器和【增加系人数】触发器,将相应地在学生所属系专业表中系编号为002的系人数将减少1个,而系编号为001的将相应增加系人数1个。select * from 学生基本信息表beginupdate 学生基本信息表set 系编号='001'where 系编号='002'end7.数据入库采用事先在excel中录入数据,然后使用sql2000数据导入/导出功能,将数据导入到相应基本表中。8.创建各个功能的存储过程。(1)创建带参数的存储过

24、程,他的功能是向在学生基本信息表中插入一元组,新元组的值由参数提供。drop procedure 学生信息存储过程gocreate procedure 学生信息存储过程 ( 学号 char(10), 姓名 char (6), 性别 char (2) ='女' , 年龄 int, 班级 char(10), 出生日期 datetime='1989/04/05', 政治面貌 char(6), 专业 char(10), 家庭住址 char(25), 电话号码 char(11), 系编号 char(10), 就读学校 char(20)='东华理工大学')a

25、sinsert into 学生基本信息表 values(学号, 姓名, 性别, 年龄, 班级 , 出生日期,政治面貌, 专业, 家庭住址,电话号码, 系编号,就读学校)go举例:执行数据库学生档案数据库带参数的存储过程 “学生信息存储过程”beginexec 学生信息存储过程 学号='09111629', 姓名='泉水叮咚', 性别='男', 年龄=21, 班级='16' , 出生日期='1989/04/05',政治面貌='打酱油的', 专业='软件工程', 家庭住址='湖南

26、怀化',电话号码='#39;, 系编号='003',就读学校='东华理工大学'select * from 学生基本信息表endbeginexec 学生信息存储过程 学号='09111630', 姓名='在水一方', 年龄=18, 班级='16' , 出生日期='1991-04-05',政治面貌='打酱油的', 专业='软件工程', 家庭住址='江西上饶',电话号码='#39;, 系

27、编号='004'select * from 学生基本信息表end(2)创建能够返回值的存储过程,他的功能是从数据表 学生基本信息表中根据学号查询某一同学的姓名和系别,查询结果由参数 姓名,系编号和就读学校返回。drop procedure 创建能够返回值的存储过程gocreate procedure 创建能够返回值的存储过程( 学号 char(10), 姓名 char(6)output, 系编号 char(8)output, 就读学校 char(13) output)asselect 姓名=姓名, 系编号=系编号,就读学校=就读学校from 学生基本信息表where 学号=学号

28、go 举例:当执行数据库学生档案数据库中带参数的存储过程创建能够返回值的存储过程,其结果将保存在参数 姓名,系编号和就读学校中。begin declare 姓名 char(6)declare 系编号 char(8)declare 就读学校 char(13)exec 创建能够返回值的存储过程 '09111602',姓名 output,系编号 output, 就读学校 outputselect '姓名'= 姓名 ,'系编号'= 系编号,'就读学校'= 就读学校end6数据库运行和维护软件测试当在学生基本信息表中插入某一字段,将触发insert事件,例如:在学生基本信息表插入该学生所一个部分新记录,并将结果显示到查询分析器上。当更把在学生基本信息表中系编号为 002的记录改为001时,将会触发 【减少系人数】触发器和【增加系人数】触发器,将相应地在学生所属系专业表中系编号为002的系人数将减少1个,而系编号为001的将相应增加系人数1个。select * from 学生基本信息表beginupdate 学生基本信息表set 系编号='001'where 系编号='002'end结果如下:其他功能留给用户自己验证。7实验总结档案管理系统是

温馨提示

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

评论

0/150

提交评论