资源描述
学生信息管理数据库系统
数据库设计报告
文件状态:
[√] 草稿
[ ] 正式发布
[ ] 正在修改
文件标识:
数据库设计
当前版本:
1.0
作 者:
完成日期:
版 本 历 史
版本/状态
作者
参与者
起止日期
备注
1.0
初稿
目 录
0. 文档介绍 4矚慫润厲钐瘗睞枥庑赖。
0.1 文档目的 4聞創沟燴鐺險爱氇谴净。
0.2 文档范围 4残骛楼諍锩瀨濟溆塹籟。
0.3 读者对象 4酽锕极額閉镇桧猪訣锥。
0.4 参考文献 4彈贸摄尔霁毙攬砖卤庑。
0.5 术语与缩写解释 4謀荞抟箧飆鐸怼类蒋薔。
1. 数据库环境说明 5厦礴恳蹒骈時盡继價骚。
1.1 数据库环境 5茕桢广鳓鯡选块网羈泪。
1.2 系统开发环境: 5鹅娅尽損鹌惨歷茏鴛賴。
2. 数据库的命名规则 5籟丛妈羥为贍偾蛏练淨。
3. 需求分析 5預頌圣鉉儐歲龈讶骅籴。
4.概念设计 6渗釤呛俨匀谔鱉调硯錦。
5.逻辑设计 9铙誅卧泻噦圣骋贶頂廡。
6.物理设计 9擁締凤袜备訊顎轮烂蔷。
6.1 T_Student表详细说明 9贓熱俣阃歲匱阊邺镓騷。
6.2 T_Change表详细说明 9坛摶乡囂忏蒌鍥铃氈淚。
7. 安全性设计 9蜡變黲癟報伥铉锚鈰赘。
7.1 防止用户直接操作数据库的方法 9買鲷鴯譖昙膚遙闫撷凄。
7.2 视图设计 10綾镝鯛駕櫬鹕踪韦辚糴。
7.3 角色与权限 10驅踬髏彦浃绥譎饴憂锦。
8数据库管理与维护说明 10猫虿驢绘燈鮒诛髅貺庑。
附录(代码实现) 11锹籁饗迳琐筆襖鸥娅薔。
0. 文档介绍
0.1 文档目的
起草本文档主要是为了统一开发小组及用户对本项目中所使用的名词术语的认识,规范开发小组成员在开发过程名词术语的使用习惯和变量命名习惯,帮助开发小组成员熟悉系统的数据处理流程和相关数据存储,加深对系统的认识。構氽頑黉碩饨荠龈话骛。
熟练掌握数据库对象的创建和管理,掌握工具的操纵与应用,了解T-SQL语言的基本应用。
0.2 文档范围
本文档主要内容有系统术语定义、数据库环境说明、数据库命名规则、数据库物理表设计及数据库的安全管理设计等。輒峄陽檉簖疖網儂號泶。
0.3 读者对象
本文档的适用对象主要有系统设计人员、系统编程人员、系统测试评估人员及系统运行维护人员。
0.4 参考文献
0.5 术语与缩写解释
缩写、术语
解 释
…
1. 数据库环境说明
1.1 数据库环境
服务器:
CPU: PIII 800(双)
RAM:512MB
操作系统:Windows 2003 Server
数据库服务器:SQL Server 2005
1.2 系统开发环境:
在原型开发阶段,开发平台主要是:
系统平台:Windows server 2003
开发工具:SQL Server 2005
2. 数据库的命名规则
在本数据库中,主要采用驼峰法的命名方法和缩写法,主要规定如下:
(1)所有对象的命令都应遵循见名知义原则;
(2)所有对象名称的缩写应遵循大家的使用习惯;
(3)数据库中各对象命名遵从系统类图中名对象的命名(参考系统分析设计文档);
(4)表名都以T(Table)开头,如语种信息数据表命名为:T_Language;
(5)视图名都以V(View)开头,后面以相关表名的第二个字母表示,如ViewCorporationKeyword(公司与所注册关键字信息);尧侧閆繭絳闕绚勵蜆贅。
(6)在数据表中,实体的属性以实体名的缩写+属性英文缩写表示,如语种名称用LanName表示;
(7)SQL Server中数据库命名可以直接使用系统名称,例如学生信息管理数据库可以命名为:StuDentInfo;识饒鎂錕缢灩筧嚌俨淒。
(8)对于各表间有联系的列(主键、外键等)仍使用原表中的列名;
(9) 触发器以TR_开头。
3. 需求分析
学生信息管理系统主要涉及的是学生相关信息的管理和控制,包括学生基本信息的存储,学籍变更信息的存储和管理,学生奖罚信息的管理和存储,以及学生的班级信息和院系信息等的管理。凍鈹鋨劳臘锴痫婦胫籴。
数据字典
学生信息管理系统的基本数据字典的内容如下:
学生基本信息:包含的数据项有:学号、姓名、性别、出生日期、入学时间、籍贯、电话、家庭住址、邮政编码、电子邮件等。恥諤銪灭萦欢煬鞏鹜錦。
变更信息:包含变更代码,变更描述等。
学籍变更记录信息:包含的数据项有:记录的时间、描述、变更编号等。
奖励等级基本信息:包含等级编号,描述等信息。
处罚等级基本信息:包含等级编号,描述等信息。
奖励(处罚)记录信息:包含的数据项有:记录的时间、描述、学号、等级编号。
院系信息:包含的数据项有:院系代码、院系名称等。
班级信息:包含的数据项有:班级代码、班级名称等。
系统的顶层数据流图
数据流图是从数据和对数据的加工处理的角度来描述系统的图形。数据流图的基本组成元素如下图所示:
4.概念设计
1.学生实体E-R图
2.班级实体E-R图
…… …… …… …… …… ……
3.院系实体E-R图
…… …… …… …… …… …… ……
4.…… …… …… …… …… …… ……
5.逻辑设计
概念设计就是将概念模型转换为SQL Server 所支持的数据模型,即将概念设计得出的E-R图转换为关系模型。鯊腎鑰诎褳鉀沩懼統庫。
1.学生个人基本信息(学号,姓名,性别,出生日期,入学时间,籍贯,电话,联系地址,邮政编码,电子邮件,备注,院系代码,班级代码)硕癘鄴颃诌攆檸攜驤蔹。
2.学籍变更记录信息…… …… …… …… …… …… ……
3.…… …… …… …… …… …… ……
6. 物理设计
6.1 T_Student表详细说明
表:(s) of " T_Student " Table
列名
说明
类型/约束
Is PK
Is FK
StuCode
学号代码
Varchar(12),not null
yes
no
StuName
姓名
Varchar(10),not null
no
no
Stusex
性别
Varchar(2)
no
no
StuBirthday
出生日期
datetime
no
no
StuEntracetime
入学时间
datetime
no
no
StuNative
籍贯
Varchar(50)
no
no
StuPhone
电话
Varchar(20)
no
no
StuAddress
联系地址
Varchar(100)
no
no
StuZipcode
邮政编码
Varchar(8)
no
no
StuEmail
电子邮件
Varchar(50)
no
no
StuMemo
备注(描述)
Varchar(50)
no
no
StuDepartment
院系代码
int
no
yes
StuClass
班级代码
int
no
yes
6.2 T_Change表详细说明
…… …… …… …… …… …… …… …… ……
7. 安全性设计
7.1 防止用户直接操作数据库的方法
1、数据库身份验证方式采用Windows和SQL混合验证模式;
2、根据业务需求,建立相关视图,见7.2视图设计;
3、根据不同的用户角色建立相应的角色和帐户,并分配相应的操作权限,见5.3 角色与权限。
7.2 视图设计
视图
说明
SQL脚本
ViewDep_Class
某学院所有班级的代码和名称
ViewStu_Name
每个月份入学的学生的详细详细
7.3 角色与权限
角色
可以访问的表与列
操作权限
管理员
all-table
Select、Insert、Delete、Update
用户(学生)
T_Student
Select
数据库维护(垃圾数据整理)
Indexed
Select、Update
8数据库管理与维护说明
提示:在设计数据库的时候,及时给出管理与维护本数据库的方法,有助于将来撰写出正确完备的用户手册。
附录(代码实现)
1.创建数据库stu_info
2.修改数据库stu_info将数据文件stu_data的初始分配空间调整到25MB。
3.在查询编辑器中使用Transact-SQL语言完成T_student(学生个人信息)的创建。
4.在查询编辑器中使用Transact-SQL语言完成T_Change (学籍变更信息记录表)的创建。阌擻輳嬪諫迁择楨秘騖。
5.在查询编辑器中使用Transact-SQL语言完成T_Reward (奖励信息记录表)的创建。
6.在查询编辑器中使用Transact-SQL语言完成T_Punishment(处罚记录信息)的创建。 氬嚕躑竄贸恳彈瀘颔澩。
7.在查询编辑器中使用Transact-SQL语言完成T_Department(院系信息表)的创建。
8.在查询编辑器中使用Transact-SQL语言完成T_Class(班级信息表)的创建。
9.在查询编辑器中使用Transact-SQL语言完成T_ChangeCode (学籍变更表)的创建。釷鹆資贏車贖孙滅獅赘。
10.在查询编辑器中使用Transact-SQL语言完成T_RewardCode (奖励等级表)的创建。怂阐譜鯪迳導嘯畫長凉。
11.在查询编辑器中使用Transact-SQL语言完成T_PunishmentCode (处罚等级表)的创建。谚辞調担鈧谄动禪泻類。
12.在查询编辑器中使用Transact-SQL创建存储过程P_Student,要求该存储过程返回整个学校学生的学号、姓名和年龄。嘰觐詿缧铴嗫偽純铪锩。
13.在查询编辑器中使用Transact-SQL创建存储过程P_Student_Insert,该存储过程用于向T_Student表中插入新记录熒绐譏钲鏌觶鷹緇機库。
14.创建存储过程P_Student_info根据指定的学号查询相应学生的信息。
15.创建存储过程P_Student_info1根据指定的学号查询出该学生的姓名、
入学时间所在班级名称和所在院系名称。
16.创建存储过程P_Class_info根据指定的班级代号查找班级信息,如果执行成功则返回代码0;如果没有给出班级代号则返回错误代码1;如果给出的班级代号不存在,则返回错误代码2;如果出现其它错误,则返回错误代码3。鶼渍螻偉阅劍鲰腎邏蘞。
17.创建存储过程P_Punishment_Student,要求输入学生的学号可以查询出该学生有什么样的处罚,如果该生没有受到过处罚则提示:“该生无处罚历史”,如果该生受到过处罚,则获取所受处罚的描述。纣忧蔣氳頑莶驅藥悯骛。
18.查询和学号为‘103’的同学同年生的所有同学的学号,姓名。
19.查询年龄在20--30岁(包括20岁和23岁)之间的学生的姓名、性别和籍贯。
20.查询所有姓“刘”的学生的姓名、学号和性别
22.查询每个班级的学生的总人数,并在结果中显示班级代号和该班的总人数。
23.查询是计算机系或者是数学系或者是信息系的学生姓名和性别
24.查询学生表中年龄最大的学生的信息以及该学生的年龄。
25.查询被处罚过两次以上的学生的姓名、性别、班级名称。
26.学生的入学时间是不能更改的,请创建触发器
TR_Update_StuEntrancetime,当修改学生的入学时间时,给出错误提示并回滚该操作。颖刍莖蛺饽亿顿裊赔泷。
27.学生毕业后,要将信息从数据表中删除,但规定每次删除学生个数不能超过50人,请编写触发器TR_Student_Delete,如果删除的学生个数大于50人就给出提示信息并回滚操作。濫驂膽閉驟羥闈詔寢賻。
展开阅读全文