1、深 圳 大 学 实 验 报 告课程名称: 数据库原理及设计 实验项目名称: 学生信息管理系统的设计 学院: 深圳大学管理学院 专业: 信息管理与信息系统 实验时间: 2011/12/15 -2011/12/18 实验报告提交时间: 2011/12/19 教务处制实验目的与要求:要求:了解管理信息应用系统的数据库设计的基本方法,掌握数据库设计的基本流程。目的:通过本次课程设计,了解并掌握数据库设计过程中各个阶段的工作过程和工作内容方法、步骤要求:要求运行环境;SQL Server 2000 winows xp步骤:1.1 数据需求分析学生信息管理系统就是对学生信息的管理,所以首先需要知道的是学生
2、有那些信息,并且是怎样进行分类的。学生的信息包含 1:基本信息;2:课程及成绩;3 课程表。基本信息根据要求应该包括学生的基本情况、获得奖励情况、受到处分情况、学生的家庭信息等;课程及成绩应该包含对应课程对应学生的成绩;课程表包含课程号及其先导课。学生唯一一一对应的是学号,所以学号是唯一的主键,其他的都不能是,根据学号我们可以查找学生的姓名信息,还有学生的上过课的课程成绩等有关信息;根据学号,可以知道学生的各科成绩查询。综合分析对信息管理系统分四个表:学生基本信息(学号,姓名 ,性别,出生日期,学生所在系,班号 ,入校成绩,入学时间,电话,父亲,母亲,获得奖励情况,受到处分情况) ,学生成绩表
3、(学号,课程号,成绩) ,课程表(课程号,课程名,教师姓名,先导课程) 。1.2 概念结构设计实体间的联系:1:学生个人信息表 stunents:学号 s_number、姓名 s_name、性别sex、出生日期 birthday、籍贯 native、所在院系编号 dep_number、所在班级 class_number、电话号码 tel、联系地址 address、邮编 zipcode、电子邮件 email、相片 photo、个人信息备注 note2:学籍变更信息表 schoolregister:记录号 t_number、学号s_number、变更情况 change、记录对象 t_object、
4、记录时间 t_time、详细描述 t_memo3:学生奖励记录表 reward:记录号 r_number、学号 s_number、级别r_rank、奖励对象 r_object 、记录时间 r_time 、详细描述 r_memo4:学生处罚记录表 punish:记录号 p_number、学号 s_number、级别p_rank、处罚对象 p_object、记录时间 p_time、详细描述 p_memo、是否生效 effect5:班级信息表 class:班级编号 c_number、班级名称 c_name、所属院系 dep_number6:院系信息表 department:院系编号 dep_numb
5、er、院系名称 dep_name7:E-R 图:学生个人信息表邮编学号姓名性别 出生日期院系编号班级编号籍贯联系地址电话号码电子邮件相片个人信息备注学籍变更记录详细描述记录号变更情况记录对象学号记录时间奖励记录详细描述记录号奖励对象级别学号记录时间处罚记录详细描述记录号处罚对象级别学号记录时间是否生效班级班级名称班级编号 所属院系院系院系名称院系编号1.3 逻辑结构设计1.学生个人信息表 stunents(学号 s_number、姓名 s_name、性别 sex、出生日期 birthday、籍贯 native、所在院系编号 dep_number、所在班级 c_number、电话号码 tel、联
6、系地址 address、邮编 zipcode、电子邮件email、相片 photo、个人信息备注 note)字段名 字段类型 长度 主键或外键 字段值约束 对应中文属性名s_number char 10 主键 不为空 学号s_name char 8 不为空 姓名sex char 2 不为空 性别birthday datetime 8 不为空 出生日期native char 20 不为空 籍贯c_number char 10 外键 不为空 所在班级编号dep_number char 10 外键 不为空 所在院系编号tel char 20 电话号码address varchar 50 联系地址zi
7、pcode char 8 邮编email varchar 20 电子邮件photo image 16 相片note varchar 100 个人信息备注2. 学籍变更信息表 schoolregister(记录号 t_number、学号 s_number、变更情况 change、记录对象 t_object、记录时间 t_time、详细描述 t_memo)字段名 字段类型 长度 主键或外键 字段值约束 对应中文属性名t_number int 4 主键 不为空 记录号s_number char 10 外键 不为空 学号change char 20 变更情况t_object char 20 不为空 记
8、录对象t_time datetime 8 不为空 记录时间t_memo varchar 100 详细描述3. 学生奖励记录表 reward(记录号 r_number、学号 s_number、级别r_rank、奖励对象 r_object 、记录时间 r_time 、详细描述 r_memo)字段名 字段类型 长度 主键或外键 字段值约束 对应中文属性名r_number int 4 主键 不为空 记录号s_number char 6 外键 不为空 学号r_rank char 5 级别r_object char 20 不为空 奖励对象r_time datetime 8 不为空 记录时间r_memo v
9、archar 100 详细描述4. 学生处罚记录表 punish(记录号 p_number、学号 s_number、级别p_rank、处罚对象 p_object、记录时间 p_time、详细描述 p_memo、是否生效effect)字段名 字段类型 长度 主键或外键 字段值约束 对应中文属性名p_number int 4 主键 不为空 记录号s_number char 6 外键 不为空 学号p_rank char 2 级别p_object char 20 不为空 处罚对象p_time datetime 8 不为空 记录时间p_memo varchar 100 详细描述effect char 2
10、 不为空 是否生效5. 班级信息表 class(班级编号 c_number、班级名称 c_name、所属院系dep_number)字段名 字段类型 长度 主键或外键 字段值约束 对应中文属性名c_number char 10 主键 不为空 班级编号c_name char 20 不为空 班级名称dep_number char 10 外键 不为空 所属院系6. 院系信息表 department( 院系编号 dep_number、院系名称 dep_name)字段名 字段类型 长度 主键或外键 字段值约束 对应中文属性名dep_number char 10 主键 不为空 院系编号dep_name ch
11、ar 20 不为空 院系名称7. 数据表之间的逻辑关系图:1 N1 1N N1院系 属于 班级学生属于 属于N N N1.4 数据库物理设计物理结构设计是为逻辑数据模型建立一个完整的能实现的数据库结构,包括存储结构和存取方法。输入:系统关系数据结构输出:系统数据库物理结构1.物理结构设计的主要内容:2.物理存储介质类型的选择为了提高系统的安全性,防止系统因介质的损坏而导致数据丢失的危险,学生信息管理系统最好采用基于 Windows 2000 RAID-5 卷实现的RAID-5 级的磁盘阵列,因此需要四块物理磁盘。3.数据库物理位置的选择学生信息管理系统数据库的数据文件安排如下:一个主数据文件,
12、存放在 C:Teachdatateachdat1.mdf 下;两个次数据文件,分别存放在D:Teachdatateachdat2.mdf 和 E:Teachdatateachdat3.mdf 下;日志文件,存放在 F:Teachdatateachlog.ldf 下。应用系统可以对四块磁盘进行并行访问,从而提高对磁盘数据的读写效率。4.索引类型的选择教学信息管理系统的核心任务是对学生的学籍信息和考试信息进行有效的管理。其中,数据量最大且访问频率较高的是学生选课信息表。为了提高系统的查询效率,降低系统的查询成本,需要为学生信息表和学生选课信息表建立聚簇索引。5.数据库服务器性能参数配置数据库服务器
13、的内存配置参数、I/O 配置参数和操作系统性能配置参数使用系统安装时缺省参数。1.5 数据库实施数据库实施是根据应用系统数据库的关系结构模型和物理结构设计结果,形成基于 SQL Server 平台应用系统数据库的脚本和数据库设计报告,并进行数据库的具体构建与管理。输入:处分记录 奖励记录 学籍变更记录受处分 受奖励 学籍变更系统关系数据结构系统数据库物理结构输出:系统数据库脚本系统数据库设计报告数据库定义脚本数据库表定义脚本数据库索引定义脚本实验过程及内容(代码和数据结构定义):1.1 数据库的创建查询分析器:CREATE DATABASE studentON PRIMARY(NAME=stu
14、dent_data,FILENAME=H:SQLDataBasestudent.mdf,SIZE=10,MAXSIZE=50,FILEGROWTH=5%)LOG ON(NAME=student_log,FILENAME=H:SQLDataBasestudent.ldf,SIZE=1,MAXSIZE=5,FILEGROWTH=1)结果显示窗格:CREATE DATABASE 进程正在磁盘 student_data 上分配 10.00 MB 的空间。CREATE DATABASE 进程正在磁盘 student_log 上分配 1.00 MB 的空间。1.2 表对象的创建1.学生个人信息表 stun
15、ents 的创建:USE studentGOCREATE TABLE students(s_number char(10) NOT NULL PRIMARY KEY, -学号s_name char(8) NOT NULL, -姓名sex char(2) NOT NULL, -性别birthday datetime NOT NULL, -出生日期native char(20) NOT NULL, -籍贯c_number char(10) NOT NULL, -所在班级编号dep_number char(10) NOT NULL, -所在院系编号tel char(20), -电话号码address
16、 varchar(50), -联系地址zipcode char(8), -邮编email varchar(20), -电子邮件photo image, -相片note varchar(100) -个人信息备注)2.学籍变更信息表 schoolregisterUSE studentGOCREATE TABLE schoolregister(t_number int NOT NULL PRIMARY KEY, -记录号s_number char(10) NOT NULL, -学号change char(20), -变更情况t_object char(20) NOT NULL, -记录对象t_tim
17、e datetime NOT NULL, -记录时间t_memo char(100) NOT NULL, -详细描述)3.创建学生奖励记录表 rewardUSE studentGOCREATE TABLE reward(r_number int NOT NULL PRIMARY KEY, -记录号s_number char(10) NOT NULL, -学号r_rank char(5), -级别r_object char(20) NOT NULL, -奖励对象r_time datetime NOT NULL, -记录时间r_memo char(100) NOT NULL, -详细描述)4.创建
18、学生处罚记录表 punishUSE studentGOCREATE TABLE punish(p_number int NOT NULL PRIMARY KEY, -记录号s_number char(10) NOT NULL, -学号p_rank char(5), -级别p_object char(20) NOT NULL, -处罚对象p_time datetime NOT NULL, -记录时间p_memo char(100) NOT NULL, -详细描述effect char(2) NOT NULL -是否生效)5.创建班级信息表 classUSE studentGOCREATE TAB
19、LE class(c_number char(10) NOT NULL PRIMARY KEY, -班级编号c_name char(10) NOT NULL, -班级名称dep_number char(10) NOT NULL -所属院系编号)6.创建院系信息表 departmentUSE studentGOCREATE TABLE department(dep_number char(10) NOT NULL PRIMARY KEY, -院系编号dep_name char(10) NOT NULL, -院系名称)1.3 索引对象的创建创建索引 i_stu_number:USE student
20、GOCREATE UNIQUE CLUSTERED INDEX i_stu_numberON students(s_number)WITHPAD_INDEX,FILLFACTOR=40,IGNORE_DUP_KEY,STATISTICS_NORECOMPUTE1.4 视图对象的创建创建视图 v_students:USE studentGOCREATE VIEW v_studentsASSELECT department.dep_number AS 学院代码,department.dep_name AS 学院名称,class.c_number AS 教室编号,class.c_name AS 教室
21、名称,s_number AS 学号,s_name AS 姓名FROM department,class,studentsWHERE department.dep_number=students.dep_numberAND class.c_number=students.s_number1.5 登录用户的创建创建 SQL Server 登录账号:Exec sp_addlogin Admin ,admin1.6 数据库用户的创建创建 SQL Server 数据库用户:Exec sp_grantdbaccess Admin,myDB数据处理分析(结果,输出屏幕的截图):1.1 案例试验数据1.2 表
22、数据的编辑1数据的插入USE studentGOINSERT INTO students(s_number,s_name,sex,birthday,native,c_number,dep_number,tel,address,zipcode)VALUES(20071006,尹贝,女,1990-07-05,安徽,101,01001,13711020486,安徽省亳州市,271602)2.数据的修改USE studentGOUPDATE studentsSET c_number=101,dep_number=01001WHERE s_number=200810043.数据的删除USE studen
23、tGODELETE FROM students WHERE s_number=200710061.3 表数据的简单查询USE studentGOSELECT dep_number AS 学院代码,c_number AS 教室编号,s_number AS 学号,s_name AS 姓名FROM students1.4 表数据的联接查询USE studentGOSELECT department.dep_number AS 学院代码,dep_name AS 学院名称,class.c_number AS 教室编号,c_name AS 教室名称,s_number AS 学号,s_name AS 姓名FROM department,class,students算法评价或者心得(可选):通过这次的 SQL Server 课程设计, SQL 的指令用法更熟练了,对 SQL 数据库的功能也深入了一些,对 Transact-SQL 命令熟练运用,让我更加加深了它的语句思想!让我从这次课程设计中获得了好多知识,一些不太会的语句自己上网查过之后都记住了,还有以前很多书上没见到的老师也没讲的也通过这次实验学到了一些。指导教师批阅意见:成绩评定:指导教师签字:年 月 日备注:注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。2、教师批改学生实验报告时间应在学生提交实验报告时间后 10 日内。