您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 房地产 > 小区物业管理数据库设计
小区物业管理数据库设计1.课程设计的目的与要求数据库基础与应用课程设计是计算机专业集中实践性环节之一,是学习完《数据库系统概论》课程后进行的一次全面的综合练习。其目的在于加深对数据库基础理论和基本知识的理解,掌握进行数据库开发的全过程,提高运用数据库解决实际问题的能力。2.课程设计内容2.1、设计要求:进行需求分析,设计数据库的概念模型。系统基本功能:楼盘信息管理:楼盘信息的添加、编辑和查询;住户信息管理:住户信息的添加、编辑和查询;报修事项管理:报修事项的添加、编辑和查询;投诉信息管理:投诉信息的添加、编辑和查询;报表管理:输出楼盘信息、住户信息、报修信息和投诉信息。其中:(除了以下信息,也可以按需要增加属性列)楼盘信息:包括的主要数据项有:楼盘编号,楼盘名称,楼层数,面积,户型,地址住户信息:包括的主要数据项有:业主编号,姓名,性别,电话,门牌号,面积,身份证报修事项:包括的主要数据项有:报修事项编号,报修名称,业主编号,维修状态,日期,受理人投诉信息:包括的主要数据项有:投诉事项编号,投诉名称,业主编号,解决状态,日期,受理人2.2、本课题设计的基本要求:1)数据库设计报告,包括数据库的数据字典,数据库的概念结构(E-R图),数据库中的表、视图(如果使用)、存储过程(如果使用)的结构和定义(可以用SQL脚本提供)。2)写出课程设计报告,设计报告提交形式:电子文档提交,文件名要求按“学号_姓名”命名,学号要全称,内容按照报告中的要求去做,正文字体为宋体,字号为四号字或五号字。课程设计报告最后由学委统一收齐上交。3)个人独立完成。4)完成时间(周)5)注意事项:实验报告如有雷同,一律不及格。数据库的实现上课时要检查验收。本课程设计为1个学分。3.需求分析和数据库设计3.1信息收集和需求分析了解和分析系统功能需求,得到系统模块图,系统流程图,系统的数据字典。数据项编号数据项名称数据类型长度描述1楼盘编号char4notnull(主键)2楼盘名称varchar16notnull3楼层数int44面积varchar165户型varchar166地址char207业主编号int4notnull(主键)8姓名varchar20Notnull9性别char410电话char1611门牌号int1012身份证char20notnull(唯一)13报修事项编号int4notnull(主键)14报修名称varchar1015维修状态char1016日期datetime17受理人varchar1018投诉事项编号int4notnull(主键)19投诉名称varchar2020解决状态char10数据结构,反映了数据之间的组合关系,一个数据结构可以由若干个数据项组成,也可由若干个数据结构组成。本系统的数据结构包括超市货物信息,供应信息,销售信息等基本内容,主要有以下项:3.2概念设计——E-R图概念模型用于信息世界的建模。概念模型不依赖于某一个数据库管理系统(DBMS),但可以方便的转换为计算机上某一DBMS所支持的特定的数据模型。通过对用户对数据的需求进行综合、归纳与抽象,将形成一个完善的概念模型,可以用E-R(实体联系)图来表示。E-R图是对现实世界的一种抽象,它的主要成份是实体、属性和联系。数据结构编号数据结构名数据结构定义组成1楼盘信息楼盘楼盘编号,楼盘名称,楼层数,面积,户型,地址2住户信息住户业主编号,姓名,性别,电话,门牌号,面积,身份证3报修事项报修报修事项编号,报修名称,业主编号,维修状态,日期,受理人4投诉信息投诉投诉事项编号,投诉名称,业主编号,解决状态,日期,受理人报修事项报修状态业主编号报修名称报修事项编号日期受理人住户信息业主编号面积电话号码门牌号身份证性别姓名3.3逻辑设计概念设计的结果得到一个与计算机、软硬件的具体性能无关的全局概念模式。数据库逻辑设计的任务是将概念结构转换成特定DBMS所支持的数据模型(如关系模型)的过程。本案例中我们将其转换为关系模型。楼盘信息:包括的主要数据项有:楼盘编号,楼盘名称,楼层数,面积,户型,地址楼盘入住户主投诉报修投诉信息报修事项1nPnnM投诉信息解决状态投诉名称业主编号投诉事项编号日期受理人住户信息:包括的主要数据项有:业主编号,楼盘编号,姓名,性别,电话,门牌号,面积,身份证报修事项:包括的主要数据项有:报修事项编号,报修名称,业主编号,维修状态,日期,受理人投诉信息:包括的主要数据项有:投诉事项编号,投诉名称,业主编号,解决状态,日期,受理人4.表和索引的创建及数据完整性1)建表。根据关系模式设计表,为表的各属性选择合适的数据类型以及属性可否为空。2)设置主键,为数据库的每个表设置主键。每个表都应该具有主键,主键的存在就代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于与其他表的外键关联,本记录的修改与删除,如果没有主键,这些操作会变的非常麻烦。(提示:可以使用自动编号作为主键,就是新建一个ID字段,自动增长)3)设置外键。4)设置其他约束。根据系统的实际要求,设置约束。例如,业主资料中的性别只能为男或女,则可对性别设置CHECK约束;用户注册日期如果为空,就默认为当前时间,则可设置DEFAULT约束;图片表中的图片如果不允许重复,则可设置UNIQUE约束,等等。5.数据库结构的实现(代码)经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。现在就可以在SQLServr2005数据库系统中实现该逻辑结构。这是利用SQLServer2005数据库系统中实现的。5.1创建物业管理数据库。createdatabase物业管理onprimary(name='物业管理',filename='d:\物业管理.mdf',size=3mb,maxsize=100mb,filegrowth=10%)logon(name='物业管理_log',filename='d:\物业管理_log.ldf',size=1mb,maxsize=2mb,filegrowth=10%)5.2创建基本信息表createtable楼盘信息(楼盘编号char(4)notnullprimarykey,楼盘名称varchar(16)notnull,楼层数int,面积varchar(16),户型varchar(16),地址varchar(20))insertinto楼盘信息values(1,'恒宇国际',20,'130m2','中户型','前屿')insertinto楼盘信息values(2,'世欧王庄',19,'150m2','大户型','长乐中路')insertinto楼盘信息values(3,'香开新城',18,'90m2','小户型','晋安区')insertinto楼盘信息values(4,'保利香槟国际',21,'100m2','中户型','连江路')insertinto楼盘信息values(5,'世欧澜山',22,'140m2','大户型','塔头路')createtable住户信息(业主编号intnotnullprimarykey,姓名varchar(20)notnull,性别char(4)check(性别IN('男','女')),电话号码char(16),门牌号int,面积varchar(16),楼盘编号char(4)notnull,身份证char(20)notnullunique,foreignkey(楼盘编号)references楼盘信息(楼盘编号))insertinto住户信息values(1,'杨','男','15396005420',0001,'130m2',1,'350823198108114321')insertinto住户信息values(2,'黄','女','18359157667',0002,'150m2',2,'350823198108114322')insertinto住户信息values(3,'叶','男','15396005495',0003,'90m2',3,'350823198108114323')insertinto住户信息values(4,'陈','女','18046057365',0004,'100m2',4,'350823198108114324')insertinto住户信息values(5,'戴','男','18046056664',0005,'140m2',5,'350823198100014323')createtable报修事项(报修事项编号intnotnullprimarykey,报修名称varchar(10)null,业主编号int,维修状态char(10),日期datetime,受理人varchar(10),foreignkey(业主编号)references住户信息(业主编号))insertinto报修事项values(1,'水管破裂',1,'完成',2013-05-05,'王')insertinto报修事项values(2,'停电',2,'未完成',2013-05-010,'张')createtable投诉信息(投诉事项编号intnotnullprimarykey,投诉名称varchar(20),业主编号int,解决状态char(10),日期datetime,受理人varchar(10),foreignkey(业主编号)references住户信息(业主编号),)insertinto投诉信息values(1,'水管破裂',1,'未完成',2013-05-05,'王')insertinto报修事项values(2,'停电',2,'未完成',2013-05-010,'张')5.3创建视图:为提高数据库使用效率,增强数据库安全性,按如下要求设计视图:1:业主信息视图:通过该视图可以得到住户信息,包含业主姓名,楼盘名称,门牌号,性别,电话,面积,身份证createview业主信息(姓名,楼盘名称,门牌号,性别,电话号码,面积,身份证)asselect姓名,楼盘名称,门牌号,性别,电话号码,住户信息.面积,身份证from住户信息,楼盘信息where住户信息.楼盘编号=楼盘信息.楼盘编号2:未维修事项信息视图:报修名称,楼盘名称,门牌号,电话,报修日期,受理人。createview未维修事项信息视图(报修名称,楼盘名称,门牌号,电话号码,报修日期,受理人)asselect报修名称,楼盘名称,门牌号,电话号码,日期,受理人from住户信息,楼盘信息,报修事项where住户信息.楼盘编号=楼盘信息.楼盘编号and住户信息.业主编号=报修事项.业主编号3.未解决投诉信息视图:createview未解决投诉信息视图(投诉名称,投诉姓名,解决状态,投诉日期,受理人)asselect投诉名称,姓名,解决状态,日期,受理人from投诉信息,住户信息where住户信息.业主编号=投诉信息.业主编号5.4创建索引:建立索引。考虑系统对表的查询频率,为查询次数较多的表的字段建立索引。createuniqueindex住户信息索引ON住户信息(业主编号)5.5创建触发器:1.如利用触发器使相关连的表能实现级联更新和级联删除。createtriggertri_deleteon楼盘信息afterdeleteasbegindeclare@楼盘编号intselect@楼盘编号=楼盘编号from楼盘信息where楼盘编号=(select楼盘编号fromdeleted)if@楼盘编号isnullbegindeletefrom住户信息where楼盘编号=(select楼盘编号fromdeleted)endendcreatetriggertri_delete1on住户信息afterupdateasbegindeclare@业主编号intselect@业主编号=业主编号from住户信息where业主编号=(select业主编号fromdeleted)if@业主编号isnullbeginupdate报修事项set@业主编号=业主编号where业主编号=(s
本文标题:小区物业管理数据库设计
链接地址:https://www.777doc.com/doc-1920913 .html