《数据库原理》综合设计报告学生成绩管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《学生成绩管理系统》综合实验报告
实验题目:学生成绩管理系统
年级专业:09级计算机科学与技术2班小组成员:刘喜江李红飞杨国威
***师:**
完成日期:2011年11月25日
目录
一、数据库功能设计 (2)
二、数据库需求分析设计 (2)
三、数据库概念结构设计 (5)
四、数据库逻辑结构设计 (6)
六、总结 (8)
参考文献: (9)
一、数据库功能设计
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入,收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
该学生成绩管理系统,实现简单的成绩查询、课程查询、学生查询等操作,并能实现简单的数据统计。
(一)学生查询
1、学生信息修改
修改选中当前学生的信息。
2、学生信息的添加
增加新学生的信息。
3、学生信息删除
删除选中当前学生信息。
(二)课程查询
1、课程修改
实现对课程名、学时、学分的修改。
2、课程添加
对一门新开设的课程进行录入,并存入数据库。
3、课程删除
对一门不在开设的课程进行删除,并从数据库中删除。
(三)成绩查询
1、成绩修改
先选中要修改的成绩信息,然后进行修改。
2、成绩添加
直接弹出添加对话框,然后进行添加。
3、成绩删除
先选中要删除的成绩信息,然后直接删除。
二、数据库需求分析设计
2.1数据流程图
图2-1系统的数据流图
2.2 数据字典
数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据
类型、长度、取值能否为空。利用SQL Server 2000建立“StudentCourse”数据库,其基本表清单及表结构描述如下:
2.3 存储过程
(1)在Course中插入一元组
CREATE PROCEDURE Course_prod
AS
Insert
Into Course
Values('1018','微机原理','36','3.5')
(2)创建一个查询过程
CREATE PROCEDURE Course_prod1
AS
Select *
From Course
(3)创建一个删除存储过程
CREATE PROCEDURE Course_prod2
AS
Delete
From Course
Where Course_cno='1007'
三、数据库概念结构设计
3.1 E-R图
由需求分析的结果可知,本系统设计的实体包括:
(1)学生基本信息:学号,姓名,性别,地址,年龄,专业。
(2)课程基本信息:课程名,课程号,学时,学分。
(3)成绩基本信息:课程号,学号,分数。
这些实体间的联系包括:
每位学生可以学习多门课程,每门课程可供多位学生学习。
由上述分析可得到系统的E—R图:
四、数据库逻辑结构设计
4.1将E-R图转换为关系模型
实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:
一个m:n联系转换为一个独立的关系模式。与该联系相联的个实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相联的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相联的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合,具有相同的关系模式可合并。
具体的基本E—R图向关系模式的转化如下:
(1)学生(学号,姓名,性别,年龄,地址,系别),其主关键字为学号;
(2)课程(课程名,课程号,学时,学分),其中主关键字为课程号;
(3)成绩(课程号,学号,分数)其中主关键字为学号和课程号。
可以与学生关系模式合并为:
学生(学号,姓名,性别,年龄,地址,系别,成绩,课程号)。
4.2 模型优化
关系模式学生,课程不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF。
五、数据库的物理设计
1.建立数据表
(1)学生信息表的建立。
CREATE TABLE Student
(Student_sno char(10) primary key,
Student_sname char(10) not null,
Student_sex char(2),
Student_dept char(10),
Student_age char(10),
Student_address char(10));
(2)课程信息表的建立
CREATR TABLE Course
(Course_cno char(10) primary key,
Course_cname char(10) not null,
Course_hour int,
Course_score float(8));
(3)分数信息表的建立
CREATE TABLE Score
(Course_cno char(10),
Student_sno float(8),
Score float(8));