《数据库应用系统实践》2.0版本 — 25- 物业管理系统
系列文章
《数据库应用系统实践》2.0版本 — 25- 物业管理系统
👇🏻实践要求👇🏻


该系统采用Java语言与SQLServer数据库平台进行物业管理系统的开发与实现。
本项目主要分为四个主要阶段开展工作:
第一阶段:完成了课题需求调研分析,并绘制了完整的功能架构图及模块划分方案;并实现了相应阶段的开发工作。
第二阶段:构建了概念模型框架(即ER图),确保其包含至少五个核心实体。
第三阶段:依据所设计的概念模型完成了关系数据库模式设计,并实现了相应的逻辑数据结构。
第四阶段:提供了完整的数据初始化指令集(包括创建数据库、数据表定义及约束条件设置);并实现了必要的数据操作功能(如插入记录、更新数据及删除操作)。同时按照需求设计了专门的数据操作过程与触发机制;最终完成了本阶段的技术攻关。
第五阶段:完成了系统功能的全面开发工作;其中包含Java代码编写、程序运行环境配置以及相关功能模块的调试优化等环节;确保系统能够正常完成各项管理任务包括但不局限于数据连接建立与管理以及图形界面交互操作。
包括有 Java源代码+数据库源码+实践报告+部署教程

文章目录
-
系列文章
-
一、需求分析
-
- 1、系统背景
- 2、 系统功能结构
-
二、概念模型设计
-
- 1.基本要素(符号介绍说明)
- 2.ER图
第三章 逻辑模型设计
-
- 第一条 ER模式向关系模式的转换规则
- 第二条 转换后的关系模式
- 第三条 优化至第三范式(达到3NF)
- 第一条 ER模式向关系模式的转换规则
-
四、物理设计
-
- 1.生成数据库所需的SQL语句及操作截屏
- 2.生成完整数据库架构所需的所有表及相应的SQL语句和操作截屏(包含完整性约束)
-
-
第五章 数据库实现
- (1)请生成并粘贴所构建的数据库关系图。
- (2)完成数据录入操作。
- (3)由于篇幅限制而省略了数据处理步骤。
-
六、数据库应用系统实现
-
(一)相关界面图片
- (二)与数据库建立连接的程序代码
- (三)详细的具体实现代码
-
七、小组分工明细
-
八、开发环境说明
-
九、总结
-
十、参考文献
-
十一、获取源码
-
一、需求分析
1、系统背景
本项目旨在开发基于SQL Server平台的一个物业管理系统
2、 系统功能结构
(1)功能结构图

(2)模块说明
模块包含物业员工、物业客户、物业费用、物业维修、物业公告。
二、概念模型设计
1.基本要素(符号介绍说明)
① 矩形代表实体。
② 椭圆代表属性。
③ 菱形代表关系。
④ 连线分为两类:
一类是连接实体与属性(例如矩形与椭圆形之间),另一类是连接实体与关系名(例如矩形与菱形之间)。
在标注关系类型时,请遵循约定俗成的方式:
一对多采用1:n,
多对多采用m:n,
当涉及多个关系时,则使用m:n:p:q的形式。
2.ER图

三、逻辑模型设计
1.ER模型向关系模型转换规则
(1)将实体独立化为单独的关系模块。
(2)一对一连接转译成关系模块的方式有两种:
一种是把连接转译成独立于模块之外的形式;
另一种是把其中一个模块的关键字段整合到另一个模块中作为关联字段。
(3)一对多连接转译成关系模块的方式有两种:
首先可以选择把连接转译成独立于模块之外的形式;
其次也可以选择把多个模块的关键字段合并到单一的主模块中,
并在该主模块中设置相应的外键字段。
2.转换后的关系模型
员工信息(员工编号、名字、职级、联系电话、入厂时间)
客户信息(客户编号、名字、单元编号、入住电话、入住时间)
费用记录(费用编号、服务类型、金额、支付时间、客户编号)
维修记录(维修编号、维修内容、金额、完成时间、客户编号)
通知信息(通知编号、标题名称、详细说明事项、“发布单位/部门/科室/个人签名、“发布日期、“发布人签名)
3.关系模型优化(达到3NF)
以上要素都属于第三范式
四、物理设计
1.创建数据库的SQL语句或截图
CREATE DATABASE 物业管理系统
c
2.创建所有表的SQL语句或截图(包含完整性约束)
-- 物业员工表
CREATE TABLE 物业员工 (
员工ID INT PRIMARY KEY,
姓名 NVARCHAR(50),
职位 NVARCHAR(50),
手机号 NVARCHAR(20),
入职日期 DATE
);
-- 物业客户表
CREATE TABLE 物业客户 (
客户ID INT PRIMARY KEY,
姓名 NVARCHAR(50),
单元号 NVARCHAR(10),
联系电话 NVARCHAR(20),
入住日期 DATE
);
-- 物业费用表
CREATE TABLE 物业费用 (
费用ID INT PRIMARY KEY,
费用类型 NVARCHAR(50),
金额 DECIMAL(10, 2),
缴纳日期 DATE,
客户ID INT REFERENCES 物业客户(客户ID)
);
-- 物业维修表
CREATE TABLE 物业维修 (
维修ID INT PRIMARY KEY,
维修项目 NVARCHAR(100),
维修费用 DECIMAL(10, 2),
维修日期 DATE,
客户ID INT REFERENCES 物业客户(客户ID)
);
-- 物业公告表
CREATE TABLE 物业公告 (
公告ID INT PRIMARY KEY,
标题 NVARCHAR(100),
内容 NVARCHAR(MAX),
发布日期 DATE,
发布人 NVARCHAR(50)
);
c

五、数据库实施
1.粘贴所创建的数据库关系图

2.数据录入
-- 物业员工表
INSERT INTO 物业员工 (员工ID, 姓名, 职位, 手机号, 入职日期)
VALUES
(1, N'张三', N'物业经理', N'13912345678', '2020-01-15'),
(2, N'李四', N'物业管理员', N'13698765432', '2020-03-20'),
(3, N'王五', N'保洁员', N'13811112222', '2020-05-10'),
(4, N'赵六', N'维修工', N'13544443333', '2021-02-18'),
(5, N'刘七', N'安保员', N'13755556666', '2021-04-25');
-- 物业客户表
INSERT INTO 物业客户 (客户ID, 姓名, 单元号, 联系电话, 入住日期)
VALUES
(1, N'王小明', N'A1001', N'13800001111', '2019-07-10'),
(2, N'李小红', N'B2002', N'13911112222', '2020-01-05'),
(3, N'张大力', N'C3003', N'13622223333', '2021-03-15'),
(4, N'刘小芳', N'D4004', N'13733334444', '2021-06-20'),
(5, N'赵小刚', N'E5005', N'13544445555', '2022-02-28');
-- 物业费用表
INSERT INTO 物业费用 (费用ID, 费用类型, 金额, 缴纳日期, 客户ID)
VALUES
(1, N'物业管理费', 500.00, '2022-01-10', 1),
(2, N'停车费', 100.00, '2022-01-15', 2),
(3, N'水费', 80.50, '2022-02-01', 3),
(4, N'电费', 120.30, '2022-02-05', 4),
(5, N'清洁费', 200.00, '2022-03-03', 5);
-- 物业维修表
INSERT INTO 物业维修 (维修ID, 维修项目, 维修费用, 维修日期, 客户ID)
VALUES
(1, N'水管堵塞', 300.00, '2022-01-20', 1),
(2, N'电路故障', 250.00, '2022-02-25', 2),
(3, N'门锁更换', 180.50, '2022-03-10', 3),
(4, N'空调维修', 350.20, '2022-04-15', 4),
(5, N'窗户修补', 150.00, '2022-05-20', 5);
-- 物业公告表
INSERT INTO 物业公告 (公告ID, 标题, 内容, 发布日期, 发布人)
VALUES
(1, N'小区停水通知', N'由于设备检修,预计本周五停水一天,请居民相互转告。', '2022-01-05', N'物业办公室'),
(2, N'停车场整修通知', N'停车场将进行重新铺设地面,需临时关闭,请车主提前做好停车安排。', '2022-02-15', N'物业管理处'),
(3, N'小区电力设施升级', N'为提升小区电力设施安全性和效率,计划进行升级改造,具体施工时间将另行通知。', '2022-03-20', N'电力维护部门'),
(4, N'垃圾分类新政通知', N'从本月起,小区将全面推行垃圾分类处理,详细分类标准请查阅小区公示栏。', '2022-04-10', N'环保委员会'),
(5, N'春节放假安排', N'春节期间物业办公室将放假,紧急联系电话:13888888888。祝大家新年快乐!', '2022-12-20', N'物业管理部');
c

3.数据处理(篇幅限制,此部分省略)
(1)至少包括2张表的等值连接语句;
(2)创建视图的语句;
(3)更新数据语句;
(4)删除数据语句;
(5)包含聚集函数的查询语句;
(6)包含条件过滤的查询语句;
(7)修改表结构语句;
(8)用T-SQL语句写出一个对数据表处理的人机交互程序;
(9)编写一个触发器;
(10)编写一个存储过程;
六、数据库应用系统实现
1.相关界面截图
物业客户登录:

信息查询:



物业员工登录:

信息查询:



数据增加:


数据修改:


数据删除:


2.和数据库连接的程序语句
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=物业管理系统";
String userName = "sa";
String userPwd = "1";
c
3.具体实现代码
xg.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn =DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName =物业管理系统","sa","1");
String sql ="update 物业费用 set 费用ID='"+d1.getText()+"',费用类型='"+d2.getText()+"',金额='"+d3.getText()+"',缴纳日期='"+d4.getText( )+"',客户ID='"+d5.getText( )+"' where 费用ID='"+d1.getText()+"'";
PreparedStatement pstm = conn.prepareStatement(sql);//执行查询
pstm.executeUpdate();
JOptionPane.showMessageDialog(frm,"修改成功");
}catch(ClassNotFoundException cnfe) {
JOptionPane.showMessageDialog(null, "数据源错误" ,"错误",JOptionPane.ERROR_MESSAGE);
}
catch(SQLException sqle) {
JOptionPane.showMessageDialog(null, "数据操作错误" ,"错误",JOptionPane.ERROR_MESSAGE);
}
}});
lr.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn =DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName =物业管理系统","sa","1");//建立查询条件
String sql = "insert into 物业费用 (费用ID,费用类型,金额,缴纳日期,客户ID) values ('" +d1.getText()+"','"+d2.getText()+"','"+d3.getText()+"','"+d4.getText()+"', '"+d5.getText()+"')";
PreparedStatement pstm =conn.prepareStatement(sql);//执行查询
pstm.executeUpdate();
JOptionPane.showMessageDialog(frm, "添加成功");}
catch(ClassNotFoundException cnfe) {
JOptionPane.showMessageDialog(null,"数据源错误","错误",JOptionPane.ERROR_MESSAGE);
}
catch(SQLException sqle) {
JOptionPane.showMessageDialog(null,"数据操作错误","错误",JOptionPane.ERROR_MESSAGE);
}
}});
c

七、小组分工明细
注:两人一组,在课程安排上会采用小组协作的形式进行学习。如果采用两人组成,则需明确各小组成员的具体分工细节。所有小组成员均需参与数据库设计和Java GUI项目的编码工作,并在课程报告中各部分需由小组成员自行协商分工。
| 学号-姓名 | 身份 | 贡献比例 | 完成工作 |
|---|---|---|---|
| 组长 | % | ||
| 组员 | % |
八、开发环境说明
| 名录 | 内容 |
|---|---|
| 操作系统 | Win11 |
| Java GUI开发工具 | Eclipse/Idea |
| JDK版本 | 1.8 |
| 数据库及版本 | SQL Server 2014或以上均可 |
| JDBC版本 | 8.2 |
九、总结
200字左右的小结,包括
(1)完成情况和不足之处
(2)心得体会
(3)建议
期待能够获得更多的实践机会并不断提升自己的专业技能水平。”
十、参考文献
[1] 韩芝侠、王军平以SQL Server为基础开发了垃圾收费信息管理系统的应用,并在《科学技术与工程》期刊上详细阐述了这一系统的设计与构建过程。
[2] 杨志在《金融科技时代》期刊上详细探讨了Sql Server数据库管理工具的开发。
[3] 张洪吉、李绪平、罗勇等利用ArcSDE和SQL Server构建新农村建设数据库的应用,并在《安徽农业科学》期刊上进行了详细说明。
十一、获取源码
大家 点赞、收藏、关注、评论 啦、查看👇🏻 获取联系方式 👇🏻
文章👇🏻下方名片👇🏻 联系我即可~
