Advertisement

《数据库应用系统实践》2.0版本 — 4- 航班管理系统

阅读量:

系列文章

《数据库应用系统实践》2.0版本 — 4- 航班管理系统

👇🏻实践要求👇🏻

在这里插入图片描述
在这里插入图片描述

一个基于Java语言及SQLServer数据库设计的航班管理系统

1.对课题展开需求调研与分析工作,并完成系统功能图及功能模块设计;随后完成了阶段性开发任务。

2.根据课题要求绘制概念模型(即ER图),并确保其中包含至少5个实体。

3.基于设计的ER模型构建逻辑模型(关系模式),并结合DBMS特点完成了系统的逻辑结构设计。

4.编写并实现创建数据库及数据表相关的SQL语句(含主键、外键定义及约束条件),并对各表新增至少5条测试用例进行插入操作;同时实现了数据更新、删除操作以及视图的创建;必要时还实现了存储过程与触发器功能模块。

5.在整个应用程序开发过程中负责编码、调试、测试及问题修复等工作;推荐使用Java作为编程语言,并支持选择IDEA或Eclipse等开发工具;系统中实现了数据库连接建立、GUI界面开发以及增删查改基本操作。

包括有 Java源代码+数据库源码+实践报告+部署教程

在这里插入图片描述

文章目录

  • 系列文章

  • 一、需求分析

    • 1、系统背景
    • 2、 系统功能结构
  • 二、概念模型设计

    • 1.基本要素(符号介绍说明)
    • 2.ER图
  • 第三部分 逻辑模型设计

    1. ER模式向关系模式转换规则
    1. 转换后的数据库模式
    1. 数据库模式优化(达到BCNF)
  • 四 物理设计

      1. 生成DB所需的所有SQL语句及其相关图像
        1. 构建完整数据模型所需的全部表结构及验证报告(需包含完整性性验证)
  • 五、数据库实施

    • 第一条:复制粘贴所生成的数据库关系图
      • 第二条:执行数据录入操作
      • 第三条:进行数据处理工作(涉及全部十个项目,在篇幅范围内仅选择前五个项目进行详细说明)

六、基于数据库的应用系统开发

1.展示界面的图像文件

  • 七、小组分工明细
  • 八、开发环境说明
  • 九、总结
  • 十、参考文献
  • 十一、获取源码

一、需求分析

1、系统背景

开发一个航班管理系统是信息技术领域的一项重要研究课题。该系统旨在高效地管理航班相关信息,涵盖管理员职责范围内的全面管理和日常维护工作,同时为普通用户提供了包括航班查询、订票以及个人信息管理等功能。此外,该系统还整合了航空公司业务,使其能够实时更新 flights数据并完成相关票务操作;与此同时,各机场作为 flight运行的核心节点,其位置和服务特征对于保障 flight运营具有重要意义;而订票模块则详细记录了每位用户的 flight预订情况,包括乘客身份信息及预订时间等关键要素。通过构建这样一个系统平台,不仅能够实现 flight 信息的有效集中管理和快速检索功能,还能显著提升航空公司的运营效率和服务质量,从而为整个航空运输行业的信息化发展提供强有力的技术支撑与保障措施

2、 系统功能结构

(1)功能结构图

在这里插入图片描述

(2)模块说明
包含管理员信息、用户信息、航空公司信息、航班信息、机场信息。

二、概念模型设计

1.基本要素(符号介绍说明)

① 矩形用于表示实体。
② 椭圆形用于表示属性(即实体的属性)。
③ 菱形用于表示联系。
④ 此连线是一条无方向性的线段,并分为两类:
一类是连接实体与属性(例如矩形与椭圆形之间的连线);
另一类是连接实体与联系名(例如矩形与菱形之间的连线)。
在连结实体及其名称(如矩形及其名称)时需标绘其关联类型,
例如采用1:1、1:n、m:n等方式标记:
一对一关系用1:n标记,
一对多关系用1: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) NOT NULL,
    密码 NVARCHAR(50) NOT NULL,
    姓名 NVARCHAR(100),
    联系方式 NVARCHAR(50)
    );
    
    
    -- 用户表
    CREATE TABLE 用户 (
    用户ID INT PRIMARY KEY,
    用户名 NVARCHAR(50) NOT NULL,
    密码 NVARCHAR(50) NOT NULL,
    姓名 NVARCHAR(100),
    地址 NVARCHAR(200),
    	管理员ID INT,
    FOREIGN KEY (管理员ID) REFERENCES 管理员(管理员ID)
    );
    
    
    -- 航空公司表
    CREATE TABLE 航空公司 (
    航空公司ID INT PRIMARY KEY,
    名称 NVARCHAR(100) NOT NULL,
    国家 NVARCHAR(50),
    总部地址 NVARCHAR(200),
    联系电话 NVARCHAR(20)
    );
    
    -- 航班表
    CREATE TABLE 航班 (
    航班ID INT PRIMARY KEY,
    航空公司ID INT,
    出发地 NVARCHAR(100) NOT NULL,
    目的地 NVARCHAR(100) NOT NULL,
    出发时间 DATETIME,
    到达时间 DATETIME,
    票价 DECIMAL(10, 2),
    FOREIGN KEY (航空公司ID) REFERENCES 航空公司(航空公司ID)
    );
    
    -- 机场表
    CREATE TABLE 机场 (
    机场ID INT PRIMARY KEY,
    名称 NVARCHAR(100) NOT NULL,
    城市 NVARCHAR(100),
    国家 NVARCHAR(50)
    );
    
    -- 订票表
    CREATE TABLE 订票 (
    订单ID INT PRIMARY KEY,
    用户ID INT,
    航班ID INT,
    订票时间 DATETIME,
    乘客姓名 NVARCHAR(100),
    乘客身份证号 NVARCHAR(50),
    FOREIGN KEY (用户ID) REFERENCES 用户(用户ID),
    FOREIGN KEY (航班ID) REFERENCES 航班(航班ID)
    );
    
    
    c
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-12/qk5BD7WFIpwhdGARnT6Z4gojxJEU.png)

五、数据库实施

1.粘贴所创建的数据库关系图

在这里插入图片描述

2.数据录入

复制代码
    -- 管理员表
    INSERT INTO 管理员 (管理员ID, 用户名, 密码, 姓名, 联系方式) 
    VALUES 
    (1, 'admin1', 'password1', '张三', '13812345678'),
    (2, 'admin2', 'password2', '李四', '13987654321'),
    (3, 'admin3', 'password3', '王五', '13611112222'),
    (4, 'admin4', 'password4', '赵六', '13744445555'),
    (5, 'admin5', 'password5', '刘七', '13566667777');
    
    -- 用户表
    INSERT INTO 用户 (用户ID, 用户名, 密码, 姓名, 地址, 管理员ID) 
    VALUES 
    (1, 'user1', 'password1', '张小明', '北京市朝阳区', 1),
    (2, 'user2', 'password2', '李小红', '上海市浦东新区', 2),
    (3, 'user3', 'password3', '王小强', '广州市天河区', 3),
    (4, 'user4', 'password4', '赵小丽', '深圳市南山区', 4),
    (5, 'user5', 'password5', '刘小刚', '成都市武侯区', 5);
    
    -- 航空公司表
    INSERT INTO 航空公司 (航空公司ID, 名称, 国家, 总部地址, 联系电话) 
    VALUES 
    (1, '中国国际航空公司', '中国', '北京市海淀区', '95583'),
    (2, '中国东方航空公司', '中国', '上海市浦东新区', '95530'),
    (3, '中国南方航空公司', '中国', '广州市白云区', '95539'),
    (4, '深圳航空公司', '中国', '深圳市宝安区', '40088-95080'),
    (5, '成都航空公司', '中国', '成都市武侯区', '028-88888888');
    
    -- 航班表
    INSERT INTO 航班 (航班ID, 航空公司ID, 出发地, 目的地, 出发时间, 到达时间, 票价) 
    VALUES 
    (1, 1, '北京', '上海', '2024-07-10 08:00:00', '2024-07-10 10:00:00', 1200.50),
    (2, 2, '上海', '广州', '2024-07-11 09:30:00', '2024-07-11 11:30:00', 800.75),
    (3, 3, '广州', '深圳', '2024-07-12 12:00:00', '2024-07-12 13:00:00', 400.25),
    (4, 4, '深圳', '成都', '2024-07-13 15:00:00', '2024-07-13 17:30:00', 900.00),
    (5, 5, '成都', '北京', '2024-07-14 18:30:00', '2024-07-14 21:00:00', 1500.00);
    
    -- 机场表
    INSERT INTO 机场 (机场ID, 名称, 城市, 国家) 
    VALUES 
    (1, '北京首都国际机场', '北京', '中国'),
    (2, '上海浦东国际机场', '上海', '中国'),
    (3, '广州白云国际机场', '广州', '中国'),
    (4, '深圳宝安国际机场', '深圳', '中国'),
    (5, '成都双流国际机场', '成都', '中国');
    
    -- 订票表
    INSERT INTO 订票 (订单ID, 用户ID, 航班ID, 订票时间, 乘客姓名, 乘客身份证号) 
    VALUES 
    (1, 1, 1, '2024-07-09 10:00:00', '张三', '110101199001011234'),
    (2, 2, 2, '2024-07-09 11:30:00', '李四', '120202198002022345'),
    (3, 3, 3, '2024-07-09 13:00:00', '王五', '130303197003033456'),
    (4, 4, 4, '2024-07-09 14:30:00', '赵六', '140404196004044567'),
    (5, 5, 5, '2024-07-09 16:00:00', '刘七', '150505195005055678');
    
    
    c
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-12/dJisNkEfH10h4MZx8urwCRgFeQYv.png)

3.数据处理(包含完整十个,篇幅限制,仅列举前5个)

(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.具体实现代码

复制代码
    if (jr3.isSelected())// 
    			{
    				String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    				String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=航班管理系统";
    				String userName = "sa";
    				String userPwd = "1";
    				userId = null; // 管理员
    				try {
    					Class.forName(driverName);
    				} catch (Exception e1) {
    					e1.printStackTrace();
    				}
    				try {
    					Connection con = DriverManager.getConnection(dbURL, userName, userPwd);
    					Statement s = con.createStatement();
    					String r1 = "select * from 管理员  where 管理员ID=? and 密码=?";
    					PreparedStatement P = con.prepareStatement(r1);
    					P.setString(1, jtf1.getText());
    					P.setString(2, jtf2.getText());
    					ResultSet rs = P.executeQuery();
    					if (rs.next()) {
    						userId = rs.getString("管理员ID").trim();
    						new Custom(userId);
    						jfrm.setVisible(false);
    					}
    
    					else {
    						JOptionPane.showMessageDialog(null, "管理员ID或密码不正确!");
    					}
    					s.close();
    					con.close();
    				} catch (Exception e1) {
    					e1.printStackTrace();	
    
    
    c
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-12/K5kQ0WOzNEdIjUVS7avbRGBPDH13.png)

七、小组分工明细

注:每组最多由1至2人组成;对于由两人组成的小组,请详细说明每名成员的具体职责分工。此外,请明确指出每位成员将承担哪些具体工作内容,并确保每位成员都参与了数据库设计并完成了Java GUI项目的编码工作。

学号-姓名 身份 贡献比例 完成工作
组长 %
组员 %

八、开发环境说明

名录 内容
操作系统 Win11
Java GUI开发工具 Eclipse/Idea
JDK版本 1.8
数据库及版本 SQL Server 2014或以上均可
JDBC版本 8.2

九、总结

200字左右的小结,包括
(1)完成情况和不足之处
(2)心得体会
(3)建议

完成情况和不足之处:
这个数据库设计包括了管理员、用户、航空公司、航班、机场和订票等表格,基本满足了航空管理系统的基本需求。管理员和用户表之间建立了外键关系,确保了用户可以被正确关联到其管理员。航班表与航空公司表和机场表之间的外键关联也有助于维护数据的一致性。订票表记录了具体的订单信息,包括乘客姓名和身份证号,为航班订票流程提供了必要支持。
然而,数据库设计中还存在一些潜在的改进空间。例如,管理员表和用户表的密码字段使用了明文存储,安全性不足,建议考虑加密存储密码。此外,航班表中的出发时间和到达时间使用了DATETIME类型,虽然足够记录日期和时间,但在某些情况下可能需要考虑时区的处理。机场表的设计只涵盖了名称、城市和国家,可能需要进一步的扩展以包括更多详细信息或标识符。
心得体会:
通过这个数据库设计和数据插入的实践,我深刻体会到了合理的数据库设计对于应用系统的重要性。良好的表结构设计和适当的数据类型选择能够提高数据管理的效率和可靠性。在实践中,需要权衡不同表之间的关系,以及如何通过外键和索引来优化数据查询和操作的性能。
建议:
为了进一步完善这个数据库,建议首先增强安全性措施,尤其是对于密码的存储和访问控制。其次,考虑增加对航班时间的时区支持,以适应跨时区操作的需求。在数据表设计方面,可以进一步考虑是否需要引入更多的标识符或属性,以支持系统功能的扩展和更复杂的查询需求。最后,定期进行数据库性能优化和备份,以确保系统的稳定性和可靠性。

十、参考文献

[1] 张江霞、宁成军以VB6.O和SQLServer2OOO为基础完成高校学生信息系统的构建与应用[J].机械管理开发.2OOS(6):2.DOI:1O.3969/j.issn.1OO3-773X.2OOS.O6-O48
[2] 张江霞、宁成军基于VB技术框架下的学校学生成绩管理系统设计实践[J].机械管理开发.2OOS
[3] 李丽宏、徐文举以微软数据库技术支撑煤炭产量统计分析方法研究与实践[J].太原理工大学学报.2OO3卷第4期:4

十一、获取源码

大家 点赞、收藏、关注、评论 啦、查看👇🏻 获取联系方式 👇🏻

文章👇🏻下方名片👇🏻 联系我即可~

全部评论 (0)

还没有任何评论哟~