1、“学生信息管理系统”教学案例1. 系统概述1) 系统名称:学生信息管理系统2) 开发背景:某学院共有教职员工 3758 人。学院下设教务处、财务处和房产处等二十六处室,还设有计算机应用系、信息管理系和电子商务系等多个教学单位。该学院教务处负责全院的教学、学生管理等工作。通过初步调查得知,该学院现行学生信息管理业务工作量特别大,同时还时常出现差错现象。有关人员迫切要求早日开发出全院学生信息的管理系统,用计算机代替手工登记学生信息、学籍变更信息、奖惩信息等以及对相关信息的快速查询。学校主管领导也十分支持这项工作,已批准投资 5 万元人民币用于购置设备和软件开发,同时,学校还拥有雄厚的技术力量。3)
2、 系统目标:管理全院学生的各种信息,方便学生信息的查询。系统的使用对象是学生管理部门,如教务处工作人员、校院系领导、班主任、教师等。4) 系统功能要求:(1) 学生基本信息的录入,包括:学号、姓名、性别、班级、出生日期、籍贯等;(2) 学生基本信息的修改维护;(3) 学生学籍变动情况的记录,包括:休学、复学、转系、结业、毕业等;(4) 学生奖惩情况的记录和修改,包括:奖励和处罚;(5) 学生信息的查询;(6) 院系设置管理,包括院系的添加、修改和删除等;(7) 班级设置管理,包括班级的添加、修改和删除等。5) 系统实现环境:在 Windows 环境支持下选择 VB 进行开发。为方便各部门可直接
3、通过网络传输、查询数据,要求开发为网络版。2. 系统分析通过学生信息管理的详细调查,要进一步明确本系统开发的目标和用户信息需求,并最终提出所要开发的学生信息管理系统的逻辑方案。1) 系统组织机构图、功能体系图和业务流程图首先调查学生信息管理的实际工作模式,用其组织机构图、功能体系图、业务流程图表示。学 院教 务 处 教 学单 位招生科教学科电子商务系信息管理系计算机应用系教务科院 办 学 工 部图 Error! Bookmark not defined.学生信息管理组织机构图以上组织机构图为系统范围内的局部组织机构图,即在全院范围内抽取与学生信息管理相关的部门绘制而成。通过对以上部门进行详细调
4、查,与学生信息管理相关的部门功能如下:教 学 教 务班级设置学生信息登记学籍变更奖励情况教学计划申报专业院系设置处罚情况招 生学 生 管 理图 Error! Bookmark not defined.学生信息管理功能体系图学 籍 变 更申 请 表新 专 业批 复 表 院 系 设 置 班 级 设 置教 务 科 招 生 科院 系设 置 表 审 批院 办院 系 档 案 班 级 档 案学 生 档 案新 生报 到 表 学 生 信 息登 记招 生 科审 批院 办 学 籍 变 更批 复 表 学 籍 变 更教 学 科学 籍 档 案奖 励申 请 表 审 批院 办学 生 奖 励名 单 奖 励 登 记学 工 部奖
5、励 档 案处 罚申 请 表 审 批院 办处 罚通 知 书 处 罚 登 记学 工 部处 罚 档 案班 级 设 置表图 Error! Bookmark not defined. 学生信息管理业务流程图通过对从事学生管理的相关部门进行进一步的详细调查,与学生信息管理相关的部门功能的业务流程图如上所示。2) 数据流程图以上用其组织机构图、功能体系图、业务流程图表示出学生信息管理的实际工作模式。下面要通过对应的数据流程图、数据字典等描述学生信息管理的信息处理的工作模式。图 Error! Bookmark not defined. 学生信息管理数据流程图3) 数据字典表 Error! Bookmark n
6、ot defined.数据项定义编号 数据项名称 类型 长度 取值范围 简述A001 院系编号 文本 2 0199 对不同院系的编号A002 院系名称 文本 20 任何汉字、字母、数字A003 院系负责人 文本 8 汉字A004 院系负责人电话 文本 13 任何数字院 系 设 置 班 级 设 置院 系 档 案 班 级 档 案学 生 档 案学 生 信 息登 记学 籍 变 更学 籍 档 案奖 励 登 记 奖 励 档 案处 罚 登 记 处 罚 档 案新 专 业 批 复 表 班 级 设 置 表新 生 报 到 表学 籍 变 更 申 请 表学 生 奖 励 名 单处 罚 通 知 书A005 班级编号 文本
7、6 000001999999A006 班级名称 文本 20 任何汉字、字母、数字A007 所属院系 文本 2 0199A008 入学时间 日期 8 yyyy-mm-dd 即班级创建日期A009 班主任姓名 文本 8 任何汉字A010 班主任电话 文本 13 任何数字A011 学号 文本 8 0000000199999999A012 姓名 文本 8 任何汉字A013 性别 文本 2 男女A014 出生日期 日期 8 yyyy-mm-ddA015 籍贯 文本 16 任何汉字A016 所在班级编号 文本 2 000001999999A017 学籍变更类型 文本 4 任何汉字、字母、数字A018 学籍
8、变更日期 日期 8 yyyy-mm-ddA019 奖励类型 文本 20 任何汉字、字母、数字A020 奖励日期 日期 8 yyyy-mm-ddA021 处罚类型 文本 8 任何汉字、字母、数字A022 处罚日期 日期 8 yyyy-mm-dd表 Error! Bookmark not defined.数据结构定义数据结构编号数据结构名称 数据结构组成 简述B 001 院系挡案 院系编号、院系名称、负责人、联系电话、说明 用来保存已有院系的的相关信息B 002 班级挡案 班级编号、班级名称、所属院系、入学时间、班主任姓名、班主任电话、说明 用来保存已有班级的的相关信息B 003 学生挡案 学号、
9、姓名、性别、出生日期、籍贯、班级编号 用来保存学生的基本信息B 004 学籍挡案 序号、学号、学籍变更、记录日期、说明 用来保存学生的学籍变更信息B 005 奖励挡案 序号、学号、学籍变更、记录日期、说明 用来保存学生的奖励信息B 006 处罚挡案 序号、学号、处罚情况、记录日期、说明 用来保存学生的处罚信息表 Error! Bookmark not defined.数据流定义编号 名称 来源 数据流向 组成 流通量 高峰流通量C001 新生报到表 学生 学 生 基 本 信 息 登 记 学 生 基 本 信 息 3000 份/年日 1000 份/日C002 学籍变更申请表 学生 学籍变更处理 学
10、 籍 变 更 信 息 50 份/年 10 份/日C003 学生奖励名单 学工部 奖励登记处理 奖励信息 100 份/年 100 份/日C004 处罚通知书 学工部 处罚登记处理 处罚信息 100 份/年 100 份/日4) 修改后的数据流程图对用户需求进行详细调查,修改后的数据流程图如下所示,其反映所要开发的学生信息管理系统的逻辑模型。院 系 设 置 班 级 设 置院 系 档 案 班 级 档 案学 生 档 案学 生 信 息登 记学 籍 变 更学 籍 档 案奖 励 登 记奖 励 档 案处 罚 登 记处 罚 档 案新 专 业 批 复 表 班 级 设 置 表新 生 报 到 表学 籍 变 更 申 请
11、表学 生 奖 励 名 单处 罚 通 知 书查 询查询要求查 询 结 果图 Error! Bookmark not defined.修改后的学生信息管理数据流程图3. 系统设计通过以上的系统分析,将新系统的逻辑模型转换为物理模型,即计算机环境下的实现方案。 本系统设计时应尽量考虑:高效率、可靠性、高质量、变更性等原则。1) 总体设计依据学生信息管理数据流程图,所绘制 模块结构图如下所示: 学 生 信 息管 理系 统 维 护 学 生 管 理 教 务 管 理院 系 设 置 班 级 设 置 信 息 登 记 信 息 查 询 学 籍 管 理 处 罚 管 理院 系 班 级 信 息 学生信息 学 籍 奖 惩
12、信 息奖 励 管 理图 Error! Bookmark not defined.学生信息管理 模块结构图2) 详细设计(1) 系统功能设计 学 生 信 息管 理 系 统系 统 维 护院系设置 退出系统学 生 管 理信息登记 信息查询教 务 管 理学籍变更 处罚情况奖励情况班级设置图 Error! Bookmark not defined.学生信息管理系统功能图(2) 界面设计操 作 按 钮添 加 修 改删 除 保 存退 出 放 弃显 示 已 设 置 院 系 信 息标 题 : 院 系 设 置图 Error! Bookmark not defined.院系设置界面操 作 按 钮添 加 修 改删 除
13、 保 存退 出 放 弃显 示 已 设 置 班 级 信 息标 题 : 班 级 设 置图 9 班级设置界面操 作 按 钮添 加 修 改删 除 保 存退 出 放 弃显 示 已 登 记 学 生 信 息标 题 : 学 生 信 息 登 记图 Error! Bookmark not defined.学生信息登记界面退 出 按 钮选 项 卡 : 学 籍 变 更 奖 励 情 况 处 罚 情 况 显 示 查 找 到 的 记 录显 示 所 找 到 的 学 生 的 基 本 信 息标 题 : 学 生 信 息 查 询图 11 学生信息查询界面操 作 按 钮 : 添 加 删 除 修 改 保 存 放 弃 退 出显 示 已 输
14、 入 的 学 籍 变 更 信 息标 题 : 学 籍 变 更 情 况显 示 当 前 记 录的 基 本 信 息图 12 学籍变更界面操 作 按 钮 : 添 加 删 除 修 改 保 存 放 弃 退 出显 示 已 输 入 的 奖 励 信 息标 题 : 奖 励 管 理显 示 当 前 记 录的 基 本 信 息图 13 奖励登记界面操 作 按 钮 : 添 加 删 除 修 改 保 存 放 弃 退 出显 示 已 输 入 的 处 罚 信 息标 题 : 处 罚 管 理显 示 当 前 记 录的 基 本 信 息图 Error! Bookmark not defined.处罚登记界面(3) 数据库设计 需求分析通过调查了
15、解了用户需求后,还需要进一步分析和表达用户的需求。分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法,通常选用自顶向上的分析方法。自顶向下的结构化分析方法(Structured Analysis,简称 SA 方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并且把每一层用数据流图和数据字典描述。a) 逐层分解数据流图我们首先将处理功能的具体内容分解为若干子功能,再将每个子功能继续分解,直到把系统的工作过程表达清楚为止。在处理功能逐步分解的同时,它们所用的数据也逐级分解,形成若干层次的数据流图。数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dict
16、ionary ,简称 DD)来描述。学生管理系统院系管理子系统 学生信息子系统 学籍管理子系统图 15 分解数据流图院系设置 班级设置院系档案 班级档案新专业批复表班级设置表图 16 院系管理子系统数据流图b) 数据字典表 Error! Bookmark not defined.数据项定义编号 数据项名称 类型 长度 取值范围 简述A001 院系编号 文本 2 0199 对不同院系的编号A002 院系名称 文本 20 任何汉字、字母、数字A003 院系负责人 文本 8 汉字A004 院系负责人电话 文本 13 任何数字A005 班级编号 文本 6 000001999999A006 班级名称 文
17、本 20 任何汉字、字母、数字表 Error! Bookmark not defined.数据结构定义数据结构编号 数据结构名称 数据结构组成 简述B 001 院系挡案 院系编号、院系名称、负责人、联系电话、说明 用来保存已有院系的的相关信息B 002 班级挡案 班级编号、班级名称、所属院系、入学时间、班主任姓名、班主任电话、说明 用来保存已有班级的的相关信息B 003 学生挡案 学号、姓名、性别、出生日期、籍贯、班级编号 用来保存学生的基本信息B 004 学籍挡案 序号、学号、学籍变更、记录日期、说明 用来保存学生的学籍变更信息学生档案学生信息登记新生报到表图 17 学生信息子系统数据流图表
18、 Error! Bookmark not defined.数据项定义A005 班级编号 文本 6 000001999999A006 班级名称 文本 20 任何汉字、字母、数字A007 所属院系 文本 2 0199A008 入学时间 日期 8 yyyy-mm-dd 即班级创建日期A007 所属院系 文本 2 0199A008 入学时间 日期 8 yyyy-mm-dd 即班级创建日期A009 班主任姓名 文本 8 任何汉字A010 班主任电话 文本 13 任何数字表 Error! Bookmark not defined.数据结构定义B 002 班级挡案 班级编号、班级名称、所属院系、入学时间、班
19、主任姓名、班主任电话、说明 用来保存已有班级的的相关信息B 003 学生挡案 学号、姓名、性别、出生日期、籍贯、班级编号 用来保存学生的基本信息B 004 学籍挡案 序号、学号、学籍变更、记录日期、说明 用来保存学生的学籍变更信息表 Error! Bookmark not defined.数据流定义编号 名称 来源 数据流向 组成 流通量 高峰流通量C 001 新生报到表 学生 学生基本信 息登记 学生基本 信息 3000 份/年日 1000 份/日学生档案学籍变更奖励登记奖励档案处罚登记处罚档案学籍变更申请表学生奖励名单处罚通知书图 18 学籍管理子系统数据流图表 Error! Bookma
20、rk not defined.A005 班级编号 文本 6 000001999999A006 班级名称 文本 20 任何汉字、字母、数字A017 学籍变更类型 文本 4 任何汉字、字母、数字A018 学籍变更日期 日期 8 yyyy-mm-ddA019 奖励类型 文本 20 任何汉字、字母、数字A020 奖励日期 日期 8 yyyy-mm-ddA021 处罚类型 文本 8 任何汉字、字母、数字A022 处罚日期 日期 8 yyyy-mm-dd表 Error! Bookmark not defined.B 002 班级挡案 班级编号、班级名称、所属院系、入学时间、班主任姓名、班主任电话、说明 用
21、来保存已有班级的的相关信息B 003 学生挡案 学号、姓名、性别、出生日期、籍贯、班级编号 用来保存学生的基本信息B 004 学籍挡案 序号、学号、学籍变更、记录日期、说明 用来保存学生的学籍变更信息B 005 奖励挡案 序号、学号、学籍变更、记录日期、说明 用来保存学生的奖励信息B 006 处罚挡案 序号、学号、处罚情况、记录日期、说明 用来保存学生的处罚信息表 Error! Bookmark not defined.数据流定义编号 名称 来源 数据流向 组成 流通量 高峰流通量C002 学籍变更申请表 学生 学籍变更处理 学籍变更 信息 50 份/年 10 份/日C003 学生奖励名单 学
22、工部 奖励登记处理 奖励信息 100 份/年 100 份/日C004 处罚通知书 学工部 处罚登记处理 处罚信息 100 份/年 100 份/日 概念模型设计概念结构是对现实世界的一种抽象,即对实际的人、物、事和概念进行人为处理,抽取人们关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述。 概念结构独立于数据库逻辑结构,也独立于支持数据库的 DBMS。它是现实世界与机器世界的中介,它一方面能够充分反映现实世界,包括实体和实体之间的联系,同时又易于向关系、网状、层次等各种数据模型转换。它是现实世界的一个真实模型,易于理解,便于和不熟悉计算机的用户交换意见,使用户易于参与,当现
23、实世界需求改变时,概念结构又可以很容易地作相应调整。因此概念结构设计是整个数据库设计的关键所在。描述概念模型的有力工具是 E-R 模型。a) 概念结构设计的方法与步骤设计概念结构通常有四类方法: 自顶向下; 自底向上; 逐步扩张; 混合策略。但无论采用哪种设计方法,一般都以 E-R 模型为工具来描述概念结构。b) 数据抽象与局部视图设计通常我们以自底向上设计概念结构的方法,它通常分为两步: 第一步,首先要根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,设计各个局部视图即分 E-R 图。第二步,集成局部视图。设计分 E-R 图的步骤是:第一步,选择局部应用; 在需求分析阶段,
24、通过对应用环境和要求进行详尽的调查分析,用多层数据流图和数据字典描述了整个系统。一般而言,中层的数据流图能较好地反映系统中各局部应用的子系统组成,因此人们往往以中层数据流图作为设计分 E-R 图的依据。第二步,逐一设计分 E-R 图。 每个局部应用都对应了一组数据流图,局部应用涉及的数据都已经收集在数据字典中了。现在就是要将这些数据从数据字典中抽取出来,参照数据流图,标定局部应用中的实体、实体的属性、标识实体的码,确定实体之间的联系及其类型(1:1、1:n 、m:n ) 。进一步斟酌该 E-R 图,做适当调整。这样,得到各个局部应用的分 E-R 图,如下图所示:班级院系 从属院系管理子系统 E
25、-R 图班级从属学生图 19 学生信息子系统 E-R 图学生处罚记录变更奖励处罚学籍变更记录 奖励记录图 20 学籍管理子系统 E-R 图c) 修改与重构,生成基本 E-R 图分 E-R 图经过合并生成的是初步 E-R 图。之所以称其为初步 E-R 图,是因为其中可能存在冗余的数据和冗余的实体间联系,即存在可由基本数据导出的数据和可由其他联系导出的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,因此得到初步 E-R 图后,还应当进一步检查 E-R 图中是否存在冗余,如果存在则一般应设法予以消除。修改、重构初步 E-R 图以消除冗余主要采用分析方法。也可以用规范化理论来消除
26、冗余。d) E-R 图合并,生成整个系统的基本 E-R 图视图集成后形成一个整体的数据库概念结构,对该整体概念结构还必须进行进一步验证,确保它能够满足下列条件: 整体概念结构内部必须具有一致性,即不能存在互相矛盾的表达; 整体概念结构能准确地反映原来的每个视图结构,包括属性、实体及实体间的联系; 整体概念结构能满足需要分析阶段所确定的所有要求。 整体概念结构最终还应该提交给用户,征求用户和有关人员的意见,进行评审、修改和优化,然后把它确定下来,作为数据库的概念结构,作为进一步设计数据库的依据。班级从属学生处罚记录院系变更奖励处罚学籍变更记录 奖励记录从属图 21 学生息系统整体 E-R 图 逻
27、辑结构设计概念结构是独立于任何一种数据模型的信息结构。逻辑结构设计的任务是把概念结构设计阶段设计好的基本 E-R 图转换为与选作某种特定的 DBMS 产品所支持的数据模型相符合的逻辑结构。设计逻辑结构应该选择最适于描述与表达相应概念结构的数据模型,然后选择最合适的 DBMS。设计逻辑结构时一般要分三步进行: 将概念结构转换为一般的关系、网状或层次模型; 将转化来的关系、网状、层次模型向特定 DBMS 支持下的数据模型转换: 对数据模型进行优化。a) E-R 图向关系模型的转换关系模型的逻辑结构是一组关系模式的集合。而 E-R 图则是由实体、实体的属性和实体之间的联系三个要素组成的。所以将 E-
28、R 图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式,这种转换一般遵循如下原则: 一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。 一个 m:n 联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。 一个 1:n 联系可以转换为一个独立的关系模式,也可以与 n 端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为 n 端实体的码。 一个 1:1 联系可以转换为一个独立的关系模式,也可以与任意一端对应的
29、关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。 三个或三个以上实体间的一个多元联系转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。 同一实体集的实体间的联系,即自联系,也可按上述 1:1、1:n 和 m:n 三种情况分别处理。 具有相同码的关系模式可合并。b) 数据模型的优化数据库逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能
30、,通常以规范化理论为指导,进行适当的修改、调整数据模型的结构,这就是数据模型的优化。数据模型的优化方法为: 确定数据依赖。 对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。 按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。 按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解。需要注意的是:并不是规范化程度越高的关系就越优越。对于一个具体的运算来说,到底应规范到什么程度,需要权衡响应时间和潜在问题两者之间的利弊决定。 对关系模式进行必要的
31、分解,提高数据操作的效率和存储空间的利用率。常用的分解方法有水平分解和垂直分解两种。规范化理论为数据库设计人员判断关系模式优劣提供了理论标准,可用来预测模式可能出现的问题,使数据库设计工作有了严格的理论基础。通过上述方法得到如下关系模型如下:院系(编号,名称,院系领导姓名,电话,备注)班级(编号,名称,所属院系,创建日期,班主任姓名,电话,备注)学生(学号,姓名,性别,班级,出生日期,籍贯)学籍(记录号,学号,变更类型,日期,备注)奖励(记录号,学号,奖励类型,日期,备注)处罚(记录号,学号,处罚类型,日期,备注) 数据库结构的实现 数据库逻辑结构设计完成以后,就可以在 DBMS 上创建数据库
32、和数据表了。一般情况下可以根据 DBMS 的 SQL 语法建立相应的 SQL 语句,相对于直接操作建立数据库而言,通过 SQL 创建数据库的好处是便于数据库的重复创建。实现方法一:采用在 Access 2000 中直接创建数据库的方式(在 Access 2000 中不能直接执行 SQL 语句) ,数据库文件命名为 StudentMIS.mdb。数据库设计完成以后 Access2000 中的数据表如图 22 所示。图 Error! Bookmark not defined. Access2000 数据表示例实现方法二:应用大型数据库课程所讲 MS SQL Server 技术实现。数据库是存储数据
33、和其他数据库对象的操作系统文件,是数据库服务器的主要组件,是数据库管理系统的核心。数据库是数据和数据库对象的容器,存储在数据库中的数据通常是有特定用途的大量的数据。数据库的物理表现是操作系统文件。MS SQL Server 使用一组操作系统文件来创建一个数据库。数据库中的所有数据和对象,都存储在这些操作系统文件中。这些操作系统的文件有两种形式,一种是数据文件,另外一种是日志文件。数据文件又可以分成主数据文件和次数据文件两种形式。在 MS SQL Server 系统中,可管理的最小空间是以页(Page)为单位的,每一个页的大小是 8KB,在表中,每一行数据不能跨页存储。设学生信息数据库中含 20
34、00 条左右的记录,可计算出库文件的大小约为 20M,但开始时不会很大,因此库初始大小定义为 2M。在启动服务管理器后,打开查询分析器,执行学生信息数据库创建脚本程序(学生信息.sql)创建数据库见图 23、见图 24。图 Error! Bookmark not defined.学生信息数据库属性 图 Error! Bookmark not defined.学生信息数据库属性表是数据库中最重要、最基本、最核心的对象,是实际存储数据的地方。其他的数据库对象,例如索引、视图等,都是依附于表对象而存在的。对数据库的各种管理操作,实际上主要是对数据库中表的管理操作。创建表时可同时定义主键及簇式索引,列
35、级约束等,以提高数据完整性。根据设计结果在学生信息数据库中创建 6 个表来存储所有的信息:见图 25-图 30。图 Error! Bookmark not defined.学籍变更记录表(Change)属性 图 Error! Bookmark not defined.班级设置信息表(Class)属性图 Error! Bookmark not defined. 院系设置信息表(Department)属性 图 Error! Bookmark not defined.处罚记录表(Punish)属性图 29 奖励记录表(Reward)属性 图 30 学生基本信息表(Student)属性参照完整性基于外
36、键与主键之间或外键与惟一键之间的关系(通过 FOREIGN KEY 和 CHECK 约束) 。参照完整性确保键值在所有表中一致。参考完整性保证在主键(在被参考表中)和外键之间的关系总是得到维护。在输入或删除记录时,参照完整性保持表之间已定义的关系。定义外键约束强制参照完整性。定义表间的关系 diagram1,见图 31。图 Error! Bookmark not defined. 关系 diagram1 定义默认值定义是限制列数据的首选并且标准的方法,可以被绑定到一个或多个列上。规则也是一种数据库对象,可以被绑定到一个或多个列上,还可以被绑定到用户自己定义的数据类型上。当某个规则定义之后,可以
37、反复使用。所添加的数据都必须符合所定义的规则对象的要求。它们都是实现数据完整性的措施之一。定义表级约束规则默认值。图 Error! Bookmark not defined.规则定义与绑定 图 Error! Bookmark not defined.默认值的定义与绑定视图是从一个或多个表(或视图)导出的表。在数据库中,因职能不同,所关心的数据内容是不同的。即使是同样的数据,也能有不同的操作要求,于是就可以根据他们的不同需求,在物理的数据库上定义他们的满足不同要求的视图。视图一经定义后,就可以像表一样被查询、修改、删除和更新。定义视图可集中用户数据、屏蔽数据库的复杂性、简化安全管理、提高数据共享
38、能力。定义视图 stuinfo。 图 Error! Bookmark not defined. 定义视图 stuinfo定义 windows 及 SQL Server 的登录用户及学生信息数据库用户并分配权限。建议在本系统中增加登录模块,以方便进行系统的安全管理。身份验证方式就是指当用户访问数据库系统时,系统对该用户的帐户和密码的确认过程。认证的内容包括确认用户的帐户是否有效、是否能访问系统、能访问系统中的哪些数据等。身份验证模式就是指系统选择何种身份验证方式确认用户是否合法的方式。用户必须使用一个 login 帐户,才能连接到装有 SQL Server 系统的机器中。user 帐户是基于数据
39、库使用的名称,是与 login 帐户相对应的。当某个 login 帐户访问数据库时,必须使用一个特定的或默认的用户帐户。login 帐户与 user 帐户可同名。角色提供了一种把多个用户汇集成一个单元、以便进行许可管理的方法。一般地,角色包含许多成员,这些成员继承角色所拥有的许可。SQL Server 系统提供了许多用于日常管理工作的固定服务器角色和固定数据库角色,简化了对执行日常管理工作的用户的许可管理。 管理许可就是授予、否定和收回许可。用户或角色的许可可以是这三种状态之一:授予、否定或收回。图 Error! Bookmark not defined.登录用户及学生信息数据库用户 ltb
40、属性 图 Error! Bookmark not defined. 为 ltb 分配权限备份是恢复的基础,恢复是备份的目的。数据库的备份和恢复是数据库管理的两项重要工作。执行备份的第一步是创建将要包含备份内容的备份文件。第二步执行数据库备份过程。SQL Server 系统可以同时向多个备份文件写备份内容。建立一个完整的备份策略需要考虑很多因素,包括:备份周期、备份模式、备份介质、使用人工备份还是设计好的自动备份程序、备份人员、权限等等。建立学生信息数据库的自动化备份机制。图 Error! Bookmark not defined.定义自动化备份机制以下为学生信息.sql 程序源代码:- =-
41、Create database 学生信息- =IF EXISTS (SELECT * FROM mastersysdatabases WHERE name = 学生信息)DROP DATABASE 学生信息GOCREATE DATABASE 学生信息ON PRIMARY ( NAME = 学生信息_1, FILENAME = c:学生信息_db_1.mdf,SIZE = 2MB,MAXSIZE = 200MB,FILEGROWTH = 10%)LOG ON ( NAME = 学生信息,FILENAME = c:学生信息_log_1.ldf,SIZE = 512KB,MAXSIZE = 200M
42、B,FILEGROWTH = 10%)GO use 学生信息GO- =- Create 学生信息数据库的表- =CREATE TABLE dbo.Change (CID int IDENTITY (1, 1) primary key ,StudentID nvarchar (8) NULL ,Change nvarchar (4) NULL ,RecDate datetime NULL ,Description ntext NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARYGOCREATE TABLE dbo.Class (ClassID nvarchar (6) p
43、rimary key ,ClassName nvarchar (20) NOT NULL ,DepartID nvarchar (2) NOT NULL ,BeginDate smalldatetime NOT NULL ,Master nvarchar (8) NULL ,MasterTel nvarchar (13) NULL ,Description ntext NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARYGOCREATE TABLE dbo.Department (DepartID nvarchar (2) primary key ,DepartName
44、 nvarchar (20) NOT NULL ,DepartHead nvarchar (8) NULL ,Telephone nvarchar (13) NULL ,Description ntext NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARYGOCREATE TABLE dbo.Punish (PID int primary key ,StudentID nvarchar (8) NOT NULL ,Punish nvarchar (8) NOT NULL ,RecDate smalldatetime NOT NULL ,Description ntex
45、t NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARYGOCREATE TABLE dbo.Reward (RID int primary key ,StudentID nvarchar (8) NOT NULL ,Reward nvarchar (20) NOT NULL ,RecDate smalldatetime NOT NULL ,Description ntext NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARYGOCREATE TABLE dbo.Student (StudentID nvarchar (8) primary k
46、ey ,Name nvarchar (8) NOT NULL ,Sex nvarchar (2) NOT NULL ,ClassID nvarchar (6) NOT NULL ,Birthday smalldatetime NULL ,Native nvarchar (16) NULL ) ON PRIMARYGO- =- 定义表间约束- =alter table dbo.Rewardadd constraint fk_rs_ss foreign key(StudentID)references dbo.Student(StudentID)goalter table dbo.Punishad
47、d constraint fk_ps_ss foreign key(StudentID)references dbo.Student(StudentID)goalter table dbo.Studentadd constraint fk_sc_cc foreign key(ClassID)references dbo.Class(ClassID)goalter table dbo.Changeadd constraint fk_cs_ssforeign key(StudentID)references dbo.Student(StudentID)goalter table dbo.classadd constraint fk_cd_dd foreign key(DepartID)references dbo.Department(DepartID)go- =- Create 视图- =create view stuinfoasSELECT Student.*, ClassName, DepartName, Maste