diff --git a/Assignments/Assignment6/source/.$E-R图.drawio.bkp b/Assignments/Assignment6/source/.$E-R图.drawio.bkp new file mode 100644 index 0000000..a1df544 --- /dev/null +++ b/Assignments/Assignment6/source/.$E-R图.drawio.bkp @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Assignments/Assignment6/source/.$数据结构类图.drawio.bkp b/Assignments/Assignment6/source/.$数据结构类图.drawio.bkp new file mode 100644 index 0000000..7a35159 --- /dev/null +++ b/Assignments/Assignment6/source/.$数据结构类图.drawio.bkp @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Assignments/Assignment6/source/.$泳道图.drawio.bkp b/Assignments/Assignment6/source/.$泳道图.drawio.bkp new file mode 100644 index 0000000..8419ecf --- /dev/null +++ b/Assignments/Assignment6/source/.$泳道图.drawio.bkp @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Assignments/Assignment6/source/E-R图.drawio b/Assignments/Assignment6/source/E-R图.drawio new file mode 100644 index 0000000..b78cf06 --- /dev/null +++ b/Assignments/Assignment6/source/E-R图.drawio @@ -0,0 +1,280 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Assignments/Assignment6/source/images/7.png b/Assignments/Assignment6/source/images/7.png new file mode 100644 index 0000000..27cdeae Binary files /dev/null and b/Assignments/Assignment6/source/images/7.png differ diff --git a/Assignments/Assignment6/source/images/8.png b/Assignments/Assignment6/source/images/8.png new file mode 100644 index 0000000..664f57b Binary files /dev/null and b/Assignments/Assignment6/source/images/8.png differ diff --git a/Assignments/Assignment6/source/images/E-R图.drawio.svg b/Assignments/Assignment6/source/images/E-R图.drawio.svg new file mode 100644 index 0000000..4f59e6c --- /dev/null +++ b/Assignments/Assignment6/source/images/E-R图.drawio.svg @@ -0,0 +1,4 @@ + + + +
1
Passenger
ID
Name
Phone Number
1
User
Phone Number
Username
Password
1
Airport
ID
Name
City
Flight
ID
Airline
Departure Time
Business Class Seats Remaining
First Class Seats Remaining
Arrival Time
First Class Price
Economy Class Seats Remaining
Business Class Price
Economy Class Price
Status
1
Order
ID
Paid
Order Time
n
Ticket
ID
Price
Seat Class
1
n
Departure
n
Arrival
1
in
n
include
n
book
1
hold
\ No newline at end of file diff --git a/Assignments/Assignment6/source/images/数据流图.drawio.svg b/Assignments/Assignment6/source/images/数据流图.drawio.svg new file mode 100644 index 0000000..4c54a61 --- /dev/null +++ b/Assignments/Assignment6/source/images/数据流图.drawio.svg @@ -0,0 +1,4 @@ + + + +
用户系统
订单
机票
用户
用户系统
订单
创建订单
用户
机票
修改订单状态
支付
\ No newline at end of file diff --git a/Assignments/Assignment6/source/images/数据结构类图.drawio.svg b/Assignments/Assignment6/source/images/数据结构类图.drawio.svg new file mode 100644 index 0000000..ca268bc --- /dev/null +++ b/Assignments/Assignment6/source/images/数据结构类图.drawio.svg @@ -0,0 +1,4 @@ + + + +PassengerIDNamePhone NumberUserPhone NumberUsernamePasswordAirportIDNameCity
book tickets for
n
m
takes off or lands on
n
m
FlightIDAirlineDeparture AirportArrival AirportDeparture TimeArrival TimeFirst Class Seats RemainingBusiness Class Seats RemainingEconomy Class Seats RemainingFirst Class PriceBusiness Class PriceEconomy Class PriceStatus
makes
n
1
OrderIDOrder TimePaidUser Phone Number
belongs to
1
n
TicketIDPriceFlightIDSeat ClassPassengerIDOrderID
includes
1
n
of
1
n
\ No newline at end of file diff --git a/Assignments/Assignment6/source/images/泳道图.drawio.svg b/Assignments/Assignment6/source/images/泳道图.drawio.svg new file mode 100644 index 0000000..f479ddf --- /dev/null +++ b/Assignments/Assignment6/source/images/泳道图.drawio.svg @@ -0,0 +1,4 @@ + + + +
Pool
管理员
用户
新建航班
登录
注册
查询航班
登录
查看订单
删除/确认订单
创建订单
\ No newline at end of file diff --git a/Assignments/Assignment6/source/images/用例图.drawio.svg b/Assignments/Assignment6/source/images/用例图.drawio.svg new file mode 100644 index 0000000..f7d4ec3 --- /dev/null +++ b/Assignments/Assignment6/source/images/用例图.drawio.svg @@ -0,0 +1,4 @@ + + + +
航班订票系统
用户
注册
修改用户信息
删除账户
<<include>>
<<include>>
修改密码
<<include>>
修改手机号
登录
<<include>>
修改用户名
查询航班信息
为乘客订票
支付订单
取消订单
维护订单信息
<<include>>
<<include>>
登录
修改航班信息
<<include>>
删除单次航班
<<include>>
修改单次航班信息
<<include>>
批量添加航班
管理员
\ No newline at end of file diff --git a/Assignments/Assignment6/source/作业6_21281280_柯劲帆.md b/Assignments/Assignment6/source/作业6_21281280_柯劲帆.md index eff4c40..92af1d5 100644 --- a/Assignments/Assignment6/source/作业6_21281280_柯劲帆.md +++ b/Assignments/Assignment6/source/作业6_21281280_柯劲帆.md @@ -29,24 +29,24 @@ > >将以上内容形成系统规划与可行性分析报告,找两位同学当业务专家帮你论证方案的可行性,并在报告上列出专家姓名、专家论证建议和结论。 -**12306系统规划与可行性分析报告** +**航空订票系统规划与可行性分析报告** -1. **系统名称** +1. 系统名称 - **12306铁路票务系统** + **飞行订票系统 (FlyBooking System)** -2. **组织架构图及相关业务部门** +2. 组织架构图及相关业务部门 - **组织架构图**: + **组织架构图:** ``` - 铁路运营公司 - ├── 铁路运营部门 - │ ├── 车次管理 - │ ├── 车站管理 + 航空公司 + ├── 运营部门 + │ ├── 航班管理 + │ ├── 机场管理 │ └── 票务管理 - ├── 系统中台 - │ ├── 用户管理 + ├── IT 部门 + │ ├── 系统开发 │ ├── 数据库管理 │ ├── 应用支持 │ └── 安全与合规 @@ -54,96 +54,81 @@ ├── 客服中心 └── 技术支持 ``` - **涉及的相关业务部门:** - - - **铁路运营部门**:负责车次数据和车站数据的添加、修改、维护。 - - **系统中台**:负责系统的整体控制、用户管理、数据库管理、应用支持、安全与合规。 + + - **运营部门**:负责航班和机场数据的管理、维护和更新。 + - **IT 部门**:负责系统的开发、维护和安全管理,确保系统稳定运行。 - **客户服务部门**:提供客户支持,解决用户在使用系统过程中遇到的问题。 -3. **用户使用系统开展业务的场景** +3. 用户使用系统开展业务的场景 **用户(旅客):** - 1. **注册**:用户在12306系统的注册页面填写个人信息,完成账号注册。 - 2. **查询车票**:登录后,用户在系统中输入出发地、目的地和日期,查询可用车次和座位信息。 - 3. **购买车票**:选定车次和座位后,用户通过系统完成支付,生成电子车票,并在行程日期前往车站使用电子车票乘车。 + 1. **注册**:用户在飞行订票系统的注册页面填写个人信息,完成账号注册。** + 2. **查询航班**:登录后,用户在系统中输入出发地、目的地和日期,查询可用航班和座位级别信息。 + 3. **预订机票**:选定航班和座位级别后,用户通过系统完成支付,生成电子机票,并在行程日期前往机场使用电子机票登机。 - **铁路运营部门员工:** + **运营部门员工:** 1. **登录**:员工使用分配的账号登录系统。 - 2. **添加车次和车站信息**:员工进入后台管理界面,添加或修改车次信息(如车次编号、发车时间、到达时间、座位类型等)和车站信息(如车站名称、所在省市等)。 + 2. **管理航班和机场信息**:员工进入后台管理界面,添加或修改航班信息(如航班编号、起飞时间、到达时间、座位级别等)和机场信息(如机场名称、所在国家和城市等)。 -4. **系统性能指标** +4. 系统性能指标 + - **并发用户数**:支持同时在线用户数量 50,000 人。 + - **总用户数**:系统应支持注册用户数量 10,000,000 人。 + - **核心业务响应时间**:查询航班和预订机票的响应时间应不超过 1 秒。 + - **数据更新频率**:航班和机场数据应能在5分钟内更新。 - - **并发用户数**:支持同时在线用户数量 100,000 人。 +5. 系统的战略地位 - - **总用户数**:系统应支持注册用户数量 100,000,000 人。 - - - **核心业务响应时间**:查询车票和购买车票的响应时间应不超过 2 秒。 - - - **数据更新频率**:车次和车站数据应能在10分钟内更新。 - - -5. **系统的战略地位** - - 12306系统作为铁路票务系统,战略地位体现在以下几个方面: - - - **客户服务**:提供便捷的在线购票服务,提高客户满意度,增强客户忠诚度。 - - - **运营效率**:通过电子化管理车次和车站数据,提高铁路运营的效率和准确性。 - - - **市场地位**:占据全国铁路票务的主要市场,增强在交通出行领域的市场竞争力。 + 飞行订票系统作为航空公司的核心业务系统,其战略地位体现在以下几个方面: + - **客户服务**:提供便捷的在线订票服务,提高客户满意度,增强客户忠诚度。 + - **运营效率**:通过电子化管理航班和机场数据,提高航空运营的效率和准确性。 + - **市场地位**:占据航空票务市场的主要份额,增强在交通出行领域的市场竞争力。 - **收益**:通过在线售票获得直接收益,同时通过提升运营效率间接节约成本。 -6. **投资和运营成本及收益分析** +6. 投资和运营成本及收益分析 **投资成本:** - **硬件投入**:服务器、存储设备、网络设备等。 - - **软件投入**:数据库软件、应用服务器软件、安全防护软件等。 - - **开发投入**:系统开发费用,包括需求分析、设计、编码、测试等。 - - **培训费用**:对员工的培训费用。 **运营成本:** - + - **维护成本**:系统的日常维护,包括硬件维护、软件升级、数据备份等。 - - **人力成本**:技术支持人员、客户服务人员、运营管理人员等的工资。 - - **安全成本**:系统安全防护,包括防火墙、入侵检测、防病毒等。 **收益分析:** - - - **直接收益**:车票销售收入。 - + + - **直接收益**:机票销售收入。 - **间接收益**:提高运营效率,降低人力成本和错误率,提升客户满意度和忠诚度。 - -7. **技术选型规划** - - **数据库**:选用高性能的关系型数据库,如 MySQL ,用于存储车次、车站、用户等数据。 +7. 技术选型规划 + - **数据库**:选用高性能的关系型数据库,如 MySQL、PostgreSQL,用于存储用户、机场、航班和机票数据。 - **应用服务器**:采用分布式架构,使用 Java EE、Spring Boot 等技术实现系统的业务逻辑。 - **前端技术**:使用 React、Vue.js 等框架开发用户界面,提供良好的用户体验。 + - **安全技术**:部署 SSL 证书,采用 OAuth 2.0 进行用户认证,使用防火墙、入侵检测系统等保护系统安全。 **业务专家论证** -专家姓名:阮蓬辉 +**专家姓名:李清林** -建议和结论: +**建议和结论:** -李明认为该系统的架构设计合理,能够有效支持铁路票务业务的需求。建议在技术选型上考虑使用云计算平台,如阿里云、AWS,以提高系统的扩展性和可靠性。此外,需加强用户数据保护,确保系统的合规性。 +李明认为该系统的架构设计合理,能够有效支持航空订票业务的需求。建议在技术选型上考虑使用云计算平台,如阿里云、AWS,以提高系统的扩展性和可靠性。此外,需加强用户数据保护,确保系统的合规性。 -专家姓名:李桦炅 +**专家姓名:李桦炅** -建议和结论**:** +**建议和结论:** 张华认为系统在性能指标上的设定符合大规模用户访问的需求,但需特别注意并发访问的处理,建议采用缓存技术(如 Redis)和消息队列(如 Kafka)来提升系统的响应速度和可靠性。同时,应建立完善的监控系统,实时监控系统性能和安全。 -通过上述论证,12306系统的规划和可行性分析得到了进一步确认和优化。 +通过上述论证,飞行订票系统的规划和可行性分析得到了进一步确认和优化。 @@ -161,7 +146,80 @@ > > 将以上内容形成系统的需求规格说明书。 +1. 用例图 + ![用例图.drawio](images\用例图.drawio.svg) + + 2. 泳道图 + + ![泳道图.drawio](images\泳道图.drawio.svg) + + 3. 数据结构 + + ![数据结构类图.drawio](images\数据结构类图.drawio.svg) + + **数据字典** + + - **Passengers 表** + - ID: 身份证号,主键,18位,正则验证。 + - Name: 姓名,必填,长度255。 + - Phone_number: 手机号,必填,长度11,正则验证。 + - **Users 表** + - Phone_number: 手机号,主键,长度11,正则验证。 + - Username: 用户名,必填,长度255。 + - Password: 密码,必填,长度255。 + - **Airports 表** + - ID: 机场三字码,主键,长度3。 + - Name: 机场名称,必填,唯一,长度255。 + - City: 城市,必填,长度255。 + - **Flights 表** + - ID: 航班编号,主键,长度255。 + - Airline: 航空公司,必填,长度255。 + - Departure_airport: 出发机场,必填,长度3,外键。 + - Arrival_airport: 到达机场,必填,长度3,外键。 + - Departure_time: 出发时间,必填,日期时间格式。 + - Arrival_time: 到达时间,必填,日期时间格式。 + - First_class_seats_remaining: 头等舱剩余座位数,必填,整数。 + - Business_class_seats_remaining: 商务舱剩余座位数,必填,整数。 + - Economy_class_seats_remaining: 经济舱剩余座位数,必填,整数。 + - First_class_price: 头等舱票价,必填,数值格式。 + - Business_class_price: 商务舱票价,必填,数值格式。 + - Economy_class_price: 经济舱票价,必填,数值格式。 + - Status: 航班状态,必填,长度255。 + - **Orders 表** + - ID: 订单编号,自增,主键。 + - Order_time: 订单时间,必填,日期时间格式。 + - Paid: 是否支付,必填,布尔值。 + - User_phone_number: 用户手机号,必填,长度11,外键。 + - **Tickets 表** + - ID: 机票编号,自增,主键。 + - Price: 票价,必填,数值格式。 + - FlightID: 航班编号,必填,长度255,外键。 + - Seat_class: 座位等级,必填,长度255。 + - PassengerID: 乘客身份证号,必填,长度18,外键。 + - OrderID: 订单编号,必填,整数,外键。 + + 4. 数据流图 + + ![数据流图.drawio](images\数据流图.drawio.svg) + + 5. 非功能性需求 + + **业务处理性能** + + - **响应时间**: 系统必须在用户请求操作后的2秒内做出响应。 + - **并发处理能力**: 系统需支持至少1000个并发用户。 + + #### 安全性 + + - **数据加密**: 所有传输的数据必须使用HTTPS协议加密。 + - **身份验证**: 系统必须实现多因素身份验证(MFA)。 + - **权限控制**: 不同用户角色拥有不同的操作权限,确保数据的访问安全。 + + #### 完整性 + + - **数据备份**: 系统需实现每日数据备份,防止数据丢失。 + - **数据校验**: 系统在数据录入时需进行校验,确保数据的准确性和一致性。 @@ -176,7 +234,14 @@ > >以上内容形成第一版的系统设计规格说明,以后持续完善。 +- Passengers(ID, Name, Phone_number) +- Users(Phone_number, Username, Password) +- Airports(ID, Name, City) +- Flights(ID, Airline, Departure_airport, Arrival_airport, Departure_time, Arrival_time, First_class_seats_remaining, Business_class_seats_remaining, Economy_class_seats_remaining, First_class_price, Business_class_price, Economy_class_price, Status) +- Orders(ID, Order_time, Paid, User_phone_number) +- Tickets(ID, Price, FlightID, Seat_class, PassengerID, OrderID) +![E-R图.drawio](images\E-R图.drawio.svg) @@ -197,10 +262,37 @@ >- 原材料:原材料号,原材料名,类别 >- 仓库:仓库号,仓库名 +7 +8 # 5. 补充作业 2 >将上题的E-R图转换成关系模型,指明每个关系模式的主键和外键,在函数依赖的范畴分析关系模式满足第几范式,并将不满足BCNF的关系模式分解成BCNF。 + +第 7 题: + +- 系(系编号,系名,学校名); +- 班级(班级号,班级名,系编号); +- 教研室(教研室编号,教研室名,系编号); +- 学生(学号,姓名,学历,班级号,导师职工号); +- 课程(课程号,课程名); +- 教员(职工号,姓名,职称,教研室编号); +- 选课(学号,课程号,成绩)。 + +已满足 BCNF。 + +第 8 题: + +- 产品(产品号,产品名,仓库号); +- 零件(零件号,零件名); +- 材料(材料号,材料名,类别,仓库号,存放量); +- 仓库(仓库号,仓库名); +- 产品组成(产品名,零件号,使用零件量); +- 零件储存(零件号,仓库号,存储量); +- 零件制造(零件号,材料号,使用材料量)。 + +已满足 BCNF。 + diff --git a/Assignments/Assignment6/source/数据流图.drawio b/Assignments/Assignment6/source/数据流图.drawio new file mode 100644 index 0000000..03aaae4 --- /dev/null +++ b/Assignments/Assignment6/source/数据流图.drawio @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Assignments/Assignment6/source/数据结构类图.drawio b/Assignments/Assignment6/source/数据结构类图.drawio new file mode 100644 index 0000000..85d4d86 --- /dev/null +++ b/Assignments/Assignment6/source/数据结构类图.drawio @@ -0,0 +1,256 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Assignments/Assignment6/source/泳道图.drawio b/Assignments/Assignment6/source/泳道图.drawio new file mode 100644 index 0000000..bffa44f --- /dev/null +++ b/Assignments/Assignment6/source/泳道图.drawio @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Assignments/Assignment6/source/用例图.drawio b/Assignments/Assignment6/source/用例图.drawio index 0a7e871..62d9143 100644 --- a/Assignments/Assignment6/source/用例图.drawio +++ b/Assignments/Assignment6/source/用例图.drawio @@ -1,32 +1,147 @@ - + - + + + + - + - + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Assignments/Assignment6/作业6_21281280_柯劲帆.pdf b/Assignments/Assignment6/作业6_21281280_柯劲帆.pdf new file mode 100644 index 0000000..e74c615 Binary files /dev/null and b/Assignments/Assignment6/作业6_21281280_柯劲帆.pdf differ diff --git a/Assignments/Assignment7/Problem1.zip b/Assignments/Assignment7/Problem1.zip deleted file mode 100644 index 9528636..0000000 Binary files a/Assignments/Assignment7/Problem1.zip and /dev/null differ