当前位置:网站首页 > 公文范文 > 主题教育 > 物业管理系统数据库课程设计报告完整版

物业管理系统数据库课程设计报告完整版

时间:2022-04-13 14:23:34 浏览次数:

设计题目:物业管理系统 学 院:信息科学与工程学院 专 业:计算机科学与技术 班 级:计信 学 号:
学生姓名:
指导教师:
2014 年 X月 X 日 目 录 1 系统背景 3 2 需求分析 4 2.1 功能简介 4 2.1.1 管理员子系统 4 2.1.2 普通业主子系统 4 2.1.3 物业代表子系统 4 2.2 数据字典 5 2.3 数据流图 5 3 3 概念结构设计 5 3.1 管理员子系统E-R图 6 3.2 普通业主子系统E-R图 7 3.3 物业代表子系统E-R图 8 4 4 逻辑结构设计 8 4.1 关系模式 9 4.1.1 初步关系模式 9 4.1.2 分解合并 9 4.2 用户子模式 10 4.3 外键约束 10 4.4 数据库安全性 10 4.4.1 角色 10 4.4.2 权限 11 5 物理设计 11 5.1 存储设计 11 5.1.1 表格建立 11 5.2 索引设计 13 6 数据库的实现 14 6.1 基本表 14 6.2 视图 14 6.3 角色 15 6.4 索引 15 6.5 触发器 17 6.6 条件约束 17 7 测试方案 18 7.1 插入操作 18 7.2 更新操作 19 7.2.1 对人员信息表的更新 19 7.2.2 用户对维修业务进行更新 20 7.2.3 生成水电业务账单 20 7.3 删除操作 21 7.4 查询操作 21 7.4.1 查询基本人员信息 21 7.4.2 查询账单 21 8 总结 23 参考文献 24 1 系统背景 本课程是为《数据库与信息管理技术》课程所开的实践环节。数据库与信息管理技术课程是一门实践性很强的技术课程,而且是计算机科学与技术中发展最快的领域之一。

本课程设计的目的旨在使学生能够掌握数据库的基本原理、数据库设计的基本方法、SQL语言的应用、SQL Server 2000/2005数据库环境的使用,并能根据所应用到的数据库管理系统的相关技术,按照规范化设计的方法解决现实中数据库设计的问题。

选修本课程前应已选修《数据库与信息管理技术》课程,并熟练掌握SQL语言,以及数据库设计的规范化等基本方法。

先修课程:数据库与信息管理技术。

2 需求分析 2.1 功能简介 2.1.1 管理员子系统 (1) 管理员登录:管理员通过输入管理员账号和密码后登录管理员子系统进行系统操作。

(2) 业主添加功能:管理员通过该功能添加本小区入住业主,填写业主真实信息。

(3) 业主信息查询功能:管理员通过该功能查看业主信息。

(4) 业主信息修改功能:管理员在业主信息发生变化以后,根据变化情况修改业主信息。

(5) 业主信息删除功能:在业主搬出本小区以后删除业主基本信息。

2.1.2 普通业主子系统 (1) 业主登录:业主通过输入业主账号和密码后登录普通业主子系统进行系统操作。

(2) 业主个人信息查看功能:业主通过该功能查看自己在本小区的基本信息。

(3) 业务添加功能:业主通过该功能添加各类维修业务。

(4) 业务查看功能:业主通过此功能查看各项维修业务进行状态。

(5) 业务状态修改功能:修改业务进行状态,业务是否完成,或对维修不满意,或因各种情况需再次维修,通过此功能通知物业代表。

(6) 业务删除功能:业主自己把维修业务做完,不再需要维修人员,或业务已确认被维修人员修理完好,则删除本业务。

(7) 账单查看功能:业主通过此功能查看维修、水、电、物业管理各类账单,以确认自己所要交纳的费用。

(8) 维修业务查看功能:小区把提供的物业维修服务展示给业主。

2.1.3 物业代表子系统 (1) 物业代表登录:物业各类代表通过输入其各自独有的账号和密码后登录物业代表子系统进行系统操作。。

(2) 耗水耗电量填写功能:水费代表通过此功能把业主的月耗水量录入,电费代表通过此功能把业主的月耗电量录入。

(3) 耗水耗电量更改功能:水费代表通过此功能修改输入错误或查询有误的耗水量,电费代表通过此功能修改输入错误或查询有误的耗电量。

(4) 生成水电费账单功能:水费代表完成水量录入以后,通过此功能生成各业主当月水费,电费代表完成水量录入以后,通过此功能生成各业主当月电费。

(5) 耗水耗电量查看功能:水费代表通过此功能查看各月各个业主的耗水量统计,电费代表通过此功能查看各月各个业主的耗电量统计 (6) 委派维修人员功能:物业维修代表通过此功能委派相关人员去为业主提供维修服务。

(7) 清除已完成业务功能:在业主没有对维修业务提出举报,并且已付清相关费用以后,物业维修代表通过此功能把业务从数据库中删除。

(8) 物业费用修改功能:各类物业代表通过此功能修改其管辖业务的物业费用。

(9) 物业维修费用填写:维修人员通过此功能填写维修费用,即在维修人员办理完维修业务以后,根据劳动量和消耗器械的多少而合理收费。

2.2 数据字典 具体的数据字典会在数据库实现一章中详细给出,此处不再重复。

2.3 数据流图 管理 增改查 生成 管理 生成 委派 管理 管理 查询 查询 管理 查询 业主财产 水电业务管理 维修业务 维修账单 水电账单 维修人员 物业代表 管理员 业主 3 3 概念结构设计 3.1 管理员子系统E-R图 生日 电话 住址 登录 管理 (增删改查)
姓名 1 1 业主 性别 管理员 1 n 生日 业主账号 姓名 性别 电话 密码 住址 管理员账号 3.2 普通业主子系统E-R图 维修费用 开始时间 满意情况 登录 账单明细 管理 (增删改查)
维修业务 查询 业主 维修编号 生日 电话 完成时间 住址 维修人员编号 业主账号 姓名 业主账号 性别 维修人员姓名 3.3 物业代表子系统E-R图 注:由于页面限制,图中只画出了各实体的主码。

维修编号 登录 管理, 生成账单 业务号 维修业务 管理 物业代表 物业代表账号 管理 水电业务管理 户主账号 户主账号 电业务 水业务 4 4 逻辑结构设计 4.1 关系模式 4.1.1 初步关系模式 根据概念结构设计,可以得到初步的关系模式如下(其中各关系模式的主码用下划线标出):
管理员登录(管理员账号,密码)
管理员(管理员账号,姓名,性别,生日,电话,住址)
业主登录(业主账号,密码)
业主(业主账号,姓名,性别,生日,住址,账号)
维修业务(维修编号,业主账号,开始时间,结束时间,维修人员编号,维修人员姓名,满意情况,维修明细,维修费用)
物业代表登录(物业代表账号,密码)
物业代表(物业代表账号,代表业务,姓名,性别,生日,住址,电话)
水电业务管理(业务号,业务内容,单位价格,业务管理费)
水业务(业主账号,当月用水量,总用水量,缴纳费用,缴费时间)
电业务(业主账号,当月用电量,总用电量,缴纳费用,缴费时间)
4.1.2 分解合并 对上述关系模式进一步分析,解决冲突,消除冗余:
经分析发现,管理员登录和管理员两个实体,实际上是一个实体,只是功能不同而已,所以我们可以将这两个表合并:
管理员(管理员账号,密码,姓名,性别,生日,电话,住址)
其它两个登录表同理可以合并:
业主(业主账号,密码,姓名,性别,生日,住址,电话)
物业代表(物业代表账号,密码,代表业务,姓名,性别,生日,住址,电话)
除此之外,虽然上述功能没有用到,但还应该增加关于业主所有财产的详细信息,如车位,地下室等。

业主财产(业主账号,房产地址,房产面积,地下室地址,地下室面积,车库地址,车库面积,车位地址)
还用增加维修人员的相关信息:
维修人员(维修人员编号,姓名,性别,生日,电话,住址)
分析发现水电业务的列大体相似,因此也可以合并在一起:
水电业务(业务代号,业主账号,当月用电量,总用电量,缴纳费用,缴费时间)
4.2 用户子模式 给业主看的缴费账单可以用外模式可以用试图来实现。

在‘业主’和‘水业务’上建立‘水账单’试图:
水账单(业主账号,业主姓名,月用水量,缴纳金额,缴纳日期)
在‘业主’和‘电业务’上建立‘电账单’试图:
水账单(业主账号,业主姓名,月用电量,缴纳金额,缴纳日期)
在维修业务上建立维修账单视图:
维修账单(维修编号,业主账号,开始时间,结束时间,缴纳费用)
4.3 外键约束 根据各表功能和存储结构的分析,我们可以建立以下外键约束:
4.4 数据库安全性 4.4.1 角色 根据本系统的功能,可以创建三个角色,来实现数据库权限的分配,分别是管理员角色,用户角色和物业代表角色。

4.4.2 权限 根据用户角色不同,为其分配不同的权限如下:
管理员:对表tbl_管理员,tbl_业主,tbl_业主财产拥有全部权限。

业主:对表tbl_业主,tbl_业主财产拥有查询权限,对表tbl_维修业 拥有查询,修改和删除的权限。

物业代表:对表tbl_水电业务拥有查询,修改和添加的权限,对表 tbl_维修业务拥有全部权限,对表tbl_维修人员有查询权限, 对表bl_水电业务管理有查询和修改的权限。

5 物理设计 5.1 存储设计 5.1.1 表格建立 根据关系模式,确定各属性的相关类型,建立各个表格:
Tbl_管理员表格:
Tbl_水电业务:
Tbl_水电业务管理:
Tbl_维修人员 Tbl_维修业务:
Tbl_物业代表:
Tbl_业主:
Tbl_业主财产:
5.2 索引设计 根据性能的需要决定是否建立索引,为了提高查询效率,对每个表格按照其主键建立相应的索引:如对于tbl_业主表格,可以根据其业主账号建立相应的索引“业主账号”,这样可以大大提高日后的查询效率,类似的,也分别对tbl_管理员,tbl_维修人员,tbl_维修业务,tbl_物业代表建立了相应的索引,其中由于tbl_维修业务的表由两个属性作为主键,可以对其组合作为索引条件。具体SQL语句会在数据库实现章节详细给出。  6 数据库的实现 6.1 基本表 以表tbl_管理员为例,SQL实现语句如下:
create table tbl_管理员 (管理员账号 primary key nchar(10), 密码 nvarchar(20), 姓名 nvarchar(15), 生日 date, 性别 bit, 电话 nvarchar(15), 住址 nvarchar(50) ); 本系统至少需要建立以下基本表:
6.2 视图 以生成水费账单为例,实现创建视图的SQL语句如下: create view 水账单视图(业主账号,姓名,用量,缴纳时间,缴纳费用) as select tbl_业主.业主账号,tbl_业主.姓名,tbl_水电业务.未缴费用量,tbl_水电业务.缴费时间,tbl_水电业务.缴纳费用 from tbl_业主,tbl_水电业务 where tbl_业主.业主账号=tbl_水电业务.业主账号 and tbl_水电业务.业务代号='01'; 本系统至少需要生成的视图如下:
6.3 角色 正文 实现角色创建的SQL语句如下:
create role 管理员; create role 业主; create role 物业代表; 创建成功后数据库系统截图:
6.4 索引 实现建立索引的SQL语句如下:
create unique index 管理员账号 on tbl_管理员(管理员账号); create unique index 业主账号 on tbl_业主(业主账号); create unique index 业主账号 on tbl_业主财产(业主账号); create unique index 维修账号 on tbl_维修业务(维修编号,业主账号); create unique index 维修人员编号 on tbl_维修人员(维修人员编号); create unique index 物业代表账号 on tbl_物业代表(物业代表账号); 索引建立完成后的部分截图如下:
6.5 触发器 在系统的实际应用中,每个表的增删改查都会受到其他表的限制,比如在本系统中,在对tbl_业主进行增加操作的同时也要对tbl_业主操作进行相应的增加操作,同理,当删除一个业主时,相应的tbl_业主财产中也应该删除该业主的全部信息。

实现该功能的触发器创建SQL语句如下:
插入触发器:
ALTER trigger [dbo].[insert_业主] on [dbo].[tbl_业主] after insert as begin insert into tbl_业主财产(业主账号) select(业主账号)from inserted; end; 建成后的数据库截图:

6.6 条件约束 根据每个属性的具体内容,为其增加必要的条件约束,如给每个存放人员信息的表格,增加生日属性的条件约束,是它更加符合实际情况。

实现条件约束的SQL语句如下:
alter table tbl_管理员 add constraint c1 check(生日 between '1960-01-01' and '1990-01-01'); 7 测试方案 7.1 插入操作 以插入新业主为例:
insert into tbl_业主(业主账号,密码,姓名,性别,生日,电话,住址) values('2000000006','123','薛XX',1,'1988-12-29',1364791XXXX,'XX小区号');

如上图的执行结果截图,由于有触发器限制,在向表tbl_业主添加新记录的同时,系统会自动的向表tbl_添加相应的业主信息 7.2 更新操作 7.2.1 对人员信息表的更新 update tbl_业主 set 住址='鼎舜小区22号楼6单元401',业主账号 ='300000006' where 姓名='薛宝钗'; 7.2.2 用户对维修业务进行更新 7.2.3 生成水电业务账单 7.3 删除操作 删除业主信息:
由于外键约束限制,在删除tbl_业主表的记录时会级联的删除在tbl_业主财产表上的相应记录。

7.4 查询操作 7.4.1 查询基本人员信息 7.4.2 查询账单 业主可通过视图查询水电业务账单,以水费账单为例:
8 总结 通过本次图书管理系统的设计,我对数据库这门课程有了更深刻的认识,同时,对SQL Server的功能更加了解,对其使用也更加熟练。在设计的过程中,我发现了很多问题也学会了很多东西。我发现我平时所积累的知识是相当有限的,以前所掌握的知识真的是纸上谈兵,真正上机实践的时候才发现有很多之前根本想不到的问题。比如关于外键约束和约束条件的问题,要考虑到很多因素,这些因素不只来源于一张表,而是很多张表之间的联系,要做到面面俱到真的很难,更难的还有触发器和视图的创建,要做到既要考虑其功能有要考虑其实现的难易程度。

随着这些问题的逐一解决,对我的数据库开发能力有了很大的提高,也增加了我对数据库这门课程的浓厚兴趣。让我意识到,我对数据库的了解还是停留在表面的,虽然这次课程设计结束了,但我还应该对数据库开发进行更进一步的探索。

自评成绩:90分。

参考文献 [1] B. Liu. Web Data Mining: Exploring hyperlinks, contents and usage data[M]. Springer, 2006. [2] 姚天昉, 程希文, 徐飞玉, 等. 文本意见挖掘综述[J]. 中文信息学报, 2008, 22(3): 71-80. ji南大学

推荐访问:

猜你喜欢