机场数据库模型表所属Normalization forms(范式)求教
机场数据库模型范式等级分析
以下分析基于你提交的机场ER图的通用表结构展开,核心判定规则先统一明确:
- 1NF:字段具备原子性,不存在多值列、复合列
- 2NF:满足1NF,所有非主键属性完全依赖完整主键,无部分依赖(仅复合主键表需要校验该规则)
- 3NF:满足2NF,所有非主键属性仅直接依赖主键,无传递依赖
- BCNF:满足3NF,所有函数依赖的决定因素均为候选键
各表范式判定
1. Airport(机场表)
字段结构(通用):airport_id(主键)、机场名称、IATA代码、ICAO代码、所在城市、所属国家、坐标
- 所有字段均为原子单值,满足1NF
- 主键为单一字段,不存在部分依赖问题,满足2NF
- 所有非主键字段直接依赖
airport_id,无传递依赖,满足3NF - 所有函数依赖的决定因素仅有主键
airport_id,满足BCNF - 最终等级:符合BCNF
2. Airline(航空公司表)
字段结构(通用):airline_id(主键)、航司名称、IATA代码、ICAO代码、总部所在地
- 字段均为原子值,单主键无部分依赖,非主键字段全部直接依赖主键无传递依赖,决定因素仅有主键
- 最终等级:符合BCNF
3. Flight(航班基础表)
字段结构(通用):flight_id(主键)、所属航司ID、出发机场ID、到达机场ID、航班号、计划出发时间、计划到达时间
- 字段均为原子值,单主键无部分依赖,外键字段直接依赖
flight_id,无传递依赖,决定因素仅有主键 - 最终等级:符合BCNF
4. FlightInstance(航班执飞实例表)
字段结构(通用):instance_id(主键)、关联航班ID、实际出发时间、实际到达时间、执飞机型ID、执飞状态
- 字段均为原子值,单主键无部分依赖,非主键字段全部直接依赖
instance_id,无传递依赖,决定因素仅有主键 - 最终等级:符合BCNF
5. Passenger(乘客表)
字段结构(通用):passenger_id(主键)、乘客姓名、证件号码、联系方式、国籍
- 字段均为原子值,单主键无部分依赖,非主键字段全部直接依赖主键,无传递依赖,决定因素仅有主键
- 最终等级:符合BCNF
6. Booking(订票表)
字段结构(通用):booking_id(主键)、关联乘客ID、关联航班实例ID、订票时间、座位号、票面价格
- 字段均为原子值,满足1NF
- 若使用
booking_id作为单主键,无部分依赖;若使用(乘客ID、航班实例ID)作为复合主键,所有非主键字段均依赖完整复合主键,均满足2NF - 非主键字段全部直接依赖主键,无传递依赖,满足3NF
- 决定因素仅有主键,满足BCNF
- 最终等级:符合BCNF
补充说明
如果你的实际表设计和上述通用结构有差异,比如某张表额外存储了关联表的非主键属性(例如在Flight表中同时存储航司ID和航司名称),就会存在传递依赖,对应表仅符合2NF,需要针对性调整判定结果。
内容的提问来源于stack exchange,提问作者Noor Qassim
相关产品推荐
相关产品推荐

