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

下载本文档

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

文档简介

1、数据库设计报告题目: 小区物业管理数据库设计 专业: 班级: 学号: 姓名: 指导教师: 完成日期: 2014年05月 19日小区物业管理数据库设计*(国脉信息学院 12级1班)摘要关键词: 数据库、增删改查、触发器、视图目 录1概述12需求分析12.1任务12.2系统功能模块12.3数据流程图32.4 数据字典53数据库结构设计73.1概念设计7分E-R图建立8全局/整体E-R图93.2逻辑设计9逻辑设计目标9建立关系模式10关系模式规范化处理102.2.4关系模式逻辑结构定义114数据库物理设计114.1物理设计阶段的目标和任务124.2数据存储125数据库实施与测试125.1数据库实施1

2、2数据库及数据库对象建立125.1.1.1基本表155.1.1.2索引16.3视图175.1.1.4触发器18.3存储过程17数据入库125.2数据库测试135.2.1查询175.2.2更新186总结137参考文献131概述(设计背景,设计目的,设计内容)背景:数据库基础与应用课程设计是计算机专业集中实践性环节之一,是学习完数据库系统概论课程后进行的一次全面的综合练习。目的:在于加深对数据库基础理论和基本知识的理解,掌握进行数据库开发的全过程,提高运用数据库解决实际问题的能力。设计内容:进行需求分析,设计数据库的概念模型。系统基本功能:楼盘信息管理:楼盘信息的添加、编辑和查询;住户信息管理:住

3、户信息的添加、编辑和查询;报修事项管理:报修事项的添加、编辑和查询;投诉信息管理:投诉信息的添加、编辑和查询;报表管理:输出楼盘信息、住户信息、报修信息和投诉信息。(视图)其中:(除了以下信息,也可以按需要增加属性列)楼盘信息:包括的主要数据项有:楼盘编号,楼盘名称,楼层数,面积,户型,地址住户信息:包括的主要数据项有:业主编号,姓名,性别,电话,门牌号,面积,身份证报修事项:包括的主要数据项有:报修事项编号,报修名称,业主编号,维修状态,日期,受理人投诉信息:包括的主要数据项有:投诉事项编号,投诉名称,业主编号,解决状态,日期,受理人2. 需求分析(功能分析、工作流图或功能模块、数据流图、数

4、据字典)2.1 功能分析楼盘信息管理:楼盘信息的添加、编辑和查询;住户信息管理:住户信息的添加、编辑和查询;报修事项管理:报修事项的添加、编辑和查询;投诉信息管理:投诉信息的添加、编辑和查询;报表管理:输出楼盘信息、住户信息、报修信息和投诉信息。(视图) 2.2数据流图楼盘信息管理住户购买房子 登记信息 付款 工作人员录入住户信息到数据库 投诉信息管理用户提出投诉 工作人员登记投诉信息 把投诉信息录入到数据库 工作人员处理投诉事宜 提交处理结果 将处理结果保存到数据库保修信息管理用户提交保修请求 工作人员登记保修信息 把保修信息录入到数据库 工作人员处理保修事宜 提交处理结果 将处理结果保存到

5、数据库2.3 数据字典数据项数据项编号数据项名称数据类型长度可否为空描述1楼盘编号int 否楼盘的编号2楼盘名称vachar20否楼盘的名称3楼层数int楼盘拥有的层数4面积real楼盘所占面积5户型vachar8 所属户型6地址varchar20小区所在地址7业主编号int否业主的编号8姓名varchar20否业主的姓名9电话Varchar20否业主的联系号码10门牌号int业主所在门牌号11性别char8业主的性别12身份证 varchar20否业主的身份证号13报修编号int否保修的编号14报修名称Varchar20保修的事项名称15维修状态char8是否维修16日期datetime受理

6、日期17受理人varchar20否受理人姓名18投诉编号int否投诉的编号19投诉名称varchar20投诉的事项名称20解决状态Char8是否处理投诉数据结构数据结构编号数据结构名称数据结构定义 组成1楼盘信息表楼盘信息楼盘编号,楼盘名称,楼层数,面积,户型,地址2住户信息表住户信息业主编号,姓名,性别,门牌号,面积,电话,身份证,楼盘编号,3报修信息表报修信息报修事项编号,报修名称,业主编号,受理人,报修状态,日期4投诉信息表投诉信息投诉事项编号,投诉名称,业主编号,受理人,投诉事项,日期3数据库结构3.1概念模型设计(E-R图) E-R图楼盘居住住户提出投诉提出报修1NNNNN3.2逻辑

7、设计(E-R模型转换为关系模式,数据库表的设计)楼盘信息(楼盘编号,楼盘名称,楼层数,面积,户型,地址)住户信息(业主编号,楼盘编号,姓名,性别,电话,门牌号,面积,身份证)报修信息(报修事项编号,报修名称,业主编号,维修状态,日期,受理人)投诉信息(投诉事项编号,投诉名称,业主编号,解决状态,日期,受理人)数据库表的设计楼盘信息表名称数据类型可否为空说明楼盘编号int 否主键楼盘名称Vachar(20)否楼层数int面积real户型Vachar(20)地址Varchar(20)业主信息表名称数据类型可否为空说明业主编号int 否主键姓名Vachar(20)否性别Char(8)电话Varcha

8、r(20)否门牌号int面积real身份证Varchar(20)否楼盘编号int否外键报修信息表名称数据类型可否为空说明报修事项编号int否主键报修名称Varchar(20)否业主编号int否外键维修状态Char(8)日期datetime受理人 Varchar(20)否投诉信息表名称数据类型可否为空说明投诉事项编号int否主键投诉名称Varchar否业主编号int否外键解决状态Char(8)日期datetime受理人 Varchar(20)否4 数据库物理设计(主要包括数据存储位置、存储格式;索引及索引类型。)数据存放在d盘的目录下:D:sql数据库设计小区物业管理.mdfD:sql数据库设计

9、小区物业管理.mdf建立索引:5数据库实施与测试(源代码及查询截图)数据库:CREATE DATABASE 小区物业管理ON PRIMARY(NAME = '小区物业管理',FILENAME = 'D:sql数据库设计小区物业管理.mdf',SIZE = 3MB,MAXSIZE = 80MB,FILEGROWTH = 10%)LOG ON(NAME = '小区物业管理.ldf',FILENAME = 'D:sql数据库设计小区物业管理_log.ldf',SIZE = 1MB,MAXSIZE = 20MB,FILEGROWTH =

10、10%)基本表:1. 楼盘信息表CREATE TABLE 楼盘信息表(楼盘编号INT PRIMARY KEY NOT NULL,楼盘名称VARCHAR(20) UNIQUE NOT NULL,楼层数INT,面积REAL,户型VARCHAR(20),地址VARCHAR(20)2. 住户信息表CREATE TABLE 住户信息表(业主编号INT PRIMARY KEY NOT NULL,姓名VARCHAR(20) NOT NULL,性别CHAR(8) CHECK(性别= '男' or 性别= '女'),电话VARCHAR(20) NOT NULL,门牌号INT,面积

11、REAL,身份证VARCHAR(20) NOT NULL,楼盘编号INT,FOREIGN KEY (楼盘编号) REFERENCES 楼盘信息表(楼盘编号) )3.CREATE TABLE 报修信息表(报修事项编号INT PRIMARY KEY NOT NULL,报修名称VARCHAR(20) NOT NULL,业主编号INT NOT NULL,维修状态CHAR(8) CHECK(维修状态= '已维修' OR 解决状态= '未维修'),日期DATETIME NOT NULL,受理人VARCHAR(20) NOT NULL,FOREIGN KEY (业主编号) R

12、EFERENCES 住户信息表(业主编号)4.CREATE TABLE 投诉信息表(投诉事项编号INT PRIMARY KEY NOT NULL,投诉名称VARCHAR(20) NOT NULL,业主编号INT NOT NULL,解决状态CHAR(8) CHECK(解决状态= '已解决' OR 解决状态= '未解决'),日期DATETIME NOT NULL,受理人VARCHAR(20) NOT NULL,FOREIGN KEY (业主编号) REFERENCES 住户信息表(业主编号) 楼盘信息的添加INSERT INTO 楼盘信息表VALUES(1,'

13、;花园小区号楼',7,1800.5,'A类','福州晋安区鼓岭')INSERT INTO 楼盘信息表VALUES(2,'花园小区号楼',5,2100.5,'B类','福州晋安区鼓岭')INSERT INTO 楼盘信息表VALUES(3,'花园小区号楼',9,1000.5,'A类','福州晋安区鼓岭')INSERT INTO 楼盘信息表VALUES(4,'花园小区号楼',5,4000.5,'C类','福州晋安区鼓岭'

14、;)INSERT INTO 楼盘信息表VALUES(5,'花园小区号楼',6,3000.5,'D类','福州晋安区鼓岭')住户信息添加:INSERT INTO 住户信息表values(1101,'张三','男',101,80.5,1)INSERT INTO 住户信息表values(1102,'李四','女',102,180,1)INSERT INTO 住户信息表values(2307,'王五','男',307,135.5,2)INSERT INTO 住

15、户信息表values(4401,'刘柳','女',401,80.5,4)INSERT INTO 住户信息表values(5115,'蔡七','女',115,280.5,5)投诉信息添加INSERT INTO 投诉信息表(投诉事项编号,投诉名称,业主编号,受理人)VALUES(0001,'卫生间修理迟迟不到位',1101,'李小姐')INSERT INTO 投诉信息表(投诉事项编号,投诉名称,业主编号,受理人)VALUES(0002,'维修服务态度差',5115,'李小姐

16、9;)报修信息添加INSERT INTO 报修信息表(报修事项编号,报修名称,业主编号,受理人)values(1100,'卫生间漏水',1101,'王师傅')INSERT INTO 报修信息表(报修事项编号,报修名称,业主编号,受理人)values(1101,'水管破裂',4401,'李师傅')INSERT INTO 报修信息表(报修事项编号,报修名称,业主编号,受理人)values(1102,'煤气阀门失灵',5115,'陈师傅')信息的修改(解决状态和维修状态)UPDATE 投诉信息表SET 解

17、决状态= '未解决'UPDATE 报修信息表SET 维修状态= '未维修视图:业主信息视图CREATE VIEW 业主信息ASSELECT 姓名,楼盘名称,门牌号,性别,电话,住户信息表.面积,身份证FROM 住户信息表,楼盘信息表WHERE 住户信息表.楼盘编号= 楼盘信息表.楼盘编号未维修事项信息视图CREATE VIEW 未维修事项信息(报修名称,报修人,楼盘名称,门牌号,电话,报修日期,受理人)ASSELECT 报修名称,姓名,楼盘名称,门牌号,电话,日期,受理人FROM 报修信息表,住户信息表,楼盘信息表WHERE 报修信息表.业主编号= 住户信息表.业主编号

18、and 住户信息表.楼盘编号=楼盘信息表.楼盘编号and 维修状态= '未维修'未解决投诉信息视图CREATE VIEW 未解决投诉信息(投诉名称,投诉人,楼盘名称,门牌号,电话,投诉日期,受理人)ASSELECT 投诉名称,姓名,楼盘名称,门牌号,电话,日期,受理人FROM 投诉信息表,住户信息表,楼盘信息表WHERE 投诉信息表.业主编号= 住户信息表.业主编号and 住户信息表.楼盘编号=楼盘信息表.楼盘编号and 解决状态= '未解决'索引:CREATE UNIQUE INDEX 升序楼盘编号ON 楼盘信息表(楼盘编号)CREATE UNIQUE IND

19、EX 升序业主编号ON 住户信息表(业主编号)CREATE UNIQUE INDEX 升序报修事项编号ON 报修信息表(报修事项编号)CREATE UNIQUE INDEX 升序投诉事项编号ON 投诉信息表(投诉事项编号)触发器:1.CREATE TRIGGER 级联_楼盘ON 楼盘信息表INSTEAD OF UPDATE,DELETEAS BEGINDECLARE 楼盘编号INT,楼盘编号INTSELECT 楼盘编号= 楼盘编号FROM INSERTEDSELECT 楼盘编号= 楼盘编号FROM DELETEDIF(UPDATE(楼盘编号)BEGINEXEC sp_msforeachtabl

20、e 'ALTER TABLE ? NOCHECK CONSTRAINT ALL' UPDATE 楼盘信息表SET 楼盘编号=楼盘编号WHERE 楼盘编号=楼盘编号UPDATE 住户信息表SET 楼盘编号=楼盘编号WHERE 楼盘编号=楼盘编号EXEC sp_msforeachtable 'ALTER TABLE ? CHECK CONSTRAINT ALL' ENDELSEBEGINDELETE 楼盘信息表WHERE 楼盘编号=楼盘编号ENDEND2.CREATE TRIGGER 提示_信息ON 住户信息表AFTER INSERTAS BEGINPRINT

21、9;添加信息成功'ENDCREATE TRIGGER 提示_信息a ON 住户信息表AFTER DELETEAS BEGINPRINT'删除信息成功'END存储过程1.CREATE PROCEDURE 查询_存储ASSELECT *FROM 住户信息表EXEC 查询_存储2.CREATE PROCEDURE 报修休息_存储报修事项编号INT,报修名称VARCHAR(20),业主编号INT,受理人VARCHAR(20)AS BEGININSERT INTO 报修信息表(报修事项编号,报修名称,业主编号,受理人)VALUES(报修事项编号,报修名称,业主编号,受理人)END

22、EXEC 报修休息_存储1103,'煤气阀门失灵',5115,'陈师傅'3.CREATE PROCEDURE 总人数_存储AS BEGINDECLARE 总人数INTSELECT 总人数=COUNT(业主编号)FROM 住户信息表WHERE 楼盘编号= 11RETURN 总人数ENDDECLARE jieshou INT EXEC jieshou=总人数_存储PRINT jieshou4. ACREATE PROC 查询楼盘住户楼盘名称VARCHAR(20)ASPRINT 楼盘名称BEGINDECLARE 业主姓名VARCHAR(20),性别VARCHAR(8)

23、,电话VARCHAR(20),面积VARCHAR(20),身份证VARCHAR(20)DECLARE CHECK_住户CURSOR FORSELECT 姓名,性别,电话,面积,身份证FROM 住户信息表where 楼盘编号=(SELECT 楼盘编号FROM 楼盘信息表WHERE 楼盘名称=楼盘名称)OPEN CHECK_住户FETCH FROM CHECK_住户INTO 业主姓名,性别,电话,面积,身份证PRINT'业主姓名'+' '+'性别'+' '+'电话'+' '+'面积'+&

24、#39; '+'身份证'PRINT'-'WHILE FETCH_STATUS = 0BEGINPRINT 业主姓名+' '+ 性别+ 电话+' '+ 面积+' '+ 身份证FETCH FROM CHECK_住户INTO 业主姓名,性别,电话,面积,身份证ENDPRINT'-'ENDCLOSE CHECK_住户DEALLOCATE CHECK_住户EXEC 查询楼盘住户'花园小区号楼'B.CREATE PROC报修情况AS BEGINDECLARE 报修事项编号varchar(

25、20),报修名称varchar(20),业主编号varchar(20),受理人varchar(20)DECLARE 报修CURSOR FORSELECT 报修事项编号,报修名称,业主编号,受理人FROM 报修信息表WHERE 维修状态='已维修'OPEN 报修FETCH FROM 报修INTO 报修事项编号,报修名称,业主编号,受理人PRINT'已维修'WHILE FETCH_STATUS = 0BEGINPRINT 报修事项编号+' '+报修名称+' '+业主编号+' '+受理人FETCH FROM 报修INTO 报修事项编号,报修名称,业主编号,受理人ENDCLOSE 报修DEALLOCATE 报修PRINT''PRINT''DECLARE 报修_未修CURSOR FORSELECT 报修事项编号,报修名称,业主编号,受理人FROM 报修信息表WHERE 维修状态='未维修'OPEN 报修_未修FETCH FROM 报修_未修INTO 报修事项编号,报修名称,业主编号,受理人PRINT'未维修'WHILE FETCH_STATUS = 0BEGI

温馨提示

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

最新文档

评论

0/150

提交评论