1、《数据库系统》课程设计报告 16 《数据库系统》课程设计报告 软件专业2012级1班26号巨生鹏 2014年6月20日 目 录 1. 需求分析内容…………………………………………………………………3 1.1 用户需求说明…………………………………………………………3 1。2 数据字典………………………………………………………………3 1。3 数据流图………………………………………………………………7 2。 概念设计内容…………………
2、…………………………………………8 2.1 E-R图…………………………………………………………………8 2.1 包括实体、联系以及实体、联系属性的详细E-R图………………9 3。 逻辑设计与物理设计及安全设计…………………………………………11 3。1 实体类型的转换………………………………………………11 3。2 联系的转换……………………………………………………………11 3。3 物理设计………………………………………………………………12 3。4 安全设计………………………………………………………………15 4。 系统模块设计与功能实现…………………………………………
3、…15 4。1 系统的功能划分及描述………………………………………15 4.2 主要用户界面…………………………………………………………16 4。3 系统使用说明和安装说明…………………………………………………16 5. 附:部分重要代码……………………………………………………………17 6。体会与心得……………………………………………………………………… 18 1需求分析内容 学生信息管理系统概述 学生信息管理系统主要用来管理学生基本信息.本系统是一个简单的学生信息管理系统,系统管理的信息主要是学生基本信息、课程信息和学生选课信息。系统的目的是有效地处理这些信息,同时为用户提
4、供信息检索、信息修改和保护功能。 1.1(1)用户需求说明 学生信息管理系统是学校有效管理学生的重要工具,它的任务主要有以下几项: ◆ 学生基本信息管理,主要负责管理学生基本信息。 ◆ 学生选课信息管理,主要负责管理课程信息和学生选课信息。 ◆ 信息检索管理,主要负责对学生各类信息进行查询和统计. ◆ 信息修改管理,主要负责学生信息的增加,删除,更改。 ◆ 系统管理,主要负责管理用户信息和用户登陆,以及配置系统参数。 (2)系统的目标 学生信息管理系统是学校管理学生的有效方法,也是学生学生查询信息的有效途径。一个好的学生信息管理系统应具有以下这些目标: ◆
5、能够管理所有学生的信息。 ◆ 能够快速地进行学生的各类信息查询,包括基本信息和选课信息的查询。 ◆ 减少学校管理学生的工作任务,降低管理成本。 (3)系统具体需求 系统需求 根据以上对学生信息管理系统的任务和目标的分析,学生信息管理系统的具体需求如下: (1)学生信息:学号、姓名、性别、出生日期、电话、部门、民族、政治面貌、来源地、入学成绩、备注。 (2)课程信息:课程号、课程名、先选课、学时、考核方式、学分. (3)选课信息:学号、课程号、成绩。 (4)教师信息:工号、姓名、性别、职称、学院。 (5)授课信息:工号、课程号和授课效果。 (6)指导信息:工号、学号和成绩。
6、 (7)学生能查询课程信息;自己的学生信息;自己的选课信息;自己选课的最高分、最低分、平均分、和总分。学生选课时,该学生必须是本校学生,课程必须是本校课程;一个学生可以选择多门课程,多个学生可以选择同一门课程。学生选指导老师时,学生必须是本校学生,教师必须是本校教师;一个学生只能选择一个指导教师。 (8)教师只能查询课程信息、本人的授课信息、本人授课的选课信息、本人的指导信息等。教师只能修改本人授课的选课成绩、本人指导的成绩等.教师授课时,课程必须使本校课程,教师必须是本校教师;一个教师可以讲授多门课,多个教师可以讲授一门课.教师指导学生时,学生必须使本校学生,教师必须是本校教师;一个教师
7、可以指导多个学生。 (9)满足常规的完整性、安全性和数据备份能力. 1.2数据字典 根据系统需求分析,利用表格方式设计的数据字典如下: 1) 数据项 数据字典的数据项如表所示: 属性名 存储代码 类型 宽度 主码 外码 主码表 含义 备注 学号 SNo 字符 10B 是 是 学生表 学院班级序号各2位 非空、唯一 学生姓名 SName 字符 20B 否 否 无 学生的姓名 非空 性别 SSex 字符 1B 否 否 无 学生的性别 只能男(m)女(w),用符号表示 出生日期 Sbirth 整型 10B 否
8、 否 无 学生的出生日期 如1988。11.12 电话 SPhone 字符 12B 否 否 无 学生的电话 部门 SColl 字符 40B 否 否 无 学生所在部门 部门是学生所在的院系班级 民族 Snation 字符 15B 否 否 无 学生所属的民族 政治面貌 Spaob 字符 4B 否 否 无 学生的政治面貌 只能是党员、团员、群众之一 来源地 Sbirthplace 字符 10B 否 否 无 学生的家乡 入学成绩 Ssgrade 浮点 4B 否 否 无 学生入学时的成
9、绩 备注 Sremarks 字符 10B 否 否 无 学生的其他备注信息 课程号 CNo 字符 6B 是 是 课程表 学院专业序号各2位 非空、唯一 课程名 CName 字符 20B 否 否 无 课程的名字 非空 先修课 CPNo 字符 6B 否 是 课程表 学院专业序号各2位 学分 Credit 字符 2B 否 否 无 课程的学分 0.5—9 上课地点 Cclass 字符 5B 否 否 无 课程的上课地点 非空 学时 Cperiod 整型 2B 否 否 无 课程
10、要求的学习时间 非空 考核方式 Cexamsy 字符 2B 否 否 无 课程的考试方式 只能C(闭卷)或O(开卷) 工号 TNo 字符 6B 是 是 教师表 学院(部门)专业(科室)序号各2位 非空、唯一 教师名 TName 字符 20B 否 否 无 教师的姓名 非空 教师性别 TSex 字符 2B 否 否 无 教师的性别 只能男女 教师年龄 TAge 整型 1B 否 否 无 教师的年龄 10-80岁 职称 Title 字符 10B 否 否 无 教师的职称 教龄 SchAge
11、整型 1B 否 否 无 教师的教龄 教师电话 TPhone 字符 12B 否 否 无 教师的电话 教师学院 TColl 字符 40B 否 否 无 教师所在学院 选课成绩 Grade 浮点 4B 否 否 无 学生选课的成绩 0-100分 教学效果 TGrade 字符 4B 否 否 无 教师讲授课程的教学效果 一般、中等、良好、优秀 毕设成绩 GDsign 字符 4B 否 否 无 学生毕业设计成绩 (不)及格、中、良、优秀 2) 数据结构 数据字典的数据结构如表所示。 结构名称 存储
12、名称 别名 组成 备注 学生表 Student S 学号、姓名、性别、出生日期、电话、部门、民族、政治面貌、来源地、入学成绩、备注 永久存储 课程表 Course C 课程号、课程名、上课地点、学分、学时、考核方式 永久存储 选课表 StudentCourse SC 学号、课程号和成绩 永久存储 教师表 Teacher T 工号、姓名、性别、年龄、职称、教龄、电话、学院 永久存储 授课表 TeacherCourse TC 工号、课程号和授课效果 永久存储 指导表 TeacherStudent TS 工号、学号和成绩 永久存储
13、学生视图 StudentView SV 工号、职称和教龄;选课的最高、最低、平均和总学分 临时使用 教师视图 TeacherView TV 本人信息和本人指导、授课的学生信息 临时使用 DBA视图 DBAView DV 所有信息(建议使用多个视图) 临时使用 3) 数据流 数据字典的数据流如表所示。 数据流名称 数据流来源 数据流去向 组成 备注 编辑选修信息 S、C、T、TC SC 学号、课程号、选课成绩 编辑授课信息 S、C、T TC 课程号、课程名、授课效果 编辑指导信息 S、T TS 工号、学号、毕设成绩
14、学生查询信息 SV(S、C、T、SC、TC、TS) TempTable S、C、SC、TC、TS、工号、职称、教龄 教师查询信息 TV(S、C、T、SC、TC、TS) TempTable S、C、T、SC、TC、TS DBA编辑信息 DV(S、C、T、SC、TC、TS) TempTable S、C、T、SC、TC、TS 4) 数据存储 数据字典的数据存储如表所示。 数据存储名称 物理存储名称 组成 备注 学生表 Student 学号、姓名、性别、出生日期、电话、部门、民族、政治面貌、来源地、入学成绩、备注 实体 课程表 Course
15、课程号、课程名、课程导师、上课地点、学分、学时、考核方式 实体 教师表 Teacher 工号、姓名、性别、年龄、职称、教龄、电话、学院 实体 选课表 StudentCourse 学号、课程号、成绩 联系 授课表 TeacherCourse 工号、课程号和授课效果 联系 指导表 TeacherStudent 工号、学号和成绩 联系 5) 处理过程 数据字典的处理过程如表所示. 处理过程名称 输入数据流 处理内容 输出数据流 备注 学生统计 S、C、SC 选课的最高、最低、平均和总学分 SV 教师统计 S、C、T、SC、TC、TS
16、成绩的最高、最低、平均和各个分数段的人数 TV DBA编辑 S、C、SC、T、TC、TS 常规统计信息 DV 1。3.数据流图 学生登记表学生选课表教师登记表 选课信息 选课信息 教师信息 教师信息 成绩信息 授课信息 授课登记表 课程信息 教师信息 课程信息 学生信息 学生登陆 学生 选课 登记成绩 教师登陆 学生信息 课程登记表 教师 课程信息 教师信息 授课 指导登记表 教师信息 学生信息 授课 上课 授课信息 2 概念设计内容 2。1根据需求分析得到的具体要求,绘制E—R 图如下。 学 生
17、 课 程 选 课 成 绩 学 号 姓名 性别 民族 出生日期 政治面貌 入学成绩 联系方式 来源地 部门 备注 课程号 课程名 学时 考核方式 上课地点 学分 图1-选课管理局部E—R图 2。2包括实体、联系以及实体、联系属性的详细E-R图 工号 姓名 职称 教师 讲授 授课效果 课程 课程号 课程名 学分 性别 学院 年龄 教龄 电话 先修课 图2-教授管理局部E—R图 图3-指导管理局部E—R图 教师 工号 姓名 职称 性别 年龄 教龄 学院 电话 指导 学生 学号 姓名
18、 年龄 性别 学院 毕设成绩 学生 选课 课程 教师 讲授 图4—学生管理系统全局E-R图 3逻辑设计与物理设计及安全设计 3.1/2实体类型与联系的转换 联系转换 一个学院拥有若干名学生,但是一个学生只能属于一个学院,因此学院与学生之间的联系属于一对多联系,其中学院是一方,而学生是多方.一个学院拥有多名教师,但是一个教师只能在一个学院里工作,因此学院与教师之间的联系属于一对多联系,其中学院是一方,而教师则是多方.同时由于不管是学生还是教师都是与学院有联系的,所以学院是学生实体和教师实体之间的桥梁。另外学生在学校期间必须要学习课程,且每学习完一门课程之后
19、学生都要参加考试,从而产生成绩,因此学生和课程之间也有联系。由于一个学生可以学习多门课程,另一方面一门课程可以被多个学生所学习,因此学生和课程之间的联系的类型是多对多联系。 1)根据系统的概念结构,其逻辑结构设计如下: 学生(学号,姓名,性别,出生日期,电话,部门,民族,政治面貌,来源地,入学成绩,备注) 课程(课程号,课程名,上课地点,学分,学时,考核方式) 选课(学号,课程号,成绩) 2)根据系统的逻辑结构和应用需求,其外模式的视图设计如下: 学生视图(学号,姓名,性别,年龄,电话,部门,民族,政治面貌,来源地,入学成绩,课程号,课程名,上课地点,学时,考核方式学分,成绩,最高
20、分、最低分、平均分,总学分) DBA选课视图(学号,姓名,性别,年龄,电话,部门,民族,政治面貌,来源地,入学成绩,课程号,课程名,上课地点,学时,考核方式,学分,成绩) 3)根据上述的转换结果,在对关系模式中数据进行规范化处理后,得到了符合第三范式的关系模式如下: 学生:{学号、姓名、性别、年龄、电话、部门、民族、政治面貌、来源地、入学成绩、备注} 课程:{课程号、课程名、上课地点、学时、考核方式、学分} 选修:{学号、课程号、成绩} 实体类型转换 (1)学生表(Student)中的属性有 学号(SNo),姓名(Sname),性别(Ssex),出生日期(Sbirth),电话(
21、Sphone),部门(Scoll),民族(Snation),政治面貌(Spaob),来源地(Sbirthplace—Sbplace),入学成绩(Ssgrade—Ssg),备注(Sremarks—Srem)。 Student(U1,F1) U1={SNo,Sname,SSex,Sbirth,Sphone,SColl,Snation,Spaob,Sbp,Ssg,Srem} F1={SNo→(Sname.SSex,Sbirth,Sphone,SColl,Snation,Spaob,Sbplace,Ssg,Srem)} (2)课程表(Course)中的属性有 课程号(CNo),课程名(Cnam
22、e),上课地点(Cclass),考核方式(Cexamsy),学时(Cperiod),学分(Credit)。 Course(U2,F2) U2={CNo,CName,Ctname,Cclass,Cexamsy,Cperiod,Credit} F2={CNo→(CName ,Cclass,Cexansy,Cperiod,Credit)} (3)选课表(StudentCourse)中的属性有学号(SNo),课程号(CNo),成绩(Grade). StudentCourse(U3,F3) U3={SNo,CNo,Grade} F3={(SNo,CNo)→Grade} 4)教师表(Tea
23、cher)中的属性有工号(TNo),教师姓名(TName),教师性别(Tsex),教师年龄(TAge),职称(Title),教龄(SchAge),教师电话(Tphone),教师学院(TColl)。 Teacher(U4,F4) U4={TNo,TName,TSex,TAge,Title,SchAge,TPhone,TColl} F4={TNo→(TName,TSex,TAge,Title,SchAge,TPhone,TColl)} 5) 授课表(TeacherCourse)中的属性有教师工号(TNo),课程号(CNo),教学效果(TGrade). TeacherCourse(U5,F
24、5) U5={TNo,CNo,TGrade} F5={(TNo,CNo)→TGrade} 6) 指导表(TeacherStudent)中的属性有教师工号(TNo),学生学号(SNo),毕设成绩(GDsign) TeacherStudent(U6,F6) U6={TNo,SNo,GDsign} F6={(TNo,SNo)→GDsign} 3。3.物理设计 (1)主要是设计表结构。一般地,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不一定是一一对应的。 (2)对表结构进行规范化处理(第三范式)。 (
25、3)表汇总 表名 功能说明 表A 记录学生的基本信息 表B 记录课程的基本信息 表C 记录教师的基本信息 表D 记录选课的基本信息 表E 记录授课的基本信息 表F 记录教师对学生的指导信息 表A 表名 学生表 列名 类型 宽度 规则 学号 char 10 非空、唯一 姓名 char 20 非空 性别 char 1 只能m(男)w(女) 出生日期 char 10 电话 char 11 部门 char 40 民族 Char 15 政治面貌 Char 2 只能群众、党或团员 来源
26、地 Char 10 入学成绩 Int 4 备注 char 10 补充说明 存储名称Student 别名S 永久存储 注:(1)该表存放全校所有学生的基本信息,每个学生产生一条记录. 表B 表名 课程表 列名 类型 宽度 规则 课程号 char 6 非空、唯一 课程名 char 20 非空 上课地点 char 5 非空 学时 Int 2 非空 考核方式 char 1 只能C(闭卷)O(开卷) 学分 char 2 0。5—9 补充说明 存储名称Course 别名C 永久存储 注:该表
27、存放某校所有的课程信息,每门课产生一条记录。 表C 表名 教师表 列名 数据类型(精度范围) 空/非空 约束条件 工号 字符 非空 唯一 姓名 字符 非空 性别 字符 只能男女 年龄 整型 10—80岁 职称 字符 教龄 整型 电话 字符 学院 字符 补充说明 存储名称Teacher 别名T 永久存储 表D 表名 选课表 列名 类型 宽度 规则 学号 char 10 主键、内容取自学生信息表的学生姓名 课程号 char 20 主键、内容取自课程信息表的课
28、程名称 成绩 char 4 0-—100 补充说明 存储名称StudentCourse 别名SC 永久存储 注:该表存放学校所有学生的成绩信息,每个学生学习每门课程产生一条记录。 表E 表名 授课表 列名 数据类型(精度范围) 空/非空 约束条件 工号 字符 非空 唯一 课程号 字符 非空 唯一 授课效果 字符 一般、中等、良好、优秀 补充说明 存储名称TeacherCourse 别名TC 永久存储 表F 表名 指导表 列名 数据类型(精度范围) 空/非空 约束条件 工号 字符 非空 唯一 学号 字符
29、 非空 唯一 成绩 浮点 (不)及格、中、良、优秀 补充说明 存储名称TeacherStudent 别名TS 永久存储 3。4安全设计 1防止用户直接操作数据库的方法 采用用户标识和鉴别检测机制。即:用户进入系统时必须首先输入用户的帐号和密码,然后系统对其进行鉴别,通过系统鉴别后才能使用系统资源。 2用户帐号密码的加密方法 用动态户标识和鉴别,它是使用变化的用户标识信息进行身份鉴别的机制。即:静态用户名和动态密码.采用验证码登陆机制(用户名称+密码+验证码),其基本思想为:验证码是把随机产生的多个数字或者字符组成的字符串,生成一幅图片,同时在图片里加上噪声(防止O
30、CR识别),并由用户肉眼识别其中的验证码信息,提交网站验证。 3角色与权限 角色 可以访问的表与列 操作权限 学生 S,C,SC,SV SELECT 教师 S,C,T,SC,TC,TS SELECT TV SELECT,UPDATE,EXECUTE 4. 系统模块设计与功能实现 4。1 系统的功能划分及描述 能够管理所有学生的信息。能够快速地进行学生的各类信息查询,包括基本信息和选课信息的查询。学生基本信息管理,具有管理学生基本信息的功能。学生选课信息管理,具有管理课程信息和学生选课信息功能.信息检索管理,具有对学生各类信息进行查询和统计的功能。信息修改管理具
31、有对学生信息的增加,删除,更改的功能。系统管理,具有管理用户信息和用户登陆,以及配置系统参数的功能。 4。2 主要用户界面 登陆界面 管理员登陆界面 学生登录界面 实现管理员和学生操作功能的界面 学生的登录系统后可以进行学生信息查看、成绩信息查看、个人信息管理等功能操作。 4。3系统使用说明和安装说明 配置ODBC 运行本实例需要配置用户DSN,在ODBC数据源管理器中配置用户DSN连接指定的SQL Server数据库。关键操作步骤如下: (1)单击“开始”按钮,选择“程序”→“管理工具”→“数据源(ODBC)”
32、命令,打开“ODBC数据源管理器”对话框,打开“用户DSN"选项卡。 (2)单击“添加"按钮,打开“创建新数据源”对话框,选择安装数据源的驱动程序,这里选择“SQL Server”。 (3)单击“完成”按钮,打开“创建到SQL Server的新数据源"对话框,在“名称”文本框中设置数据源名称为“mystudentsys”,在“描述”文本框设置数据源描述为“配置SQL Server数据库DSN”,在“服务器”下拉列表框中选择连接的数据库所在服务器为“(local)”。 (4)单击“下一步”按钮,选择“使用用户输入登录ID和密码的SQL Server验证”单选框,在“登录ID”文本框中
33、输入SQL Server用户登录ID,在“密码"文本框中输入SQL Server用户登录密码。 (5)单击“下一步"按钮,选择“更改默认的数据库为"复选框,并在其下拉列表框中选择连接的数据库名称,这里选择“tb_student”,单击“下一步”按钮. (6)单击“完成”按钮,打开“ODBC Microsoft SQL Server安装"对话框,显示新创建的ODBC数据源配置信息。 (7)单击“测试数据源”按钮测试数据库连接是否成功,如果测试成功,单“确定"按钮,完成数据源配置。 使用说明 1。本操作系统只允许管理员进行相关的操作.运行本程序后,首先进入登陆界面,输入管理员账号.
34、 2。账号和密码输入正确后,将进入菜单选项界面,你可以根据所需要的服务选择对应的操作. 3。在选定所需要的操作后,系统会有相应的操作提示,可以根据提示进行自己所需要的服务。出现错误,系统也会自动提醒,用户根据系统的提醒,即可完成操作. 4。所有的成绩必须在1到100之间,否则系统会提示出错,在退出系统时,要保存数据,如果不保存,所有信息就会丢失。 5。在进入系统后,如果是对已有的学生信息尽行操作,需要先导入存储学生信息的相应文件,然后选择自己所需要的各种操作。 如果没有学生信息档案,可以选择新建建立新的学生档案。在退出系统后,要选择对数据进行保存,系统会将此档案保存在生成的文件中,以便
35、下次使用时导入。 5.附:部分重要代码 数据库 -——-——————--—-——-————--————-————-————-—-—-——-—---——-—-——-———-—— StudentDatabase ——--——-——-——-———————-—--———————-—-——-----——————————-——--————--- 部分数据表(表Student Course StudentCourse) --————-—-————-——-—-—-—————————--——-—-—-————----—————-—---—————— Student CREATE TABLE
36、 Student( SNo CHAR(10) PRIMARY KEY NOT NULL, SName CHAR(20) NOT NULL, SSex CHAR(2), Sbirth CHAR(10), Sphone CHAR(11), SColl CHAR(40), NOT NULL, Snation CHAR(15), NOTNULL, Spaob CHAR(4), NOT NULL, Sbplace CHAR(10), SSgrade CHAR(4), NOTNULL, Srem CHAR(10); Course
37、CREATE TABLE Course( CNo CHAR(10) PRIMARY KEY NOT NULL, CName CHAR(20) NOT NULL, CCredit INT), Cclass CHAR(4),NOTNULL, Cperiod INT(2), NOTNULL, Ces CHAR(1); StudentCourse CREATE TABLE StudentCourse( SNo CHAR(10) NOT NULL, CNo CHAR(10) NOT NULL, Grade FLOAT, P
38、RIMARY KEY (SNo, CNo), FOREIGN KEY (SNo) REFERENCES Student(SNo), FOREIGN KEY (CNo) REFERENCES Course(CNo)); TempStudentCourse CREATE TABLE TempStudentCourse( SNo CHAR(10) NOT NULL, CNo CHAR(10) NOT NULL, Grade FLOAT, SName CHAR(20), CName CHAR(20), PRIMARY
39、 KEY (SNo, CNo), FOREIGN KEY (SNo) REFERENCES Student(SNo), FOREIGN KEY (CNo) REFERENCES Course(CNo)); 心得与体会 这次课程设计是数据库课程的课程设计,数据库应用课程设计是计算机技术专业重要的实践课程之一,是在掌握程序设计语言的基础上,学习《数据库系统概论》课程后的一次综合实践练习。通过本课程设计,将在课堂上了解和掌握的数据库系统及设计阶段的方法与技术,直接运用到实际系统的开发工作中。在课程设计初期,我首先确定的课题题目,在细致地讨论了系统的需求,列出了相应的模块,并进行了结构化设计。然后我再根据我们的初步研究结果,确定我的编程方向,开始我的任务.我通过借阅相关书籍,上网查阅资料等方式,完成了我的系统编程初稿。但在系统测试阶段,出现了很多的问题和错误. 比如数据库文件的导入路径出错,导致数据库连接错误;通过这次课程设计,我不仅清楚地知道了自己在数据库系统知识和高级编程语言方面的不足,我真切地体验了软件项目管理技能和方法,熟悉了软件工具与环境,把课堂学习的理论知识很好的在实践中运用。






