topcoder-取名软件破解版下载
![99宿舍客服软件下载](/uploads/image/0921.jpg)
2023年4月3日发(作者:分区表错误)
I
题目:
学生宿舍管理系统数据库设计
目录
1.系统需求分析阶段..................................................................................................................................1
1.1引言.................................................................................................................................................1
1.2目标与任务....................................................................................................................................1
1.2.1需求分析阶段的目标......................................................................................................1
1.2.2需求分析阶段的任务......................................................................................................1
1.2.3需求分析阶段成果..........................................................................................................3
2.概念设计阶段.........................................................................................................................................12
2.1引言...............................................................................................................................................12
2.2概念模型设计..............................................................................................................................12
II
2.3新系统流程..................................................................................................................................15
3.逻辑设计阶段.........................................................................................................................................16
3.1逻辑设计的任务和目标.............................................................................................................16
3.2数据组织........................................................................................................................................16
3.2.1将E-R图转换为关系模型............................................................................................16
3.2.2模型优化..........................................................................................................................17
3.2.3数据库模式定义.............................................................................................................18
3.2.4用户子模式设计.............................................................................................................18
3.3数据处理........................................................................................................................................18
4.物理设计阶段.........................................................................................................................................19
4.1物理设计阶段的目标与任务.....................................................................................................19
4.2数据存储方面...............................................................................................................................19
4.3系统功能模块...............................................................................................................................20
4.3.1楼道工人基本的信息查询和更新模块.....................................................................20
4.3.2宿舍楼基本信息的查询和更新模块.........................................................................21
4.3.3宿舍基本信息的查询和更新模块..............................................................................21
4.3.4学生基本信息的查询和更新模块..............................................................................22
4.3.5宿舍物品的查询和更新模块......................................................................................22
4.3.6宿舍事故的查询和更新模块......................................................................................23
4.3.7宿舍物品处理的查询和更新模块..............................................................................23
4.3.8宿舍保卫处基本信息的查询和更新模块.................................................................24
5.数据库实施阶段....................................................................................................................................24
5.1建立数据库、数据表、视图、索引........................................................................................24
5.1.1建立数据库.....................................................................................................................25
5.1.2建立数据表.....................................................................................................................25
5.1.3建立视图.........................................................................................................................29
5.1.4建立索引.........................................................................................................................31
5.2数据入库........................................................................................................................................31
5.3创建各个功能的存储过程.........................................................................................................31
6.系统调试和测试.................................................................................................错误!未定义书签。
附录1数据库逻辑结构定义....................................................................................................................33
附录2存储过程定义.................................................................................................................................37
附录3所有的SQL运行语句....................................................................................................................42
--
1
1.系统需求分析阶段
1.1引言
现在要开发的校食堂点餐系统,通过对校食堂的相应的实地考察,我们了解到学校的
食堂工作全是由人工服务,并且每天的食堂人流量多,导致每天的学生和老师的用餐时间
增多,且造成食堂空间拥挤,人员流动不通的弊病。为了使食堂的工作效率增加,学生的
所受的服务更加便捷和多元化,便设计此系统作为食堂和被服务者全新的合作方式。
1.2目标与任务
1.2.1需求分析阶段的目标
(1)了解目前食堂管理的现状以及SQLServer2000的功能和特点。
(2)通过实地调查和问答-记录的方式了解食堂管理的工作业务流程,并记录和处理
相关的数据。
1.2.2需求分析阶段的任务
(1)处理对象:
系统要处理的对象包括宿舍楼基本信息、学生基本信息、宿舍基本信息、楼道工作人
员基本信息、宿舍保卫处基本信息、宿舍事故基本信息、物品出入基本信息等七个方面,
各个对象包括信息如下所示(详细的数据见于数据字典):
1.宿舍楼基本信息(Dormitory):包括宿舍楼编号、宿舍楼所在校区、宿舍楼再校区
中区域、每一幢宿舍楼楼管处的电话、宿舍楼楼管员信息等方面,这样可以方便管理者对
宿舍楼的管理,提高查询效率;
2.学生基本信息(Student):包括学生编号、学生所在学院信息、学生姓名、学生性
别、学生来自省份、学生出生日期、学生入学时间、学生所学专业、所在班级等方面的信
息,可以方便学信息的查询和更新;
3.宿舍基本信息(Room,Fitment,FitmentDestruction,FitmentCompensate):宿舍基
本信息包括四个数据结构(宿舍信息(Room),宿舍物品信息(Fitment),宿舍物品损坏信息
(FitmentDestruction),宿舍损坏物品赔偿信息),每个数据结构中的数据项见数据字典;
4.楼道工作人员基本信息(Worker):包括工作人员编号、工作人员姓名、工作类型、
工资、性别、联系方式、工作时间等数据项,可以方便管理人员对宿舍楼道工人的任用、
信息查询及更改;
5.宿舍保卫处基本信息(SafeGuard):包括保卫处名称、人员数目、负责人信息、联系
电话等四方面的信息;
--
2
6.宿舍事故基本信息(Accident,AccidentResearch,AccidentCompensate):事故信息
包括三个数据结构(事故信息、事故处理信息、事故赔偿信息),具体的数据项见数据字典;
物品出入基本信息(ArticalInOut):包括出入物品的学生信息、出入的物品信息、出入物品
时的负责人信息、出入物品时间,尽量减少宿舍事故的发生,保障学生宿舍财产的安全。
(2)处理功能要求
系统主要完成以下几个功能:
1.新菜单。提供视化更完美,更清晰的菜品名单,让消费者能更清楚的了解今天的菜
品;
2.系统根据所提供的菜品的价钱,自动的搭配生成相应不同价位的各种套餐,合理定
义套餐名,且给出每种套餐所包含的维生素和所适应的人群。提供相应的查询服务,为方
便消费者提供服务;
3.系统提供交易平台让消费者进行套餐购买和支付,将购买信息反馈给食堂工作人员,
人员提供套餐给消费者;
4.宿舍保卫处基本信息的查询和修改;
5.宿舍事故基本信息及事故处理信息的查询和修改;
6.宿舍楼物品出入审批及记录;
(3)安全性和完整性要求
安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据
一定程度上的安全性,再通过用户授权机制,欲用户登陆来识别用户级别,根据这个级别
来分配用户权限,达到数据更高层次的安全保密功能。
完整性要求用于描述宿舍楼基本信息、学生基本信息、宿舍基本信息、楼道工作人员
基本信息、宿舍保卫处基本信息、宿舍事故基本信息、物品出入基本信息中数据项能否为
null,以及一些用户自定义完整性(符合实际要求),详细完整性要求见于系统的逻辑设计
阶段。
--
3
1.2.3需求分析阶段成果
(1)学生宿舍管理系统业务流程图
新生入住宿舍业务流程图:
查询业务流程图(查询宿舍学生信息、楼道工作人员信息、宿舍楼信息等):
--
4
毕业生离宿业务流程图:
楼道工作人员任用业务流程图:
宿舍楼物品出入业务流程图:
--
5
宿舍事故处理业务流程图:
(2)数据流程图
顶层数据流程图:
第2层数据流程图:从学生角度出发
--
6
第2层数据流程图:从管理者角度出发
第3层数据流程图:从新生角度出发
第3层数据流程图:从毕业生角度出发
--
7
第3层数据流程图:从宿舍楼物品出入出发
第3层数据流程图:从宿舍事故角度出入出发
第3层数据流程图:从楼道工作人员的任用角度出发
--
8
第3层数据流程图:从管理者和外来访客的角度出发
(3)数据字典
(a)数据项:系统涉及的数据项有71项
表1.1数据项列表
数据项编号数据项名数据项含义与其它数据项的关系存储结构别名
DI-1StuNo学生编号char(9)学号
--
9
数据项编号数据项名数据项含义与其它数据项的关系存储结构别名
DI-2DepName学生所在学院char(20)学院
DI-3StuName
学生姓名
char(10)
姓名
DI-4StuSex
学生性别
char(2)
性别
DI-5StuHome学生来自省份char(10)祖籍
DI-6StuBorth学生出生时间Date出生日期
DI-7StuETime学生入学时间Date入学时间
DI-8StuPerfect学生所在专业char(20)专业
DI-9StuClass
学生所在班级编号
Int
编号
DI-10WorNo
工作人员编号
char(5)
编号
DI-11WorName工作人员姓名char(10)姓名
DI-12WorType工作类型char(8)工作类型
DI-13WorWage工作人员工资Int月工资
DI-14WorSex工作人员性别char(2)性别
DI-15WorPhNo
工作人员联系方式
char(12)
电话
DI-16WorTime
工作人员工作时间
char(30)
工作时间
DI-17RNo宿舍编号char(6)舍号
DI-18RHeader舍长信息等于StuNamechar(10)舍长
DI-19ROne宿舍学生信息同上char(10)舍员
1
DI-20RTwo宿舍学生信息同上char(10)舍员
2
DI-21RThree
宿舍学生信息同上
char(10)
舍员3
DI-22RFour
宿舍学生信息同上
char(10)
舍员4
DI-23RFive
宿舍学生信息同上
char(10)
舍员5
DI-24RSix宿舍学生信息同上char(10)舍员6
DI-25RGrade宿舍学生所属年级等于StuETimechar(4)年级
DI-26RDepart宿舍学生所在学院等于DepNamechar(20)学院
DI-27RPerfect宿舍学生所学专业等于StuPerfectchar(20)专业
DI-28RClass
学生所在班级编号等于StuClass
char(2)
班级
DI-29DorNo
宿舍楼编号
smallint
宿舍楼号
DI-30DorCampus宿舍楼所属校区char(4)校区
DI-31DorLocation宿舍楼在校区位置char(4)宿舍区位
DI-32DorPhNo宿舍楼管处电话char(12)电话
DI-33DorAdminist宿舍楼楼管员信息等于WorNochar(10)楼管员
DI-34SGName
保卫处名称
char(15)
名字
DI-35SGWorNum
保卫处人员总数
Int
人员数目
DI-36SGHeader保卫处负责人信息char(10)负责人
DI-37SGPhone保卫处电话char(12)电话
DI-38FitName宿舍物品名称char(16)宿舍物品
DI-39FitPrice宿舍物品价格Float价格
--
10
数据项编号数据项名数据项含义与其它数据项的关系存储结构别名
DI-40FitNum每一种宿舍的数量Int数量
DI-41FDFitment
损坏物品信息等于FitName
char(16)
物品名
DI-42FDStudent
损坏的学生信息等于StuNo
char(9)
学生
DI-43FDRoom损坏物品宿舍信息等于RNochar(6)舍号
DI-44FDFitNum损坏物品的数量Int数量
DI-45FCompFit赔偿物品信息等于FitNamechar(16)物品名
DI-46FCompStu需赔偿学生信息等于StuNochar(9)学生
DI-47FCompMon
赔偿价格
Float
赔偿价格
DI-48FCompPrin
赔偿负责人信息等于WorNo
char(10)
负责人
DI-49FCompDate赔偿日期Date日期
DI-50FCompNum赔偿物品数量Int数量
DI-51AcNo事故编号int编号
DI-52AcType事故类型char(10)类型
DI-53AcArtical
事故损失物品
char(30)
物品名
DI-54AcArNum
事故损失物品数量
Int
数量
DI-55AcStu事故受害学生等于StuNochar(9)学生
DI-56AcDate事故发生日期Date日期
DI-57AcPrin事故负责人信息等于SGHeaderchar(15)负责人
DI-58AcStuPh受害人联系方式char(12)学生电话
DI-59AcVerify
事故是否属实
Bool
核查
DI-60
ARNo
事故调查编号
char(4)
编号
DI-61
ARName
事故调查名称
char(15)
调查
DI-62
ARPrin
事故调查负责人等于SGHeader
char(10)
负责人
DI-63
ARResult
事故调查结果
Bool
结果
DI-64
ACStu
事故赔偿学生信息等于StuNo
char(10)
学生
DI-65
ACArtical
事故赔偿物品信息
char(30)
物品名
DI-66
ACDate
事故赔偿日期
Date
日期
DI-67
ACPrin
事故赔偿负责单位等于SGHeader
char(15)
负责单位
DI-68
AIOStu
要求物品出入学生等于StuNo
char(10)
学生
DI-69
AIOArtical
出入物品信息
char(20)
物品名
DI-70
AIOPrin
出入物品审查人等于WorNo
char(10)
负责人
DI-71
AIODate
出入物品日期
Date
日期
DI-72
AIONo
物品出入序号
Int
序号
(b)数据结构:
--
11
表1.2数据结构列表
数据结
构编号
数据结构名
数据结构
含义
组成
DS-1Student
宿舍学生信息
StuNo,DepName,StuName,StuSex,StuHome
,
StuBorth,StuETime,StuPerfect,StuClass
DS-2Worker宿舍楼工作人员信息
WorTime,WorName,WorType,
WorWage,WorSex,WorPhNo,WorNo
DS-3Room宿舍信息
RNo,RHeader,ROne,RClass,
RThree,RFour,RFive,RSix,RGrade,
RDepart,RPerfect,RTwo,
DS-4Dormitory宿舍楼信息
DorNo,DorCampus,DorPhNo
DorLocation,DorAdminist
DS-5SafeGuard
宿舍保卫处信息
SGName,SGWorNum,SGHeader,SGPhone
DS-6Fitment
宿舍物品配备信息
FitName,FitPrice,FitNum
DS-7FitmentDestruction宿舍物品损坏信息FDFitment,FDStudent,FDRoom,FDFitNum
DS-8FitmentCompensate
宿舍损坏物品赔偿信
息
FCompFit,FCompStu,FCompPrin,
FCompDate,FCompNum
DS-9Accident
宿舍事故注册信息
AcNo,AcType,AcStu,AcDate,
AcArtical,AcVerify,AcPrin,
AcArNum,AcStuPh
DS-10AccidentResearch宿舍事故调查信息ARNo,ARName,ARPrin,ARResult
DS-11AccidentCompensate
事故损失物品赔偿信
息
ACStu,ACArtical,ACDate,ACPrin
DS-12ArticalInOut宿舍楼物品出入信息AIOStu,AIOArtical,AIOPrin,AIODate,AIONo
(4)处理逻辑描述(判定表或判定树)
表1.3处理逻辑列表
--
12
判定条件决策
判断用户查询涉及的功能模块
宿舍基本信息模块、宿舍楼基本信息模块、学生基本信息模块、
宿舍楼配备物品基本信息模块、宿舍事故基本信息模块、宿舍
楼物品出入基本信息模块、宿舍楼保卫处基本信息模块、楼道
工人基本信息模块:先确定查询所涉及的功能模块;然后,确
定要查询的内容,确定查询数据流向;最后显示查询结果。
判断用户修改要涉及的模块,同
时把相应的修改数据传到相应的
模块之中
宿舍基本信息模块、宿舍楼基本信息模块、学生基本信息模块、
宿舍楼配备物品基本信息模块、宿舍事故基本信息模块、宿舍
楼物品出入基本信息模块、宿舍楼保卫处基本信息模块、楼道
工人基本信息模块:先确定更新所涉及的功能模块;然后,把
更新信息传送到相应的模块中;最后,进行相应的更新操作。
2.概念设计阶段
2.1引言
概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过
程,它是整个数据库设计的关键,包括概念模型设计和新系统流程两个阶段。
2.2概念模型设计
(1)根据不同的对象,从第3层数据流程图(中层数据流程图)入手,分别画出分E-R
图:
(a)从数据流程图图2.4与图2.5抽象出的分E-R图:
图3.1分E-R图1
图3.2分E-R图2
--
13
图3.3分E-R图3
(b)从数据流程图图2.6与图2.8抽象出的分E-R图:
图3.4分E-R图4
(c)从数据流程图图2.7抽象出的分E-R图:
图3.5分E-R图5
(2)各分E-R图中每个实体的属性如下所示:
学生:Student(StuNo,DepName,StuName,StuSex,StuHome,StuBorth,StuETime,
StuPerfect,StuClass);
宿舍:Room(RNo,RHeader,ROne,RClass,RThree,RFour,RFive,RSix,
RGrade,RDepart,RPerfect,RTwo);
宿舍楼:Dormitory(DorNo,DorCampus,DorLocation,DorPhNo,DorAdminist);
宿舍物品:Fitment(FitName,FitPrice,FitNum);
楼道工作人员:Worker(WorNo,WorName,WorType,WorWage,WorSex,
WorPhNo,WorTime);
保卫处:SafeGuard(SGName,SGWorNum,SGHeader,SGPhone);
各分E-R图中联系的属性如下所示:
物品出入:ArticalInOut(AIONo,AIOStu,AIOArtical,AIOPrin,AIODate);
宿舍物品处理:包含物品损坏和物品赔偿两个数据结构(将在逻辑设计阶段给出);
事故:包含宿舍事故注册、宿舍事故调查、事故损失物品赔偿三个数据结构(具体的
结构将在系统逻辑设计阶段给出)。
--
14
(3)合并各分E-R图,消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步E-R
图,再消除不必要冗余,得到的基本E-R图如下所示:
图3.6基本E-R图
食堂
窗口
学生
菜
员工
订餐
销售
收入
学生
评价
包含
隶属
包含
销售
送餐
外卖
就餐
评价
1
1
隶属
1
1
n
n
1
n
1
1
mn
m
n
m
n
1
1
--
15
2.3新系统流程
新系统流程图:
--
16
3.逻辑设计阶段
3.1逻辑设计的任务和目标
以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的
DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转
换为选用DBMS产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将
E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出
系统功能模块图)两大任务
3.2数据组织
3.2.1将E-R图转换为关系模型
由于宿舍楼与楼道工人的联系方式是1:n(一对多),可以将其之间的联系与n端实体
楼道工人合并,宿舍楼与宿舍之间的联系、宿舍与学生之间的联系方式也是1:n,同样也
将其之间的联系与n端实体宿舍、学生合并,而宿舍物品与学生、学生与楼道工作人员之
间的联系方式则是n:m(多对多),这样要把它们之间的联系转化为独立的关系模式,保卫
--
17
处与学生之间的联系是1:n(一对多),但是它们之间的联系事故则包含数据结构,为了便
于模型优化,将其联系也转化成独立的关系模式,具体的基本E-R图向关系模型的转化如
下:
楼道工人:Worker(WorNo,WorName,WorType,WorWage,WorSex,
WorPhNo,WorTime,DorNo,DorCampus,DorLocation);
宿舍楼:Dormitory(DorNo,DorCampus,DorLocation,DorPhNo,DorAdminist);
宿舍:Room(RNo,RHeader,ROne,RClass,RThree,RFour,RFive,RSix,
RGrade,RDepart,RPerfect,RTwo,DorNo,DorCampus,DorLocation);
宿舍物品:Fitment(FitName,FitPrice,FitNum,DorNo,DorCampus,DorLocation);
学生:Student(StuNo,DepName,StuName,StuSex,StuHome,StuBorth,StuETime,
StuPerfect,StuClass,RNo,DorNo,DorCampus,DorLocation);
保卫处:SafeGuard(SGName,SGWorNum,SGHeader,SGPhone);
物品出入:ArticalInOut(AIONo,StuNo,AIOArtical,AIOPrin,AIODate,DorNo,
DorCampus,DorLocation);
宿舍物品处理包含两个数据结构(宿舍物品损坏信息,宿舍物品损坏赔偿信息),基于表的
各个属性都是原子项的考虑,现将宿舍物品处理分解为:宿舍物品损坏、宿舍损坏物品赔
偿,具体如下:
宿舍物品损坏:FitmentDestruction(FitName,StuNo,RNo,FDFitNum,DorNo,
DorCampus,DorLocation);(消除命名冲突)
宿舍物品损坏赔偿:FitmentCompensate(FitName,StuNo,FCPrin,FCompDate,
FCompNum);(消除命名冲突)
宿舍事故包含三个数据结构(宿舍事故注册信息、宿舍事故调查信息、宿舍事故损失物
品赔偿信息),同样基于表的原子性的考虑也将事故分解为:事故注册、事故调查、
事故赔偿,具体如下:
事故注册:Accident(AcNo,AcType,StuNo,AcDate,AcArtical,AcVerify,SGName,
AcArNum,AcStuPh);
事故调查:AccidentResearch(AcNo,ARName,SGName,ARResult);
事故赔偿:AccidentCompensate(AcNo,ACStu,AcArtical,ACDate,SGName);
(注:标有直线下划线的为主属性,标有波浪线下划线的是外键属性,主属性与外键属性一起构成主
码)
3.2.2模型优化
关系模式Worker,Dormitory,Fitment,SafeGuard,ArticalInOut,FitmentDestruction,
FitmentCompensate,Accident,AccidentResearch,AccidentCompensate不存在非主
属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF,但是宿舍关系
模式(Room)中存在着一些不应该有的数据冗余,现将模型优化为:
Room(RNo,RHeader,RGrade,RDepart,RPerfect,DorNo,DorCampus,
DorLocation);虽然Room中还存在一些数据冗余,但可以提高查询效率。
--
18
3.2.3数据库模式定义
表2.1数据库模式定义表
编号逻辑结构(基本表)定义完整性和安全性
T-1Worker(详见附录1-1)(详见附录1-1)
T-2Dormitory(详见附录1-2)(详见附录
1
-
2
)
T-3Room(详见附录1-3)(详见附录
1
-
3
)
T-4Fitment(详见附录1-4)(详见附录
1
-
4
)
T-5Student(详见附录1-5)(详见附录1-5)
T-6SafeGuard(详见附录1-6)(详见附录1-6)
T-7ArticalInOut(详见附录1-7)(详见附录1-7)
T-8FitmentDestruction(详见附录1-8)(详见附录
1
-
8
)
T-9FitmentCompensate(详见附录1-9)(详见附录
1
-
9
)
T-10Accident(详见附录1-10)(详见附录
1
-
10
)
T-11AccidentResearch(详见附录1-11)(详见附录1-11)
T-12AccidentCompensate(详见附录1-12)(详见附录1-12)
3.2.4用户子模式设计
表2.2用户子模式设计(View)列表
编号用户子模式
(View)
作用(共性:提供数据保密和安全保护机制)
V-1WorView便于查询和修改楼道工人的基本信息
V-2DormView方便宿舍楼的基本信息的查询、更新
V-3
RoomView
以便于宿舍的基本信息的查询和更新
V-4
FitView
用于宿舍楼配备物品的基本信息的查询
V-5StuView便于查询和更改学生的基本信息
V-6SGView方便学生查询宿舍保卫处的基本信息
V-7ArIOView以便于物品出入的管理和信息的查询、更改
V-8FDView便于宿舍物品损坏的的登记及处理和信息的查询
V-9
FCView
查询损坏物品赔偿的基本信息,便于宿舍物品的管理
V-10
AccView
方便学生事故的注册及保卫人员对事故注册的查询
V-11ARView便于学生查询宿舍事故调查的基本信息
V-12ACView方便宿舍事故赔偿的信息查询和更新
3.3数据处理
--
19
系统功能模块图:
图4.1系统功能模块图
4.物理设计阶段
4.1物理设计阶段的目标与任务
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,
在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
4.2数据存储方面
为数据库中各基本表建立的索引如下:
食堂管理系统
评
价
信
息
系
统
食
堂
信
息
系
统
窗
口
信
息
系
统
菜
单
信
息
系
统
学
生
信
息
系
统
员
工
信
息
系
统
收
入
信
息
系
统
订
餐
信
息
系
统
--
20
1.由于基本表Room,Student的主码RNo,StuNo经常在查询条件和连接操作的连
接条件中出现,且它们的值唯一,考虑在两个属性上建立唯一性索引;
ory的主码DorNo,DorCampus,DorLocation经常在查询条件中出现,且
它们的组合值唯一,考虑在它们之上建立组合索引;
3.基本表Student的一属性StuName,经常在查询条件中出现,且经常出现在相等
的比较条件中,考虑在其之上建立聚簇索引;
4.基本表Fitment、SafeGuard的属性值几乎不会有什么变化,更新率很低,可考虑
适当建立索引;
5.基本表Worker,ArticalInOut,FitmentDestruction,FitmentCompensate,
Accident,AccidentResearch,AccidentCompensate的属性值经常发生变化,权
衡系统为维护索引付出的代价,可考虑不建立索引,也可以适当建立索引。
4.3系统功能模块
4.3.1楼道工人基本的信息查询和更新模块
将实现对楼道工人基本信息的查询和更新(修改、插入、删除)操作,方便于楼道工
人的任用和更换,具体的功能模块图如下:
图4.2楼道工人基本信息的查询、更新功能模块图
(注:表示系统给用户的信息,以下与此相同)
--
21
4.3.2宿舍楼基本信息的查询和更新模块
将完成对宿舍楼基本信息的查询、更新(修改、插入、删除)操作,便于宿舍的集中
管理,具体的功能模块图如下所示:
图4.3宿舍楼基本信息的查询、更新功能模块图
4.3.3宿舍基本信息的查询和更新模块
将达到对宿舍基本信息的查询、更新(修改、插入、删除)操作的目的,具体的功能
模块图如下所示:
--
22
图4.4宿舍基本信息的查询、更新功能模块图
4.3.4学生基本信息的查询和更新模块
将完成对学生基本信息的查询和插入、删除、修改等更新操作,具体的功能模块如下
所示:
图4.5宿舍学生基本信息的查询、更新功能模块图
4.3.5宿舍物品的查询和更新模块
将实现对宿舍物品基本信息的查询、插入、删除、修改等操作,以方便于宿舍物品的
配备,具体的功能模块图如下:
--
23
图4.6宿舍物品基本信息的查询、更新功能模块图
4.3.6宿舍事故的查询和更新模块
将实现对宿舍事故的插入和更新操作,方便宿舍事故的快速处理,及时了解事故处理
的结果,具体的功能模块图如下:
图4.7宿舍事故基本信息的查询、更新功能模块图
4.3.7宿舍物品处理的查询和更新模块
将完成对宿舍物品处理基本信息的查询、插入、删除、修改等操作,方便于宿舍物品
的处理,具体的功能模块图如下所示:
--
24
图4.8宿舍物品处理基本信息的查询、更新功能模块图
4.3.8宿舍保卫处基本信息的查询和更新模块
将实现对宿舍保卫处基本信息的查询和更新(包括更改、插入、删除)操作,方便于
宿舍意外事故的处理,具体的功能模块图如下:
图4.9宿舍楼保卫处基本信息的查询、更新功能模块图
5.数据库实施阶段
5.1建立数据库、数据表、视图、索引
--
25
5.1.1建立数据库
createdatabaseStudent_Dormitory_Management;
5.1.2建立数据表
(1)楼道工人基本信息表的建立:
createtableWorker(
WorNochar(5)notnullunique,
WorNamechar(10)notnull,
WorTypechar(8)notnull,
WorWageintnotnull,
WorSexchar(2)notnull,
WorPhNochar(12)null,
WorTimechar(30)null,
DorNosmallintnotnull,
DorCampuschar(4)notnull,
DorLocationchar(4)notnull,
primarykey(WorNo),
foreignkey(DorNo,DorCampus,DorLocation)references
Dormitory(DorNo,DorCampus,DorLocation),
check(WorWage>=0),
check(WorSex=‘男’orWorSex=‘女’));
(2)宿舍楼基本信息表的建立:
createtableDormitory(
DorNosmallintnotnull,
DorCampuschar(4)notnull,
DorLocationchar(4)notnull,
DorPhNochar(12)null,
DorAdministchar(10)null,
primarykey(DorNo,DorCampus,DorLocation),
check(DorNo>0andDorNo<100));
(3)宿舍基本信息表的建立:
createtableRoom(
RNochar(6)notnullunique,
RHeaderchar(10)null,
RGradechar(4)notnull,
RDepartchar(20)notnull,
RPerfectchar(20)notnull,
DorNosmallintnotnull,
--
26
DorCampuschar(4)notnull,
DorLocationchar(4)notnull,
primarykey(RNo),
foreignkey(DorNo,DorCampus,DorLocation)references
Dormitory(DorNo,DorCampus,DorLocation));
(4)宿舍楼配备物品基本信息表的建立:
createtableFitment(
FitNamechar(16)notnullunique,
FitPricefloatnotnull,
FitNumintnotnull,
DorNosmallintnotnull,
DorCampuschar(4)notnull,
DorLocationchar(4)notnull,
primarykey(FitName),
foreignkey(DorNo,DorCampus,DorLocation)references
Dormitory(DorNo,DorCampus,DorLocation));
(5)宿舍学生基本信息表的建立:
createtableStudent(
StuNochar(9)notnullunique,
DepNamechar(20)notnull,
StuNamechar(10)notnull,
StuSexchar(2)notnull,
StuHomechar(10)notnull,
StuBorthDatetimenotnull,
StuETimeDatetimenotnull,
StuPerfectchar(20)notnull,
StuClassintnotnull,
RNochar(6)notnull,
DorNosmallintnotnull,
DorCampuschar(4)notnull,
DorLocationchar(4)notnull,
primarykey(StuNo),
foreignkey(RNo)referencesRoom(RNo),
foreignkey(DorNo,DorCampus,DorLocation)references
Dormitory(DorNo,DorCampus,DorLocation),
check(StuClass>0andStuClass<=10));
(6)宿舍保卫处基本信息表的建立:
createtableSafeGuard(
SGNamechar(15)notnullunique,
SGWorNumintnotnull,
--
27
SGHeaderchar(10)notnull,
SGPhonechar(12)null,
primarykey(SGName),
check(SGWorNum>0));
(7)宿舍楼物品出入基本信息表的建立:
createtableArticalInOut(
StuNochar(9)notnull,
AIOArticalchar(16)null,
AIOPrinchar(9)notnull,
AIODatedatetimenotnull,
AIONointnotnullunique,
DorNosmallintnotnull,
DorCampuschar(4)notnull,
DorLocationchar(4)notnull,
primarykey(AIONo,AIODate),
foreignkey(StuNo)referencesStudent(StuNo),
foreignkey(AIOPrin)referencesWorker(WorNo),
foreignkey(DorNo,DorCampus,DorLocation)references
Dormitory(DorNo,DorCampus,DorLocation),
check(AIONo>0));
(8)宿舍配备物品损坏基本信息表的建立:
createtableFitmentDestruction(
FitNamechar(16)notnullunique,
StuNochar(9)notnull,
RNochar(6)notnull,
FDFitNumintnotnull,
DorNosmallintnotnull,
DorCampuschar(4)notnull,
DorLocationchar(4)notnull,
foreignkey(DorNo,DorCampus,DorLocation)references
Dormitory(DorNo,DorCampus,DorLocation),
foreignkey(FitName)referencesFitment(FitName),
foreignkey(StuNo)referencesStudent(StuNo),
foreignkey(RNo)referencesRoom(RNo),
check(FDFitNum>=0));
(9)宿舍损坏配备物品赔偿基本信息表的建立:
createtableFitmentCompensate(
FitNamechar(16)notnull,
StuNochar(9)notnull,
FCPrinchar(15)notnull,
--
28
FCompDateDatetimenotnull,
FCompNumintnotnull,
foreignkey(FitName)referencesFitment(FitName),
foreignkey(StuNo)referencesStudent(StuNo),
foreignkey(FCPrin)referencesSafeGuard(SGName),
check(FCompNum>=0));
(10)宿舍事故注册基本信息表的建立:
createtableAccident(
AcNointnotnullunique,
AcTypechar(10)notnull,
StuNochar(9)notnull,
AcDatedatetimenotnull,
AcArticalchar(30)notnull,
AcVerifyboolnull,
SGNamechar(15)notnull,
AcArNumintnotnull,
AcStuPhchar(12)notnull,
primarykey(AcNo,AcDate),
foreignkey(StuNo)referencesStudent(StuNo),
foreignkey(SGName)referencesSafeGuard(SGName),
check(AcArNum>0),);
(11)宿舍事故调查基本信息表的建立:
createtableAccidentResearch(
AcNointnotnull,
ARNamechar(15)notnull,
SGNamechar(15)notnull,
ARResultboolnotnull,
primarykey(SGName),
foreignkey(AcNo)referencesAccident(AcNo),
foreignkey(SGName)referencesSafeGuard(SGName),);
(12)宿舍事故赔偿基本信息表的建立:
createtableAccidentCopensate(
AcNointnotnull,
ACStuchar(9)notnull,
AcArticalchar(30)notnull,
AcDateDatetimenotnull,
SGNamechar(15)notnull,
foreignkey(AcNo)referencesAccident(AcNo),
foreignkey(ACStu)referencesStudent(StuNo),
foreignkey(SGName)referencesSafeGuard(SGName));
--
29
5.1.3建立视图
(1)用于查询和更新楼道工人基本信息的视图定义如下:
createviewWorView(编号,姓名,工作类型,工资,性别,联系方式,
工作时间,宿舍楼编号,校区,区位)
as
select*
fromWorker
withcheckoption;
(2)方便于宿舍楼基本信息查询、更新的视图定义如下:
createviewDormView(宿舍楼编号,校区,区位,楼管处电话,楼管)
as
select*
fromdormitory
withcheckoption;
(3)显示宿舍基本信息的视图定义如下:
createviewRoomView(宿舍编号,舍长,年级,学院,专业,宿舍楼编号,
校区,区位)
as
select*
fromRoom
withcheckoption;
(4)可用于宿舍楼配备物品基本信息查询、更新的视图定义如下:
createviewFitView(物品名,价格,数量,宿舍楼编号,校区,区位)
as
select*
fromFitment
withcheckoption;
(5)用于查询和更新学生基本信息的视图定义如下:
createviewStuView(学号,学院,姓名,性别,祖籍,出生日期,入学时间,
专业,班级,宿舍编号,宿舍楼编号,校区,区位)
as
select*
fromStudent
withcheckoption;
(6)显示宿舍保卫处基本信息的视图定义如下:
createviewSGView(名称,人员数目,负责人,电话)
as
select*
--
30
fromSafeGuard
withcheckoption;
(7)以便于物品出入管理和出入物品信息查询、更新的视图定义如下:
createviewArIOView(学号,出入物品,负责人,日期,序号,宿舍楼编号,
校区,区位)
as
select*
fromArticalInOut
withcheckoption;
(8)便于宿舍配备物品损坏登记及损坏宿舍物品查询的视图定义如下:
createviewFDView(物品名,学号,宿舍号,损坏数量,宿舍楼编号,校区,
区位)
as
select*
fromFitmentDestruction
withcheckoption;
(9)用于查询损坏物品赔偿基本信息,便于宿舍物品管理的视图定义如下:
createviewFCView(物品名,学号,负责人,日期,赔偿数量)
as
select*
fromFitmentCompensate
withcheckoption;
(10)方便学生事故的注册及保卫人员对事故注册查询的视图定义如下:
createviewAccView(编号,事故类型,学号,日期,损失物品,属实,
负责单位,损失数量,学生联系方式)
as
select*
fromAccident
withcheckoption;
(11)便于宿舍以外事故调查的视图定义如下:
createviewARView(编号,调查名称,负责单位,调查结果)
as
select*
fromAccidentResearch
withcheckoption;
(12)方便宿舍事故赔偿信息查询和更改的视图定义如下:
createviewACView(编号,学号,赔偿物品,日期,负责单位)
as
select*
fromAccidentCompensate
--
31
withcheckoption;
5.1.4建立索引
createuniqueindexStudentNoonStudent(StuNo);
createuniqueindexRoomNoonRoom(RNo);
createuniqueindexDormitoryNo_Campus_Location
onDormitory(DorNodesc,DorCampus,DorLocation);
createclusterindexStudentNameonStudent(StuName);
createuniqueindexFitmentNameonFitment(FitName);
createuniqueindexSafeGuardNameonSafeGuard(SGName);
5.2数据入库
系统包括宿舍学生基本信息管理、楼道工人基本信息管理、宿舍楼基本信息管理、宿舍
基本信息管理、宿舍事故基本信息管理、宿舍楼物品出入基本信息管理、宿舍楼保卫处基
本信息管理、宿舍配备物品及处理管理等八大功能模块,共有12张基本表,牵涉到大量数
据的录入,又由于时间限制,采用事先在Excel中录入数据,然后使用SQLServer2000数据导
入/导出向导功能,直接将数据导入到相应的基本表中。当然,附录中也给出了各个基本表
插入元组的存储功能,详细内容请参阅附录2。
5.3创建各个功能的存储过程(参考)
系统共创建了16个存储过程,具体列表如下:
表3.1创建的存储过程列表:
编号存储过程名称定义作用
P-1p1_Worker_Insert详见附录2-1在Worker中插入一元组
P-2p2_Dormitory_Insert详见附录2-2在Dormitory中插入一元组
P-3p3_Room_Insert详见附录2-3在Room中插入一元组
P-4p4_Fitment_Inser
详见附录2-4在Fitment中插入一元组
P-5p5_Student_Insert
详见附录2-5在Student中插入一元组
P-6p6_SafeGuard_Insert
详见附录2-6在SafeGuard中插入一元组
P-7p7_Artical_In_Out_Insert详见附录2-7在ArticalInOut中插入一元组
P-8p8_FitmentDestruction_Insert详见附录2-8在FitmentDestruction中插入一元组
P-9p9_FitmentCompensate详见附录2-9在FitmentCompensate中插入一元组
P-10p10_Accident_Insert
详见附录2-10在Accident中插入一元组
--
32
P-11p11_AccidentResearch_Insert详见附录2-11在AccidentResearch中插入一元组
P-12p12_AccidentCompensate_Insert
详见附录2-12在AccidentCompensate中插入一元组
P-13p13_Query_Worker
详见附录2-13在Worker中匹配(WorNo)查询
P-14p14_Query_Worker详见附录2-14在Worker中匹配(WorName)查询
P-15p15_Delete_Worker详见附录2-15在Worker中删除元组
P-16p16_Update_Worker详见附录2-16在Worker中更新操作
(其他表的查询、修改、删除与Worker表的大致相同,这里不再具体列出)
--
33
附录1数据库逻辑结构定义
1.楼道工人(Worker)基本信息表,用于记录楼道工人的基本信息:
表2.3楼道工人基本信息表
属性名数据类型取值范围是否是主属性或外键完整性
WorNochar(5)00000~99999是Notnull
WorNamechar(10)否Notnull
WorTypechar(8)
否
Notnull
WorWageInt
大于500(元/月)否
Notnull
WorSexchar(2)
男、女否
Notnull
WorPhNochar(12)否Null
WorTimechar(30)否Null
DorNosmallint00~99是Notnull
DorCampuschar(4)
四面八方其中之一是
Notnull
DorLocationchar(4)
四面八方其中之一是
Notnull
2.宿舍楼(Dormitory)基本信息表,用于记录宿舍楼的基本信息:
表2.4宿舍楼基本信息表
属性名数据类型取值范围是否是主属性或外键完整性
DorNosmallint00~99是Notnull
DorCampuschar(4)四面八方其中之一是Notnull
DorLocationchar(4)四面八方其中之一是Notnull
DorPhNochar(12)
否
Null
DorAdministchar(10)
否
Null
3.宿舍(Room)基本信息表,用于记录宿舍的基本信息:
表2.5宿舍基本信息表
属性名数据类型取值范围是否是主属性或外键完整性
RNochar(6)01-001~99-999是Notnull
RHeaderchar(10)否Null
RGradechar(4)
否
Notnull
RDepartchar(20)
否
Notnull
RPerfectchar(20)
否
Notnull
DorNosmallint00~99是Notnull
DorCampuschar(4)四面八方其中之一是Notnull
DorLocationchar(4)四面八方其中之一是Notnull
--
34
4.宿舍楼配备物品(Fitment)基本信息表,用于记录宿舍楼配备物品的基本信息:
表2.6宿舍配备物品基本信息
属性名数据类型取值范围是否是主属性或外键完整性
FitNamechar(16)
是
Notnull
FitPricefloat大于0否Notnull
FitNumInt大于0否Notnull
DorNosmallint00~99是Notnull
DorCampuschar(4)
四面八方其中之一是
Notnull
DorLocationchar(4)
四面八方其中之一是
Notnull
5.宿舍学生(Student)基本信息表,用于记录宿舍学生的基本信息:
图2.7宿舍学生基本信息
属性名数据类型取值范围是否是主属性或外键完整性
StuNochar(9)00000000~999999999是Notnull
DepNamechar(20)否Notnull
StuNamechar(10)否Notnull
StuSexchar(2)
男、女否
Notnull
StuHomechar(10)
否
Notnull
StuBorthdatetime
否
Notnull
StuETimedatetime否Notnull
StuPerfectchar(20)否Notnull
StuClassint大于0小于10否Notnull
RNochar(6)
01-001~99-999是
Notnull
DorNosmallint
00~99是
Notnull
DorCampuschar(4)
四面八方其中之一是
Notnull
DorLocationchar(4)四面八方其中之一是Notnull
6.宿舍保卫处(SafeGuard)基本信息表,用于记录保卫处的基本信息:
图2.8宿舍保卫处基本信息
属性名数据类型取值范围是否是主属性或外键完整性
SGNamechar(15)是Notnull
SGWorNumint
大于0否
Notnull
SGHeaderchar(10)
否
Notnull
SGPhonechar(12)
否
Null
7.宿舍楼物品出入(ArticalInOut)基本信息表,用于记录物品出入的基本信息:
图2.9宿舍楼物品出入基本信息
属性名数据类型取值范围是否是主属性或外键完整性
StuNochar(9)00000000~999999999是Notnull
--
35
属性名数据类型取值范围是否是主属性或外键完整性
AIOArticalchar(16)否Null
AIOPrinchar(9)
否
Notnull
AIODatedatetime
是
Notnull
AIONoInt大于0是Notnull
DorNosmallint00~99是Notnull
DorCampuschar(4)四面八方其中之一是Notnull
DorLocationchar(4)四面八方其中之一是Notnull
8.宿舍配备物品损坏(FitmentDestruction)基本信息表,用于记录物品损坏的基本信息:
图2.10宿舍配备物品损坏基本信息
属性名数据类型取值范围是否是主属性或外键完整性
FitNamechar(16)
是
Notnull
StuNochar(9)00000000~999999999是Notnull
RNochar(6)01-001~99-999是Notnull
FDFitNumInt大于等于0否Notnull
DorNosmallint00~99是Notnull
DorCampuschar(4)
四面八方其中之一是
Notnull
DorLocationchar(4)
四面八方其中之一是
Notnull
9.宿舍配备物品损坏赔偿(FitmentCompensate)基本信息表,记录损坏物品赔偿的基本信息:
图2.11宿舍配备物品损坏赔偿基本信息
属性名数据类型取值范围是否是主属性或外键完整性
FitNamechar(16)
是
Notnull
StuNochar(9)
00000000~999999999是
Notnull
FCPrinchar(10)是Notnull
FCompDatedatetime否Notnull
FCompNumint大于等于0否Notnull
10.宿舍事故注册(Accident)基本信息表,用于记录宿舍事故注册的基本信息:
2.12宿舍事故注册基本信息
属性名数据类型取值范围是否是主属性或外键完整性
AcNoint0000~9999
是
Notnull
AcTypechar(10)
否
Notnull
StuNochar(30)00000000~999999999
是
Notnull
AcDatedatetime是Notnull
AcArticalchar(30)否Notnull
AcVerifybool否Null
--
36
属性名数据类型取值范围是否是主属性或外键完整性
SGNamechar(15)是Null
AcArNumint大于等于0否Notnull
AcStuPhchar(12)
否
Null
11.宿舍事故调查(AccidentResearch)基本信息表,用于记录宿舍事故调查的基本信息:
图2.13事故调查基本信息
属性名数据类型取值范围是否是主属性或外键完整性
AcNoint0000~9999是Notnull
ARNamechar(15)是Notnull
SGNamechar(15)是Notnull
ARResultbool否Notnull
12.宿舍事故赔偿(AccidentCompensate)基本信息表,用于记录宿舍事故赔偿的基本信息:
图2.14宿舍事故赔偿基本信息
属性名数据类型取值范围是否是主属性或外键完整性
AcNoint0000~9999
是
Notnull
ACStuchar(10)00000000~999999999是Notnull
AcArticalchar(30)否Notnull
ACDatedatetime否Notnull
SGNamechar(15)是Notnull
--
37
附录2存储过程定义
1.p1_Worker_Insert的定义:
CREATEPROCEDUREp1_Worker_Insert
@worker_nochar(5),
@worker_namechar(10),
@work_typechar(8),
@work_wageint,
@worker_sexchar(2),
@work_timechar(30),
@dormitory_nosmallint,
@dormitory_campuschar(4),
@dormitory_locationchar(4)
as
insertintoWorker
values(@worker_no,@worker_name,@work_type,@work_wage,@worker_sex,
@work_time,@work_time,@dormitory_no,@dormitory_campus,
@dormitory_location);
2.p2_Dormitory_Insert
的定义
:
createprocedurep2_Dormitory_Insert
@dormitory_nosmallint,
@dormitory_campuschar(4),
@dormitory_locationchar(4),
@dormitory_phonechar(12),
@dormitory_administerchar(10)
as
insertintoDormitory
values(@dormitory_no,@dormitory_campus,@dormitory_location,
@dormitory_phone,@dormitory_administer);
3.p3_Room_Insert
的定义
:
createprocedurep3_Room_Insert
@room_nochar(6),
@room_headerchar(10),
@roomer_gradechar(4),
@roomer_departmentchar(20),
@roomer_perfectionchar(20),
@dormitory_nosmallint,
@dormitory_campuschar(4),
@dormitory_locationchar(4)
--
38
as
insertintoRoom
values(@room_no,@room_header,@roomer_grade,@roomer_department,
@roomer_perfection,@dormitory_no,@dormitory_campus,
@dormitory_location);
4.p4_Fitment_Inser
的定义
:
createprocedurep4_Fitment_Insert
@fitment_namechar(16),
@fitment_pricefloat,
@fitment_numberint,
@dormitory_nosmallint,
@dormitory_campuschar(4),
@dormitory_locationchar(4)
as
inserttoFitment
values(@fitment_name,@fitment_price,@fitment_number,@dormitory_no,
@dormitory_campus,@dormitory_location);
5.p5_Student_Insert
的定义
:
createprocedurep5_Student_Insert
@student_nochar(9),
@department_namechar(20),
@student_namechar(10),
@student_sexchar(2),
@student_homechar(10),
@student_borthdatetime,
@student_enter_timedatetime,
@student_perfectionchar(20),
@student_classint,
@room_nochar(6),
@dormitory_nosmallint,
@dormitory_campuschar(4),
@dormitory_locationchar(4)
as
insertintoStudent
values(@student_no,@department_name,@student_name,@student_sex
,@student_home,@student_borth,@student_enter_time,@student_perfection,
@student_class,@room_no,@dormitory_no,@dormitory_campus,
@dormitory_location);
6.p6_SafeGuard_Insert的定义:
createprocedurep6_SafeGuard_Insert
--
39
@safeguard_namechar(15),
@safeguard_worker_numint,
@safeguard_headerchar(10),
@safeguard_phonechar(12)
as
insertintoSGName
values(@safeguard_name,@safeguard_worker_num,@safeguard_header,
@safeguard_phone);
7.p7_Artical_In_Out_Insert的定义:
createprocedurep7_Artical_In_Out_InSert
@student_nochar(9),
@aio_articalchar(16),
@aio_principalchar(9),
@aio_datedatetime,
@aio_noint,
@dormitory_nosmallint,
@dormitory_campuschar(4),
@dormitory_locationchar(4)
as
insertintoAIOArtical
values(@student_no,@aio_artical,@aio_principal,@aio_date,
@dormitory_no,@dormitory_campus,@dormitory_location);
8.p8_FitmentDestruction_Insert:
的定义
createprocedurep8_FitmentDestruction_Insert
@fitment_namechar(16),
@student_nochar(9),
@room_nochar(6),
@fdf_numint,
@dormitory_nosmallint,
@dormitory_campuschar(4),
@dormitory_locationchar(4)
as
inserttoFitmentDestruction
values(@fitment_name,@student_no,@room_no,@fdf_num,@dormitory_no,
@dormitory_campus,@dormitory_location);
9.p9_FitmentCompensate
的定义
:
createprocedurep9_FitmentCompensate
@fitment_namechar(16),
@stu_nochar(9),
@fc_principalchar(10),
--
40
@fc_datedatetime,
@fc_numint,
as
insertFitmentDestruction
values(@fitment_name,@stu_no,@fc_principal,@fc_date,@fc_num);
10.p11_Accident_Insert
的定义
:
createprocedurep10_Accident_Insert
@ac_noint,
@ac_typechar(10),
@stu_nochar(30),
@ac_datedatetime,
@ac_articalchar(30),
@ac_verifybool,
@sg_namechar(15),
@ac_ar_numint,
@ac_stu_phonechar(12)
as
insertintoAccident
values(@ac_no,@ac_type,@stu_no,@ac_date,@ac_artical,@ac_verify,
@sg_name,@ac_ar_num,@ac_stu_phone);
11.p11_AccidentResearch_Insert的定义:
createprocedurep11_AccidentResearch_Insert
@ac_noint,
@ar_namechar(15),
@sg_namechar(15),
@ar_resultbool
as
insertintoAccidentResearch
values(@ac_no,@ar_name,@sg_name,@ar_result);
12.p12_AccidentCompensate_Insert
的定义
:
createprocedurep12_AccidentCompensate_Insert
@ac_noint,
@ac_stuchar(10),
@ac_articalchar(30),
@ac_datedatetime,
@sg_namechar(15)
as
insertintoAccidentCompensate
values(@ac_no,@ac_stu,@ac_artical,@ac_date,@sg_name);
13.p13_Query_Worker的定义:
--
41
createprocedurep13_Query_Worker
@worker_nochar(5)
as
select*
fromWorView
where编号=ltrim(@worker_no);
14.p14_Query_Worker
的定义
:
createprocedurep14_Query_Worker
@worker_namechar(10)
as
select*
fromWorView
where姓名likeltrim(@worker_name)+’%’;
15.p15_Delete_Worker的定义:
createprocedurep15_Delete_Worker
@worker_nochar(5)
as
delete
fromWorView
where编号=rtrim(ltrim(@worker_no));
16.p16_Delete_Worker的定义:
createprocedurep16_Delete_Worker
@worker_namechar(10)
as
delete
fromWorView
where姓名likertrim(ltrim(@worker_name)
--
42
附录3所有的SQL运行语句
createdatabaseStudent_Dormitory_Management;
createtableDormitory(
DorNosmallintnotnull,
DorCampuschar(4)notnull,
DorLocationchar(4)notnull,
DorPhNochar(12)null,
DorAdministchar(10)notnull,
primarykey(DorNo,DorCampus,DorLocation),
check(DorNo>0andDorNo<100));
createtableWorker(
WorNochar(5)notnullunique,
WorNamechar(10)notnull,
WorTypechar(8)notnull,
WorWageintnotnull,
WorSexchar(2)notnull,
WorPhNochar(12)null,
WorTimechar(30)null,
DorNosmallintnotnull,
DorCampuschar(4)notnull,
DorLocationchar(4)notnull,
primarykey(WorNo),
foreignkey(DorNo,DorCampus,DorLocation)references
Dormitory(DorNo,DorCampus,DorLocation),
check(WorWage>=0),
check(WorSex='男'orWorSex='女'));
createtableRoom(
RNochar(6)notnullunique,
RHeaderchar(10)null,
RGradechar(4)notnull,
RDepartchar(20)notnull,
RPerfectchar(20)notnull,
DorNosmallintnotnull,
DorCampuschar(4)notnull,
--
43
DorLocationchar(4)notnull,
primarykey(RNo),
foreignkey(DorNo,DorCampus,DorLocation)references
Dormitory(DorNo,DorCampus,DorLocation));
createtableFitment(
FitNamechar(16)notnullunique,
FitPricefloatnotnull,
FitNumintnotnull,
DorNosmallintnotnull,
DorCampuschar(4)notnull,
DorLocationchar(4)notnull,
primarykey(FitName),
foreignkey(DorNo,DorCampus,DorLocation)references
Dormitory(DorNo,DorCampus,DorLocation));
createtableStudent(
StuNochar(9)notnullunique,
DepNamechar(20)notnull,
StuNamechar(10)notnull,
StuSexchar(2)notnull,
StuHomechar(10)notnull,
StuBorthDATETIMEnotnull,
StuETimeDATETIMEnotnull,
StuPerfectchar(20)notnull,
StuClassintnotnull,
RNochar(6)notnull,
DorNosmallintnotnull,
DorCampuschar(4)notnull,
DorLocationchar(4)notnull,
primarykey(StuNo),
foreignkey(RNo)referencesRoom(RNo),
foreignkey(DorNo,DorCampus,DorLocation)references
Dormitory(DorNo,DorCampus,DorLocation),
check(StuClass>0andStuClass<=10));
createtableSafeGuard(
SGNamechar(15)notnullunique,
SGWorNumintnotnull,
--
44
SGHeaderchar(10)notnull,
SGPhonechar(12)null,
primarykey(SGName),
check(SGWorNum>0));
createtableArticalInOut(
StuNochar(9)notnull,
AIOArticalchar(16)null,
AIOPrinchar(5)notnull,
AIODatedatetimenotnull,
AIONointnotnullunique,
primarykey(AIONo,AIODate),
foreignkey(StuNo)referencesStudent(StuNo),
foreignkey(AIOPrin)referencesWorker(WorNo),
check(AIONo>0));
createtableFitmentDestruction(
FitNamechar(16)notnullunique,
StuNochar(9)notnull,
RNochar(6)notnull,
FDFitNumintnotnull,
foreignkey(FitName)referencesFitment(FitName),
foreignkey(StuNo)referencesStudent(StuNo),
foreignkey(RNo)referencesRoom(RNo),
check(FDFitNum>=0));
createtableFitmentCompensate(
FitNamechar(16)notnull,
StuNochar(9)notnull,
FCPrinchar(15)notnull,
FCompDateDatetimenotnull,
FCompNumintnotnull,
foreignkey(FitName)referencesFitment(FitName),
foreignkey(StuNo)referencesStudent(StuNo),
foreignkey(FCPrin)referencesSafeGuard(SGName),
check(FCompNum>=0));
createtableAccident(
AcNointnotnullunique,
AcTypechar(10)notnull,
--
45
StuNochar(9)notnull,
AcDatedatetimenotnull,
AcArticalchar(30)notnull,
AcVerifychar(5)notnull,
SGNamechar(15)notnull,
AcArNumintnotnull,
AcStuPhchar(12)notnull,
primarykey(AcNo,AcDate),
foreignkey(StuNo)referencesStudent(StuNo),
foreignkey(SGName)referencesSafeGuard(SGName),
check(AcArNum>0));
createtableAccidentResearch(
AcNointnotnull,
ARNamechar(15)notnull,
SGNamechar(15)notnull,
ARResultchar(5)notnull,
primarykey(SGName),
foreignkey(AcNo)referencesAccident(AcNo),
foreignkey(SGName)referencesSafeGuard(SGName));
createtableAccidentCompensate(
AcNointnotnull,
ACStuchar(9)notnull,
AcArticalchar(30)notnull,
AcDateDatetimenotnull,
SGNamechar(15)notnull,
foreignkey(AcNo)referencesAccident(AcNo),
foreignkey(ACStu)referencesStudent(StuNo),
foreignkey(SGName)referencesSafeGuard(SGName));
createviewWorView(编号,姓名,工作类型,工资,性别,联系方式,工作时间,宿舍楼编号,校区,区位)
as
select*
fromWorker
withcheckoption
createviewDormView(宿舍楼编号,校区,区位,楼管处电话,楼管)
as
select*
--
46
fromdormitory
withcheckoption
createviewRoomView(宿舍编号,舍长,年级,学院,专业,宿舍楼编号,校区,区位)
as
select*
fromRoom
withcheckoption
createviewFitView(物品名,价格,数量,宿舍楼编号,校区,区位)
as
select*
fromFitment
withcheckoption
createviewStuView(学号,学院,姓名,性别,祖籍,出生日期,入学时间,专业,班级,宿舍编号,宿舍楼编号,
校区,区位)
as
select*
fromStudent
withcheckoption
createviewSGView(名称,人员数目,负责人,电话)
as
select*
fromSafeGuard
withcheckoption
createviewArIOView(学号,出入物品,负责人,日期,序号)
as
select*
fromArticalInOut
withcheckoption
createviewFDView(物品名,学号,宿舍号,损坏数量)
as
select*
fromFitmentDestruction
withcheckoption
--
47
createviewFCView(物品名,学号,负责人,日期,赔偿数量)
as
select*
fromFitmentCompensate
withcheckoption
createviewAccView(编号,事故类型,学号,日期,损失物品,属实,负责单位,损失数量,学生联系方式)
as
select*
fromAccident
withcheckoption
createviewARView(编号,调查名称,负责单位,调查结果)
as
select*
fromAccidentResearch
withcheckoption
createviewACView(编号,学号,赔偿物品,日期,负责单位)
as
select*
fromAccidentCompensate
withcheckoption
createuniqueindexStudentNoonStudent(StuNo);
createuniqueindexRoomNoonRoom(RNo);
createuniqueindexDormitoryNo_Campus_LocationonDormitory(DorNo
desc,DorCampus,DorLocation);
createindexStudentNameonStudent(StuName);
createuniqueindexFitmentNameonFitment(FitName);
createuniqueindexSafeGuardNameonSafeGuard(SGName);
更多推荐
99宿舍客服软件下载
发布评论