1、2 需求分析的过程 (1)了解本班级信息系统主要用于教师管理学生,学生信息管理系统以及参加学会管理系统。 (2)熟悉各部分的信息状况。调查各个学生的基本信息情况,对现行系统的功能和和所需信息有一个明确的认识。包括了解各个模块输入和使用什么数据,如何加工处理这些数据,输入什么信息,输出什么信息,输出到什么部门,输出的结果的格式是什么等。 (3)根据(1)(2)调查的结果,对学生信息管理中各应用的信息要求和操作要求进行详细分析,从中得到:该学生信息系统的各个应用从数据库中得到哪些信息,这些信息的具体内容和性质是什么,要求完成什么样的处理功能,对某些处理要求的相应时间,既对数据的安全,完整性的要求。
2、 (4)确定系统的边界。确定整个系统中哪些由计算机完成,哪些将来由系统完成,哪些由人工完成。由计算机完成的功能就是新系统完成的功能。3.功能介绍(1) 调查用户需求院系院系需求:学生所在院系的系名、系号、系办公地点、人数信息进行输入,删除,修改。查询功能:对系,系号,系办公地点的查询。学生学生信息功能:按专业班级对学生的学号、姓名、出生年月、系名、班号、宿舍区的信息进行输入,删除,修改查询学生学号、姓名、出生年月、系名、班号、宿舍区班级班级信息:按专业班级对班号、专业名、系名、人数、入校年份信息进行输入,删除,修改。查询:查询学生班级班号、专业名、系名、人数、入校年份信息。 学会学会信息功能:
3、按学生的姓名对学会名、成立年份、办公地点、人数信息进行输入,删除,修改。按学生姓名对学会名、成立年份、办公地点、人数信息进行查询(2)关系模式如下 学生 S(Sno Sname Sbirth Dept Class Rno) 班级 C(Class Pname Dept Cnum Cyear) 系 D(Dept Dno Office Dnum)学会 M(Mname Myear Maddr Mnum)第三章 概念结构设计1 概念结构设计的方法 设计概念结构通常有四类方法:自顶向下,自底向上,逐渐扩张以及混合策略。本教学系统采用的是自底向上的方法。即首先定义全局的概念结构的框架,然后逐步细化。根据自顶
4、向上地进行需求分析然后再自底上上地进行概念设计。2 概念结构设计的步骤 概念结构的设计可分为两步:第一步是抽象数据并设计局部视图。第二步是集成局部视图,得到全局的概念结构。3 数据抽象与局部视图设计按照图2.1 教学学管理系统总框架图,设计局部E-R 图。图3.1 学生管理系统局部概念结构E-R 图第四章 逻辑结构设计1 E-R 图向关系模型的转换将图3.4 总体概念结构E-R 图转化成关系模型。系表(系号、系名、系办公地点、人数)主键:系号 外键:系办公地点学生表(学号、姓名、出生年月、系名、班号、宿舍区)主键:学号 外键:班号班级表(班号、专业名、系名、人数、入校年份)主键:班号 外键:系
5、名学会(学会名、成立年份、办公地点、人数)主键:学会名 外键:办公地点2 数据模型的优化数据库德逻辑结构设计的结果不是唯一的。为了提高数据库应用系统的性能,还应该根据应用需要适当的修改,调整关系模式,这就是数据模型的优化。规范化理论为数据库设计人员判断关系模式的优劣提供了理论标准,可用来预测模式可能出现的问题,使数据库设计工作有了严格的理论基础。关系数据模型的优化通常以规范化理论为指导,方法为:(1)确定数据依赖。分别写出每个关系内部属性的以及不同关系模式属性间的数据依赖。根据需求分析可知:a) 系表的数据依赖 :系号-系名,系号-系办公地点b) 班级表的数据依赖:班号-班名,班号-系号c)
6、学生表的数据依赖:学号-姓名,学号-性别,学号-省份,学号-年龄,学号-班级号,学号-专业d) 学会表的数据依赖:学会名-学生姓名,学会名-学好,学会名-系名 (2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。(3)按照数据依赖的理论对关系模式逐一分析,考察是否存在部分函数依赖,传递函数依赖,根据各个函数依赖的依赖集可知各个关系模式没有部分函数依赖和传递函数依赖所以所有的关系模式都是属于3NF。不需要进一步,进行模式分3 数据库的结构给出数据库基本表总体结构图。根据总体结构图设计各表的结构。表4-1 系表的结构字段名数据类型长度约束描述Deptchar20主键系号 Dno不为
7、空Office30外键Dnum10人数表4-2 学生表的结构Sno学号 Sname姓名Sbirth15出生年月ClassSmallintRno宿舍区表4-3班级表的结构Class 25 Pname 专业名Dept Cnum Cyear入校年份表4-4 学会表的结构学会名Dno 成立年份Office smallint8第五章物理设计阶段1 系统功能模块(1)系表信息查询和更新模块将实现对系部信息的查询和更新(修改、插入、删除)操作,方便于对系部基本信息的 管理 (2)学生表的查询和更新模块 将完成班级基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理(3)班级表的查询和更新模
8、块 将完成学生基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理(4)学会表的查询和更新模块 将完成课程基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理2物理设计阶段结果编号存储过程作用1 系表_insert在系表中插入一元组2班级表_insert在班级中插入一元组3学生表_insert在学生中插入一元组4学会表_insert在课程中插入一元组 (其他表的查询、修改、删除与上面表的大致相同,这里不再具体列出)3 数据库实施阶段3.1数据库实施阶段目标用DBMS所提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果描述出来,成为DBMS可以接受
9、的源代码,在经过调试生成目标模式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 char(20) primary key, Sname c
10、har(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) 学会表基本信息的建立 Create table M ( Mn
11、ame 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 ( 计算机科学与技术,2012812信息楼六楼25)人文学院2012813信息楼5楼图5.6 系表数据输入3.3.2 输入学生表数据INSERT INTO S (Sno,Sname,Sbirth,Dept,Class,Rno)201281210102 程志宇1990年2
12、0129INSERT INTO S(Sno,Sname,Sbirth,Dept,Class,Rno)201281210104 符雯斌1989年图5.7 学生表数据输入3.3.3 输入班级表数据INSERT INTO C (Class,Pname,Dept,Cnum,Cyear)VALUES ( 专升本, 计科院47广告 艺术学院美术系412011图5.8 班级表数据输入3.3.4 输入学会表数据INSERT INTO M (Mname,Myear,Maddr,Mnum)摄影协会1990大学生活动中心001青年志愿者协会大学生活动中心0022780图5.9 学会表数据输入3.4 基于数据表的数据
13、查询3.4.1 查询系表Select *From D图5.10 系表数据查询3.4.1查询学生表From S图5.11 学生表数据查询3.4.2查询班级表From C图5.12 班级表数据查询3.4.3查询班级表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) 查询学生表的基本信息
14、的视图定义如下: create view S_view from S(4) 查询课程表的基本信息的视图定义如下: create view M_view from M3.6基于视图的数据查询3.6.1系表视图查询From D_view3.6.2 班级表视图查询From C_view3.6.3生表视图查询From s_viewFrom Mview总结 经过一周的努力后本次数据库设计作业已经完成。其功能完整,用户界面良好,但是也存在着某些缺陷。 这一段时间的努力学习,最后的结果固重要,但更重要的是让自己了解了数据库设计的一般过程。在接受客户的一个项目的时候,首先是进行系统分析。既首先分析其以后的销售情况以及技术可行性。如果二者可行,我们接下来做的就是总体设计。我们首先必须要了解数据库的作用,将其提出的功能按某种方式划分为几种模块。这就是整体设计。在对每一个模块进行细化形成最为简单的模块。然后是考虑每一细化模块的算法并将其用语言刻画出来。这就是详细设计。这就迈出了最为关键的一步。只有得到我们期望的结果我们才算真正完成了任务。 在这一段时间的学习中,我终于体会到SQL Server 2000功能的功能丰富,表达能力强,使用灵活方便,应用面广。这个软件给我们信息化整理数据提供了相当大的便捷。