小区物业管理数据库设计_第1页
小区物业管理数据库设计_第2页
小区物业管理数据库设计_第3页
小区物业管理数据库设计_第4页
小区物业管理数据库设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库应用课程设计报告题目: 小区物业管理数据库设计 专业: 班级: 学号: 姓名: 指导教师: 完成日期: 年 月 日小区物业管理数据库设计(国脉信息学院 11 级 1 班)摘要:这个数据库是管理楼盘住户的信息,便于管理用户的信息。用数据库管理可以更高效和更清晰的看清住户的信息还有投诉,保修等信息,有利于小区的管理,每个小区 都必须应用一个小区的数据库管理系统,这个才能更好的管理。如果一个小区没有一个数据库管理的系统,小区的管理就会混乱,住户的投诉和保修就得不到解决,所以数据库您值得拥有!关键词: 数据库 级联更新、删除 触发器 视图I目 录1概述 .11.1 设计背景: .11.2 设计目的: .11.3 设计内容: .12. 需求分析 22.1 系统功能分析: 22.2 数据字典 22.3 数据流程图: .33数据库结构 .33.1 概念模型设计(E-R 图) .33.2 逻辑设计 .54 数据库物理设计(主要包括数据存储位置、存储格式;索引及索引类型。) .65 数据库实施与测试(源代码及查询截图) .86 总结(设计过程中遇到的问题以及解决方法;课程学习及课程设计的体会)。 .287. 参考文献 2801概述1.1 设计背景:数据库基础与应用课程设计是计算机专业集中实践性环节之一,是学习完数据库系统概论课程后进行的一次全面的综合练习。1.2 设计目的:在于加深对数据库基础理论和基本知识的理解,掌握进行数据库开发的全过程,提高运用数据库解决实际问题的能力。1.3 设计内容:进行需求分析,设计数据库的概念模型。系统基本功能:楼盘信息管理:楼盘信息的添加、编辑和查询;住户信息管理:住户信息的添加、编辑和查询;报修事项管理:报修事项的添加、编辑和查询;投诉信息管理:投诉信息的添加、编辑和查询;报表管理:输出楼盘信息、住户信息、报修信息和投诉信息。其中:(除了以下信息,也可以按需要增加属性列)楼盘信息:包括的主要数据项有:楼盘编号,楼盘名称,楼层数,面积,户型,地址住户信息:包括的主要数据项有:业主编号,姓名,性别,电话,门牌号,面积,身份证报修事项:包括的主要数据项有:报修事项编号,报修名称,业主编号,维修状态,日期,受理人投诉信息:包括的主要数据项有:投诉事项编号,投诉名称,业主编号,解决状态,日期,受理人12. 需求分析2.1 系统功能分析: 楼盘信息管理:楼盘信息的添加、编辑和查询;住户信息管理:住户信息的添加、编辑和查询;报修事项管理:报修事项的添加、编辑和查询;投诉信息管理:投诉信息的添加、编辑和查询;报表管理:输出楼盘信息、住户信息、报修信息和投诉信息。2.2 数据字典数据项数据项编号 数据项名称 数据类型 长度 可否为空 描述1 楼盘编号 int 否 楼盘的编号 2 楼盘名称 char 20 否 楼盘的名称3 楼层数 int 否 楼盘的层数4 面积 int 否 房间的大小5 户型 char 20 否 属于什么户型6 地址 char 20 否 所在地址7 业主编号 int 否 业主的编号 8 名字 char 20 否 业主的名字9 性别 char 20 否 业主性别10 电话 int 否 业主电话11 门牌号 int 否 房间门牌号12 身份证 char 20 否 业主身份证13 报修事项号 int 否 报修事项编号 14 报修名称 char 20 否 报修的东西15 维修状态 char 20 否 维修的状态16 日期 datetime 20 否 受理时间17 受理人 char 20 否 管理人员18 投诉事项编号 int 否 投诉事项编号 19 投诉名称 char 20 否 投诉的东西20 解决状态 char 20 否 解决的状态2数据结构:数据结构编号数据结构名数据结构定义组成1 楼盘信息表楼盘信息 楼盘编号,楼盘名称,楼层数,面积,户型,地址2 住户信息表住户信息 业主编号,姓名,性别,电话,门牌号,面积,身份证3 报修信息表报修信息 报修事项编号,报修名称,业主编号,维修状态,日期,受理人4 投诉信息表投诉信息投诉事项编号,投诉名称,业主编号,解决状态,日期,受理人2.3 数据流程图:楼盘信息管理:住户看好楼盘 填购买表 付款 管理人员把资料录入数据库保存带住户到房间及交代一些注意事项投诉事项管理:住户提出投诉 填投诉表 交给管理人员 录入数据库 工作人员来处理 工作人员上报处理投诉结果 再次录入数据库保存报修事项管理:住户申请报修 填申请表 交给管理人员 录入数据库 专门人员上门修理 工作人员上报修理结果 录入数据库保存住户信息管理:住户申请修改住户信息 填住户信息表 管理人员审核审核通过录入信息到数据库保存3数据库结构3.1 概念模型设计(E-R 图)实体及其属性图:(1).楼盘信息表的 E-R 图3楼盘编号 楼盘名称 楼层数 面积 户型 地址楼盘信息.住户信息表的 E-R 图姓名 性别 电话 门牌号 面积 身份证住户信息业主编号.保修信息表的 E-R 图报修事项编号 报修名称 业主编号 维修状态 日期 受理人报修信息表.投诉信息表的 E-R 图投诉事项编号 投诉名称 业主编号 解决状态 日期 受理人投诉信息表4(2). 实体及其联系图:楼盘住户投诉报修拥有提出申请1nn nmm3.2 逻辑设计关系模式:楼盘(楼盘编号,楼盘名称,楼层数,面积,户型,地址)住户(业主编号,姓名,性别,电话,门牌号,面积,身份证)投诉(投诉事项编号,业主编号,投诉名称,解决状态,日期,受理人)报修(报修事项编号,业主编号,报修名称,维修状态,日期,受理人)拥有(业主编号,楼盘编号)数据库表的设计楼盘信息表字段名称 数据类型 可否为空 说明楼盘编号 int 否 主键楼盘名称 char(20) 否楼层数 int 否面积 int 否户型 char(20) 否地址 char(20) 否5住户信息表字段名称 数据类型 可否为空 说明业主编号 int 否 主键姓名 char(20) 否性别 char(20) 可电话 int 否门牌号 int 否面积 int 否身份证 char(20) 否投诉信息表字段名称 数据类型 可否为空 说明投诉事项编号 int 否 主键业主编号 char(20) 否 外键投诉名称 char(20) 否解决状态 char(20) 否 默认 not日期 datetime 否 默认当前时间受理人 char(20) 否报修信息表字段名称 数据类型 可否为空 说明报修事项编号 int 否 主键业主编号 char(20) 否 外键保修名称 char(20) 否维修状态 char(20) 否 默认 not日期 datetime 否 默认当前时间受理人 char(20) 否拥有信息表字段名称 数据类型 可否为空 说明业主编号 int 否 主键楼盘编号 int 否 64 数据库物理设计(主要包括数据存储位置、存储格式;索引及索引类型。)数据存放在 E 盘的根目录下,数据库存储格式为 *.mdf 日志存储格式为 *.ldf索引类型有两个:1、唯一索引72、聚簇索引因为主键就可以看做是一个聚簇索引,每个表都有设主键,所以不可在建聚簇索引5数据库实施与测试(源代码及查询截图)-创建数据库create database 小区业务管理on primary(name = 小区业务管理,filename = E:小区业务管理.mdf,size = 3mb , maxsize = 100mb,filegrowth = 10%)log on (name = 小区业务管理.ldf,filename = E:小区业务管理_log.ldf,size = 1mb , maxsize = 2mb,filegrowth = 10%)go 8-创建 楼盘信息表create table 楼盘信息表(楼盘编号 int primary key not null,楼盘名称 char(20) not null,楼层数 int not null,面积 int not null,户型 char(20) not null ,地址 char(20) not null)go-创建表 住户信息表create table 住户信息表(业主编号 int primary key not null,姓名 char(20) not null,性别 char(20) check(性别 in(男,女),电话 int not null,门牌号 int unique not null ,面积 int not null,身份证 char(20) unique not null)go -创建投诉信息表create table 投诉信息表(投诉事项编号 int primary key not null,业主编号 int not null,投诉名称 char(20) not null,9解决状态 char(20) default not,日期 datetime default getdate(),受理人 char(20) not null,foreign key (业主编号) references 住户信息表(业主编号)go-创建表 报修信息表create table 报修信息表(报修事项编号 int primary key not null,业主编号 int not null,报修名称 char(20) not null,维修状态 char(20) default not,日期 datetime default getdate() ,受理人 char(20) not null,foreign key (业主编号) references 住户信息表(业主编号) )go-创建拥有信息表create table 拥有信息表(业主编号 int primary key not null,楼盘编号 int not null)go10-编辑楼盘信息管理的操作-信息的添加-楼盘信息的添加insert into 楼盘信息表values(1,海天 ,5,120,三室一厅,中山路号 )insert into 楼盘信息表values(2,柠檬夏天 ,10,120,四室一厅,中山路号 )insert into 楼盘信息表values(3,指尖刹那 ,9,300,四室一厅,中山路号 )-住户信息的添加insert into 住户信息表values(11,林达 ,女,15980123 ,520,120,3505251992)insert into 住户信息表values(12,谢可 ,女,15980147 ,521,100,3505251993)insert into 住户信息表values(13,谢华 ,男,15980520 ,522,180,3505251994)insert into 住户信息表values(14,张琳 ,男,15980369 ,523,250,3505251995)insert into 住户信息表values(15,仲夏 ,男,15980789 ,524,300,3505251996)-报修信息的添加insert into 报修信息表( 报修事项编号,业主编号,报修名称,受理人)values(10,15,水管爆裂 ,王砖家)insert into 报修信息表( 报修事项编号,业主编号,报修名称,受理人)values(11,14,电线端口安装,王砖家)insert into 报修信息表( 报修事项编号,业主编号,报修名称,受理人)11values(12,13,大门锁坏掉,王砖家) insert into 报修信息表( 报修事项编号,业主编号,报修名称,受理人)values(13,12,灯泡更换 ,王砖家) -投诉信息的添加insert into 投诉信息表( 投诉事项编号,业主编号,投诉名称,受理人)values(100,11,墙壁裂痕 ,胡说)insert into 投诉信息表( 投诉事项编号,业主编号,投诉名称,受理人)values(101,12,停水 ,胡说)insert into 投诉信息表( 投诉事项编号,业主编号,投诉名称,受理人)values(102,13,周围太吵 ,胡说)insert into 投诉信息表( 投诉事项编号,业主编号,投诉名称,受理人)values(103,14,乱丢垃圾 ,胡说)-拥有信息表的添加insert into 拥有信息表values(11,1)insert into 拥有信息表values(12,2)insert into 拥有信息表values(13,2)insert into 拥有信息表values(14,2)insert into 拥有信息表values(15,3)-信息的查询select * from 楼盘信息表12select * from 住户信息表select * from 报修信息表select * from 投诉信息表select * from 拥有信息表13-信息的编辑-楼盘信息编辑 update 楼盘信息表 set 楼盘名称 = 彩虹之家where 楼盘名称 = 海天 go-住户信息的编辑update 住户信息表 set 电话 = 1314520where 电话 = 15980123 go-5.3创建视图:为提高数据库使用效率,增强数据库安全性,按如下要求设计视图:-1:业主信息视图:通过该视图可以得到住户信息,包含业主姓名,楼盘名称,门牌号,性别,电话,面积,身份证create view 业主信息视图asselect 姓名 业主姓名,楼盘名称 ,门牌号,性别,电话, 住户信息表.面积,身份证 from 住户信息表,楼盘信息表,拥有信息表where 楼盘信息表 .楼盘编号 = 拥有信息表.楼盘编号 and 住户信息表.业主编号 = 拥有信息表.业主编号14-2:未维修事项信息视图:报修名称,报修人,楼盘名称,门牌号,电话,保修日期,受理人。create view 未维修事项信息视图asselect 报修名称,姓名 报修人 ,楼盘名称,门牌号,电话 ,日期 保修日期,受理人 from 报修信息表 ,住户信息表 ,楼盘信息表,拥有信息表where 维修状态 != ok and 楼盘信息表.楼盘编号 = 拥有信息表.楼盘编号 and 住户信息表.业主编号 = 拥有信息表.业主编号and 报修信息表 .业主编号 = 住户信息表.业主编号-3.未解决投诉信息视图:create view 未解决投诉信息视图asselect 投诉名称,姓名 投诉人 ,楼盘名称,门牌号,电话 ,日期 保修日期,受理人 from 投诉信息表 ,住户信息表 ,楼盘信息表,拥有信息表where 解决状态 != OK and 楼盘信息表.楼盘编号 = 拥有信息表.楼盘编号 and 住户信息表.业主编号 = 拥有信息表.业主编号and 投诉信息表 .业主编号 = 住户信息表.业主编号15-5.5 创建触发器: .如利用触发器使相关连的表能实现级联更新和级联删除。-实现级联更新和级联删除-住户信息表的级联更新删除create trigger tri_Delete_Updateon 住户信息表 instead of update ,deleteasbegindeclare inset char(6),delet char(6)select inset=业主编号 from inserted select delet=业主编号 from deleted if (update(业主编号)begin EXEC sp_msforeachtable ALTER TABLE ? NOCHECK CONSTRAINT ALL -禁用约束update 报修信息表set 业主编号=insetwhere 业主编号 =deletupdate 投诉信息表set 业主编号=insetwhere 业主编号 =deletupdate 拥有信息表set 业主编号=insetwhere 业主编号 =deletupdate 住户信息表set 业主编号= insetwhere 业主编号 = deletEXEC sp_msforeachtable ALTER TABLE ? CHECK CONSTRAINT ALL -启用约束 16endelse begindelete from 报修信息表where 业主编号 =deletdelete from 投诉信息表where 业主编号 =deletdelete from 拥有信息表where 业主编号 =deletdelete from 住户信息表where 业主编号 =delet endend-查询结果select * from 住户信息表select * from 投诉信息表select * from 报修信息表-测试代码update 住户信息表 set 业主编号 = 520where 业主编号 = 1117因为做实验是先建好触发器,在用数据测试的,且住户信息表有一个删除触发器,所以显示删除成功!delete from 住户信息表where 业主编号= 520-楼盘信息表的级联更新删除create trigger tri_楼盘on 楼盘信息表 instead of update ,deleteasbegin18declare inset char(6),delet char(6)select inset=楼盘编号 from inserted select delet=楼盘编号 from deleted if (update(楼盘编号)begin EXEC sp_msforeachtable ALTER TABLE ? NOCHECK CONSTRAINT ALL -禁用约束update 拥有信息表set 楼盘编号=insetwhere 楼盘编号 =deletupdate 楼盘信息表set 楼盘编号 = insetwhere 楼盘编号 = deletEXEC sp_msforeachtable ALTER TABLE ? CHECK CONSTRAINT ALL -启用约束 endelse begindelete from 拥有信息表where 楼盘编号 =deletdelete from 楼盘信息表where 楼盘编号 =delet endEnd19这个触发器是后面做完实验感觉不完整再添加上去的,所以这里的数据是做完试验后的数据。 20-2.如当删除一条住户信息记录能够显示提示,当添加一条报修信息能够显示提示。create trigger 删除住户 on 住户信息表after deleteasprint 删除成功 !gocreate trigger 添加报修 on 报修信息表after insertasprint 添加成功 !go-5.6创建存储过程 :-1.创建查询某一业主信息的存储过程-查询住户的信息存储过程create proc 查询住户信息asselect * from 住户信息表exec 查询住户信息21-2.创建添加报修信息记录的存储过程create proc 添加报修信息报修事项编号 char(20),业主编号 char(20),报修名称 char(20),受理人 char(20)asbegininsert into 报修信息表( 报修事项编号,业主编号,报修名称,受理人)values(报修事项编号,业主编号,报修名称, 受理人 )end-使用方法 exec 添加报修信息 业主编号, 报修名称 , 受理人 -因为维修状态和日期默认。exec 添加报修信息 100,12,水管不来水,王砖家-3.创建返回某个楼盘的业主人数,并设置没有指定值时,指定一个默认楼盘-默认楼盘编号为222create proc 业主人数asselect COUNT(*) 业主人数 from 拥有信息表where 楼盘编号 = 2 - 4.利用存储过程和游标设计报表:- a.输出指定的楼盘名称如输入“楼盘名称,输出一张报表显示该楼盘里面的所有住户信息,如下:/* 楼盘名称业主姓名 性别 电话 门牌号 面积 身份证-徐红 女 12345678 A301 105平方 12345678909 - */create proc 楼盘住户表楼盘名称 char(20)asprint 楼盘名称begindeclare 姓名 char(10)declare 性别 char(10)declare 电话 char(10)declare 门牌号 char(10)declare 面积 char(10)declare 身份证 char(10)declare GR cursorfor select 姓名,性别,电话,门牌号 ,面积,身份证 from 住户信息表where 业主编号 in (select 业主编号 from 拥有信息表where 楼盘编号 in (select 楼盘编号 from 楼盘信息表where 楼盘名称 = 楼盘名称)open GRfetch next from GR into 姓名, 性别,电话,门牌号,面积,身份证23print -print 业主姓名 + + 性别 + + 电话+ + 门牌号 + + 面积+ + 身份证while FETCH_STATUS = 0beginprint 姓名 + 性别 + 电话+ 门牌号 + 面积+ 身份证fetch next from GR into 姓名, 性别,电话,门牌号,面积,身份证endprint -close GRdeallocate GR endgo 24-b.设计一个存储过程,在该存储过程中建立生成报表的游标,分别显示-已解决的报修事项信息和未解决的报修事项信息。-存储过程. 生成报表create proc 报修情况asbegindeclare 业主编号 char(10),报修名称 char(10), 日期 char(22)declare 受理人 char(10)-已解决的报修declare BX_OK cursorforselect 业主编号,报修名称 ,日期,受理人 from 报修信息表where 维修状态 = okope

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论