介绍
高级数据库布置的实验作业
要求:
题目: 设计与实现一个旅游预订系统,该系统涉及的基本信息有航班,出租车,宾馆和客户等数据信息。实体和其特征属性举例如下:
FLIGHTS (String flightNum, int price, int numSeats, int numAvail, String FromCity, String ArivCity);
HOTELS(String name,String location, int price, int numRooms, int numAvail);
CARS(String type,String location, int price, int numCars, int numAvail);
CUSTOMERS(String custName);
RESERVATIONS(String custName, int resvType, String resvKey)
根据自己的经验给出该旅游系统数据库设计E/R图(可以增加实体和属性),然后基于此数据库完成如下功能:
1. 航班,出租车,宾馆房间和客户基础数据的入库,更新。
2. 预定航班,出租车,宾馆房间。
3. 查询航班,出租车,宾馆房间,客户和预订信息。
4. 查询某个客户的旅行线路。
5. 其他任意你愿意加上的功能。
要求:
1) E/R图中包含弱实体,子集联系等,关系中元组数 〉=20 。
2) 提交文档:E/R图及解释,E/R图到关系模式的转换及说明,分析给出关系的模式属于哪个NF,然后讨论其模式优化。完成的功能及说明。系统实现的环境。各关系元组数据文件及说明。
3) 提交系统:源程序及可执行程序,测试用例。
ER图
ER图解释
- 系统涉及的实体集
城市:具有属性城市名。
顾客:具有属性客户名和密码。
管理员:是顾客的子类实体,具有顾客的所有的属性。
出租车:具有属性车牌号、价格,依赖于城市而存在,为弱实体。
宾馆:具有属性宾馆名、价格、房间数,依赖于城市而存在,为弱实体。
航班:具有属性航班号、价格、座位数,依赖于城市而存在,为弱实体。 - 涉及的联系
一个城市可以有多个宾馆,所以城市和宾馆的联系为1:N。
一个城市可以有多辆出租车,所以城市和出租车的联系为1:N。
一个城市可以作为多个航班的出发地和目的地,所以城市和航班的出发和达到联系为1:N。
一个顾客可以预约多个宾馆、航班和出租车,一个宾馆、航班和出租车也可以被多个客户预约,所以顾客和宾馆、航班和出租车的练习为M:N。