sql学生成绩信息管理系统数据库设计报告.doc
哈尔滨理工大学软件学院课程设计报告课 程:数据库课程设计题 目:学生成绩信息管理的数据库设计班 级:软件10-8班专 业:软件工程姓名:岳世崇学号:指导教师:王春英日期:2011年12月30日一、数据库的背景及功能需求在要求你为哈尔滨理工大学设计一个学生成绩管理系统的数据库,背景如下:哈尔滨理工大学有多学科的大学,学生在自己本身必修课程之后选修课程,从而获得学分,学生成绩管理系统,通过按照,授课教师,学生信息,课程信息,成绩信息,建立起联系, 例如:管理员可以修改学生的信息,删除,修改,学生信息,包括学生联系方式,住址等等,给学生的各科成绩打分。同时可以修改教师的个人信息,住址等信息。 二、 数据库的概念结构设计 每个学生都要有一个学号,并记录姓名,身份证号,年龄,性别,电话号码,主修,年级,班级,籍贯,学生密码等,每个教师都要有一个教师编号,并记录姓名,授课名称,性别,电话等信息。每一门课都要有一个课程编号,课程名及所对应的教师编号等,成绩包括学生的学号及课程号和成绩的多少,管理员通过数据库对相应的学生信息(如名,身份证号,年龄,性别等),教师信息,课程信息,学生成绩进行编辑,学生成绩的录入。学校的课程有计算机组成原理,离散数学,英语,机械电子,车辆工程,环境工程,软件编程,电气概念等科目,对应各自的课程编号。学生的班级信息包括其专业年级,班级。在网上查询系统中,每个用户都分配了用户名(全局唯一)和密码,其中,用户名就是学号,密码为学生自身的密码,可以修改。三、数据库的逻辑结构设计学生学号身份证号籍贯密码年龄性别电话专业年级照片班级选择课程学生学号教师号课程号课程名1N授课教师教师号课程等级成绩密码课程号家庭住址电话职称籍贯性别照片MN姓名姓名四、数据库的物理结构设计第一范式在关系中属性都原子的Bc范式:在第一范式的基础上满足以下两个条件之一一a推出b是平凡的函数依赖二a是关系的一个超码第三范式:函数依赖集F是关系的一个函数依赖集F的闭包中所有的函数依赖型如a推出b至少有以下之一成立一a推出b是平凡的函数依赖二a是关系的一个超码三b-a中的每个属性都包含在关系的一个候选码中学生个人信息;学号,姓名,身份证号,年龄,性别,电话号码,主修,年级,班级,籍贯,学生密码属于,bc范式属性名类型主键约束学号长整型是姓名字符型身份证号长整型年龄字符型性别字符型男 or 女电话长整形主修长整形年级长整形(Student_Grade<=(4) and (Student_Grade>=(1)班级长整形籍贯字符型学生密码字符型教师个人信息:教师编号、课程编号,姓名,住址,籍贯,电话号码,职务,性别,属于bc范式属性名类型主键约束教师编号长整型是课程编号长整型姓名字符型住址字符型籍贯字符型电话号码长整型职务字符型性别字符型男 or 女图书:图书编号,名称、作者、条形码、出版地、出版社、出版时间、属于bc范式属性名类型主键约束图书编号长整型是名称字符型作者字符型条形码长整型出版地字符型出版时间时间类型出版社字符型单价浮点型字数长整型课程信息:课程编号、课程名、教师编号、课程等级,属于bc范式属性名类型主键约束课程编号长整型是课程名字符型教师编号长整型课程等级长整型学生成绩:学号、课程编号,成绩分数。属于bc范式属性名类型主键约束学号长整型是课程编号长整型成绩分数浮点型Between0and100选课:学号,课程号。属于bc范式属性名类型主键约束学号长整型课程号长整型教授:课程号,教师编号。属于bc范式属性名类型主键约束课程号长整型教师编号长整型授权;用户编号。属性名类型主键约束教师编号长整型是授权2:用户编号。属于bc范式属性名类型主键约束学生编号长整型学生个人信息表(学号、姓名、身份证号、密码、年龄、性别、联系电话、专业、年级、班级、照片、籍贯)学生成绩表(学号、课程号、成绩)课程表(课程号、课程名称、教师号、课程级别)教师个人信息表(教师号、姓名、密码、课程号、家庭住址、籍贯、电话、职称、性别、照片)确定联系的属性:教授:课程号,教师编号。选课:学号,课程号。授权;学号,教师编号。提醒修改触发器set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER Trigger truStudent On dbo.Stu_Info for Update As if Update(Stu_ID) begin Update Student_Grade Set Stu_ID=i.Stu_ID From Student_Grade br , Deleted d ,Inserted i Where br.Stu_ID=d.Stu_ID end 提示删除的触发器set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER trigger trdStudent1 On dbo.Stu_Info for Delete As Delete Student_Grade From Student_Grade br,Deleted d Where br.Stu_ID=d.Stu_ID 学生姓名索引建立USE stu_grade_manageGOALTER TABLE dbo.Stu_Info ADD CONSTRAINT PK_Stu_Info PRIMARY KEY CLUSTERED (Stu_ID ASC)WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON PRIMARY成绩索引建立USE stu_grade_manageGOCREATE CLUSTERED INDEX index ON dbo.Student_Grade (Stu_ID ASC)WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON PRIMARY教师授权语句(可以修改学生成绩)Grant update,select,insert on Student_GradeTo Teacher_info;学生授权语句(只能查询成绩)Grant select,on Student_GradeTo Stu_Info;五、自我总结遇到的问题:一、触发器建立时,临时表的应用部熟练,遇到错误。二在确定数据库逻辑结构的过程中,实体集与实体集之间的关系不好确定三、索引语句代码编写问题。四、授权语句执行不成功解决办法:上网查找有关资料进行修改,解决问题,寻求老师同学帮助解决问题。通过本学期的课程设计,对数据库有了更深层的认识,了解到真正所学习的只是要勇于应用于实践当中,这样才能真正掌握一门技术,而不只是理论的层次,同时在设计过程中得到很多乐趣,基于对计算机的个人爱好,尽管有很多不足,但希望在今后的学习生活中不短完善自己的学习层面,完善自己的技术能力!