学⽣管理系统数据库设计
引⾔
科学技术的进步和⽣产的发展使⼈类知识总量的增长不断加快,⽣产社会化趋势的扩⼤和社会对产品需求的多样性使得组织在营运活动中所涉及的内部和外部信息量迅速地膨胀起来。⾯对激烈的市场竞争,⼈们对这些信息进⾏收集、加⼯、传递等过程的时间性和准确性提出了更⾼的要求。这⼀切使得传统的⼿⼯作业为基础的信息系统陷⼊了机构⽇益庞⼤,效率⽇益降低的困境。电⼦计算机的出现为摆脱这种困境到了出路。计算机⽤于管理信息处理的突出优点是迅速、准确、可靠、具有很⼤的存储能⼒,适应于管理信息量⼤、⾯宽的特点,适合于管理信息处理及时、准确的要求。
管理信息系统(MIS,Management Information System)是⼀个由⼈和计算机等组成的能够提供信息以⽀持⼀个组织机构内部的作业、管理、分析和决策职能的系统。管理信息系统利⽤计算机的硬件和软件,⼿⼯规程、分析、计划、控制和决策⽤的模型,以及数据库对信息进⾏收集、传输、加⼯、保存和使⽤。因此,管理信息系统是⼀个信息处理系统。
数据库作为存取数据并对数据进⾏操作的⼯具在系统中所起到的作⽤⾄关重要。数据库设计是指对于⼀个给定的应⽤环境,构造优化的数据库逻辑模式和物理模式结果,并据此建⽴数据库及其应⽤系统,使之能有效地存储和管理数据,满⾜应⽤需求,包括信息管理要求和数据操作。信息管理要求是指在数据
库中应该存储和管理哪些数据对象;数据操作要求是指对数据对象进⾏哪些操作,如查询、增、删、改、统计等操作。数据库设计地⽬标是为⽤户提供⼀个⾼效的信息管理平台。⾼效率的运⾏环境包括:数据库数据的存取速率、数据库存储空间的利⽤率、数据库系统运⾏管理的效率等。
为了使数据库的应⽤系统开发设计合理、规范、有序、正确、⾼效进⾏,⽬前⼴泛采⽤⼯程化的6阶段开发设计过程与⽅法,它们是需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施、数据库系统运⾏与维护阶段。我按照以上⼏点开发了学⽣选课管理系统数据库。
第⼀章需求分析
进⾏数据库设计⾸先必须准确了解和分析⽤户需求(包括数据与处理)。需求分析是整个设计过程的基础,也是最困难,最耗时的⼀步。需求分析是否做得充分和准确,决定了在其上构建数据库⼤厦的速度与质量。需求分析做的不好,会导致整个数据库设计返⼯重做。
需求分析的任务,是通过详细调查现实世界要处理的对象,充分了解原系统⼯作概况,明确⽤户的各种需求,然后在此基础上确定新的系统功能,新系统还得充分考虑今后可能的扩充与改变,不仅仅能够按当前应⽤需求来设计。
调查的重点是,数据与处理。达到信息要求,处理要求,安全性和完整性要求。
需求分析的⽅法,常⽤SA(Structured Analysis) 结构化分析⽅法,SA⽅法从最上层的系统组织结构⼊⼿,采⽤⾃顶向下,逐层分解的⽅式分析系统。
数据流图表达了数据和处理过程的关系,在SA⽅法中,处理过程的处理逻辑常常借助判定表或判定树来描述。在处理功能逐步分解的同时,系统中的数据也逐级分解,形成若⼲层次的数据流图。系统中的数据则借助数据字典(data dictionary,DD)来描述。数据字典是系统中各类数据描述的集合,数据字典通常包括数据项,数据结构,数据流,数据存储,和处理过程5个阶段。
1.1功能分析
本⾼校管理系统的应⽤对象定位在普通⼤学,因此在进⾏需求分析时主要考虑⾼等⼤学的具体需求,并将设计⽬标确定为普通⼤学提供基本的⾼校管理功能。
系统可基本实现课程信息和学⽣信息的录⼊、修改、删除等功能,扩充的功能包括与成绩相关的信息处理。同时,可根据学校教学管理制度,设定或⾃定义审核操作的规则。系统其他⽅⾯的需求有:安全保密性、可恢复性、可扩充性、可维护性等。系统功能主要分为以下⼏个模块。
1.1.1 学⽣管理:学⽣信息查询、插⼊、删除、修改等。
1.1.2教师管理:也是增删改查。
1.1.
2. 课程管理:选课信息查询、插⼊、删除、修改等。
1.1.3. 成绩管理:成绩的查询。
1.1.4. 系统管理:如数据安全管理(含备份与恢复)、操作员管理、管理学⽣和⽼师的权限。
1.2数据流图
数据流图表达了数据与处理的关系,数据流图作为直观了解系统运⾏机理的⼿段,并没有具体描述个类数据的细节,只有通过数据字典进⼀步细化才能对系统的需求得到具体⽽确切的了解。
1.3功能模块图
功能模块图以模块化的形式表达整个数据库系统,可以从宏观上反应系统的功能。
接下来三章,本⽂会采⽤⾃顶向下思想设计学⽣选课管理系统的数据库,从⾼到低分别是概念结构设计(视图层)、逻辑结构设计(逻辑层)、物理结构设计(物理层)。
第⼆章概念结构设计
2.1 概念结构设计介绍
概念结构设计是整个数据库设计的关键,它通过对⽤户需求进⾏综合、归纳与抽象,形成了⼀个独⽴于具体DBMS的概念模型。通常⽤E-R 图⽤于描述概念模型。
概念结构主要特点:
(1) 能真实、充分地反映现实世界事物的属性及⾏为,能满⾜⽤户对数据的处理要求。
(2) 易于理解,⽤户的积极参与是数据库设计成功的关键。
(3)易于更改,当应⽤环境和应⽤要求改变时,容易对概念模型修改和扩充;
(4)易于向关系、⽹状、层次等各种数据模型转换;
设计概念结构通常有四类⽅法:
⾃顶向下。即⾸先定义全局概念结构的框架,再逐步细化。
⾃底向上。即⾸先定义各局部应⽤的概念结构,然后再将他们集成起来,得到全局概念结构。
逐步扩张。⾸先定义最重要的核⼼概念结构,然后向外扩张,以滚雪球的⽅式逐步⽣成其他的概念结构,直⾄总体概念结构。
混合策略。即⾃顶向下和⾃底向上相结合。
2.2 局部E-R图
现在对所设计系统的需求作进⼀步的分析,产⽣概念结构设计的E-R模型。由于这个系统并不复杂,因此可采⽤⾃顶向下的设计⽅法。⾃顶向下设计的关键是确定系统的核⼼活动。所谓核⼼活动就是系统中的其他活动都要围绕这个活动展开,或与此活动密切相关。确定了核⼼活动之后,系统就有了可扩展的余地。
下⾯是本系统中各模块的E-R图。
2.3 系统E-R图
系统E-R图通常是根据数据流图以及局部E-R图,整合的整个系统的设计架构图。
第三章逻辑结构设计
该阶段的⽬的是将E-R图中的实体、属性和联系转换成为“关系模式”。通常的做法是实体转为表,属性转为作字段。联系转为表,相连实体的主键转为字段、联系⾃⾝的属性转为字段。⽐如,上⾯选课、考试这些联系可以转为表。如下是⼀些转换规律,可以参考。
1:1 根本不需要建⽴关系表,任何⼀个1的主键都可以作为另⼀个实体的外键。
1:n关系——独⽴建表,并⼊多表
可以独⽴建表,也可以与n端所对应的表合并。
m:n关系——独⽴成表,主键全收
关系只能独⽴成表,⾃⾝的属性也转换为字段,相连的实体的主键也转换为字段,并作为新表的联合主键。
3.1 关系模式
1个学⽣可以选多个课程,1个课程肯定有多个学⽣,⼀次它们之间是多对多的关系,需要有⼀章中间表,就是选课记录表。
1个学⽣可以有多场考试记录,但⼀条考试记录理论上只能记录⼀位学⽣的考试信息。因此它们之间是1对多的关系。如果我们抽象的不是考试记录,⽽是考试(⽐如期末考试,它肯定包括场地、时间、科⽬等信息),考试适合学⽣⽆关的,即使某位学⽣缺考,毫不影响考试本⾝的安排。此时学⽣与考试是多对多的关系,1名学⽣可以参加多门考试,1门考试可以有多名学⽣参加。这种情况下学⽣与考试之间需要建⽴⼀张中间表,还是考试记录表。教师与考试记录之间的关系与此类似。
事实上,学⽣和教师之间是多对多的关系,他们之间发⽣的数据交流必须要通过中间表记录,我们这⾥就是恰好把考试记录放在了这种中间表⾥。
1个课程只能有1位⽼师,1位⽼师可以教授多个课程,因此它们之间是1对多的关系。
Student(id,name,age,grade,sex,home);
Teacher(id,teacher_name,age,school);
test(id,time, course_id, student_id,teacher_id, score);
course(id, course_name,type, school, teacher_id, start_time, end_time);
Selected_course(id, student_id, course_id, create_time, progress);
第四章物理结构设计
逻辑结构设计所得的E-R模型是对⽤户需求的⼀种抽象的表达形式,它独⽴于任何⼀种具体的数据模型,因⽽也不能为任何⼀个具体的DBMS所⽀持。
为了能够建⽴起最终的物理系统,还需要将概念结构进⼀步转化为某⼀DBMS所⽀持的数据模型,然后根据逻辑设计的准则、数据的语义约束、规范化理论等对数据模型进⾏适当的调整和优化,形成合理的全局逻辑结构。
简单解释——选择合适的数据库,并设计具体的表、字段、数据类型、索引等。
为了设计⼀个合适的物理结构,⾸先要对运⾏的事务详细分析,明确适合业务运⾏的数据库。其次,要充分了解所⽤的RDBMS的内部特征,特别是系统提供的存取⽅法和存储结构。常⽤的存取⽅法有三类:1.索引⽅法,⽬前主要是B+树索引⽅法。2.聚簇(Clustering)⽅法。3.HASH⽅法。
4.1 初始化表
根据表的字段及其属性,确定表字段的数据类型、宽度及备注信息
数据管理系统有哪些

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。