我们有一个接受以下内容的操作 Bus_Arrives
一个 LINE、一个 BUS_ID 和一个 BUSROAD
- 给定线路的公共汽车到达车站并分配一条空的公共汽车路(如果有的话)。否则进入队列。
--------New_Bus_Arrives-------------------------------------------- -------------------------------------------------- ----
| Δ Bus_Station
| 公交线路?:LINE
| 总线?:BUS_ID
| br?: BUSROAD
===============================================
| 先决条件在这里(实现了将其添加到队列的情况,但我没有添加它,因为它与问题无关。)以下是此操作完成后系统如何更改。
| 免费' = 免费 \ {br?}
| 路由' = 路由
| 出发' = 出发 U {br? |--> 公交车?}
| 访问' = 访问 U {br? |--> 路由(|line?|) }
我的问题是:如果访问被正确表示为 Z,例如,当调用路由(线路?)关系时,它返回一组站元素 {station1,station2,station3}。但是,当我将其映射到访问关系以更新它时,我正在这样做:br?映射到 {station1,station2,station3}。这是可能的还是我不得不说这个?分别映射到集合的每个元素。此外,如果是这种情况,它如何在 Z 中表示?
关于所描述内容的额外信息:
路线:对于每条对应的公交线路,公交车经过哪些站点才能到达那里(即 - 8 号线前往洛杉矶、纽约和迈阿密)。
路由:LINE <--> STATION(关系)
免费:有哪些公交线路可用。
免费:Π BUSROAD(动力装置)
出发:对于每辆公共汽车它从哪条公交线路出发(例如从 A 出发的公共汽车 AY123)。
出发:LINE --> BUS_ID(函数)
访问:对于当前分配了公共汽车的每条公共汽车道路,它将访问哪些站点。一条公共汽车路可以有一辆且只有一辆公共汽车,也可以是可用的。
访问:BUS_ROAD <--> STATION(关系)