学生宿舍管理系统数据库设计文档.docx

上传人:b****2 文档编号:3136912 上传时间:2023-05-05 格式:DOCX 页数:13 大小:85.15KB
下载 相关 举报
学生宿舍管理系统数据库设计文档.docx_第1页
第1页 / 共13页
学生宿舍管理系统数据库设计文档.docx_第2页
第2页 / 共13页
学生宿舍管理系统数据库设计文档.docx_第3页
第3页 / 共13页
学生宿舍管理系统数据库设计文档.docx_第4页
第4页 / 共13页
学生宿舍管理系统数据库设计文档.docx_第5页
第5页 / 共13页
学生宿舍管理系统数据库设计文档.docx_第6页
第6页 / 共13页
学生宿舍管理系统数据库设计文档.docx_第7页
第7页 / 共13页
学生宿舍管理系统数据库设计文档.docx_第8页
第8页 / 共13页
学生宿舍管理系统数据库设计文档.docx_第9页
第9页 / 共13页
学生宿舍管理系统数据库设计文档.docx_第10页
第10页 / 共13页
学生宿舍管理系统数据库设计文档.docx_第11页
第11页 / 共13页
学生宿舍管理系统数据库设计文档.docx_第12页
第12页 / 共13页
学生宿舍管理系统数据库设计文档.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学生宿舍管理系统数据库设计文档.docx

《学生宿舍管理系统数据库设计文档.docx》由会员分享,可在线阅读,更多相关《学生宿舍管理系统数据库设计文档.docx(13页珍藏版)》请在冰点文库上搜索。

学生宿舍管理系统数据库设计文档.docx

学生宿舍管理系统数据库设计文档

 

学生宿舍管理系统的设计与实现

数据库设计说明书

版本:

1.0

 

文档信息及版本历史

文档信息

项目名称

学生宿舍管理系统的设计与实现

文档名称

学生宿舍管理系统数据库设计说明书

存储位置

版本

作者/修改者

日期

描述

 

目录

1引言2

1.1编写目的2

1.2数据库命名约定3

1.3参考资料3

2数据库环境说明3

3数据库的命名规则4

4概要设计4

5逻辑设计6

6物理设计7

6.1确定关系模型的存取方法7

6.2确定数据库的存储结构7

7存储过程、函数及触发器的设计7

8安全性设计8

8.1用户帐号密码的加密方法8

8.2角色与权限8

9数据库实施8

1引言

1.1编写目的

本文档是学生宿舍管理系统概要设计文档的组成部分,编写数据库设计文档的目的是:

明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发,本文档遵循《MySQL数据库设计和开发规范》。

本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。

术语表

定义系统或产品中涉及的重要术语,为读者在阅读文档时提供必要的参考信息。

序号

术语或缩略语

说明性定义

1

J2EE

Java2Platform,EnterpriseEdition(Java2平台企业版)的缩写

2

HTTP

HypertextTransferProtocol超文本传输协议

3

BPM

BackPeriodManage(后期管理)的缩写

4

LM

LoginManage(登录管理)的缩写

1.2数据库命名约定

前缀

说明

PK

表示主键

UK

表示唯一键

FK

表示外键

UI

表示唯一索引

NUI

表示非唯一索引

1.3参考资料

资料名称

作者

文件编号、版本

资料存放地点

《MYSQL程序设计》

吴玲林

《JSP程序设计》

金静梅

《JavaWeb开发实战经典》

李兴华

2数据库环境说明

数据库实例

数据库管理系统

数据库部署环境

数据库设计工具

数据库存放位置

说明

实例名,文件名

MySql,版本:

4.0

软硬件、网络环境

pb,visio,rose

"D:

\MySQL"

实例用途说明

3数据库的命名规则

本数据库设计完全按照《MySQL数据库设计规范》命名。

4概要设计

数据库设计人员根据根据需求分析文档,抽象出系统实体及实体之间的联系,画出实体属性图及实体联系图(E_R图)

实体属性图:

图4-1系统管理员实体及其属性图

图4-2楼宇管理员实体及其属性图

 

图4-3学生实体及其属性图

图4-4楼宇实体及其属性图

楼宇E-R图

宿舍E-R图:

 

总体E-R图

 

5逻辑设计

学生、宿管、管理员关系表:

属性名

储存代码

类型

长度

备注

是否为主键

学号

Sno

char

20

住宿学生的学号

primarykey

姓名

Sname

Char

20

住宿学生的姓名

性别

Ssex

Char

4

年龄

Sage

int

10

学生年龄

专业

Sdept

Char

40

所在专业

宿舍楼

Dbuilding

Char

10

所在宿舍楼

宿舍

属性名

储存代码

类型

长度

备注

是否为主键

宿舍楼

Dbuilding

Char

10

所在宿舍楼

宿舍号

Dno

Char

10

所在宿舍

primarykey

电话

Dphone

Char

20

宿舍号码

用户

属性名

储存代码

类型

长度

备注

是否为主键

用户ID

Usname

Char

20

primarykey

用户密码

Upassword

cha

20

用户类型

Utype

Tnyint

1

普通或系统管理员

视图:

学生信息视图(学号,姓名,性别,专业,宿舍楼,宿舍号,宿舍电话)

宿管信息视图(证件号,姓名,性别,电话,)

管理员信息视图(证件号,姓名,性别,电话,发布信息)

 

6物理设计

6.1确定关系模型的存取方法

确定数据库物理结构主要指确定数据的存放位置和存储结构,包括:

确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置等。

(1)确定数据的存放位置

为了提高系统性能,我们根据应用情况将数据的易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放。

即把宿舍表、楼宇表、楼宇管理员表作为数据稳定和存取频率较低部分;而把学生表作为数据易变和经常存取部分,分开存放。

(2)确定系统配置

在进行物理设计时,根据应用环境,将数据库的大小的参数值设置为:

事务日志的分配空间为2.00MB,文件按10百分比自动增长,并将文件增长限制为20.00MB;数据文件的分配空间为2.00MB,文件按10百分比自动增长,并将文件增长限制为20.00MB。

确定数据库的存储结构

1、为了提高系统性能,根据具体情况将数据的易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放。

2、DBMS产品一般都提供了一些系统配置变量、存储分配参数,根据应用环境确定这些参数值,并且在系统运行时还要根据系统实际运行情况进行调整,以使系统性能最佳。

7存储过程、函数及触发器的设计

存储过程:

根据具体的业务逻辑确定输入参数个数,类型,确定对哪几个表进行何种作。

在定义存储过程时,要使用其完成单一、相对集中的任务,不要定义已由其它定义提供功能的过程。

存储过程:

1.在mysql客户端使用用户变量

mysql>SELECT'HelloWorld'into@x;

mysql>SELECT@x;

mysql>SET@y='GoodbyeCruelWorld';

mysql>select@y;

mysql>SET@z=1+2+3;

mysql>select@z;

2.在存储过程中使用用户变量

mysql>CREATEPROCEDUREGreetWorld()SELECTCONCAT(@greeting,'World');

mysql>SET@greeting='Hello';

mysql>CALLGreetWorld();

3.在存储过程间传递全局范围的用户变量

mysql>CREATEPROCEDUREp1()  SET@last_procedure='p1';

mysql>CREATEPROCEDUREp2()SELECTCONCAT('Lastprocedurewas',@last_procedure);

mysql>CALLp1();

mysql>CALLp2();

触发器:

对于复杂业务规则使用触发器,简单的完整性规则通过约束实现。

8安全性设计

根据系统需要设计相关用户和角色,并赋予相关操作权限。

8.1用户帐号密码的加密方法

用户帐号采用MD5进行数据加密后再录入数据库,以防止任何地方密码的安全性要求。

8.2角色与权限

角色

可以访问的表与列

操作权限

系统管理员

可访问所有表

完全控制权限

楼宇管理员

可访问楼宇表

部分权限

学生信息表

部分权限

缺勤表

部分权限

学生

缺勤表

部分权限

9数据库实施

此阶段主要任务包括创建数据库,加载初始数据.

创建数据

USE[master]

GO

IFEXISTS(SELECT1FROMsysdatabasesWHERENAME=N'HkTemp')

BEGIN

DROPDATABASEHkTemp--如果数据库存在先删掉数据库

END

GO

CREATEDATABASEHkTemp

ON

PRIMARY--创建主数据库文件

NAME='HkTemp',

FILENAME='E:

\Databases\HkTemp.dbf',

SIZE=5MB,

MaxSize=20MB,

FileGrowth=1MB

LOGON--创建日志文件

NAME='HkTempLog',

FileName='E:

\Databases\HkTemp.ldf',

Size=2MB,

MaxSize=20MB,

FileGrowth=1MB

GO

创建表脚本

CREATEDATABASESM_USER_NAME_TOBEREPLACE_sysGOuseSM_USER_NAME_TOBEREPLACE_sysifexists(select*fromsysobjectswhereid=object_id(N'[dbo].[Group_permission]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[dbo].[Group_permission]GOCREATETABLE[dbo].[Group_permission]([seed_key_id][int]IDENTITY(1,1)NOTNULL,[group_id][varchar](50)NOTNULL,[pmt_key_id][varchar](50)NOTNULL,[origin_key_id][varchar](50)NULL)ON[PRIMARY]GO

创建视图脚本

CREATE[ORREPLACE][ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]VIEWview_name[(column_list)]ASselect_statement[WITH[CASCADED|LOCAL]CHECKOPTION]

存储过程:

1.在mysql客户端使用用户变量

mysql>SELECT'HelloWorld'into@x;

mysql>SELECT@x;

mysql>SET@y='GoodbyeCruelWorld';

mysql>select@y;

mysql>SET@z=1+2+3;

mysql>select@z;

2.在存储过程中使用用户变量

mysql>CREATEPROCEDUREGreetWorld()SELECTCONCAT(@greeting,'World');

mysql>SET@greeting='Hello';

mysql>CALLGreetWorld();

3.在存储过程间传递全局范围的用户变量

mysql>CREATEPROCEDUREp1()  SET@last_procedure='p1';

mysql>CREATEPROCEDUREp2()SELECTCONCAT('Lastprocedurewas',@last_procedure);

mysql>CALLp1();

mysql>CALLp2();

触发器:

在表添加一个记录的时候触发使另一个表也添加一条记录

mysql>delimiter//

->createtriggersitedata_ins2

->beforeinsertonuser

->foreachrow

->Begin

->Ifnotexists(select1fromuser_datawhered_id=new.id)then

->insertintouser_data(d_id,d_name)values(new.id,new.name);

->ENDIF;

->end;//

->delimiter;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 制度规范

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2