一、 实验目的和要求 理解数据库设计原则,掌握数据库表和表间关系设计基本方法与步骤。 二、 实验内容 3. 根据之前设计的某航空机票预订系统E-R模型及类图设计数据库表; 4. 定义数据库表中的关系。 三、实验要求: 实验报告中详细记录以下内容: 4. 描述E-R图及类图到数据库表的转换; 5. 描述数据库表中包含的字段、主键、外键; 6. 说明哪些表是由关系转换生成的; 7. 实验结果部分附上所绘页面(可粘贴打印图)。 E-R图及类图到数据库表的转换: 实体转换为表:

  1. Passenger(乘客)实体转换为表: • 表名:passengers • 字段:passenger_id (主键), name, gender, contact_info, etc.
  2. Flight(航班)实体转换为表: • 表名:flights • 字段:flight_id (主键), flight_number, departure_city, arrival_city, departure_time, etc.
  3. Order(订单)实体转换为表: • 表名:orders • 字段:order_id (主键), passenger_id (外键关联passengers表), flight_id (外键关联flights表), order_date, total_amount, etc. 关系转换为外键: • 乘客与订单之间的关系:在orders表中添加一个外键passenger_id,指向passengers表中的passenger_id字段,表示该订单属于哪个乘客。 • 航班与订单之间的关系:在orders表中添加一个外键flight_id,指向flights表中的flight_id字段,表示该订单对应哪个航班。 其他需要考虑的因素: • 数据类型:对于每个字段,需要考虑适当的数据类型,例如使用日期时间类型来存储日期和时间信息,使用适当长度的字符类型来存储文本信息等。 • 索引:对于经常被查询的字段,可以考虑添加索引以提高查询性能。 • 约束条件:需要考虑是否需要添加约束条件,例如唯一约束、默认值约束等,以确保数据的完整性和一致性。 • 数据库范式:可以考虑将数据库设计规范化,以减少数据冗余和提高数据存储效率。

数据库表中包含的字段、主键、外键:

  1. passengers 表: 乘客信息表 • 字段: • passenger_id:乘客ID (主键) • name:姓名 • gender:性别 • contact_info:联系方式 • ...
  2. flights 表: 航班信息表 • 字段: • flight_id:航班ID (主键) • flight_number:航班号 • departure_city:出发城市 • arrival_city:到达城市 • departure_time:起飞时间 • ...
  3. orders 表: 订单信息表 • 字段: • order_id:订单ID (主键) • passenger_id:乘客ID (外键,关联passengers表中的passenger_id字段) • flight_id:航班ID (外键,关联flights表中的flight_id字段) • order_date:订单日期 • total_amount:总金额 • ... 在上述设计中,passengers表存储乘客的个人信息,flights表存储航班的相关信息,orders表存储订单的详细信息。orders表中的passenger_id字段作为外键与passengers表中的passenger_id字段关联,表示该订单属于哪个乘客。同样,orders表中的flight_id字段作为外键与flights表中的flight_id字段关联,表示该订单对应哪个航班。 由关系转换生成的表:
  4. orders 表: 该表是由乘客和航班之间的关系转换而来。它包含了订单的详细信息,并且具有与乘客表和航班表的关联。 • 外键关系: • passenger_id (外键关联passengers表):表示该订单属于哪个乘客。 • flight_id (外键关联flights表):表示该订单对应哪个航班。 这些关系转换生成的表允许我们在航空机票预订系统中记录和管理乘客的订单信息,并与乘客表和航班表建立关联,从而实现订单与乘客、航班之间的关联查询和操作。 其他的passengers表和flights表并非由关系转换生成,它们是独立存在的实体表,分别存储乘客和航班的相关信息。