资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
数据库学生管理系统姓名: 学号: 班级: 计科 日期:2010年12月25日1. 系统需求分析(1)数据需求a. 本系统为了实现学校在校学生基本信息资源的查询、统计、添加、删除、维护与管理,方便用户的管理与需求。该“学生管理系统”只是对数据库应用技术的一个样本实例,重在对数据库一些方法的熟悉与掌握,其中包括从数据库的概念模型到ER图的绘制,再到数据库模式的建立(即为数据库及其基本表的建立),而后数据的录入(在此从略),最后完成一些简单的关系运算表达式的表达和相关的Select 查询语句的使用。b. 系统结构简述:学生管理系统需要完成功能主要包括两个实体:学生的基本信息;课程信息。实体之间的关系转换为其他表的有:学生课程成绩信息;1)学生的基本信息表有:学生的学号、姓名、性别、出生时间、专业、总学分、联系方式等。2)课程信息表有:课程号、课程名、学期、学时、学分等。3)学生课程成绩信息表有:学号、课程号、成绩、学分等。c. 该数据库需要进行如下数据处理: 从学生课程成绩信息表中查询成绩的函数:输入:学号和课程号输出:对应的学号和课程号的分数即成绩;从学生基本信息表中删除对应的学生记录:输入:学号输出:删除对应的学生记录,若没有对应的学号则输出“没有该学生!”的提示; 向学生基本信息表插入数据的函数:输入:学生档案表的基本信息,包括所有属性列;即学号,姓名,性别,出生时间,专业,总学分,联系方式; 学生课程成绩信息表上的触发器,当删除某一个学生的成绩时触发:当从学生基本信息表中删除学生记录时,若该学号的学生记录在选修表中也有的话,则提示。(3)关系模式1) 学生基本信息(学号,姓名,性别,出生时间,专业,总学分,联系方式)2) 课程基本信息(课程号,课程名,学期,学时,学分)3) 学生课程成绩(学号,课程号,成绩,学分)2. 逻辑设计概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成独立于具体DBMS的概念模型(1)实体图及E-R图对于学生信息的管理,我们可以将学生实体抽象出来,根据所要实现的功能设计,可建立它们之间的关系,进而实现逻辑结构功能。学生管理信息系统可以划分的实体有:学生基本信息实体、课程基本信息实体、学生课程成绩信息实体。用E-R图一一描述这些实体。1.学生基本信息实体2.课程基本信息实体3.学生课程成绩信息实体4.学生 课程 成绩 三者实体间的联系图性别课程学生基本专业学号出生日期姓名查询成绩学期课程号课程名称学时成绩图2.5三者实体间的联系图3. 物理设计表3.1 学生基本信息表表中列名数据类型可否为空说明学号charnot null(主键)Sno姓名charnot nullSname性别bitnot nullSsex出生时间smalldatetimenot nullScssj专业charnullSzhuanye总学分tinyintnullSzcredit联系方式charnullScontact表3.2 课程信息表表中列名数据类型可否为空说明课程号charnot null(主键)Cno课程名charnot nullCname学期tinyintnullXQ学时tinyintnullXS学分tinyintnullXF表3.3 学生课程成绩信息表表中列名数据类型可否为空说明 学号charnot null(主键)XH课程名charnot null(主键)KCH成绩tinyintnullCJ学分tinyintnullXF五. 数据库的实施(1)创建数据库:create database 学生管理(2)学生信息表建立:create table 学生基本信息(学号 char(13), 姓名 char(16), 性别 char(2), 出生时间 smalldatetime, 专业 char(16), 总学分 tinyint, 联系方式 char(12),primary key(学号)(3)创建课程信息表:create table 课程信息(课程号 char(3), 课程名 char(16), 学期 tinyint, 学时 tinyint, 学分 tinyint,primary key(课程号)(4)学生课程成绩表建立:create table 学生课程成绩信息(学号 char(13), 课程号 char(3),成绩 tinyint,学分 tinyint,primary key(学号,课程号),foreign key(学号)references 学生基本信息(学号) on update no action,foreign key(课程号)references 课程信息(课程号) on update no action)六.数据初始化(1)将学生基本信息表中:insert into 学生基本信息insert into 学生基本信息insert into 学生基本信息insert into 学生基本信息insert into 学生基本信息(2)将课程信息表中:insert into 课程信息values (101,计算机基础,1,60,3)insert into 课程信息values (102,程序设计,2,64,5)insert into 课程信息values (103,数据库,3,80,6)insert into 课程信息values (104,计算机网络,4,68,6)insert into 课程信息values (105,微机原理,4,112,8)(3)将学生课程成绩信息表中:insert into 学生课程成绩信息values (07080605113,101,80,3)insert into 学生课程成绩信息values (07080605213,102,78,5)insert into 学生课程成绩信息values (07080605217,101,65,3)insert into 学生课程成绩信息values (07080605227,102,73,5)insert into 学生课程成绩信息values (07080605235,103,68,5)(4)创建存储过程:-从成绩表中查询成绩的函数-if exists(select name from sysobjects where name=查询成绩和学分and type=p)drop procedure 查询成绩和学分gocreate procedure 查询成绩和学分 Sno char(13),Cno char(3)asif exists(select * from 学生课程成绩信息 where 学号=Sno and 课程号=Cno)select 学号,课程号,成绩,学分from 学生课程成绩信息where 学号=Sno and 课程号=Cnoelseprint 没有该学号和课程号的学生goexecute 查询成绩和学分07080605213,102-向学生基本信息表插入数据的函数-if exists(select name from sysobjects where name=输入学生记录and type=p)drop procedure 输入学生记录gocreate procedure 输入学生记录 Sno char(13),Sname char(16),Ssex char(2),Scssj smalldatetime,Szhuanye char(16),Szcredit tinyint,Scontact char(12)asinsert into 学生基本信息 values(Sno,Sname,Ssex,Scssj,Szhuanye,Szcredit,Scontact)go(5)创建触发器:-成绩表上的触发器,当删除某一个学生的成绩时触发-if exists(select name from sysobjects where name=学生课程成绩信息表上的触发器and type=tr)drop trigger 学生课程成绩信息表上的触发器gocreate trigger 学生课程成绩信息表上的触发器 on 学生基本信息for deleteasif exists(select 学号 from deleted where 学号 in(select 学号 from 学生课程成绩信息) beginprint 该学生有成绩,所以不能删除!rollback endgoselect *from 查询成绩create view 查询成绩 asselect 姓名,成绩from 学生基本信息 A join 学生课程成绩信息 B on (A.学号=B.学号)join 课程信息 C on (B.课程号=C.课程号)七.结束语通过对本程序的开发制作,我对SQL软件有了进一步的了解,对该软件的功能有了一定的认识。除此之外我还认识到,对于SQL的开发,创新很重要,要让使用者觉得新颖。同时应该注意让SQL软件的使用要方便易懂,让使用者很容易学会使用。尽管对SQL软件有了一定的掌握,但我还有很多地方没有掌握彻底,像VB的连接和使用等等。我还会继续深入学习,争取开发出更加优秀的SQL系统。再次感谢一直辛辛苦苦地教我们SQL软件设计方法的指导老师。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号