• ERWIN中的一对多标识关系和一对多非标识关系


    标识关系,实线表示
    非标识关系,虚线表示
    实心圆端所在的那端为一对多关系中的多的那端

    erwin.jpg
            PASSENGER:                    乘客表
            FLIGHT:                             航班
            SEAT-RESERVATION:    座位预定
            
        标识关系贡献父实体的键给子实体,所有
    键变成子实体的键,成为了子实体的键的一部分,意思是子标识依赖于父,也就是子实体的存在依赖于父,在SEAT-RESERVATION中,flight-number变成SEAT-RESERVATION座位的外键属性,它和seat-number一起标识座位,是不能为空的,如果不指定flight-number,seat-number和passenger-name都是无意义的。
        非标识关系贡献父实体的键给子实体,但是,由定义知,一些 (或所有)键不变成子实体的键,意思是子不标识依赖于父,允许这样的情形,关系中多”端的实体没有父”而可能存在,即它不是存在依赖。

    从子实体看,如果关系是强制mandatory的,那么子存在依赖于父。如果可选,那么子既不存在也不标识依赖于关系 (虽然它也许依赖于其他关系)ERwin菱形为表示可选的情况,菱形只存在于非标识关系中(因为标识关系贡献主关键字,而主关键字部分不能为NULL)。带菱形的非标识关系是零或一对多”的关系。这儿有个简单例子。

    5.13,属性 “passenger-name”变成SEAT-RESERVATION座位的外键属性,它不标识座位,它标识占用座位的乘客,因为没有乘客座位仍然存在,关系是可选的,应使用菱形符号。

    我们已经定义,在一次飞行中乘客可占零或一个座位。

    座位可以空 (不被任何乘客占有),当座位空时,”passenger-name”属性将是空 (NULL)

    由业务政策知道,这是允许发生的 (因为航空公司不能迫使乘客填满每次飞行的每个座位),从子实体看,关系是可选的,关系父端的菱形就意味着这个。

  • 相关阅读:
    python 返回函数的使用
    你的服务器还在裸奔吗?
    云计算产品vSwitch原理
    网卡创建Bond
    UI自动化框架介绍
    常用底层linux命令
    Linux Bridge基本概念
    磁盘格式化及设置自动挂载
    Linux vi文本编辑器常用命令
    MySQL5.7安装方式
  • 原文地址:https://www.cnblogs.com/gjung/p/692913.html
Copyright © 2020-2023  润新知