课程作业
课程名称:数据库系统原理
作业次数:作业#6
学号:21281280
姓名:柯劲帆
班级:物联网2101班
指导老师:郝爽
修改日期:2024年6月10日
---
# 1. 题目 1
>针对前期作业中选定的业务背景,请完成如下数据库应用系统规划训练
>
>1. 给你所规划的数据库应用系统起一个系统名称
>2. 尝试调研分析或自主规划设计该系统的业主企业或组织机构的组织架构图,并说明该系统涉及企业或组织机构中哪些相关业务部门。
>3. 调研分析企业相关部门中的跟该系统有关的各种用户或企业外的用户,用文字描述用户使用系统开展业务的场景(例如,租车客户将在特定手机上打开APP,用户在界面上点击….)。
>4. 规划系统的性能指标,如并发用户数、用户数、核心业务响应时间等。
>5. 说明你所规划的系统的战略地位,例如系统服务于公司以什么方式赢得客户、获得直接或间接收益,获得市场地位。
>6. 尝试说明建设该系统可能涉及的投资和运营成本,分析可能获得的收益。
>7. 结合系统业务功能与性能规划,确定初步的技术选型规划,大致分析该系统在技术上的可行性。
>
>将以上内容形成系统规划与可行性分析报告,找两位同学当业务专家帮你论证方案的可行性,并在报告上列出专家姓名、专家论证建议和结论。
**航空订票系统规划与可行性分析报告**
1. 系统名称
**飞行订票系统 (FlyBooking System)**
2. 组织架构图及相关业务部门
**组织架构图:**
```
航空公司
├── 运营部门
│ ├── 航班管理
│ ├── 机场管理
│ └── 票务管理
├── IT 部门
│ ├── 系统开发
│ ├── 数据库管理
│ ├── 应用支持
│ └── 安全与合规
└── 客户服务部门
├── 客服中心
└── 技术支持
```
**涉及的相关业务部门:**
- **运营部门**:负责航班和机场数据的管理、维护和更新。
- **IT 部门**:负责系统的开发、维护和安全管理,确保系统稳定运行。
- **客户服务部门**:提供客户支持,解决用户在使用系统过程中遇到的问题。
3. 用户使用系统开展业务的场景
**用户(旅客):**
1. **注册**:用户在飞行订票系统的注册页面填写个人信息,完成账号注册。**
2. **查询航班**:登录后,用户在系统中输入出发地、目的地和日期,查询可用航班和座位级别信息。
3. **预订机票**:选定航班和座位级别后,用户通过系统完成支付,生成电子机票,并在行程日期前往机场使用电子机票登机。
**运营部门员工:**
1. **登录**:员工使用分配的账号登录系统。
2. **管理航班和机场信息**:员工进入后台管理界面,添加或修改航班信息(如航班编号、起飞时间、到达时间、座位级别等)和机场信息(如机场名称、所在国家和城市等)。
4. 系统性能指标
- **并发用户数**:支持同时在线用户数量 50,000 人。
- **总用户数**:系统应支持注册用户数量 10,000,000 人。
- **核心业务响应时间**:查询航班和预订机票的响应时间应不超过 1 秒。
- **数据更新频率**:航班和机场数据应能在5分钟内更新。
5. 系统的战略地位
飞行订票系统作为航空公司的核心业务系统,其战略地位体现在以下几个方面:
- **客户服务**:提供便捷的在线订票服务,提高客户满意度,增强客户忠诚度。
- **运营效率**:通过电子化管理航班和机场数据,提高航空运营的效率和准确性。
- **市场地位**:占据航空票务市场的主要份额,增强在交通出行领域的市场竞争力。
- **收益**:通过在线售票获得直接收益,同时通过提升运营效率间接节约成本。
6. 投资和运营成本及收益分析
**投资成本:**
- **硬件投入**:服务器、存储设备、网络设备等。
- **软件投入**:数据库软件、应用服务器软件、安全防护软件等。
- **开发投入**:系统开发费用,包括需求分析、设计、编码、测试等。
- **培训费用**:对员工的培训费用。
**运营成本:**
- **维护成本**:系统的日常维护,包括硬件维护、软件升级、数据备份等。
- **人力成本**:技术支持人员、客户服务人员、运营管理人员等的工资。
- **安全成本**:系统安全防护,包括防火墙、入侵检测、防病毒等。
**收益分析:**
- **直接收益**:机票销售收入。
- **间接收益**:提高运营效率,降低人力成本和错误率,提升客户满意度和忠诚度。
7. 技术选型规划
- **数据库**:选用高性能的关系型数据库,如 MySQL、PostgreSQL,用于存储用户、机场、航班和机票数据。
- **应用服务器**:采用分布式架构,使用 Java EE、Spring Boot 等技术实现系统的业务逻辑。
- **前端技术**:使用 React、Vue.js 等框架开发用户界面,提供良好的用户体验。
- **安全技术**:部署 SSL 证书,采用 OAuth 2.0 进行用户认证,使用防火墙、入侵检测系统等保护系统安全。
**业务专家论证**
**专家姓名:李清林**
**建议和结论:**
李明认为该系统的架构设计合理,能够有效支持航空订票业务的需求。建议在技术选型上考虑使用云计算平台,如阿里云、AWS,以提高系统的扩展性和可靠性。此外,需加强用户数据保护,确保系统的合规性。
**专家姓名:李桦炅**
**建议和结论:**
张华认为系统在性能指标上的设定符合大规模用户访问的需求,但需特别注意并发访问的处理,建议采用缓存技术(如 Redis)和消息队列(如 Kafka)来提升系统的响应速度和可靠性。同时,应建立完善的监控系统,实时监控系统性能和安全。
通过上述论证,飞行订票系统的规划和可行性分析得到了进一步确认和优化。
# 2. 题目 2
> 数据库应用系统需求分析
>
> 自学统一建模语言(Unified Modeling Language, UML),在作业中解释UML、用例(Use Case)、用况(Use Case Scenario)、用例图(Use Case Diagram)、泳道图和数据流图(Data Flow Diagram,DFD)的概念及其VISIO中的画法,针对前述作业中选定的业务场景,开展如下系统需求分析:
>
> 1. 分析系统业务需求,标识出用户(Actor或User),进行系统功能划分,画出用例图;
> 2. 分析系统业务场景,针对涉及多个用户(Actor或用户)的业务场景,分析业务流程,画出泳道图(至少一个)。
> 3. 结合前面作业设计结果,补充分析完善系统的数据项,数据结构(可以用类图表示),数据的存储(持久化)需求,形成数据字典。
> 4. 分析系统的数据处理需求,画出系统主要的数据流图,建议包含两个层级的DFD。
> 5. 分析系统的非功能性需求,给出系统业务处理性能、安全性、完整性等需求。
>
> 将以上内容形成系统的需求规格说明书。
1. 用例图

2. 泳道图

3. 数据结构

**数据字典**
- **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. 数据流图

5. 非功能性需求
**业务处理性能**
- **响应时间**: 系统必须在用户请求操作后的2秒内做出响应。
- **并发处理能力**: 系统需支持至少1000个并发用户。
#### 安全性
- **数据加密**: 所有传输的数据必须使用HTTPS协议加密。
- **身份验证**: 系统必须实现多因素身份验证(MFA)。
- **权限控制**: 不同用户角色拥有不同的操作权限,确保数据的访问安全。
#### 完整性
- **数据备份**: 系统需实现每日数据备份,防止数据丢失。
- **数据校验**: 系统在数据录入时需进行校验,确保数据的准确性和一致性。
# 3. 题目 3
>数据库应用系统设计—概念与逻辑设计
>
>基于以上需求规格说明书,完成如下任务:
>
>1. 结合新补充的需求,完善 ER 图,形成完整的实体关系模型。
>2. 结合前面几次作业设计的数据模式,在函数依赖的范畴判定原有模式的规范化程度,并根据需要补充新关系模式。并对不属于 3NF 的模式进行分解,使其达到 3NF 的要求。
>
>以上内容形成第一版的系统设计规格说明,以后持续完善。
- 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)

# 4. 补充作业 1
>完成教材P.241 7,8两题
>
>其中,各实体的属性如下(联系的属性根据需要添加):
>
>- 系:系编号,系名
>- 班级:班级编号,班级名
>- 教研室:教研室编号,教研室
>- 学生:学号,姓名,学历
>- 课程:课程编号,课程名
>- 教员:职工号,姓名,职称
>- 产品:产品号,产品名
>- 零件:零件号,零件名
>- 原材料:原材料号,原材料名,类别
>- 仓库:仓库号,仓库名
# 5. 补充作业 2
>将上题的E-R图转换成关系模型,指明每个关系模式的主键和外键,在函数依赖的范畴分析关系模式满足第几范式,并将不满足BCNF的关系模式分解成BCNF。
第 7 题:
- 系(系编号,系名,学校名);
- 班级(班级号,班级名,系编号);
- 教研室(教研室编号,教研室名,系编号);
- 学生(学号,姓名,学历,班级号,导师职工号);
- 课程(课程号,课程名);
- 教员(职工号,姓名,职称,教研室编号);
- 选课(学号,课程号,成绩)。
已满足 BCNF。
第 8 题:
- 产品(产品号,产品名,仓库号);
- 零件(零件号,零件名);
- 材料(材料号,材料名,类别,仓库号,存放量);
- 仓库(仓库号,仓库名);
- 产品组成(产品名,零件号,使用零件量);
- 零件储存(零件号,仓库号,存储量);
- 零件制造(零件号,材料号,使用材料量)。
已满足 BCNF。