数据库课程设计——学生宿舍信息管理系统
数据库课程设计——学生宿舍信息管理系统
目录
1.设计目的... 2
2、任务与要求... 2
3、学生宿舍管理系统课程设计... 2
3.1 引言... 2
3.2需求分析... 2
3.2.1. 2
3.2.2. 3
3.3概念设计... 6
3.4逻辑设计... 10
3.5物理结构设计... 12
3.6数据库实施... 14
3.6.1数据库表的定义... 14
3.6.2视图的定义:... 15
3.6.3索引:... 16
3.6.4触发器的定义:... 17
3.6.5用户的定义:... 18
3.6.6 对数据的管理:... 18
3.7系统调试和测试... 19
4.系统评价... 20
4.1我的系统特色:... 20
4.2 系统不足及改进... 21
5.设计心得... 21
1.设计目的
《数据库系统原理》课程设计是软件工程和计算机科学与技术专业集中实践性环节之一,旨在让我们自身加深对数据库基础理论和基本知识的理解,掌握设计数据库管理系统的基本方法,锻炼运用知识解决实际问题的动手能力。
2、任务与要求
3、学生宿舍管理系统课程设计
3.1 引言
3.2需求分析
性能要求:最好能够实现并发访问,允许多个用户同时对数据库中的数据进行访问。
数据库要求:各种各样的故障都可能发生,出现意外时,,尽可能的确保任何数据在任何情况下都不会丢失。
3.2.2
编号 |
属性名 |
类型 |
解释 |
备注 |
0001 |
学号 |
Varchar(15) |
无 |
无 |
0002 |
姓名 |
Varchar(10) |
无 |
无 |
0003 |
性别 |
Varchar(2) |
无 |
男、女 |
0004 |
年龄 |
Int |
无 |
0……100之间 |
0005 |
手机号 |
Varchar(15) |
手机号码 |
无 |
0006 |
专业 |
Varchar(20) |
无 |
无 |
编号 |
属性名 |
类型 |
解释 |
备注 |
0008 |
表单编号 |
Varchar(15) |
无 |
无 |
0009 |
学号 |
Varchar(15) |
无 |
无 |
0010 |
宿舍号 |
Varchar(6) |
不是门牌号 |
无 |
0011 |
水费 |
Double(6) |
无 |
大于0 |
0012 |
电费 |
Double(6) |
无 |
大于0 |
0013 |
维修费 |
Double(6) |
无 |
大于0 |
0014 |
住宿费 |
Double(6) |
无 |
大于0 |
0015 |
日期 |
Date(8) |
无 |
无 |
0016 |
合计 |
Double(6) |
无 |
大于0 |
编号 |
属性名 |
类型 |
解释 |
备注 |
0017 |
员工号 |
Varchar(15) |
无 |
无 |
0018 |
宿舍号 |
Varchar(15) |
无 |
无 |
0019 |
桌子 |
Int |
无 |
大于0 |
0020 |
椅子 |
Int |
无 |
大于0 |
0021 |
床 |
Int |
无 |
大于0 |
0022 |
电扇 |
Int |
无 |
大于0 |
0023 |
灯 |
Int |
无 |
大于0 |
0024 |
窗户 |
Int |
无 |
大于0 |
编号 |
属性名 |
类型 |
解释 |
备注 |
0025 |
宿舍编号 |
Varchar(15) |
无 |
无 |
0026 |
楼号 |
Varchar(15) |
无 |
无 |
0027 |
区域 |
Varchar(15) |
校园内 |
ABCDEFG |
0028 |
人数 |
Int |
无 |
0……8 |
0029 |
房间类型 |
Varchar(15) |
按人数分 |
1(四人)2(六人)3(八人) |
编号 |
属性名 |
类型 |
解释 |
备注 |
0030 |
员工号 |
Varchar(15) |
无 |
无 |
0031 |
姓名 |
Varchar(10) |
无 |
无 |
0032 |
性别 |
Varchar(2) |
无 |
男,女 |
0033 |
年龄 |
Int |
无 |
0……100 |
0034 |
手机号 |
Varchar(15) |
无 |
11位 |
0035 |
楼号 |
int |
无 |
无 |
0036 |
区域 |
int |
无 |
ABCDEFG |
0037 |
职位 |
Varchar(2) |
无 |
1(高级员工)2(普通员工) |
在这幅图中,其中各项从左往右前5部分功能都包括各自信息的增删改查,第六项功能为学生和教师信息的备份,也就是已修改信息储存。
3.3概念设计
(说明使用数据库概念设计的基本思想和原理方法,设计出系统E-R图)
3.4逻辑设计
学生的个人信息:学号,姓名,性别,年龄,手机号码,专业,管理员号
student(stu_num,stu_name,stu_gender,stu_age,stu_tele,stu_spe,manager_num)
宿舍费用信息:表单编号,水费,电费,维修费,住宿费,总费用,日期
live(list_num,stu_num,dor_num,water,electric,service,lodge,total,date)
tool(mana_num,dor_num,table,chair,bed,light)
dormitory(dor_num ,prople_total,size, build_num,zone)
manager(mana_num,mana_name,mana_gender,mana_age,mana_tele)
3.5物理结构设计
属性名 |
类型 |
长度 |
备注 |
Stu_num |
varchar |
15 |
无 |
Stu_name |
varchar |
10 |
无 |
Stu_gender |
varchar |
2 |
男、女 |
Stu_age |
int |
4 |
0……100之间 |
Stu_tele |
varchar |
15 |
无 |
Stu_spe |
varchar |
20 |
无 |
属性名 |
类型 |
长度 |
备注 |
List_num |
Varchar |
15 |
无 |
Stu_num |
Varchar |
15 |
无 |
Dor_num |
Varchar |
15 |
无 |
water |
double |
6 |
大于0 |
Elect |
double |
6 |
大于0 |
Repaire |
double |
6 |
大于0 |
live |
double |
6 |
大于0 |
date |
date |
8 |
指的是具体一年 |
属性名 |
类型 |
长度 |
备注 |
Mana_num |
Varchar |
15 |
无 |
Dor_num |
Varchar |
15 |
无 |
Desk |
Int |
2 |
大于0 |
Chair |
Int |
2 |
大于0 |
Bed |
Int |
2 |
大于0 |
fan |
Int |
2 |
大于0 |
lighr |
Int |
2 |
大于0 |
window |
Int |
2 |
大于0 |
属性名 |
类型 |
长度 |
备注 |
Dor_num |
Varchar |
15 |
无 |
Build_num |
Varchar |
2 |
无 |
Zone |
Varchar |
2 |
ABCDEFG |
People_total |
Int |
2 |
0……8 |
size |
varchar |
2 |
1(四人)2(六人)3(八人) |
属性名 |
类型 |
长度 |
备注 |
Mana_num |
Varchar |
15 |
无 |
Mana_name |
Varchar |
10 |
无 |
Mana_gender |
Varchar |
2 |
男,女 |
Mana_age |
Int |
4 |
0……100 |
Mana_tele |
varchar |
15 |
11位 |
Build_num |
int |
2 |
无 |
zone |
varchar |
2 |
ABCDEFG |
3.6数据库实施
3.6.1数据库表的定义
Stu_gender varchar(2) check(stu_gender=’男’ or stu_gender=’女’),
Stu_age int check(stu_age>0 and stu_age<100),
Repair float check(repair>=0),
Living float check(living>=0),
Foreign key (stu_num ) references student(stu_num)
Foreign key (dor_num ) references dormitory(dor_num)
Foreign key (mana_num ) references manager(mana_num)
on update cascade on delete set null
People_total int check(people_total>=0 and people_total<=8),
Size int check(size=1 or size=2 or size=3)
mana_gender varchar(2) check(stu_gender='男' or stu_gender='女'),
mana_age int check(stu_age>0 and stu_age<100),
3.6.2视图的定义:
from student,lives,dormitory,tool,manager
where student.stu_num=lives.stu_num
and lives.dor_num=dormitory.dor_num
and dormitory.dor_num=tool.dor_num
and tool.mana_num= manager.mana_num ;
Select stu_num,stu_name,stu_gender,stu_age,stu_tele,stu_spe,mana_name
select manager.mana_num,mana_name,mana_age,mana_gender,mana_tele
select tool.dor_num,build_num,zone,people_total,size
where tool.dor_num=dormitory.dor_num and dor_statu=1;
select dor_num,mana_num, desk,chair,bed,light
select list_num,stu_name,dor_num,water,elect,date,repair,living
where live_statu=1 and lives.stu_num=student.stu_num;
3.6.3索引:
Create index stu_index on student(stu_num);
3.6.4触发器的定义:
在学生表上建立触发器,记录被修改的信息。在原表中通过一个状态属性标示是否被删除,因此数据并不会真正被删除,只需要记录被修改的信息。
declare @pre_stu_name varchar(10)
declare @pre_stu_gender varchar(2)
declare @pre_stu_tele varchar(15)
declare @pre_stu_spe varchar(20)
select @stu_num = stu_num from deleted
select @pre_stu_name =stu_name from deleted
select @pre_stu_gender =stu_gender from deleted
select @pre_stu_age = stu_age from deleted
select @pre_stu_tele =stu_tele from deleted
select @pre_stu_spe = stu_spe from deleted
insert into pre_stu(stu_num,pre_stu_name,pre_stu_gender,pre_stu_age,pre_stu_tele,pre_stu_spe )
values(@stu_num,@pre_stu_name,@pre_stu_gender,@pre_stu_age,@pre_stu_tele,@pre_stu_spe)
在管理员上建立触发器,记录被修改的信息。在原表中通过一个状态属性标示是否被删除,因此数据并不会真正被删除,只需要记录被修改的信息。
declare @pre_mana_name varchar(10)
declare @pre_mana_gender varchar(2)
declare @pre_mana_tele varchar(15)
select @mana_num = mana_num from deleted
select @pre_mana_name =mana_name from deleted
select @pre_mana_gender =mana_gender from deleted
select @pre_mana_age = mana_age from deleted
select @pre_mana_tele =mana_tele from deleted
3.6.5用户的定义:
create user dba for login dba with default_schema=dbo
exec sp_addrolemember 'db_owner' ,'dba'
3.6.6 对数据的管理:
student(stu_num,stu_name,stu_gender,stu_age,stu_tele,stu_spe,stu_statu)
values('201677H0555','刘飞达','男',19,14646646465,'软工',1);
删除:值得注意的是我删除信息用的是更新信息语句,只需要更改状态值即可标示数据是否被删除,数据不会真的被删除,做好了别分工作。
update student set stu_status=0 where stu_num=’201677H0522’;
update student set stu_name='刘豪' where stu_num='201677H0522';
查询:值得注意的是查询的条件是数据行的状态值是1,也就是被标示未被删除。
select stu_num,stu_name,stu_gender,stu_age,stu_tele,stu_spe from student where stu_statu=1;
分别查询每一个宿舍的总费用,并且按照宿舍号进行排序(使用的是分组求和的思想):
select dor_num , sum(w ater+elect + repair +living) from lives group by dor_num order by dor_num ;
在sql代码执行的过程中,会自动生成存储过程,将有价值的存储过程进行储存。
3.7系统调试和测试
把数据库总所有的信息联合起来,形成一张非常大的表,生成一个视图,测试之后,可以成功生成,满足要求。
create login dba with password='123456', default_database=stu_dor_manage;
create user dba for login dba with default_schema=dbo
exec sp_addrolemember 'db_owner' ,'dba'
4.系统评价
4.1我的系统特色:
A、数据结构化 ,数据之间具有联系,面向整个系统。
B、数据的共享性高,冗余度低,易扩充 。
C、数据独立性高 。
D、数据由DBMS统一管理和控制。
4.2 系统不足及改进
5.设计心得
接着,在添加数据的过程中,我忽略掉了数据的参照完整性,导致许多数据不能够正常加入。后来经过同学的提示,我将数据进行了统一分析,保持所有的数据一致,最后数据可以正常输入。
最后,每个表中的数据更改完成之后,更改后的数据会丢失找不到了。对于这个问题就解决办法为加入触发器,记录表中信息的修改前的值,成功解决问题。
数据库课程设计——学生宿舍信息管理系统相关推荐
- 数据库课程设计《教务信息管理系统》
(87条消息) 数据库系统课程设计<教务信息管理系统>python连接pymysql-MySQL代码类资源-CSDN文库 本文使用python和mysql创建一个基础中的基础的教务信息管理 ...
- 数据库课程设计:图书信息管理系统(Java+MySQL)(附程序)
期末数据库课程设计做了个图书信息管理系统,由于老师给的选题给得早,所以我在开学后的几周就开学搞了,删删改改整了好多,在此整理分享一下: 项目简介: 随着社会的发展,人们对知识的需求也在不断增长.书籍作 ...
- C++/数据库课程设计_诊所信息管理系统_系统介绍
系统介绍 本系统是一个诊所信息管理系统,可以作为C++或者数据库课程设计的参考,实现了患者挂号.支付.电子病历, 医生诊断.开处方.查看病历,医生.患者.药房.科室管理以及药品进销存. 针对用户的具体 ...
- oracle学生信息管理系统课程设计,数据库课程设计-学生信息管理系统的设计与实现.doc...
数据库课程设计-学生信息管理系统的设计与实现 2011-2012课程设计II 学生信息管理系统的设计与实现 一 设计内容 建立一个简单的在校学生信息查询系统,可以让使用者查询到学生的一些简单的个人信息 ...
- 查询学生选修课程管理系统java_JAVA数据库课程设计学生选课管理系统的
<JAVA数据库课程设计学生选课管理系统的>由会员分享,可在线阅读,更多相关<JAVA数据库课程设计学生选课管理系统的(59页珍藏版)>请在人人文库网上搜索. 1.一.课程设计 ...
- 数据库课程设计-----------学生选课管理系统的设计
由于时间关系,里面许多图片都已经变形或错位 课程设计(学年论文) 题目:学生选课管理系统的设计与实现 系 院计算机科学技术系 专 业计算机科学与技术 班 级 姓 名 学 ...
- 数据库应用设计学生宿舍管理系统java+SQL
数据库应用设计学生宿舍管理系统java+SQL 具体功能如下: 1.用户登录界面 学生通过用户名和密码获取登录权限,宿舍楼管理员通过用户名和密码获取登录权限. 2.学生用户界面 本宿舍楼的学生能查询其 ...
- oracle学生考勤,Oracle数据库课程设计――学生考勤系统的Oracle实现1
Oracle数据库课程设计――学生考勤系统的Oracle实现1 辽宁工程技术大学 Oracle数据库课程设计报告 学生考勤系统 姓 名: XXXXX 班 级: 计SJ08-1班 学 号: 完成日期: ...
- java毕业生设计学生学籍信息管理系统计算机源码+系统+mysql+调试部署+lw
java毕业生设计学生学籍信息管理系统计算机源码+系统+mysql+调试部署+lw java毕业生设计学生学籍信息管理系统计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B/S ...
最新文章
- 【Qt】QtCreator无法调试终端程序,启动报错SIGSTOP
- Bootstrap+PHP实现多图上传
- jconsole观察分析Java程序的运行,进行排错调优
- Spring自动扫描组件
- 零基础学云计算怎么样?2020年云计算学习路线
- 539.最小时间差-LeetCode
- C++ 动态联编实现原理分析
- .Net MVC中设置默认启动为某区域的视图
- ImageLoader的简单分析(二)
- 安全策略篇 ASPF:隐形通道
- php转换ofd文件格式,OFD文件转换服务
- 功率因数cosφ仪表盘
- jersey 过滤_Jersey的Filter详解
- 小程序梦想贩卖机v2-1.0.88-带4插件(2022.9.8更新)
- realityOS会是苹果的新操作系统吗?
- IPCAM视频数据解码并处理
- 一般网站上传图片的大小是多少?网站图片上传格式大小建议 附带简单修图方法
- html中怎样写渐变色代码,纯css简单几行代码实现颜色渐变效果 非常漂亮
- Vue的生命周期过程详解
- 步进电机+protues
热门文章
- 中秋福利!三维重建/SLAM/点云/相机标定/深度估计/缺陷检测课程
- postgres 导入纯文本数据txt
- Outlook关闭时最小化到任务栏的完美解决方法
- c语言的菜单制作,C语言的菜单制作.ppt
- Python菜鸟爬虫技巧
- openpyxl学习笔记(2020--8-11)——制图续
- Talk预告 | 普渡大学王虓:如何利用合作对抗学习来提升自监督学习
- LeetCode.M11.盛最多水的容器
- SSM和SSH框架对比
- android 沉浸式状态栏导致布局被遮挡,沉浸式状态栏导致华为手机虚拟按钮被遮挡的解决办法...