《数据库课程设计——班级信息管理系统.doc》由会员分享,可在线阅读,更多相关《数据库课程设计——班级信息管理系统.doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、甘肃政法学院本科学生期中作业姓名 张航 学院 计算机科学学院 专业 计算机科学与技术 班级 12级专升本班 实验课程名称 数据库原理与系统概论 指导教师及职称 姚伟 实验成绩 开课时间 2013-2014 学年 第二 学期目录第一章 数据库设计内容及要求11.课程设计任务12.设计要求数据库中有以下四个表1第二章 需求分析11 需求分析的任务12 需求分析的过程13.功能介绍2第三章 概念结构设计31 概念结构设计的方法32 概念结构设计的步骤33 数据抽象与局部视图设计3第四章 逻辑结构设计31 E-R 图向关系模型的转换32 数据模型的优化43 数据库的结构4第五章物理设计阶段51 系统功
2、能模块52物理设计阶段结果63 数据库实施阶段63.1数据库实施阶段目标63.2数据库实施阶段任务63.2.1建立数据库63.2.2建立数据表73.3.2 输入学生表数据93.3.3 输入班级表数据93.3.4 输入学会表数据103.4 基于数据表的数据查询103.4.1 查询系表103.4.1查询学生表113.4.2查询班级表113.4.3查询班级表113.5建立视图123.6基于视图的数据查询123.6.1系表视图查询123.6.2 班级表视图查询133.6.3生表视图查询133.6.3生表视图查询13总结13第一章 数据库设计内容及要求1.课程设计任务班级信息管理系统问题描述:建立一个关
3、于系、学生、班级、学会等诸信息的关系数据库。2.设计要求数据库中有以下四个表(1)、学生:学号、姓名、出生年月、系名、班号、宿舍区。(2)、班级:班号、专业名、系名、人数、入校年份。 (3)、系:系名、系号、系办公地点、人数。(4)、学会:学会名、成立年份、办公地点、人数。 语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。第二章 需求分析1 需求分析的任务 需求分析的任务是调查应用领域,对应用领域中的信息要求和操作要求进行详细分析,形成需求分析说明书。重点是调查,收集与分
4、析用户在数据管理中的信息要求,处理要求,数据的安全性与完整性要求。 为了完成需求分析的任务,要详细调查待开发的数据库应用的情况,了解班级信息系统的工作概况,分析用户的各种需求,在此基础上确定新系统的功能。新系统必须考虑今后的扩充和改变,不能仅仅按当前应用需求来设计数据库。2 需求分析的过程 (1)了解本班级信息系统主要用于教师管理学生,学生信息管理系统以及参加学会管理系统。 (2)熟悉各部分的信息状况。调查各个学生的基本信息情况,对现行系统的功能和和所需信息有一个明确的认识。包括了解各个模块输入和使用什么数据,如何加工处理这些数据,输入什么信息,输出什么信息,输出到什么部门,输出的结果的格式是
5、什么等。 (3)根据(1)(2)调查的结果,对学生信息管理中各应用的信息要求和操作要求进行详细分析,从中得到:该学生信息系统的各个应用从数据库中得到哪些信息,这些信息的具体内容和性质是什么,要求完成什么样的处理功能,对某些处理要求的相应时间,既对数据的安全,完整性的要求。 (4)确定系统的边界。确定整个系统中哪些由计算机完成,哪些将来由系统完成,哪些由人工完成。由计算机完成的功能就是新系统完成的功能。3.功能介绍(1) 调查用户需求院系院系需求:学生所在院系的系名、系号、系办公地点、人数信息进行输入,删除,修改。查询功能:对系,系号,系办公地点的查询。学生学生信息功能:按专业班级对学生的学号、
6、姓名、出生年月、系名、班号、宿舍区的信息进行输入,删除,修改查询功能:查询学生学号、姓名、出生年月、系名、班号、宿舍区班级班级信息:按专业班级对班号、专业名、系名、人数、入校年份信息进行输入,删除,修改。查询:查询学生班级班号、专业名、系名、人数、入校年份信息。 学会学会信息功能:按学生的姓名对学会名、成立年份、办公地点、人数信息进行输入,删除,修改。查询功能:按学生姓名对学会名、成立年份、办公地点、人数信息进行查询(2)关系模式如下 学生S(SnoSnameSbirthDeptClassRno) 班级C(ClassPnameDeptCnumCyear) 系D(DeptDnoOfficeDnu
7、m)学会M(MnameMyearMaddrMnum)第三章 概念结构设计1 概念结构设计的方法 设计概念结构通常有四类方法:自顶向下,自底向上,逐渐扩张以及混合策略。本教学系统采用的是自底向上的方法。即首先定义全局的概念结构的框架,然后逐步细化。根据自顶向上地进行需求分析然后再自底上上地进行概念设计。2 概念结构设计的步骤 概念结构的设计可分为两步:第一步是抽象数据并设计局部视图。第二步是集成局部视图,得到全局的概念结构。3 数据抽象与局部视图设计按照图2.1 教学学管理系统总框架图,设计局部E-R 图。 图3.1 学生管理系统局部概念结构E-R 图第四章 逻辑结构设计1 E-R 图向关系模型
8、的转换将图3.4 总体概念结构E-R 图转化成关系模型。系表(系号、系名、系办公地点、人数)主键:系号 外键:系办公地点学生表(学号、姓名、出生年月、系名、班号、宿舍区)主键:学号 外键:班号班级表(班号、专业名、系名、人数、入校年份)主键:班号 外键:系名学会(学会名、成立年份、办公地点、人数)主键:学会名 外键:办公地点2 数据模型的优化数据库德逻辑结构设计的结果不是唯一的。为了提高数据库应用系统的性能,还应该根据应用需要适当的修改,调整关系模式,这就是数据模型的优化。规范化理论为数据库设计人员判断关系模式的优劣提供了理论标准,可用来预测模式可能出现的问题,使数据库设计工作有了严格的理论基
9、础。关系数据模型的优化通常以规范化理论为指导,方法为:(1)确定数据依赖。分别写出每个关系内部属性的以及不同关系模式属性间的数据依赖。根据需求分析可知:a) 系表的数据依赖 :系号-系名,系号-系办公地点b) 班级表的数据依赖:班号-班名,班号-系号c) 学生表的数据依赖:学号-姓名,学号-性别,学号-省份,学号-年龄,学号-班级号,学号-专业d) 学会表的数据依赖:学会名-学生姓名,学会名-学好,学会名-系名(2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。(3)按照数据依赖的理论对关系模式逐一分析,考察是否存在部分函数依赖,传递函数依赖,根据各个函数依赖的依赖集可知各个关
10、系模式没有部分函数依赖和传递函数依赖所以所有的关系模式都是属于3NF。不需要进一步,进行模式分3 数据库的结构给出数据库基本表总体结构图。根据总体结构图设计各表的结构。表4-1 系表的结构字段名数据类型长度约束描述Deptchar20主键系号 Dnochar20不为空系名Officechar30外键系办公地点Dnumchar10不为空人数表4-2 学生表的结构字段名数据类型长度约束描述Snochar20主键学号 Snamechar10不为空姓名Sbirthchar15不为空出生年月Deptchar20不为空系号ClassSmallint20外键班号Rnochar20不为空宿舍区表4-3班级表的
11、结构字段名数据类型长度约束描述Classchar25主键班号 Pnamechar25不为空专业名Deptchar25外键系名Cnumchar25不为空人数Cyearchar25不为空入校年份表4-4 学会表的结构字段名数据类型长度约束描述Deptchar20主键学会名Dnochar10不为空成立年份Officesmallint20外键办公地点Dnumchar8不为空人数第五章物理设计阶段1 系统功能模块(1)系表信息查询和更新模块将实现对系部信息的查询和更新(修改、插入、删除)操作,方便于对系部基本信息的 管理 (2)学生表的查询和更新模块 将完成班级基本信息的查询、更新(修改、插入、删除)操
12、作,便于对学生信息的集中管理(3)班级表的查询和更新模块 将完成学生基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理(4)学会表的查询和更新模块 将完成课程基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理2物理设计阶段结果编号存储过程作用1 系表_insert在系表中插入一元组2班级表_insert在班级中插入一元组3学生表_insert在学生中插入一元组4学会表_insert在课程中插入一元组 (其他表的查询、修改、删除与上面表的大致相同,这里不再具体列出)3 数据库实施阶段3.1数据库实施阶段目标用DBMS所提供的数据定义语言和其他实用程序将数据
13、库逻辑设计和物理设计结果描述出来,成为DBMS可以接受的源代码,在经过调试生成目标模式3.2数据库实施阶段任务3.2.1建立数据库Create database 班级信息库 班级信息管理系统;图5.1 班级信息管理系统数据库3.2.2建立数据表(1)系表基本信息的建立 Create table D ( Dept char(20) primary key not null, Dno char(20) not null, Office char(30) , Dnum char(10) not null, )图5.2 系表 (2) 学生表基本信息的建立 Create table S ( Sno ch
14、ar(20) primary key, Sname char(10) not null, Sbirth char(15) not null, Dept char(20) not null, Class char(20) not null, Rno char(20) not null, ) 图5.3 学生表 (3) 班级表基本信息的建立 Create table C ( Class char(25) primary key, Pname char(25) not null, Dept char(25) , Cnum char(25) , Cyear char(25) , )图5.4 班级表 (4
15、) 学会表基本信息的建立 Create table M ( Mname char(20) primary key, Myear char(10) not null, Maddr char(20) not null, Mnum char(8), )图5.5 学会表3.3输入各表的数据3.3.1 输入系表数据INSERT INTO D (Dept,Dno ,Office ,Dnum) VALUES ( 计算机科学与技术,信息楼六楼,25)INSERT INTO D (Dept,Dno ,Office ,Dnum) VALUES ( 人文学院,信息楼5楼,25)图5.6 系表数据输入3.3.2 输入
16、学生表数据INSERT INTO S (Sno,Sname,Sbirth,Dept,Class,Rno) VALUES ( 2 ,程志宇,1990年,计算机科学与技术,2012,9)INSERT INTO S(Sno,Sname,Sbirth,Dept,Class,Rno) VALUES ( 4 ,符雯斌,1989年,计算机科学与技术,2012,9)图5.7 学生表数据输入3.3.3 输入班级表数据INSERT INTO C (Class,Pname,Dept,Cnum,Cyear)VALUES ( 专升本, 计算机科学与技术,计科院,47,2012)INSERT INTO C (Class,
17、Pname,Dept,Cnum,Cyear) VALUES ( 广告 , 艺术学院,美术系,41,2011)图5.8 班级表数据输入3.3.4 输入学会表数据INSERT INTO M (Mname,Myear,Maddr,Mnum)VALUES ( 摄影协会, 1990,大学生活动中心001,47)INSERT INTO M (Mname,Myear,Maddr,Mnum) VALUES ( 青年志愿者协会, 1990,大学生活动中心002,2780)图5.9 学会表数据输入3.4 基于数据表的数据查询3.4.1 查询系表Select *From D图5.10 系表数据查询3.4.1查询学生
18、表Select *From S图5.11 学生表数据查询3.4.2查询班级表Select *From C图5.12 班级表数据查询3.4.3查询班级表Select *From M图5.13 学会表数据查询3.5建立视图 (1) 查询系表的基本信息的视图定义如下:create view D _viewasselect *from Dwith check option (2) 查询班级表的基本信息的视图定义如下: create view C_view as select * from C with check option (3) 查询学生表的基本信息的视图定义如下: create view S_
19、view as select * from S with check option(4) 查询课程表的基本信息的视图定义如下: create view M_view as select * from M with check option3.6基于视图的数据查询3.6.1系表视图查询Select *From D_view3.6.2 班级表视图查询Select *From C_view3.6.3生表视图查询Select *From s_view3.6.3生表视图查询Select *From Mview总结 经过一周的努力后本次数据库设计作业已经完成。其功能完整,用户界面良好,但是也存在着某些缺陷
20、。 这一段时间的努力学习,最后的结果固重要,但更重要的是让自己了解了数据库设计的一般过程。在接受客户的一个项目的时候,首先是进行系统分析。既首先分析其以后的销售情况以及技术可行性。如果二者可行,我们接下来做的就是总体设计。我们首先必须要了解数据库的作用,将其提出的功能按某种方式划分为几种模块。这就是整体设计。在对每一个模块进行细化形成最为简单的模块。然后是考虑每一细化模块的算法并将其用语言刻画出来。这就是详细设计。这就迈出了最为关键的一步。只有得到我们期望的结果我们才算真正完成了任务。 在这一段时间的学习中,我终于体会到SQL Server 2000功能的功能丰富,表达能力强,使用灵活方便,应用面广。这个软件给我们信息化整理数据提供了相当大的便捷。