1、数据库与SQL Server教学实习报告天津农学院计算机科学与信息工程系数据库与SQL Server教学实习报告 目 录1 内容简介 12 需求分析 12.1 组织结构分析 12.2 业务流程分析 22.3 数据处理分析 32.4 其他各种限制和要求分析 53 概念模型设计 53.1 学生表局部E-R图 53.2 教师表局部E-R图 53.3 课程表局部E-R图 53.4 成绩表局部E-R图 63.5 全局E-R图 74 逻辑设计 74.1表结构 74.2表联系 84.3约束 84.4视图 84.5存储过程 85 物理实现 85.1 SQL语句 95.2调试过程 131 内容简介随着科学技术的
2、不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息管理的效率。设计学生信息管理的数据库,要使我熟悉数据库的设计、开发过程,掌握数据库设计、开发各阶段的方法,能够根据所给条件和要求,使用SQL Server实现所设计的数据库。2 需求分析2.1 组织结构分析学生基本信息一般包括学生的学号、姓名、性别、生日、出生地、政治面目、毕业院校、原籍住址、联系
3、方式、所在系、所在专业、所在的班、学习成绩等。学生的学习成绩主要包括学习的课程以及各个课程的成绩。学习的课程一般包括课程的课程号、课程名、所教授这门课程的老师。老师的信息一般包括老师的工号、姓名、年龄、性别、所在的院系。2.2 业务流程分析图1 业务流程分析图2.3 数据处理分析表1 学生表的数据字典字段数据类型宽度是否空值备注学号Char20否主键姓名Nvarchar50否性别Nvarchar10否男或女出生年月Datetime否出生地Nvarchar50否政治面目Nvarchar10否毕业院校Nvarchar50否原籍住址Nvarchar50否系别Nvarchar50否专业Nvarchar
4、50否班级Nvarchar50否宿舍Nvarchar50否联系方式Char20否是否有处分奖励Nvarchar10否是否担任过班委Nvarchar10否备注Text是表2 教师表的数据字典字段数据类型宽度是否空值备注教师号Char10否主键教师名Nvarchar50否年龄Char5否性别Nvarchar10否男或女所在院系Nvarchar50否备注Text是表3 课程表的数据字典字段数据类型宽度是否空值备注课程号Char10否主键课程名Nvarchar50否学分Char5否教师号Char10否外键备注Text是表4 成绩表的数据字典字段数据类型宽度是否空值备注学号Char20否外键当主键课程号
5、Char10否外键当主键成绩Char10否数值0-100备注Text是2.4 其他各种限制和要求分析如果删除学生表中记录的话,同时删除成绩表中相应的记录。3 概念模型设计3.1 学生表局部E-R图图3 学生表局部E-R图3.2 教师表局部E-R图图4 教师表局部E-R图3.3 课程表局部E-R图图5 课程表局部E-R图3.4 成绩表局部E-R图图6 成绩表局部E-R图3.5 全局E-R图图7 全局E-R图4 逻辑设计4.1表结构学生(学号,姓名,性别,出生年月,出生地,政治面目,毕业院校,原籍住址,系别,班级,宿舍,联系方式,是否有过处分奖励,是否担任过班委,备注) 主键:学号教师(教师号,教
6、师名,年龄,性别,所在院系,备注) 主键:教师号课程(课程号,课程名,学分,教师号,备注) 主键:课程号 外键:教师号成绩(学号,课程号,成绩,备注) 主键:学号,课程号 外键:学号,课程号4.2表联系课程表依赖于教师表。成绩表依赖于课程表。成绩表依赖于学生表。4.3约束对于性别需要check约束。对于成绩的数值范围的用触发器约束。4.4视图创建视图方便用户查询,视图的列包括学号,姓名,课程,成绩4.5存储过程为了方便各个表的输入数据,为各个表建立存储过程。又建立一个删除数据的存储过程,删除学生表中的记录会同时删除成绩表中对应的记录。5 物理实现物理实现(SQL语句),调试过程(出现了什么问题
7、,如何改正,如何改进系统性能)。必须有开发设计过程的截图。5.1SQL语句建立数据库图8 创建数据库的SQL语句截图建立学生表图9 创建学生表的SQL语句截图建立教师表图10 创建教师表的SQL语句截图建立课程表图11 创建课程表的SQL语句截图建立成绩表图12 创建成绩表的SQL语句截图约束对于性别的check约束。constraint 性别_che check(性别 in (男,女)。对于成绩的触发器约束图13 创建成绩的触发器约束的SQL语句截图视图图14 创建查询成绩的视图的SQL语句截图存储过程学生表存储过程图15 创建学生表添加数据的存储过程的SQL语句的截图教师表存储过程图16
8、创建教师表添加数据的存储过程的SQL语句截图课程表存储过程图17 创建课程表添加数据的存储过程的SQL语句的截图成绩表存储过程图18 创建成绩表添加数据的存储过程的SQL语句的截图图19 创建学生表删除数据的存储过程的SQL语句的截图5.2调试过程输入数据图20 使用各表的存储过程添加数据的SQL语句的截图对成绩的数值约束进行测试图21 成绩的触发器约束成功实现的截图查看视图是否满足要求select * from 成绩_视图显示如下:图22 视图成功实现的截图在调试学生的触发器时出现问题图23 学生表删除数据触发器的SQL语句的截图出现如图所示的问题:图24 测试触发器时发生的问题的截图成绩表
9、引用学生表主键,那么就无法先删除学生表中的内容,除非成绩表中没有外键的引用,否则会出现外键约束错误!也就是说:要删除,必须要先删除成绩表中的内容,才可以删除学生表中的内容。所以这个问题无法用触发器实现。因为不能直接先删除A表中的内容。我想了这样一种方法:用存储过程,传入要删除的学生表中的ID,然后删除成绩表和学生表中的对应的数据。SQL语句为:create procedure 学生_proc 学号 intasdelete from 成绩 where 学号=学号delete from 学生 where 学号=学号测试的时候如下显示:图25 测试存储过程成功的截图图26 测试存储过程成功实现发的截图完成了删除。参 考 文 献 1 张龙祥 黄正端 龙军.数据库原理与设计(第二版),北京:人民邮电出版社,20072 张莉.SQL Server数据库原理及应用(第二版),北京:清华大学出版社,20093 李昆.SQL Server2000课程设计案例精编,中国水利水电出版社,2006
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1