1、 JIANGXI AGRICULTURAL UNIVERSITY数据库课程设计汇报题目: 学生成绩管理系统数据库设计 学 院: 姓 名: 学 号: 专 业: 班 级: 指导老师: 二0一二 年 6 月目录一、需求分析31.1 需求概述31.2 功效介绍3二、数据库设计32.1 确定联络集及E-R图32.2 画出E-R图42.3学生成绩管理系统总E-R图5三、逻辑数据库设计阶段63.1 班级信息表(Class)73.2 学生信息表(Student)73.3 课程信息表(Course)83.4 成绩表(Score)8四、建表84.1 创建数据库84.2 创建数据表9五、数据库运行和维护105.1
2、定义105.1.1 基础表创建,建表语句105.1.2 基础表删除115.2 数据操作115.2.1 单表查询:115.2.2 连接查询115.2.3 操作结果集查询125.2.4 嵌套查询125.3 数据库更新操作135.3.1 插入数据135.3.2 修改数据135.3.3 删除数据135.4 为数据库建立索引145.4.1 索引建立145.4.2 索引删除145.5 数据库安全性145.6 数据库完整性155.6.1 实体完整性定义155.6.2 参考完整性定义15六、模式求精15七、总结16一、需求分析1.1 需求概述针对江西农大成绩管理工作量大、繁杂,人工处理很困难。学生成绩管理系统
3、借助于计算机强大处理能力,大大减轻了管理人员工作量,并提升了处理正确性。学生成绩管理系统开发利用,实现了学生成绩管理自动化,不仅把广大老师从繁重成绩管理工作中解脱出来、把学校从传统成绩管理模式中解放出来,而且对学生成绩判定和整理更合理、更公正,同时也给老师提供了一个正确、清楚、轻松成绩管理环境。1.2 功效介绍能够进行数据库数据定义、数据操纵、数据控制等处理功效,进行联机处理对应时间要短。具体功效应包含:系统应该提供课程安排数据插入、删除、更新、查询;成绩添加、修改、删除、查询,学生及教职员基础信息查询功效。 二、数据库设计2.1 确定联络集及E-R图依据前面对系统进行分析,已经初步了解了学生
4、成绩管理系统数据处理步骤,找出和系统相关各个实体及其相互联络以下:、标示实体集:班级,课程,学生,成绩四个关系。、标示联络集:学生和班级:一个班由多个学生组成,一个学生只能归属于某个班; 存在“归属”关系:N:1学生和课程:一个学生能够选修多门课程,一门课程提供给多个学生选修; 存在“选修”关系:N:M关系Score主码是studentNo,courseNo,term显然同一个学生在同一个学期不许可修读同一门课程数次关系CoursepriorCourse属性参考本关系主码courseNo属性。这里假设一门课程最多只需要定义一门先修课程。、标示属性集:班级(班级编号,班级名称,所属学院,年级,班
5、级人数)课程(课程号,课程名,学分,课时数,先修课程)学生(学号,姓名,性别,出生日期,籍贯,所属班级)成绩(学号,课程号,开课学期,成绩)2.2 画出E-R图班级信息图以下:ClassclasstudentNoclassNameInstituteclassNumgrade图2-2-1班级实体集E-R图学生信息图以下:StudentstudentNostudentNamesexclasstudentNonativebirthday图2-2-2学生实体集E-R图课程信息图以下:CoursecourseNocourseNamecreditHourpriorCoursecourseHour图2-2-
6、3课程实体集E-R图成绩信息图以下: ScorestudentNocourseNoscoreterm图2-2-4成绩实体集E-R2.3学生成绩管理系统总E-R图依据上面对实体联络分析,能够画出E-R图以下:课程课程号课程名课时数学分先修课程选修归属学生成绩班级学号姓名性别班级人数数数年级所属学院班级名称班级编号成绩开课学期课程号学号出生日期籍贯N1NM1图2-2-5学生成绩管理系统总E-R图三、逻辑数据库设计阶段逻辑结构是独立于任何一个数据模型信息结构。逻辑结构任务是把概念结构设计阶段设计好基础E-R图转化为宜选择DBMS所支持数据模型相符合逻辑结构,并对其进行优化。E-R图向关系模型转化要处
7、理问题是怎样将实体型和实体间联络转化为关系模式,怎样确定这些关系模式属性和码。设计学生成绩管理数据库,包含课程、学生、老师、成绩四个关系, 其关系模式中对每个实体定义属性以下:课程信息表Class:(班级编号,班级名称,所属学院,年级,班级人数)学生信息表Student: (学号,姓名,性别,出生日期,籍贯,所属班级)课程信息表Course: (课程号,课程名,学分,课时数,先修课程)成绩表Score:(学号,课程号,开课学期,成绩)设计出E-R图后,可将E-R图转换为数据库模式。本系统建立数据库为“ScoreDB”,运行本系统时在库中所建立表分别介绍以下:3.1 班级信息表(Class)字段
8、名描述数据类型字段限制classNo班级编号char(10)PrimarykeyclassName班级名称varchar(30)Not nullinstitute所属学院varchar(30)Not nullgrade年级smallintNot nullclassNum班级人数tinyintNot null3.2 学生信息表(Student)字段名描述数据类型字段权限studentNo学号char(10)Primarykey studentName姓名Varchar(30)Not null sex性别char(2)Not nullbirthday出生日期datetimeNot null nat
9、ive民族varchar(30)Not nullclassNo所属班级varchar(30)Not null3.3 课程信息表(Course)字段名属 性数据类型字段权限courseNo课程号char(10)PrimarykeycourseName课程名varchar(30)Not nullcreditHour学分numericNot nullcourseHour课时数tinyintNot nullpriorCourse先修课程varchar(30)Not null3.4 成绩表(Score)字段名属 性数据类型字段权限studentNo学号char(10)PrimarykeycourseNo
10、课程号char(10)Primarykeyterm开课学期char(10)Not nullscore成绩numericNot null四、建表4.1 创建数据库打开SQL工具“查询分析器”在查询窗口中键入下列SQL语句create database ScoreDB实施上述SQL语句即可新建一名为ScoreDB数据库。4.2 创建数据表 一个完整数据库不可缺乏就是数据表,若干个数据表集合成一个数据库。数据表关键用来存放一定格式统计,数据表中行被称为统计,列被称为字段。创建数据表过程其实就是定义字段过程。在此学生成绩管理系统中需要创建四个表,即班级信息表、学生信息表、课程信息表和成绩表。创建数据库
11、后,为ScoreDB数据库添加数据表,步骤以下。新建查询窗口在查询窗口中键入下列SQL语句create table Class( /创建班级信息表 classtudentNo char(10) primary key, /班级编号 classtudentName varchar(30) not null, /班级名称 institute varchar(30) Not null /所属学院 grade smallint, Not null /年级 classNum tinyint, Not null /班级人数 ) 实施上述SQL语句即可创建课程信息表相关表格create table Stud
12、ent( /创建学生信息表 studentNo char(10) primary key, /学号 studentName varchar(30) not null, /姓名 sex char(2) not null, /性别 birthday datetime not null, /出生日期 native varchar(30) not null, /民族 classtudentNo Char(10) not null, / /所属班级 )实施上述SQL语句即可创建学生信息表相关表格create table Course( /创建老师信息表 courseNo char(10) primary
13、 key, /课程号 courseName varchar(30) not null, /课程名 creditHour numeric not null, /学分 courseHour tinyint not null, /课时数 priorCourse varchar(30) not null, /先修课程 )实施上述SQL语句即可创建老师信息表相关表格create table Score( /创建成绩表 studentNo char(10) primary key, /学号 courseNo char(10) primary key, /课程号 term char(10) not null
14、, /开课学期 score numeric not null, /成绩 )实施上述SQL语句即可创建成绩表相关表格五、数据库运行和维护5.1 定义基础表创建、修改及删除;索引创建和删除。5.1.1 基础表创建,建表语句 create table Student( / 创建学生表 studentNo char(10) not null, studentName varchar(30) not null, sex char(2) not null, birthday datetime not null, native varchar(20) not null, classtudentNo Char
15、(10) not null , constraint studentPK primary key(StudentNO), constraint studentPK1 foreign key(classtudentNo)references class(classtudentNo)5.1.2 基础表删除drop table Student5.2 数据操作5.2.1 单表查询:查询学号为“0800006”生姓名select studentNamefrom Studentwhere studentNo= 0800006结果:5.2.2 连接查询查询学生学号、姓名,所选课程课程号、课程名和成绩Sele
16、ct Student.studentNo,Student.studentName,Class.classNo,Class.className,Score.scorefrom Student,Class,Score,CourseWhere Student.studentNo=Score.studentNo and Student.classNo=Class.classNo and Course.courseNo=Score.courseNo结果:5.2.3 操作结果集查询查询0700003号同学和0800002号同学共同选修课程Select courseNoFrom ScoreWhere stu
17、dentNo=0700003IntersectSelect courseNoFrom scoreWhere studentNo=0800002查询结果:5.2.4 嵌套查询 查询选修了“CS0701”这门课全部学生学号、姓名、出生日期和籍贯。Select studentNo,studentName,birthday,nativeFrom StudentWhere studentNo in (select studentNo From score Where classNo=CS0701)查询结果:5.3 数据库更新操作5.3.1 插入数据向Student表中添加一项统计:姓名:叶问,学号:08
18、00016,性别:男,出生年月:1992-6-19,籍贯:南昌,班级编号:CP0802InsertInto Student(studentNo,studentName, sex,birthday,native,classNo)Values (0800016, 叶问, 男,1992-6-19, 南昌, CP0802结果:5.3.2 修改数据修改吴敏学号为0800019Update StudentSet StudentNo=0800019Where StudentName=吴敏;5.3.3 删除数据删除全部金融学院学生统计Delete from ClassWhere(institute=金融学院)
19、; 5.4 为数据库建立索引5.4.1 索引建立create index studentNameSM on Student(studentName) 5.4.2 索引删除drop index studentNameSM on Student(studentName)5.5 数据库安全性所谓计算机系统安全性,是指为计算机系统建立和采取多种安全保护方法,以保护计算机系统中硬件,软件及数据,预防其偶然或恶意原因使系统遭到破坏,数据遭到更改或泄露等。为预防因用户非法使用数据库造成数据泄露、更改或破坏,必需采取部分安全性控制方法以确保数据库中数据安全、可靠和正确有效。安全性控制防范对象是非法用户和非法操
20、作,预防她们对数据库数据非法存取。关键采取用户标识及判定,使用用户名或用户标识号来标明用户身份。用户想要对对数据库内容进行相关操作,必需申请一个用户名或用户标识号,每次登陆全部必需输入该用户名和对应正确口令,然后系统对其进行验证,只有经过验证用户方可对数据库进行操作。5.6 数据库完整性5.6.1 实体完整性定义:在班级表Class中将classNo定义为主码。create table Class( /创建class表 classNo char(10) not null , className varchar(30) not null , institute varchar(30) Not n
21、ull, grade smallint Not null, classNum tinyint null , constraint ClassPK primary key(classNo) ) 5.6.2 参考完整性定义:在学生成绩表Score中将studentNo、courseNo定义为外码。create table Score(studentNo char(10) not null,courseNo char(10) not null,term char(10) not null,score numeric(5,1) default 0 not null,Check(Score betwee
22、n 0.0 and 100.0),Constraint ScorePK primary key(studentNo,courseNo),Constraint ScoreFK1 foreign key(studentNo) References Student(studentNo),Constraint ScoreFK2 foreign key(courseNo) References Course(courseNo)六、模式求精 通常,假如能仔细分析用户需求,并正确识别出全部实体集和联络集,有E-R图生成数据库模式往往不需要太多深入模式求精。然而,假如一个实体集中属性之间存在函数依靠(不包含主
23、码依靠关系),则需要依据函数依靠理论将其进行规范化。 经过分析以上关系可知Course关系模式中存在一个对非主属性函数依靠关系:courseName- priorCourse,由此造成问题是数据冗余,即每一个相相同级会员全部需要存放priorCourse信息。该模式不满足BCNF范式。所以,需要对Course进行分解。依据BCNF可分解为一下两个模式:NewCourse1(classNo,courseName,creditHour,courseHour)NewCourse2 (courseName,priorCourse)七、总结 本学生成绩查询系统关键参考书本,相对来说比较简单。不过因为关键
24、以书本为依据,所以整个设计做下来基础掌握了书本上数据库基础操作。设计过程中我也碰到了部分问题,再向其它同学请教过程中我收获了很多。(1)在设计表时应注意使用正确字段类型。(2)在建表语句中,假如这个表主键是多个属性组合主键,则必需作为表级完整性进行定义。伴随学生成绩管理类型不停增加和成绩管理要求不停提升,管理方面工作量将会越来越大,而且其工作将是一件十分烦琐和很轻易犯错事情。在这么情况下有一个实用学生成绩管理系统是有其肯定性,假如能做出一个完善学生成绩管理系统就使管理方面工作量降低很多。总来说,经过这次数据库课程设计锻炼了我们操作能力和让我们从实际上去分析一件事比较全方面和对数据库设计有了更深了解。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100