《SQL数据库(学生信息管理系统)课程设计报告.doc》由会员分享,可在线阅读,更多相关《SQL数据库(学生信息管理系统)课程设计报告.doc(31页珍藏版)》请在三一办公上搜索。
1、数据库课程设计报告题 目:学生信息管理系统姓 名:付 进 (2008081411) 莫春琴(2008081416)班 级:08级信息2班 指导老师:习慧丹老师 提交时间:2010年12月28号 目 录1、系统需求分析.31.1、课程设计目的和意义.31.2、系统分析与设计.3 1.2.1、系统功能描述.3 1.2.2、系统模块设计.6 1.2.3、数据流图、数据字典和ER图.82、逻辑结构设计.173、数据库的实现.174、数据初始化.215、视图、索引的建立.265.1、视图的建立.265.2、索引的建立.296、总结.307、参考文献.308、分工情况.311.系统需求分析1.1、课程设计
2、目的和意义:a、数据库课程设计是为了巩固数据库知识,加强学生的实际动手能力和提高学生综合素质。通过本实验达到以下目的: 1、 熟练掌握一种数据库系统(如SQL SERVER)的使用。2、 熟练掌握一种数据库应用软件开发工具(ASP、VB.NET)的使用。3、 通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。b、系统针对学生的基本情况,设计一个可以查询学生的基本信息、查询学生的选课记录、查询学生的分数、寝室楼等,可以修改学生的一些信息,还可以添加、删除等操作。使老师更加方便了解学生的情况和使学生本人对于自己的信息更直观,该系统用于
3、学院老师和学生本人。1.2、系统分析与设计:1.2.1、 系统功能描述: 黔南民族师范学院学生管理系统主要根据全院全体学生信息需求来设计开发,主要是对学生的基本信息及情况作统一的管理,使老师更加容易掌握学生的基本信息及情况以及学生本人更加的了解自己的基本信息,学生的基本属性包括(学生学号、姓名、性别、出生年月、民族、籍贯、政治面貌)。该系统主要用户教师和学生本人,但是主要控制由系统管理员,因此,系统主要对学生和教师开放,具体的功能需求分析如下:1、 系统管理员对功能的需求: 系统管理员的在所有用户中的权力最大,具有系统所有的功能,首先可以对教师的一栏的所有功能都可以进行操作,可以对教师的信息进
4、行修改、查询、添加、浏览、删除等操作,还可以对系统进行维护等功能。其次是对学生基本信息的管理功能,可以实现老师对学生所有操作的功能,即可以对学生的基本信息进行浏览、修改、查询、添加、删除等等。可以说,系统管理员是这个系统的大脑,而其他的就是这个系统的肢体等组成部分,所有管理员最具有权威性的。具体功能分析如下:(1) 学生基本信息管理系统管理员对学生的基本信息进行统一的管理,对全体学生信息有进行浏览、查询、添加和删除等功能。 a、浏览学生的基本信息 b、查询学生的基本信息 c、添加学生的基本信息d、修改学生的基本信息e、删除学生的基本信息(2) 选课信息管理系统管理员可以对学生的选课信息进行管理
5、,可以对学生选课信息进行浏览、查询、修改、删除等功能,a、浏览学生选课信息b、查询学生选课信息c、修改学生选课信息d、删除学生选课信息(3) 专业情况管理系统管理员可以对学生管理系统的学生专业情况进行浏览、查询等功能a、浏览学生专业情况信息b、查询学生专业情况信息c、添加学生专业情况信息d、修改学生专业情况信息e、删除学生专业情况信息(4) 住宿信息管理系统管理员还可以对学生的住宿情况进行浏览、查询、修改、添加、删除等功能。a、 浏览学生住宿信息b、 查询学生住宿信息c、 修改学生住宿信息d、 添加学生住宿信息e、 删除学生住宿信息(5) 系统的维护系统管理员登陆系统后,可以对教师以及学生等用
6、户信息进行修改,通过修改用户信息从而实现对系统安全性的管理,通过统一管理用户的基本信息对系统进行维护。a、浏览用户信息b、添加用户信息c、修改用户信息d、删除用户信息1.2.2、系统模块设计:系统管理员登 陆学生信息管理学生选课管理学生专业管理学生住宿管理系统维护浏览、查询学生的基本信息修改学生的基本信息添加学生的基本信息删除学生选课信息浏览、查询学生选课信息修改、删除学生选课信息浏览、查询学生专业信息修改、添加学生专业信息删除学生专业情况信息浏览、查询学生住宿信息修改、添加学生住宿信息删除学生住宿信息浏览、添加用户信息修改、删除用户信息教 师登 陆查询学生信息浏览学生信息修改学生信息添加学生
7、信息删除学生信息 学 生登 陆查询学生信息浏览学生信息修改学生信息添加学生信息删除学生信息1.2.3、数据流图与数据字典及ER图管理员账号密码学 生信 息管 理系 统学生基本信息学生选课信息学生住宿信心学生专业信息系统维护管理员图2-1 学生信息管理系统的顶层图(1)用户信息描述数据流用户信息数据流来源SQL Server 2000数据库中用户信息表数据去向用户管理页面数据流组成用户名、用户密码用户信息用户名用户密码 实体用户信息ER图(2)学生表S:以学号为主键,组成有:学号、姓名、性别、出生年月、民族,籍贯,政治面貌数据流学生信息数据流来源SQL Server 2005数据库中学生基本信息
8、表数据去向学生信息管理页面数据流组成学生学号、姓名、性别、出生年月、,民族,籍贯,政治面貌学生信息学号姓名性别出生时间籍贯政治面貌民族 实体学生信息ER图(3)选课信息描述:以课程号为主键,组成有:课程号,课程名,授课老师,学分数据流学生选课信息数据流来源SQL Server 2005数据库中选课表数据去向课程信息管理页面数据流组成课程号、课程名,学分,授课老师选课信息课程号课程名学 分授课老师 实体选课信息ER图(4)SC表的描述学生表S和课程表C的中间关系表SC,学生与选课时多对多的关系转换为一对多的关系,在中间表SC中,设学号和课程号为主键,对S表来说,学号是外键,对C表来说,课程号是外
9、键。数据流SC信息数据流来源SQL Server 2005数据库中课程表、选课表数据去向学生、课程信息管理页面数据流组成学号、课程号、成绩、备注SC表学号课程号成绩备注 实体SC表ER图(5)专业情况M表描述:设置专业号为主键,组成有:专业号,专业,院系数据流专业情况M信息数据流来源SQL Server 2005数据库中专业情况表数据去向专业情况管理页面数据流组成专业号、专业、院系专业情况表(专业号专业院系 实体专业情况ER图(6)SM表描述以学号为外键记录学生在校的情况表SM,设学号为主键,组成有:学号、专业号、入学时间、班级、铺导员数据流SM信息数据流来源SQL Server 2005数据
10、库中学生表、专业情况表数据去向学生、专业情况管理页面数据流组成学号、专业号、入选时间、班级、铺导员学号专业号入学时间班级辅导员SM表 SM表ER图(7)学生住宿R表描述以宿舍楼号为主键:组成有:楼号、寝室号数据流学生住宿R信息数据流来源SQL Server 2005数据库中住宿表数据去向住宿情况管理页面数据流组成楼号、寝室号宿舍楼表R楼号寝室号 实体宿舍楼ER图(8)Sr表描述以学生学号和楼号为主键,组成有:学生学号、楼号、寝室人数、备注数据流SR信息数据流来源SQL Server 2005数据库中学生表、住宿表数据去向住宿情况管理页面数据流组成学生学号、楼号、寝室人数、备注S R 表楼号学生
11、学号备注寝室人数 SR表ER图总ER图:学 生性别出生日期民族姓名政治面貌学号籍贯属于班主任专 业入时班级院系专业选课成绩备注住宿寝室号课程楼楼 号课程号课程名授课老师学分2、逻辑结构设计:a、 学生表(学生学号、姓名、性别、出生年月、,民族,籍贯,政治面貌)b、 选课表(课程号、课程名,学分,授课老师)c、 SC表(学生学号、课程号、成绩、备注)d、 专业情况M表(专业号、专业、院系)e、 SM表(学号、专业号、入选时间、班级、铺导员)f、 学生住宿变R(楼号、寝室号)g、 Sr表(学生学号、楼号、寝室人数,备注)3、数据库的实现 A、学生表列名数据类型长度是否为空说明学号char12否主码
12、姓名char10否性别char2否民族char10是籍贯char100是出生年月datetime是政治面貌char10是1、建立学生表语句:CREATE TABLE student(学号 char(12)constraint firstkey primary key not null,姓名 char(10) not null,性别 char(2) not null,出生年月 datetime,民族 char(10),籍贯 char(100),政治面貌 char(10),); B、选课表列名数据类型长度是否为空说明课程号char10否主码课程名char40否授课老师char10是学分char2是
13、2、建立选课表语句:CREATE TABLE course(课程号 char(10) primary key not null,课程名 char(40)not null,授课老师 char(10),学分 char(2),)C、SC表列名数据类型长度是否为空说明学号char12否主码课程号char10否成绩char3是备注char20是补考/过关3、建立SC表语句:CREATE TABLE sc(学号 char(12),课程号 char(10),成绩 smallint,备注 char(20),primary key(学号,课程号),foreign key(学号) references stude
14、nt(学号),foreign key(课程号) references course(课程号),);D、专业情况M表列名数据类型长度是否为空说明专业号char10否主码专业char20是院系char20是4、建立专业情况表M语句:CREATE TABLE M(专业号 char(10)primary key not null,专业 char(20),院系 char(20),)E、SM表列名数据类型长度是否为空说明学号char12否主码专业号char10否入学时间char15是班级char10是铺导员char10是5、建立SM表语句:CREATE TABLE SM(学号 char(12),专业号 c
15、har(10),入学时间 char(15),班级 char(15),铺导员 char(10),primary key(学号,专业号),foreign key(学号) references student(学号),foreign key(专业号) references M(专业号),);F、住宿表R列名数据类型长度是否为空说明楼号char10否主码寝室号char10是6、建立住宿情况表R语句:create table R(楼号 char(10) primary key,寝室号 char(10),)G、sr表列名数据类型长度是否为空说明学号char12否主码楼号char10否寝室人数char10是
16、备注char20是create table sr(学号 char(12),楼号 char(10),寝室人数 char(10),备注 char(20),primary key(学号,楼号),foreign key(学号) references student(学号),foreign key(楼号) references r(楼号),);4、数据初始化(1)将学生信息加入到学生表(student)中insert into studentvalues(2008081401,王寰,男,1949-1-10,汉族,福建省,共青团员)insert into studentvalues(2008081402,
17、鱼猛刚,男,1989-3-8,汉族,贵州贵阳,预备党员)insert into studentvalues(2008081403,脏嗨啵,男,1989-4-22,苗族,贵州瓮安,共青团员)insert into studentvalues(2008081404,小黑,男,2001-11-10,水族,贵州织金,共青团员)insert into studentvalues(2008081405,豌豆,女,1989-5-16,汉族,天上人间,共青团员)insert into studentvalues(2008081406,王娇,女,1988-2-20,汉族,梦幻国度,共青团员)insert int
18、o studentvalues(2008081407,小Y,女,1989-4-14,汉族,外太空,共青团员)insert into studentvalues(2008081408,张导,女,1989-11-11,藏族,火星,共青团员)insert into studentvalues(2008081411,小七,男,1988-11-5,汉族,贵州赤水,共青团员)(2)将选课信息加入表course中:insert into coursevalues(1010,运筹学,罗刚老师,4)insert into coursevalues(1011,web,钟志宏老师,4)insert into cou
19、rsevalues(1012,SQL数据库,习慧丹老师,2)insert into coursevalues(1013,管理统计学,李泽平老师,4)insert into coursevalues(1014,电子商务,胡洋老师,2)insert into coursevalues(1015,计算机组装与维修,周立军老师,2)insert into coursevalues(1016,计算机网络,石云辉老师,4)insert into coursevalues(1017,财务管理,唐颖,2)insert into coursevalues(1018,操作系统,黄隽老师,4)(3)将相关数据加入表
20、sc表中:insert into scvalues(2008081401,1010,85,过关)insert into scvalues(2008081401,1013,56,补考)insert into scvalues(2008081402,1015,73,过关)insert into scvalues(2008081403,1016,62,过关)insert into scvalues(2008081403,1018,55,补考)insert into scvalues(2008081404,1011,71,过关)insert into scvalues(2008081405,1012,
21、86,过关)insert into scvalues(2008081406,1014,64,过关)insert into scvalues(2008081407,1015,43,补考)insert into scvalues(2008081411,1018,72,过关)insert into scvalues(2008081408,1016,80,过关)(4)将相关数据加入表专业情况表(M)表中:insert into Mvalues(NO.1,信息管理与信息系统,黔南师院计科系)insert into Mvalues(NO.2,计算机科学与应用,黔南师院计科系)(5)将相关数据加入表SM表中
22、:insert into smvalues(2008081401,NO.1,2008-9-1,信息管理与信息系统(1)班,李涛)insert into smvalues(2008081402,NO.2,2008-9-1,计算机科学与应用(2)班,李涛)insert into smvalues(2008081403,NO.1,2008-9-1,信息管理与信息系统(2)班,李涛)insert into smvalues(2008081404,NO.2,2008-9-1,计算机科学与应用(1)班,李涛)insert into smvalues(2008081405,NO.1,2008-9-1,信息管
23、理与信息系统(2)班,李涛)insert into smvalues(2008081406,NO.2,2008-9-1,计算机科学与应用(1)班,李涛)insert into smvalues(2008081407,NO.1,2008-9-1,信息管理与信息系统(2)班,李涛)insert into smvalues(2008081408,NO.2,2008-9-1,计算机科学与应用(2)班,李涛)insert into smvalues(2008081411,NO.1,2008-9-1,信息管理与信息系统(1)班,李涛)(6)将相关数据加入表r表中:insert into rvalues(6
24、#,306)insert into rvalues(13#,203)(7)将相关数据加入表sr表中:insert into srvalues(2008081401,13#,6,850住宿费/年)insert into srvalues(2008081402,13#,4,1150住宿费/年)insert into srvalues(2008081403,13#,6,850住宿费/年)insert into srvalues(2008081404,13#,4,1150住宿费/年)insert into srvalues(2008081405,6#,6,850住宿费/年)insert into sr
25、values(2008081406,6#,6,850住宿费/年)insert into srvalues(2008081407,6#,6,850住宿费/年)insert into srvalues(2008081408,13#,6,850住宿费/年)insert into srvalues(2008081411,13#,6,850住宿费/年)5、视图、索引的实现1、视图的建立:(1)建立补考学生视图create view 补考学生信息(学号,姓名,性别,课程号,课程名,成绩)asselect student.学号,姓名,性别,sc.课程号,课程名,成绩from student,sc,cours
26、ewhere student.学号=sc.学号 and sc.课程号=course.课程号 and 成绩60;(2)建立女生住宿信息视图create view 女生住宿信息(学号,姓名,性别,楼号,寝室号,寝室人数,备注)asselect student.学号,姓名,性别,r.楼号,寝室号,寝室人数,备注from student,sr,rwhere student.学号=sr.学号 and sr.楼号=r.楼号 and 性别=女; (3)建立男生住宿信息视图create view 男生住宿信息(学号,姓名,性别,楼号,寝室号,寝室人数,备注)asselect student.学号,姓名,性别,
27、r.楼号,寝室号,寝室人数,备注from student,sr,rwhere student.学号=sr.学号 and sr.楼号=r.楼号 and 性别=男; (4)建立选课信息视图create view 选课信息(学号,姓名,课程号,课程名,授课老师,成绩)asselect student.学号,姓名,course.课程号,课程名,授课老师,成绩from student,course,scwhere student.学号=sc.学号 and course.课程号=sc.课程号;(5)建立学生总体信息视图create view 学生总体信息(学号,姓名,性别,出生年月,民族,籍贯,政治面貌,
28、楼号,寝室号)asselect student.学号,姓名,性别,出生年月,民族,籍贯,政治面貌,r.楼号,寝室号from student,sr,rwhere student.学号=sr.学号 and sr.楼号=r.楼号;2、建立索引:1、在学生姓名属性上建立索引:CREATE NONCLUSTERED INDEX 姓名 ON dbo.Student ( 姓名 ASC)2、在学生学号属性上建立索引:CREATE unique INDEX 学号 ON dbo.Student ( 学号 ASC)3、在课程名属性上建立索引:CREATE NONCLUSTERED INDEX 课程 ON dbo.c
29、ourse ( 课程名 ASC)4、在课程号属性上建立索引:CREATE unique INDEX 课程编号 ON dbo.course ( 课程号 ASC)5、在楼号属性上建立索引:CREATE unique INDEX 住宿楼号 ON dbo. ( 楼号 ASC)6、在寝室号属性上建立索引:CREATE NONCLUSTERED INDEX 寝室号码 ON dbo. ( 寝室号 ASC)7、在专业号属性上建立索引:CREATE unique INDEX 专业名称 ON dbo. ( 专业号 ASC)6、总结:通过对数据库系统概论和这学期SQL技术与网络数据库开发详解课程的学习,对数据库有一
30、定得了解与认识,并且对于sql server 2005的如何使用有一定程度的掌握,sql server 2005软件对于数据库而言,对数据的操作都比较方便,掌握了一般的数据创建和数据的基本处理,但是在触发器和存储过程中没有学好。通过做这个课程设计,对于如何做课程设计以及课程设计的步骤在脑海里有一个总体的框架。但是又很多的不足之处:1、 在需求分析的时候,各个模板所要实现的功能不是很清楚。2、 在画ER图的时候,各个实体之间的联系分析遇到了点困难,在图形上没有画出实体间的对与关系。3、 对数据库的存储过程不了解,没有号好学习这一章节。所以导致系统没有涉及到数据的存储过程。4、 还要对与触发器这一点,还没有很透彻的理解,创建触发器的时候目的不明确,创建的触发器觉得对此系统没有多大的用处,所以就删除掉了。5、 没有做有关的界面,没有对系统进行优化,没有用web链接此系统。7、参考文献:(1)SQL技术与网络数据库开发详解 清华大学出版社(2)数据库系统概论第四版 高等教育出版社8、分工情况:莫春琴:1、系统需求分析1.1、课程设计目的和意义1.2、系统分析与设计 1.2.1、系统功能描述 1.2.2、系统模块设计 1.2.3、数据流图、数据字典和ER图2、逻辑结构设计付 进:3、数据库的实现4、数据初始化5、视图、索引的建立5.1、视图的建立5.2、索引的建立