学生宿舍管理系统数据库
1 需求简介
1.1 功能
1.宿舍楼基本信息查询与修改;
2.学生基本信息查询与更新;
3.每一幢宿舍楼中宿舍信息的查询与信息更新;
4.宿舍保卫处基本信息的查询和修改;
5.宿舍事故基本信息及事故处理信息的查询和修改;
6.宿舍楼物品出入审批及记录;
1.2 数据
1.宿舍楼基本信息(Dormitory):包括 宿舍楼编号、宿舍楼所在校区、宿舍楼在校区中区域、每一幢宿舍楼楼管处的电话、宿舍楼楼管员信息等方面,这样可以方便管理者对宿舍楼的管理,提高查询效率;
2.学生基本信息(Student):包括 学生编号、学生所在学院信息、学生姓名、学生性别、学生来自省份、学生出生日期、学生入学时间、学生所学专业、所在班级等方面的信息,可以方便学生信息的查询和更新;
3.宿舍基本信息(Room,Fitment,FitmentDestruction,FitmentCompensate):宿舍基本信息包括四个数据结构(宿舍信息(Room),宿舍物品信息(Fitment),宿舍物品损坏信息(FitmentDestruction),宿舍损坏物品赔偿信息),每个数据结构中的数据项见数据字典;
4.楼道工作人员基本信息(Worker):包括 工作人员编号、工作人员姓名、工作类型、工资、性别、联系方式、工作时间等数据项,可以方便管理人员对宿舍楼道工人的任用、信息查询及更改;
5.宿舍保卫处基本信息(SafeGuard):包括保卫处名称、人员数目、负责人信息、联系电话等四方面的信息;
6.宿舍事故基本信息(Accident,AccidentResearch,AccidentCompensate):事故信息包括三个数据结构(事故信息、事故处理信息、事故赔偿信息),具体的数据项见数据字典;
7.物品出入基本信息(ArticalInOut):包括出入物品的学生信息、出入的物品信息、出入物品时的负责人信息、出入物品时间,尽量减少宿舍事故的发生,保障学生宿舍财产的安全。
1.3 数据字典
数据项列表
数据项编号
数据项名
数据项含义
与其它数据项的关系
存储结构
别名
DI-1
StuNo
学生编号
char(9)
学号
DI-2
DepName
学生所在学院
char(20)
学院
DI-3
StuName
学生姓名
char(10)
姓名
DI-4
StuSex
学生性别
char(2)
性别
DI-5
StuHome
学生来自省份
char(10)
祖籍
DI-6
StuBorth
学生出生时间
Date
出生日期
DI-7
StuETime
学生入学时间
Date
入学时间
DI-8
StuPerfect
学生所在专业
char(20)
专业
DI-9
StuClass
学生所在班级编号
Int
编号
DI-10
WorNo
工作人员编号
char(5)
编号
DI-11
WorName
工作人员姓名
char(10)
姓名
DI-12
WorType
工作类型
char(8)
工作类型
DI-13
WorWage
工作人员工资
Int
月工资
DI-14
WorSex
工作人员性别
char(2)
性别
DI-15
WorPhNo
工作人员联系方式
char(12)
电话
DI-16
WorTime
工作人员工作时间
char(30)
工作时间
DI-17
RNo
宿舍编号
char(6)
舍号
DI-18
RHeader
舍长信息
等于StuName
char(10)
舍长
DI-19
ROne
宿舍学生信息
同上
char(10)
舍员1
DI-20
RTwo
宿舍学生信息
同上
char(10)
舍员2
DI-21
RThree
宿舍学生信息
同上
char(10)
舍员3
DI-22
RFour
宿舍学生信息
同上
char(10)
舍员4
DI-23
RFive
宿舍学生信息
同上
char(10)
舍员5
DI-24
RSix
宿舍学生信息
同上
char(10)
舍员6
DI-25
RGrade
宿舍学生所属年级
等于StuETime
char(4)
年级
DI-26
RDepart
宿舍学生所在学院
等于DepName
char(20)
学院
DI-27
RPerfect
宿舍学生所学专业
等于StuPerfect
char(20)
专业
DI-28
RClass
学生所在班级编号
等于StuClass
char(2)
班级
DI-29
DorNo
宿舍楼编号
smallint
宿舍楼号
DI-30
DorCampus
宿舍楼所属校区
char(4)
校区
DI-31
DorLocation
宿舍楼在校区位置
char(4)
宿舍区位
DI-32
DorPhNo
宿舍楼管处电话
char(12)
电话
DI-33
DorAdminist
宿舍楼楼管员信息
等于WorNo
char(10)
楼管员
DI-34
SGName
保卫处名称
char(15)
名字
DI-35
SGWorNum
保卫处人员总数
Int
人员数目
DI-36
SGHeader
保卫处负责人信息
char(10)
负责人
DI-37
SGPhone
保卫处电话
char(12)
电话
DI-38
FitName
宿舍物品名称
char(16)
宿舍物品
DI-39
FitPrice
宿舍物品价格
Float
价格
DI-40
FitNum
每一种宿舍的数量
Int
数量
DI-41
FDFitment
损坏物品信息
等于FitName
char(16)
物品名
DI-42
FDStudent
损坏的学生信息
等于StuNo
char(9)
学生
DI-43
FDRoom
损坏物品宿舍信息
等于RNo
char(6)
舍号
DI-44
FDFitNum
损坏物品的数量
Int
数量
DI-45
FCompFit
赔偿物品信息
等于FitName
char(16)
物品名
DI-46
FCompStu
需赔偿学生信息
等于StuNo
char(9)
学生
DI-47
FCompMon
赔偿价格
Float
赔偿价格
DI-48
FCompPrin
赔偿负责人信息
等于WorNo
char(10)
负责人
DI-49
FCompDate
赔偿日期
Date
日期
DI-50
FCompNum
赔偿物品数量
Int
数量
DI-51
AcNo
事故编号
int
编号
DI-52
AcType
事故类型
char(10)
类型
DI-53
AcArtical
事故损失物品
char(30)
物品名
DI-54
AcArNum
事故损失物品数量
Int
数量
DI-55
AcStu
事故受害学生
等于StuNo
char(9)
学生
DI-56
AcDate
事故发生日期
Date
日期
DI-57
AcPrin
事故负责人信息
等于SGHeader
char(15)
负责人
DI-58
AcStuPh
受害人联系方式
char(12)
学生电话
DI-59
AcVerify
事故是否属实
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
序号
数据结构列表
数据结
构编号
数据结构名
数据结构
含义
组成
DS-1
Student
宿舍学生信息
StuNo,DepName,StuName,StuSex,StuHome,
StuBorth,StuETime,StuPerfect,StuClass
DS-2
Worker
宿舍楼工作人员信息
WorTime,WorName,WorType,
WorWage,WorSex,WorPhNo,WorNo
DS-3
Room
宿舍信息
RNo,RHeader,ROne, RClass,
RThree,RFour,RFive,RSix,RGrade,
RDepart,RPerfect,RTwo,
DS-4
Dormitory
宿舍楼信息
DorNo,DorCampus,DorPhNo
DorLocation,DorAdminist
DS-5
SafeGuard
宿舍保卫处信息
SGName,SGWorNum,SGHeader,SGPhone
DS-6
Fitment
宿舍物品配备信息
FitName,FitPrice,FitNum
DS-7
FitmentDestruction
宿舍物品损坏信息
FDFitment,FDStudent,FDRoom,FDFitNum
DS-8
FitmentCompensate
宿舍损坏物品赔偿信息
FCompFit,FCompStu,FCompPrin,
FCompDate,FCompNum
DS-9
Accident
宿舍事故注册信息
AcNo,AcType, AcStu,AcDate,
AcArtical,AcVerify,AcPrin,
AcArNum,AcStuPh
DS-10
AccidentResearch
宿舍事故调查信息
ARNo,ARName,ARPrin,ARResult
DS-11
AccidentCompensate
事故损失物品赔偿信息
ACStu,ACArtical,ACDate,ACPrin
DS-12
ArticalInOut
宿舍楼物品出入信息
AIOStu,AIOArtical,AIOPrin,AIODate,AIONo
2 概念结构设计
2.1绘制局部ER图
学生宿舍入住分ER图:
宿舍物品管理分ER图1:
宿舍物品管理分ER图2:
出入物品管理分ER图:
事故管理分ER图:
各分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);
宿舍物品处理:包含物品损坏和物品赔偿两个数据结构(将在逻辑设计阶段给出);
事故:包含宿舍事故注册、宿舍事故调查、事故损失物品赔偿三个数据结构(具体的结构将在系统逻辑设计阶段给出)。
2.2 ER图合并
3 逻辑结构设计
3.1将E-R图转换为关系模型
基本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关系模式优化
关系模式Worker,Dormitory,Fitment,SafeGuard,ArticalInOut,FitmentDestruction,FitmentCompensate,Accident,AccidentResearch,AccidentCompensate不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF,但是宿舍关系模式(Room)中存在着一些不应该有的数据冗余,现将模型优化为:
Room(RNo,RHeader,RGrade,RDepart,RPerfect,DorNo,DorCampus,DorLocation);虽然Room中还存在一些数据冗余,但可以提高查询效率。
3.3 数据库模式设计
DBMS选择的SQL SERVER 2005,根据该系统特点设计数据库的模式如下。
1.楼道工人(Worker)基本信息表,用于记录楼道工人的基本信息:
属性名
数据类型
取值范围
是否是主属性或外键
完整性
WorNo
char(5)
00000~99999
是
Not null
WorName
char(10)
否
Not null
WorType
char(8)
否
Not null
WorWage
Int
大于500(元/月)
否
Not null
WorSex
char(2)
男、女
否
Not null
WorPhNo
char(12)
否
Null
WorTime
char(30)
否
Null
DorNo
smallint
00~99
是
Not null
DorCampus
char(4)
四面八方其中之一
是
Not null
DorLocation
char(4)
四面八方其中之一
是
Not null
2.宿舍楼(Dormitory)基本信息表,用于记录宿舍楼的基本信息:
属性名
数据类型
取值范围
是否是主属性或外键
完整性
DorNo
smallint
00~99
是
Not null
DorCampus
char(4)
四面八方其中之一
是
Not null
DorLocation
char(4)
四面八方其中之一
是
Not null
DorPhNo
char(12)
否
Null
DorAdminist
char(10)
否
Null
3.宿舍(Room)基本信息表,用于记录宿舍的基本信息:
属性名
数据类型
取值范围
是否是主属性或外键
完整性
RNo
char(6)
01-001~99-999
是
Not null
RHeader
char(10)
否
Null
RGrade
char(4)
否
Not null
RDepart
char(20)
否
Not null
RPerfect
char(20)
否
Not null
DorNo
smallint
00~99
是
Not null
DorCampus
char(4)
四面八方其中之一
是
Not null
DorLocation
char(4)
四面八方其中之一
是
Not null
4.宿舍楼配备物品(Fitment)基本信息表,用于记录宿舍楼配备物品的基本信息:
属性名
数据类型
取值范围
是否是主属性或外键
完整性
FitName
char(16)
是
Not null
FitPrice
float
大于0
否
Not null
FitNum
Int
大于0
否
Not null
DorNo
smallint
00~99
是
Not null
DorCampus
char(4)
四面八方其中之一
是
Not null
DorLocation
char(4)
四面八方其中之一
是
Not null
5.宿舍学生(Student)基本信息表,用于记录宿舍学生的基本信息:
属性名
数据类型
取值范围
是否是主属性或外键
完整性
StuNo
char(9)
00000000~999999999
是
Not null
DepName
char(20)
否
Not null
StuName
char(10)
否
Not null
StuSex
char(2)
男、女
否
Not null
StuHome
char(10)
否
Not null
StuBorth
datetime
否
Not null
StuETime
datetime
否
Not null
StuPerfect
char(20)
否
Not null
StuClass
int
大于0小于10
否
Not null
RNo
char(6)
01-001~99-999
是
Not null
DorNo
smallint
00~99
是
Not null
DorCampus
char(4)
四面八方其中之一
是
Not null
DorLocation
char(4)
四面八方其中之一
是
Not null
6.宿舍保卫处(SafeGuard)基本信息表,用于记录保卫处的基本信息:
属性名
数据类型
取值范围
是否是主属性或外键
完整性
SGName
char(15)
是
Not null
SGWorNum
int
大于0
否
Not null
SGHeader
char(10)
否
Not null
SGPhone
char(12)
否
Null
7.宿舍楼物品出入(ArticalInOut)基本信息表,用于记录物品出入的基本信息:
属性名
数据类型
取值范围
是否是主属性或外键
完整性
StuNo
char(9)
00000000~999999999
是
Not null
AIOArtical
char(16)
否
Null
AIOPrin
char(9)
否
Not null
AIODate
datetime
是
Not null
AIONo
Int
大于0
是
Not null
DorNo
smallint
00~99
是
Not null
DorCampus
char(4)
四面八方其中之一
是
Not null
DorLocation
char(4)
四面八方其中之一
是
Not null
8.宿舍配备物品损坏(FitmentDestruction)基本信息表,用于记录物品损坏的基本信息:
属性名
数据类型
取值范围
是否是主属性或外键
完整性
FitName
char(16)
是
Not null
StuNo
char(9)
00000000~999999999
是
Not null
RNo
char(6)
01-001~99-999
是
Not null
FDFitNum
Int
大于等于0
否
Not null
DorNo
smallint
00~99
是
Not null
DorCampus
char(4)
四面八方其中之一
是
Not null
DorLocation
char(4)
四面八方其中之一
是
Not null
9.宿舍配备物品损坏赔偿(FitmentCompensate)基本信息表,记录损坏物品赔偿的基本信息:
属性名
数据类型
取值范围
是否是主属性或外键
完整性
FitName
char(16)
是
Not null
StuNo
char(9)
00000000~999999999
是
Not null
FCPrin
char(10)
是
Not null
FCompDate
datetime
否
Not null
FCompNum
int
大于等于0
否
Not null
10.宿舍事故注册(Accident)基本信息表,用于记录宿舍事故注册的基本信息:
属性名
数据类型
取值范围
是否是主属性或外键
完整性
AcNo
int
0000~9999
是
Not null
AcType
char(10)
否
Not null
StuNo
char(30)
00000000~999999999
是
Not null
AcDate
datetime
是
Not null
AcArtical
char(30)
否
Not null
AcVerify
bool
否
Null
SGName
char(15)
是
Null
AcArNum
int
大于等于0
否
Not null
AcStuPh
char(12)
否
Null
11.宿舍事故调查(AccidentResearch)基本信息表,用于记录宿舍事故调查的基本信息:
属性名
数据类型
取值范围
是否是主属性或外键
完整性
AcNo
int
0000~9999
是
Not null
ARName
char(15)
是
Not null
SGName
char(15)
是
Not null
ARResult
bool
否
Not null
12.宿舍事故赔偿(AccidentCompensate)基本信息表,用于记录宿舍事故赔偿的基本信息:
属性名
数据类型
取值范围
是否是主属性或外键
完整性
AcNo
int
0000~9999
是
Not null
ACStu
char(10)
00000000~999999999
是
Not null
AcArtical
char(30)
否
Not null
ACDate
datetime
否
Not null
SGName
char(15)
是
Not null
3.4 用户子模式设计
编号
用户子模式(View)
作用(共性:提供数据保密和安全保护机制)
V-1
WorView
便于查询和修改楼道工人的基本信息
V-2
DormView
方便宿舍楼的基本信息的查询、更新
V-3
RoomView
以便于宿舍的基本信息的查询和更新
V-4
FitView
用于宿舍楼配备物品的基本信息的查询
V-5
StuView
便于查询和更改学生的基本信息
V-6
SGView
方便学生查询宿舍保卫处的基本信息
V-7
ArIOView
以便于物品出入的管理和信息的查询、更改
V-8
FDView
便于宿舍物品损坏的的登记及处理和信息的查询
V-9
FCView
查询损坏物品赔偿的基本信息,便于宿舍物品的管理
V-10
AccView
方便学生事故的注册及保卫人员对事故注册的查询
V-11
ARView
便于学生查询宿舍事故调查的基本信息
V-12
ACView
方便宿舍事故赔偿的信息查询和更新
View的具体结构略。
4 物理结构设计
4.1 存储结构
由于系统数据不多,所以只在两个盘驱分别建立一个主数据文件和一个日志文件就可以了。
4.2 索引
为数据库中各基本表建立的索引如下:
由于基本表Room,Student的主码RNo,StuNo经常在查询条件和连接操作的连接条件中出现,且它们的值唯一,考虑在两个属性上建立唯一性索引;
Dormitory的主码DorNo,DorCampus,DorLocation经常在查询条件中出现,且它们的组合值唯一,考虑在它们之上建立组合索引;
基本表Student的属性StuName,经常在查询条件中出现,且经常出现在相等的比较条件中,考虑在其之上建立聚簇索引;
基本表Fitment、SafeGuard的属性值几乎不会有什么变化,更新率很低,可考虑适当建立索引;
基本表Worker,ArticalInOut,FitmentDestruction,FitmentCompensate,Accident,AccidentResearch,AccidentCompensate的属性值经常发生变化,权衡系统为维护索引付出的代价,可考虑不建立索引,也可以适当建立索引。
5 实施
5.1 建立数据库
create database Student_Dormitory_Management;
5.2建立数据表
(1)楼道工人基本信息表的建立:
create table Worker(
WorNo char(5) not null unique,
WorName char(10) not null,
WorType char(8) not null,
WorWage int not null,
WorSex char(2) not null,
WorPhNo char(12) null,
WorTime char(30) null,
DorNo smallint not null,
DorCampus char(4) not null,
DorLocation char(4) not null,
primary key(WorNo),
foreign key(DorNo, DorCampus, DorLocation) references Dormitory(DorNo,DorCampus,DorLocation),
check(WorWage >= 0),
check(WorSex = ‘男’ or WorSex = ‘女’));
(2)宿舍楼基本信息表的建立:
create table Dormitory(
DorNo smallint not null,
DorCampus char(4) not null,
DorLocation char(4) not null,
DorPhNo char(12) null,
DorAdminist char(10) null,
primary key(DorNo,DorCampus,DorLocation),
check(DorNo>0 and DorNo<100));
(3)宿舍基本信息表的建立:
create table Room(
RNo char(6) not null unique,
RHeader char(10) null,
RGrade char(4) not null,
RDepart char(20) not null,
RPerfect char(20) not null,
DorNo smallint not null,
DorCampus char(4) not null,
DorLocation char(4) not null,
primary key(RNo),
foreign key(DorNo, DorCampus, DorLocation) references
Dormitory(DorNo,DorCampus,DorLocation));
(4)宿舍楼配备物品基本信息表的建立:
create table Fitment(
FitName char(16) not null unique,
FitPrice float not null,
FitNum int not null,
DorNo smallint not null,
DorCampus char(4) not null,
DorLocation char(4) not null,
primary key(FitName),
foreign key(DorNo, DorCampus, DorLocation) references
Dormitory(DorNo,DorCampus,DorLocation));
(5)宿舍学生基本信息表的建立:
create table Student(
StuNo char(9) not null unique,
DepName char(20) not null,
StuName char(10) not null,
StuSex char(2) not null,
StuHome char(10) not null,
StuBorth Datetime not null,
StuETime Datetime not null,
StuPerfect char(20) not null,
StuClass int not null,
RNo char(6) not null,
DorNo smallint not null,
DorCampus char(4) not null,
DorLocation char(4) not null,
primary key(StuNo),
foreign key(RNo) references Room(RNo),
foreign key(DorNo, DorCampus, DorLocation) references
Dormitory(DorNo,DorCampus,DorLocation),
check(StuClass>0 and StuClass<=10));
(6)宿舍保卫处基本信息表的建立:
create table SafeGuard(
SGName char(15) not null unique,
SGWorNum int not null,
SGHeader char(10) not null,
SGPhone char(12) null,
primary key(SGName),
check(SGWorNum > 0));
(7)宿舍楼物品出入基本信息表的建立:
create table ArticalInOut(
StuNo char(9) not null,
AIOArtical char(16) null,
AIOPrin char(9) not null,
AIODate datetime not null,
AIONo int not null unique,
DorNo smallint not null,
DorCampus char(4) not null,
DorLocation char(4) not null,
primary key(AIONo,AIODate),
foreign key(StuNo) references Student(StuNo),
foreign key(AIOPrin) references Worker(WorNo),
foreign key(DorNo, DorCampus, DorLocation) references
Dormitory(DorNo,DorCampus,DorLocation),
check(AIONo > 0));
(8)宿舍配备物品损坏基本信息表的建立:
create table FitmentDestruction(
FitName char(16) not null unique,
StuNo char(9) not null,
RNo char(6) not null,
FDFitNum int not null,
DorNo smallint not null,
DorCampus char(4) not null,
DorLocation char(4) not null,
foreign key(DorNo, DorCampus, DorLocation) references
Dormitory(DorNo,DorCampus,DorLocation),
foreign key(FitName) references Fitment(FitName),
foreign key(StuNo) references Student(StuNo),
foreign key(RNo) references Room(RNo),
check(FDFitNum >= 0));
(9)宿舍损坏配备物品赔偿基本信息表的建立:
create table FitmentCompensate(
FitName char(16) not null,
StuNo char(9) not null,
FCPrin char(15) not null,
FCompDate Datetime not null,
FCompNum int not null,
foreign key(FitName) references Fitment(FitName),
foreign key(StuNo) references Student(StuNo),
foreign key(FCPrin) references SafeGuard(SGName),
check(FCompNum >= 0));
(10)宿舍事故注册基本信息表的建立:
create table Accident(
AcNo int not null unique,
AcType char(10) not null,
StuNo char(9) not null,
AcDate datetime not null,
AcArtical char(30) not null,
AcVerify bool null,
SGName char(15) not null,
AcArNum int not null,
AcStuPh char(12) not null,
primary key(AcNo,AcDate),
foreign key(StuNo) references Student(StuNo),
foreign key(SGName) references SafeGuard(SGName),
check(AcArNum > 0),);
(11)宿舍事故调查基本信息表的建立:
create table AccidentResearch(
AcNo int not null,
ARName char(15) not null,
SGName char(15) not null,
ARResult bool not null,
primary key(SGName),
foreign key(AcNo) references Accident(AcNo),
foreign key(SGName) references SafeGuard(SGName),);
(12)宿舍事故赔偿基本信息表的建立:
create table AccidentCopensate(
AcNo int not null,
ACStu char(9) not null,
AcArtical char(30) not null,
AcDate Datetime not null,
SGName char(15) not null,
foreign key(AcNo) references Accident(AcNo),
foreign key(ACStu) references Student(StuNo),
foreign key(SGName) references SafeGuard(SGName));
5.3建立视图
(1)用于查询和更新楼道工人基本信息的视图定义如下:
create view WorView(编号,姓名,工作类型,工资,性别,联系方式,
工作时间,宿舍楼编号,校区,区位)
as
select *
from Worker
with check option;
(2)方便于宿舍楼基本信息查询、更新的视图定义如下:
create view DormView (宿舍楼编号,校区,区位,楼管处电话,楼管)
as
select *
from dormitory
with check option;
(3)显示宿舍基本信息的视图定义如下:
create view RoomView (宿舍编号,舍长,年级,学院,专业,宿舍楼编号,
校区,区位)
as
select *
from Room
with check option;
(4)可用于宿舍楼配备物品基本信息查询、更新的视图定义如下:
create view FitView (物品名,价格,数量,宿舍楼编号, 校区,区位)
as
select *
from Fitment
with check option;
(5)用于查询和更新学生基本信息的视图定义如下:
create view StuView (学号,学院,姓名,性别,祖籍,出生日期,入学时间,
专业,班级,宿舍编号, 宿舍楼编号,校区,区位)
as
select *
from Student
with check option;
(6)显示宿舍保卫处基本信息的视图定义如下:
create view SGView (名称,人员数目,负责人,电话)
as
select *
from SafeGuard
with check option;
(7)以便于物品出入管理和出入物品信息查询、更新的视图定义如下:
create view ArIOView (学号,出入物品,负责人,日期,序号,宿舍楼编号,
校区,区位)
as
select *
from ArticalInOut
with check option;
(8)便于宿舍配备物品损坏登记及损坏宿舍物品查询的视图定义如下:
create view FDView (物品名,学号,宿舍号,损坏数量,宿舍楼编号,校区,
区位)
as
select *
from FitmentDestruction
with check option;
(9)用于查询损坏物品赔偿基本信息 ,便于宿舍物品管理的视图定义如下:
create view FCView (物品名,学号,负责人,日期,赔偿数量)
as
select *
from FitmentCompensate
with check option;
(10)方便学生事故的注册及保卫人员对事故注册查询的视图定义如下:
create view AccView (编号,事故类型,学号,日期,损失物品,属实,
负责单位,损失数量,学生联系方式)
as
select *
from Accident
with check option;
(11)便于宿舍以外事故调查的视图定义如下:
create view ARView (编号,调查名称,负责单位,调查结果)
as
select *
from AccidentResearch
with check option;
(12)方便宿舍事故赔偿信息查询和更改的视图定义如下:
create view ACView (编号,学号,赔偿物品,日期,负责单位)
as
select *
from AccidentCompensate
with check option;
5.4建立索引
create unique index StudentNo on Student(StuNo);
create unique index RoomNo on Room(RNo);
create unique index DormitoryNo_Campus_Location on Dormitory(DorNo desc,
DorCampus,DorLocation);
create cluster index StudentName on Student(StuName);
create unique index FitmentName on Fitment(FitName);
create unique index SafeGuardName on SafeGuard(SGName);