T-9 FitmentCompensate(详见附录1-9) (详见附录1-9)
T-10 Accident(详见附录1-10) (详见附录1-10)
T-11 AccidentResearch(详见附录1-11) (详见附录1-11)
T-12 AccidentCompensate(详见附录1-12) (详见附录1-12)
3.2.4用户子模式设计
表2.2 用户子模式设计(View)列表
编号 用户子模式(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 方便宿舍事故赔偿的信息查询和更新
3.3数据处理
系统功能模块图:
4.物理设计阶段
4.1物理设计阶段的目标与任务
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
4.2数据存储方面
为数据库中各基本表建立的索引如下:
1. 由于基本表Room,Student的主码RNo,StuNo经常在查询条件和连接操作的连接条件中出现,且它们的值唯一,考虑在两个属性上建立唯一性索引;
2. Dormitory的主码DorNo,DorCampus,DorLocation经常在查询条件中出现,且它们的组合值唯一,考虑在它们之上建立组合索引;
3. 基本表Student的一属性StuName,经常在查询条件中出现,且经常出现在相等的比较条件中,考虑在其之上建立聚簇索引;
4. 基本表Fitment、SafeGuard的属性值几乎不会有什么变化,更新率很低,可考虑适当建立索引;
5. 基本表Worker,ArticalInOut,FitmentDestruction,FitmentCompensate,Accident,AccidentResearch,AccidentCompensate的属性值经常发生变化,权衡系统为维护索引付出的代价,可考虑不建立索引,也可以适当建立索引。
4.3系统功能模块
4.3.1 楼道工人基本的信息查询和更新模块
将实现对楼道工人基本信息的查询和更新(修改、插入、删除)操作,方便于楼道工人的任用和更换,具体的功能模块图如下:
图4.2 楼道工人基本信息的查询、更新功能模块图
(注: 表示系统给用户的信息,以下与此相同)
4.3.2 宿舍楼基本信息的查询和更新模块
将完成对宿舍楼基本信息的查询、更新(修改、插入、删除)操作,便于宿舍的集中管理,具体的功能模块图如下所示:
图4.3 宿舍楼基本信息的查询、更新功能模块图
4.3.3 宿舍基本信息的查询和更新模块
将达到对宿舍基本信息的查询、更新(修改、插入、删除)操作的目的,具体的功能模块图如下所示:
图4.4 宿舍基本信息的查询、更新功能模块图
4.3.4 学生基本信息的查询和更新模块
将完成对学生基本信息的查询和插入、删除、修改等更新操作,具体的功能模块如下所示:
图4.5 宿舍学生基本信息的查询、更新功能模块图
4.3.5 宿舍物品的查询和更新模块
将实现对宿舍物品基本信息的查询、插入、删除、修改等操作,以方便于宿舍物品的配备,具体的功能模块图如下:
图4.6 宿舍物品基本信息的查询、更新功能模块图
4.3.6 宿舍事故的查询和更新模块
将实现对宿舍事故的插入和更新操作,方便宿舍事故的快速处理,及时了解事故处理的结果,具体的功能模块图如下:
图4.7 宿舍事故基本信息的查询、更新功能模块图
4.3.7 宿舍物品处理的查询和更新模块
将完成对宿舍物品处理基本信息的查询、插入、删除、修改等操作,方便于宿舍物品的处理,具体的功能模块图如下所示:
图4.8 宿舍物品处理基本信息的查询、更新功能模块图
4.3.8 宿舍保卫处基本信息的查询和更新模块
将实现对宿舍保卫处基本信息的查询和更新(包括更改、插入、删除)操作,方便于宿舍意外事故的处理,具体的功能模块图如下:
图4.9 宿舍楼保卫处基本信息的查询、更新功能模块图
5.数据库实施阶段
5.1建立数据库、数据表、视图、索引
5.1.1 建立数据库
create database Student_Dormitory_Management;
5.1.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), |