zoukankan      html  css  js  c++  java
  • 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)

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

  • 相关阅读:
    一起学Vue之表单输入绑定
    简单易懂的单元测试框架-gtest(二)
    简单易懂的单元测试框架-gtest(一)
    最常用设计模式-模板方法模式
    最常用设计模式-简单工厂模式
    最常用设计模式-单例模式
    端口复用后门
    内存取证工具-volatility、foremost
    python的exe反编译
    Linux加密known_hosts文件中的IP
  • 原文地址:https://www.cnblogs.com/gjung/p/692913.html
Copyright © 2011-2022 走看看