精华内容
下载资源
问答
  • hibernate关系映射

    热门讨论 2014-11-03 21:16:11
    接下来的这几篇博客说的“实体关系映射”。 ...一个系统中的任何一个实体不是独立的,这就是我们类图中各个类之间的相互引用。类图间的关系表现在数据库中,就是表之间的的外键约束。这些关
     接下来的这几篇博客说的是“实体关系映射”。

    一、关系 & 映射

        我们先将关系映射,我们拆成“关系”和“映射”两部分。

       

          关系:不陌生,在“程序员”的概念里最基本的就是表表之间的关系,类类之间的关系,这里要说的关系就这两种。一个系统中的任何一个实体都不是独立的,这就是我们类图中各个类之间的相互引用。类图间的关系表现在数据库中,就是表之间的的外键约束。这些关系有:一对一,一对多,多对一,多对多,继承。 关系的使用,就涉及到方向的问题,所以,以上几种关系都有方向存在。   
           回想之前的设计,step1:类的设计是一部分,形成OOM,拿着oom来生成我们的“代码”;
                                        step2:数据库的设计是另一部分,形成PDM,用PDM形成database。
           当然都知道利用powerdesigner 等工具,在oom和pdm之间,是可以相互转换的,编程的工作量是大大减轻了,即便这样,还是有更先进的思想,来解放我们的劳动力,在哪?就是hibernate。
        
           映射:将实体映射到数据库,基于实体间的关系,这里的一个“映射”包含了N多种情况,hibernate是怎么节省工作量的呢?hibernate将之前的两步,做成了“一步到位”。从代码开始设计对象,通过“xml”映射到数据库。hibernate使编程更专注于“对象”的设计。那么系统中“对象”键的关系是怎么“映射”到数据库中呢?这其中的原理最重要的就是:Hibernate 靠什么来区分对象间的不同关系?hibernate定义了一套“关系”映射的约定,来区分对象之间的不同关系。这样我们以前需要手动去维护的数据表外键约束,就被hibernate给代劳了。
        接下来就看看hibernate中的这套约定。
        

    二、关系规范实现

    (这篇博客说一对一的关系映射的实现)   

        一对一

          有两种实现方式,主键关联映射,唯一外键关联映射。
                             约定:one-to-one
         

          

        1、主键关联映射
        
           实现方式:让两个实体的主键一样,这样就不需要加入多余的字段了
        
               单向关联Person----->IdCard

               person中存在IdCard的引用,反之没有,对应的,IdCard.hbm.xml 文件不会发生变化。需要在person.hbm.xml中加入维护关系的约定内容。

              关系图如下;

          

           实体类实现如下:      

    <span style="font-family:KaiTi_GB2312;font-size:18px;">			public class Person {
    			
    				private int id;
    				
    				private String name;
    				
    				private IdCard idCard;
    			
    				public int getId() {
    					return id;
    				}
    			
    				public void setId(int id) {
    					this.id = id;
    				}
    			
    				public String getName() {
    					return name;
    				}
    			
    				public void setName(String name) {
    					this.name = name;
    				}
    			
    				public IdCard getIdCard() {
    					return idCard;
    				}
    			
    				public void setIdCard(IdCard idCard) {
    					this.idCard = idCard;
    				}
    			}
    </span>
            person端的hbm.xml编写:

           

    <span style="font-family:KaiTi_GB2312;font-size:18px;">	<class name="com.bjpowernode.hibernate.Person" table="t_person">
    		<id name="id">
    		<!-- 采用foreign生成策略,forgeign会取得关联对象的标识 -->
    			<generator <strong>class="foreign"</strong>>
    			<!-- property只关联对象 -->
    				<param name="property">idCard</param>
    			</generator>
    		</id>
    		<property name="name"/>
    		<strong><one-to-one name="idCard" constrained="true"/></strong>
    		<!-- one-to-one指示hibernate如何加载其关联对象,默认根据主键加载也就是拿到关系字段值,根据对端的主键来加载关联对象
    			constrained="true表示,当前主键(person的主键)还是一个外键参照了对端的主键(IdCard的主键),也就是会生成外键约束语句 -->
             </class>
    </span>

            双向关联
                    在IdCard中加入Person的引用;
                    在IdCard一段也加入维护关系的约定内容,<one-to-one name="person" />

                   IdCard配置文件如下:

                   

    <span style="font-family:KaiTi_GB2312;font-size:18px;">	<hibernate-mapping>
    		<class name="com.bjpowernode.hibernate.IdCard" table="t_idCard">
    			<id name="id">
    				<generator class="native"/>
    			</id>
    			<property name="cardNo"/>
    			<strong><one-to-one name="person"/></strong>
    		</class>
    	</hibernate-mapping>
    </span>

             2、唯一外键关联        
           引入对端实体的主键做外键约束,来实现,实体都有自己各自的主键,不共享主键。

           约定:<many-to-one> & <one-to-one>
        一对一唯一外键关联映射其实是多对一的特例,采用<many-to-one>标签来映射,指定多的一端unique为true,这样就限制了多的一端的多重性为一,就是这样来映射的。
            数据表图:

            

             person的映射文件如下:        

    <span style="font-family:KaiTi_GB2312;font-size:18px;"><hibernate-mapping>
    	<class name="com.bjpowernode.hibernate.Person" table="t_person">
    		<id name="id">
    			<generator class="native"/>
    		</id>
    		property name="name"/>
    		<strong><many-to-one name="idCard" unique="true"/></strong>
    	</class>
    </hibernate-mapping></span>
            

             双向关联实现——one-to-one

            这里和一对一主键关联的一点小区别是:唯一外键关联在双向关联的时候,没有外键的一方是一对一的关系,有外键的一方是一对多的关系,所以IdCard使用的是one-to-one
            IdCard 映射文件如下:       

    <span style="font-family:KaiTi_GB2312;font-size:18px;"><hibernate-mapping>
    	<class name="com.bjpowernode.hibernate.IdCard" table="t_idCard">
    	        <id name="id">
    		      <generator class="native"/>
    	        </id>
    	        <property name="cardNo"/>
    	        <strong><one-to-one name="person" property-ref="idCard"/></strong>
            </class>
     </hibernate-mapping>
    </span>
       

           两种方式的对比

                一对一主键关联
    :共用一个主键,耦合性太大,双方关系发生变化,数据库表就得重新建,不建议使用。
               唯一外键关联:增加一个字段,来维护关联关系,灵活性增加。如双发关系由一对一向一对多改变的情况下,只需将限制外键的unique设置为false即可实现,建议使用。       

    下篇博客是一对多的实现


    展开全文
  • 偏序关系、全序关系都是公理集合论中的一种二元关系偏序集合:配备了偏序关系的集合全序集合:配备了全序关系的集合 偏序:集合内只有部分元素之间在这个关系下是可以比较的比如:比如复数集中并不是所有的数都可以...

    偏序关系全序关系都是公理集合论中的一种二元关系
    偏序集合:配备了偏序关系的集合
    全序集合:配备了全序关系的集合

    偏序:集合内只有部分元素之间在这个关系下是可以比较的
    比如比如复数集中并不是所有的数都可以比较大小,那么“大小”就是复数集的一个偏序关系~

    全序:集合内任何一对元素在在这个关系下都是相互可比较的
    比如有限长度的序列按字典序是全序的~(最常见的是单词在字典中是全序的)

    偏序的定义
    设R是集合A上的一个二元关系,若R满足:
    Ⅰ 自反性:对任意x∈A,有xRx;
    Ⅱ 反对称性(即反对称关系):对任意x,y∈A,若xRy,且yRx,则x=y;
    Ⅲ 传递性:对任意x, y,z∈A,若xRy,且yRz,则xRz。
    则称R为A上的偏序关系。

    全序的定义
    设集合X上有一全序关系,如果我们把这种关系用 ≤ 表述,则下列陈述对于 X 中的所有 a, b 和 c 成立:
    如果 a ≤ b 且 b ≤ a 则 a = b (反对称性)
    如果 a ≤ b 且 b ≤ c 则 a ≤ c (传递性)
    a ≤ b 或 b ≤ a (完全性)

    注意:完全性本身也包括了自反性~
    所以,全序关系必是偏序关系~

    展开全文
  • 经济相互依存是否促进和平的问题比以往任何时候更加重要,因为全球存在系列冲突。 两所学校倡导两相反的信念。 这些现实主义和自由主义。 前者支持经济上的相互依存不一定促进和平,而后者则相信这样做。 在...
  • 如何掌握人际关系的技巧 大家都知道不管是在职场上还是朋友之间,...在职场当中,几乎人们从事任何一项工作都是需要与其他人进行沟通协作,共同来完成的。在这个过程中,我们最怕遇到的不是那些没有经验的人、不是?..
  • 如何协调人际关系的矛盾问题 人际交往中出现的问题有些是我们无法避免的。我们应该怎样去协调人际关系的矛盾和问题呢?...在职场当中,几乎人们从事任何一项工作都是需要与其他人进行沟通协作,共同来完?..
  • 决策是一种判断,所谓选择,通常不是“是”与“非”的选择,绝大多数的选择都是任何一种方案均不一定由于其他方案时的选择 管理者的决策不是从“众口一词”中得来的。好的决策,应以相互冲突的意见为基础,从不同的...

    决策是一种判断,所谓选择,通常不是“是”与“非”的选择,绝大多数的选择都是任何一种方案均不一定由于其他方案时的选择

    管理者的决策不是从“众口一词”中得来的。好的决策,应以相互冲突的意见为基础,从不同的观点和不同的判断中选择,除非有不同的简介,否则就不可能有决策,这是觉得决策的第一条原则




    展开全文
  • 102422关系

    2019-06-14 18:57:00
    1.关系 1.1关系 事物之间(客体之间)的相互联系,称为关系 n元笛卡尔积A1×A2× …… ×An反映...笛卡尔乘积的任何子集可以定义一种二元关系。 设集合X={1, 2, 3, 4},Y={1, 2},则X ×Y = {<1,1 >,&...

    1.关系

    1.1关系

    事物之间(客体之间)的相互联系,称为关系

    n元笛卡尔积A1×A2× …… ×An反映了 n 个客体之间的关系,所以是 n元关系。

    序偶〈a,b〉实际上反映了二个元素之间的关系,从而是二元关系。

    注意:关系和笛卡尔乘积

    笛卡尔乘积的任何子集都可以定义一种二元关系。

    设集合X={1, 2, 3, 4},Y={1, 2},则X ×Y = {<1,1 >,<1,2 >,< 2,1 >,< 2,2 >,< 3,1 >,< 3,2 >,< 4,1 >,< 4,2 >}

    R1 = {<x , y>| x ∈X∧ y ∈Y ∧ x>y } = {<2 , 1>, <3 , 1>, <3 , 2>, <4 , 1>, <4 , 2>, <4 , 3>  }

    R2 = {<x , y>| x ∈X∧ y ∈Y ∧ x=y2 } = {<1 , 1>, <4 , 2> }

    R2 = {<x , y>| x ∈X∧ y ∈Y ∧ x=y } = {<1 , 1>, <2 , 2> } R1,R2,R3 均为二元关系。

     

    1.2序偶

    由二个具有给定次序的客体所组成的序列称为序偶,记作〈x,y〉
    说明:在序偶中二个元素要有确定的排列次序。
    即:若 a ≠ b 时,则〈a,b〉 ≠ 〈b,a〉若〈x,y〉=〈a,b〉 则 (x = a ∧ y = b)
    多重序偶:三重序偶〈x,y,z〉=〈〈x,y〉,z〉
         n重序偶〈x1,…,xn〉=〈〈〈〈x1,x2〉,x3〉…〉,xn〉

     

    重要关系

    2.二元关系

    2.1定义

    设 A×B = {〈x,y〉|  (x ∈A) ∧ (y ∈B) },若集合R ⊆A×B,则称 R 是从 A 到 B的一个二元关系。

    即二元关系 R 是以序偶作为元素的集合。若〈x,y〉∈ R,则记作  x R y,否则,记作

    注:A×B 的任何子集都称作从 A 到 B的二元关系,特别当 A = B 时,称作 A上的关系。

     

    2.2表示方法

    2.2.1枚举法(列举法)

    二元关系定义如图:

    可写成:R = {< 1, a > ,< 2,b > , < 3, c > , < 4, d >}
    由定义可见:关系是一个集合,∴定义集合的方法都可以用来定义关系。

     

    2.2.2谓词公式表示法

    前面讲述,集合可用谓词公式来表达,所以关系也可用谓词公式来表达。
    例如:实数集合R上的“>” 关系可表达为:“>” = {〈x,y〉| x ∈R ∧ y ∈R ∧ x>y }

     

    2.2.3关系矩阵表示法

    规定:
    (a)对于二元关系的序偶 <x , y> ,其左元素表示行,右元素表示列;
    (b)若 xi R yj ,则在对应位置上记“1”,否则记“0”。
    例如:已知集合 A={1, 2, 3, 4},并定义A上的关系R={⟨1,2⟩,⟨1,3⟩,⟨2,1⟩,⟨2,2⟩,⟨3,3⟩,⟨4,3⟩}
    则R的关系矩阵为

    例如:设 X={a,b,c},Y={1,2},R1是X→Y的关系,
    称 R1是X→Y的全域关系,

    其关系矩阵为

     

     

    2.2.4关系图表示法

    规定:
    (a) 把X,Y集合中的元素以点的形式全部画在平面上;
    (b)若 xi R yj ,则在 xi 和 yj 之间画一条有向弧,反之,不画任何曲线。

    例如:已知集合 A={1, 2, 3, 4},并定义A上的关系

    则R的关系图为

     

     

     

    2.3关系的定义域和值域

    设R是一个二元关系,令集合 D(R) ={ x | ∃ y (<x, y> ∈R) };集合 R(R) ={ y | ∃ x (<x, y> ∈R) };

    则称D(R)为R的定义域, R(R)为R的值域。

    例如:设X={1, 2, 3, 4, 5, 6},Y = {a, b, c, d, e, f},
    令R ={<1,a >< 2,b >< 3, c >< 4,d >},
    则R是X到Y的二元关系。
    R的定义域:D(R) ={1, 2, 3, 4},R的值域: R(R) ={a, b, c, d}。

    一般情况,称X为R的前域,称Y为R的陪域

     

    2.4特殊二元关系

    定义:设 R 是A × A的子集,

    ①若R =A × A ,则称R是 A上的全域关系,即R = A × A = { <x , y> | x ,y ∈A }.

      全域关系R1 = A×A 

    自反的,对称的,可传递的。

     

    ②若R= Ø,则称R是A上的空关系.

      空关系R2 =Ø

    反自反的,对称的,反对称的,可传递的。

     

    ③集合A上的恒等关系:I A = { <x , x> | x  ∈A }.

      恒等关系R3 = { < 1 , 1 >   < 2 , 2 >   < 3 , 3 >  } 

    自反的,对称的,反对称的,可传递的

     

     

    其它常用关系:

      

     

     

    2.5关系的五种性质   

    自反,反自反,对称,反对称,传递

    1、自反性

    设 R是集合X中的二元关系,若对于每一个 x ∈X ,都有 x R x ,则称R具有自反性。

         注:X上R是自反的  ⇔  ∀x ( x ∈X → x R x ).

    例如:设 X = {a , b , c},R = {< a , a > < b , b > < c , c > < a , b >} 则R是自反的关系。

    主对角线元素都为  1;  

    图中每个顶点都有环。

     

    2、反自反性

    设 R是集合X中的二元关系,若对于每一个 x ∈X ,都有 x x ,则称R具有反自反性。

         注:X上R是自反的  ⇔  ∀x ( x ∈X → x x ).

    例如:设 X = {1 , 2 , 3},R1 = { < 1 , 2 >  < 2 , 1 > };R2 = { < 1 , 2 > } ;R3 = { < 2 , 1 > };

    则R1, R2, R3都是反自反的。

     主对角线元素都为  0;

    例如:设 X = {1 , 2 , 3},R1 = { < 1 , 2 >  < 2 , 1 > };R2 = { < 1 , 2 > } ;R3 = { < 2 , 1 > };

    则R1,R2,R3都是反自反的。

    图中每个顶点都无环。

    例如:设 X = {1 , 2 , 3},R4 = { < 1 , 1 >  < 2 , 1>   < 3 , 1>   < 3 , 2 > };

    则 R4 既不是自反的,也不是反自反的。

     

     

    3、对称性

    设 R是集合X中的二元关系,对于任意的 x ,y ∈X ,如果每当有 x R y ,都必有 y R x ,则称R在X上具有对称性。

    注:X上R是对称的 ⇔∀x ∀y ( x ∈X ∧y ∈X ∧x R y → y R x ).

    例如:设 X = {1 , 2 , 3},R = {< 1 , 1 > < 2 , 1 >  < 1 , 2 > < 3 , 2 >  < 2 , 3 > } 则R是对称的关系。

    对称矩阵  

     

    若两顶点间有边,则必有一对方向相反的边

     

    4、反对称性

    设 R是集合X中的二元关系,对于任意的 x ,y ∈X ,如果每当有 x R y 和 y R x ,都必有 x = y,则称R在X上具有反对称性。

         注:X上R是反对称的  ⇔  ∀x ∀y ( x ∈X ∧y ∈X ∧x R y ∧y R x → x = y ).

    分析:① 若前件 x R y ∧y R x 为“T”,且后件 x = y 也为“T”,则 R是反对称的;

    ②若前件 x R y ∧y R x 为“F”(有三种情况),后件不论是真还是假,命题均为“T”,则 R是反对称的。

    例1:设 X = {a , b , c},R1 = { < a , b >  < b , c >  < c , a >  },R2 = {< a , c > < a , a > < b , b > < c , c > } ,

    R3 = {< a , a > < b , c > < c , a >  } ,则R1, R2, R3 均是反对称的。

     

     

    5、传递性

    设 R是集合X中的二元关系,对于任意的 x ,y ,z ∈X ,如果每当有 x R y ∧ y R z ,就必有 x R z 。

    则称R在X上具有传递性

    分析:① 若前件 x R y ∧y R z 为“T”,且后件 x R z 也为“T”,则 R是可传递的;

    ②若前件为“F”(有三种情况),后件不论是真还是假,命题均为“T”,则 R是可传递的。

    例1:设 X = {a , b , c},则下列关系均是可传递的。

             R1 = { < a , a >  < a , b >  < a , c >  < b , c > }

             R2 = {< a , b >}

             R3 = {< a , b >   < a , c >  }

             R4 = Ø

    下列关系是不可传递的:
    R5 = { < a , a > < a , c > < c , a > }
    R6 = { < a , b > < b , c > < c , a > }

    R关系图:遍历每一个结点,其结点出径和入径的结点也可连通直接相连,若只有出或入则满足

    关系矩阵:

    复合矩阵法

    思路:设M是R的关系矩阵,若M*M为M的子集,则R具有传递性。

    判断方法:计算M*M,M*M为M的子集的意思是,在方阵对应的同行同列的位置,

    若对于M,该数为0,则对于M*M,该数必为零,否则R不具有传递性。

    即:若M中的a[i][j] == 0, 则必有M*M中的c[i][j] == 0

     1 #include <iostream>
     2 using namespace std;
     3 const int maxn = 100;
     4 int a[maxn][maxn], c[maxn][maxn];
     5  
     6 int main()
     7 {
     8     int i, j, k, flag = 0;
     9     int n;
    10     cout << "请输入二元关系对应方阵(n * n)的行数:\n";
    11     cin >> n;
    12     cout << "请输入此方阵:\n";
    13     for (i = 0; i < n; i++)
    14     {
    15         for (j = 0; j < n; j++)
    16             cin >> a[i][j];
    17     }
    18     for (i = 0; i < n; i++)
    19     {
    20         for (j = 0; j < n; j++)
    21         {
    22             for (k = 0; k < n; k++)
    23             {
    24                 c[i][j] = c[i][j] + a[i][k] * a[k][j];
    25             }
    26         }
    27     }
    28     cout << endl;
    29     for (i = 0; i < n; i++)
    30     {
    31         for (j = 0; j < n; j++)
    32         {
    33             cout << c[i][j] << " ";
    34         }
    35         cout << endl;
    36     }
    37     cout << endl;
    38     for (i = 0; i < n; i++)
    39     {
    40         for (j = 0; j < n; j++)
    41         {
    42             if (a[i][j] == 0)
    43             {
    44                 if (c[i][j] != 0)
    45                 {
    46                     cout << "No transitivity!\n";
    47                     return 0;
    48                 } 
    49             }
    50         }
    51     }
    52     cout << "Transitivity!\n";
    53     return 0;
    54 }
    55  
    复合矩阵法

     

    利用矩阵表示方法,遍历这个矩阵如果遇到一个等于1的位置,记录位置,利用其纵坐标当下一个数的横坐标,在此横坐标下找到是1的位置,记录这个位置,在利用上一个数位置的横坐标和这个数的纵坐标找到一个新的位置,如果这个位置上是1,那么这个数就具有可传递性,然后继续遍历进行这个循环操作,知道检查到所有的数都对上了,这个二元关系才可说具有可传递性,有一个不符的都不是可传递性的二元关系。

     1 #include <iostream>  
     2 using namespace std;  
     3 const int MAXN = 100;  
     4 int A[MAXN][MAXN];  
     5 int main()  
     6 {  
     7     cout<<"请输入具有二元关系的两个集合的大小:\n";  
     8     int x , y ;  
     9     cin>>x>>y;  
    10     cout<<"请输入这两个集合的二元关系矩阵表示法:\n";  
    11     for(int i = 0 ; i < x ; i++)  
    12         for(int j = 0 ; j < y ; j++)  
    13             cin>>A[i][j];  
    14     int p = 0 ;  
    15     for(int i = 0 ; i < x ; i++)  
    16     {  
    17         for(int j = 0 ; j < y ; j++)  
    18         {  
    19             if( 1 == A[i][j] )  
    20             {  
    21                 for(int k = 0 ; k < y ; k++)  
    22                 {  
    23                     if( 1 == A[j][k] && 1 != A[i][k] )  
    24                     {  
    25                         p = 1;  
    26                         break;  
    27                     }  
    28                 }  
    29             }  
    30         }  
    31     }  
    32     if(p)  
    33         cout<<"这个二元关系不具备可传递性!";  
    34     else  
    35         cout<<"这个二元关系具备可传递性!";  
    36 }  
    中途点判别法

     

     

     

    注:若 X = Φ ,则X上的空关系 Φ具有反自反的,对称的,反对称的,可传递的。


     

    2.6关系的合成

     

    2.6.1关系复合

    (1)定义:

    设 R是X→Y的二元关系,S是Y→Z的二元关系,于是可得X →Z的二元关系:
    { <x , z> | x∈X∧z∈Z∧∃ y (y∈Y∧x R y∧y S z ) }  

    称此集合为R与S的复合关系,记为R◦S 或 RS.

    例如:设 X = {1 , 2 , 3 , 4 , 5 },
    R,S均为X→X的关系,且
    R = { <1,2> <3,4> <2,2> }
    S = { <4,2> <2,5> <3,1> <1,3> }

    R◦S = { <1,5> <3,2> <2,5> }
    S◦R = { <4,2> <3,2> <1,4> }

    R◦S  ≠  S◦R ,复合关系“◦”不满足交换律.

    讨论:

    ⑴ R ◦ S为新的二元关系;

    ⑵ R ◦ S ⊆ X×Z

    ⑶ 当 <x , y>∈R与 <y , z>∈S,才有<x , z>∈ R ◦ S .

    注:R1R2有定义,但R2R1不一定有定义,即使有定义,也不一定有R1R2= R2R1。

     

     

     

     

    (2)复合关系矩阵表示

    逻辑加法: 0+0=0 0+1=1 1+0=1 1+1=1
    布尔矩阵的布尔乘法:把矩阵乘法中的“+”改为∨,“+”改为∧,其它不变。记为 MR◦MS
     

     

     

    2.6.2 关系 R 的

    《定义》给定集合X,R 是X上的二元关系, n为自然数,于是 R 的 n 次幂可定义为:
    (1) R0 = X集合中的恒等关系,即R0 ={ <x , x> | xX } = IX

    (2) Rn+1 = Rn ◦R

    设 X = {1 , 2 , 3 },X上的关系R = { <1,2> <2,3> <3,1> }

             求 R0,R2,R3,R4

    解: R= { <1,1> <2,2> <3,3> } = IX                   R2  = { <1,3> <2,1> <3,2> }

             R3  = R2 ◦ R = { <1,1> <2,2> <3,3> } = IX     R4  = R3 ◦ R = R

    《定理》设R为A上的二元关系,m,n为自然数,那么

    (1)RmR= Rm+n   

    (2)(Rm)= Rmn .

    设A={a, b, c, d}, R={<a, b> <b, a> <b, c> <c, d>},求 R2,R3 ,R4,R5

    解:R2  = { <a, a>  < a, c >  < b, b > < b, d > }

             R3  = R2 ◦ R = { <a, b> < a, d >  <b, a>   <b, c>}

             R4  = R3 ◦ R = {<a, a>   <a, c>   <b, b>   <b, d>} = R2 .

     R5  = R4 ◦ R = R2 ◦ R = R3 .

     注:若|X|=n,则X中的二元关系R的幂次值是有限的。一般不用求出超过X的基数次幂。

     

    2.6.3逆关系

    定义:给定两个集合X和Y,若R 是X→Y的关系,那么从Y→X的关系称为R的逆关系,记为或R-1,即

    ⑴只要将R中每一个序偶中的元素全部调换位置,就可得到R的逆关系

    (2)的关系矩阵为

    ⑶ 在R的关系图中,只要把所有箭头改换方向,就可得到的关系图。(自回路箭头改变与否无关)

     

     

     定理:设R ,R1,R2是集合A,B上的二元关系,则

    (1) ( R-1)-1=R;                    

    (2) (R1∪R2)-1=R1-1∪R2-1
    (3) (R1∩R2)-1=R1-1∩R2-1  ;           

    (4) (R1-R2)-1=R1-1 -R2-1 

    (5) (A×B)-1=B×A;                   

    (6) Ø -1= Ø;

    (7) R⊆ R2,则 R1-⊆ R2-1

     

    定理:设R是X中的二元关系,那么R是对称的当且仅当 R  = 

     

    2.6.4关系的闭包

    《定义》给定集合X,R是X中的二元关系,若有另一关系 R¢满足下列条件:

             ⑴ R′是自反的(对称的、可传递的);     

        ⑵ R′  ⊇ R ;

             ⑶ 对于任一自反(对称、可传递)关系R″,若R″  ⊇  R ,则必有 R²  ⊇  R′;

             则称R′是R的自反(对称、可传递)闭包,并依次用r(R),s(R),t(R)来表示之。

     

    讨论定义:

    ⑴ 已知一个集合中的二元关系R,则 r(R),s(R),t(R) 是唯一的,它们是包含R的最小的自反(对称、可传递)关系;

    ⑵ 若R是自反(对称、可传递)的,则 r(R),s(R),t(R) 就是R本身;

    ⑶ 若R不是自反(对称、可传递)的,则我们可以补上最少序偶,使之变为自反(对称、可传递)关系,从而得到r(R),s(R),t(R) .

     

    《定理》给定集合X,R是X上的二元关系,则

             ⑴  R是自反的当且仅当  r(R)=R;

             ⑵  R是对称的当且仅当  s(R)=R;

             ⑶  R是可传递的当且仅当  t(R)=R。

     

    《定理1RX上的二元关系,Ix X上的恒等关系,则有 r(R) = R U Ix  .

    《定理2RX上的二元关系,则有 s(R) = R U R-1

    《定理3RX上的二元关系,则有 t(R) = R U R2 U R3  U ··· =

     

     

     

    2.6.5次序关系

    2.6.5.1偏序集合

    定义:

    设R是X上的二元关系,如果R是自反的,反对称的和可传递的,则称R是X中的偏序关系(或称偏序),并用符号“≤”表示,而序偶〈X,≤〉则称为偏序集合。

    ⑴ “≤”不单纯意味着在实数中的 ≤ 关系,而是代表更为普遍的关系(具有自反,反对称和可传递性的关系);

    ⑵ 若 x, y∈ X ,“x ≤ y”读作:“x小于或等于y”;

    ⑶ R是集合X中的偏序关系,则 R 也是X中的偏序关系,若R用“≤”表示,R 则用“≥”表示;

    ⑷ 若〈X,≤〉是一个偏序集合,则〈X,≥〉也一定是偏序集合,且偏序集合是一个序偶,左元素为集合X,右元素为偏序关系。

    定义:在偏序集合〈X,≤〉中,若对任意的 x, y∈X,均有x ≤ y 或 y ≤ x,则称x和y是可比较的,否则称x和 y是不可比较的。

    例1:
    (1)在领导机构的集合中“领导和被领导的关系”是偏序关系;
    (2)在 I(整数)集合中,“≤”、“≥”均是偏序关系;
    (3)幂集ρ(A)上的包含关系 “⊆” 是偏序关系;
    (4)正整数集 Z+上的整除关系是偏序关系;

     

    2.6.5.2特殊的

    拟序集合

    定义:R是集合X中的二元关系,若R是反自反的,反对称的和可传递的,则称R是X中的拟序关系(串序),并用符号“<”表示。而序偶〈X,<〉称为拟序集合。

    讨论:(1)拟序关系一定反对称的;(2)拟序关系也可用偏序关系来定义:

     

     

    全序集合

    定义:设〈X,≤〉是一个偏序集合,若对于每一个 x, y ∈ X ,或者 x ≤ y,或者 y ≤ x,即

    ∀x ∀y(x ∈X ∧ y ∈ X → x ≤ y∨y ≤ x) ,则称偏序关系“≤” 为全序关系,

    而〈X,≤〉称为全序集合(线序集合)。

     

    在偏序集合〈X,≤〉中,若对任意的 x, y∈ X,均有x ≤ y 或 y ≤ x,则称x和y是可比较的,

    否则称x和 y是不可比较的。

    在偏序集合中,一般情况下,一定是:有的元素是可以比较的,有的元素是不可比较的。

    而在全序关系中,所有的元素均是可比较的.

     

    良序集合

      定义:若集合X上的二元关系R是全序关系,且X的任一非空子集,都有一个最小元素,

                 则称R为良序关系,并称<X,R>为良序集合。

    注:⑴ 良序关系比全序关系多了一个条件,即在全序关系中,X集合的任一非空子集均有一个最小元素;

    ⑵ 每一个有限集合X上的全序关系必定是良序关系。

    例如:设集合A={1,2,3,4},定义A上的全序关系:
    “≤” = { <1,1><1,2><1,3><1,4><2,2>
    <2,3><2,4><3,3><3,4><4,4> }.
    则“≤”也是良序关系。

     

     2.6.5.3偏序集合和哈斯图

    2.6.5.3.1定义

    在偏序集合〈X,≤〉中,若有 x, y ∈ X,且x ≤ y ≠ y

    且又不存在其它元素 z 能使x ≤ z z ≤ y

    则称元素 y 盖住 x,盖住集记为 COV( X )={< x, y >| x, y ∈  X;y盖住 x }.

    给定偏序集合〈X,≤〉,它的盖住集是唯一的。

    我们可以画出盖住集的关系图,称为偏序集合〈X,≤〉的哈斯图。

     

    2.6.5.3.2偏序集合〈X,≤〉的哈斯图的画法

    ⑴ 用“◦”表示 X 中的结点(表示自反性);

    ⑵ 若 x, y∈ X ,且 x ≤ y y ,则把 x 画在y 的下面;

    ⑶ 若 y 盖住 x,则在 x 和y之间画一条连线,并箭头向上;若 y 不盖住 x,但又存在“≤”关系,则必定能通过 x 和 y 之间的其它中间结点把 x 和 y 联结起来;

    ⑷ 所有边的方向均是向上的,所以实际画时,箭头均可省去。

     

     

     

     

     

     

    2.6.5.3.3偏序集中的最小(大)元,极小(大)元

    《定义》给定偏序集合<A , ≤ >,且子集 B ⊆ A,

    (1) 若∃ b∈ B ,使得∀x x ∈B → x ≤ b)成立,则称 b 为 B 的最大元,即 b 大于B中其它所有元。

    (2) 若∃ b∈ B ,使得∀x x ∈B → b ≤ x)成立,则称 b 为 B 的最小元,即 b 小于B中其它所有元。

    《定义》给定偏序集合< A , ≤ >,且子集 B ⊆ A,

    (1) 若∃∈ B ,使得¬ ∃x x ∈B ∧ x ≤ b)成立,则称 b 为 B 的极小元。即B中没有比 b 还小的元。

    (2) 若∃∈ B ,使得¬ ∃x x ∈B ∧ b ≤ x)成立,则称 b 为 B 的极大元。即B中没有比 b 还大的元。

     

    注:由定义可知:

    ⑴ 集合B的最大(小)元、极大(小)元,若有的话,必在 B 中;

    ⑵ 最大(小)元是对B中所有元素与其作比较而言的;而极大(小)元是对 B 中能够与其作比较的元素而言的。

    ⑶ 最大(小)元不一定存在,若存在必唯一;而极大(小)元一定存在,且不一定唯一。

     

     

    2.6.5.3.4偏序集中的上(下)界,上(下)确界

     定义

    给定偏序集合< A , ≤ >,且子集 B ⊆ A,

    (1) 若 ∃∈ A ,使得∀x x ∈B  → xa)成立,则称 a 为 B 的上界,其中最小的一个上界,

    称为 B 的上确界,记为LUB

    (2) 若 ∃ a ∈ A ,使得∀x x ∈B  → ax)成立,则称 a 为 B 的下界,其中最大的一个下界,

    称为 B 的下确界,记为GLB

     

    注:由定义可知:

    (1) 上(下)界是与 B 中所有元素作比较而言的。

    (2) B 的上(下)界不一定存在,若存在,也不一定是唯一的。

    (3) B 的LUB(GLB)不一定存在,若存在必唯一。

    (4) 若B 的上(下)界、LUB(GLB)存在,则其可能在B 中,

    也可能不在 B 中,但一定在 A中。

     

    《定理》设偏序集合 < A , ≤ >,B是A的子集,则:

             (1) 如果b是B的最大元,那么b也是B的极大元.

             (2) 如果b是B的最大元,那么b就是B的 lub.

             (3) 如果b是B的一个上界且 b ∈ B,那么b就是B的最大元.

     

     

    2.6.5等价关系

    2.6.5.1定义

      设R是X上的二元关系,如果R是自反的、对称的和可传递的,

            则称R是X上的等价关系。

            若 <x , y>∈  R,则记为 x ~ y .

    分析:等价关系R的有向图满足:自反的,对称的,传递的。

    例1:下列关系均为等价关系
    (1)实数集合上的“=”关系;
    (2){人类} 中的同姓关系;
    (3)命题集合上的等价关系;
    (4)三角形的全等关系,三角形的相似关系是等价关系;
    (5)在一个班级里“年龄相等”的关系是等价关系;

     

    2.6.5.2等价类

      定义:设R是X上的等价关系,对于∀ ∈ X ,定义 X 的子集

    [x]R = { y | y ∈ X∧ x R y }

    称子集 [x]R是由 x 生成的关于R的等价类,简记为 [x],

    并称 x 为等价类 [x] 的表示元素。

     

    注:⑴ 等价类 [x]R 是一个集合,且 [x]R ⊆ X .

      ⑵ [x]R中的元素是:所有与 x 具有等价关系 R 的元素所组成的集合,且 [x]≠ Ø.

     

     

     

    2.6.5.3划分

    定义:设X是一非空集合,A1, A2 , … , Am 是它的非空子集,且满足

             ⑴  Ai ∩ Aj = Ø(i ≠ j);

        ⑵  A1 U A2 U … U Am = X;

             则称集合族π ={ A1, A2 , … , Am } 为集合X的一个划分。

             而子集A1, A2 , … , Am 称为这个划分的块。

     

     

    定理:设X是一非空集合,R是X中的等价关系,

               则 R 的等价类集合{ [x]R | x∈ X }就是X的一个划分,

          且称此集合为X在R下的商集,记为,即X/R = { [x]R | x∈ X } .

     

     

     

     

     传递1:https://blog.csdn.net/qq_41705423/article/details/79503938

     

     

     

    转载于:https://www.cnblogs.com/ZanderZhao/p/11019629.html

    展开全文
  • 如何处理人际关系.doc

    2021-01-18 14:21:09
    如何处理人际关系 人与人之前的情感是相互的,只有学会尊重...在职场当中,几乎人们从事任何一项工作都是需要与其他人进行沟通协作,共同来完成的。在这个过程中,我们最怕遇到的不是那些没有经验的人、不是那些没有?..
  • 在中学的物理课中我们可能做过棱镜的试验,白光通过棱镜后被分解成多种颜色逐渐过渡的色谱,颜色依次为红、橙、黄、绿、青、蓝、紫,这就是可见光谱。...三种基色是相互独立的,任何一种基色不能有...
  • 马到成功 人际关系技巧一:尊重同事,待人热情忠诚 相互尊重是处理好任何一种人际关系的基础,同事之间也不例外,同事之间的关系都是以工作为前提,一旦失礼,创伤将难以愈合,所以在与同事沟通时,态度要诚恳、...
  • 过程抽象指,任何一个完成确定功能的操作序列,其使用者可以把它看作一个单一的实体,尽管实际上它可能由一系列更低级的操作完成的。 数据抽象根据施加于数据之上的操作来定义数据类型,并限定数据的值只能...
  • 规则定义了元素可以包含的内容以及相互的关系。下面的表格概要列出了元素的规则: 2.元素规则表: Symbol 含义 举例 #PCDATA 包含字符或文本数据 (#PCDATA)> 元素MYFILE包含个文本数据 #PCDATA, element-name ...
  • 数据结构(data structure)是相互之间存在的一种或多种特定关系的数据元素的集合。 在任何问题中,数据元素不是孤立存在的,它们之间存在某种关系,这种数据元素之间的关系称为结构(structure)。 数据结构通常...
  • 数据结构 概述

    2018-05-30 11:33:34
    数据结构 是相互之间存在的一种或者多种特定关系的数据元素的集合 在任何问题中,数据元素不是孤立存在的,而是在它们之间存在着某种关系,这种数据元素相互之间的关系 称为结构 2 数据结构的分类 分类的...
  • 数据结构什么

    2018-06-03 21:02:11
    是相互之间存在一种或多种特定关系的数据元素的集合. 在任何问题中,数据元素不是孤立存在的,而是在他们之间存在某种关系,这种元素之间的关系称之为结构(structure) 通常有4类基本的结构 集合 结构中的数据...
  • 什么知识图谱

    2017-07-14 10:09:45
    任何一种网络都是由节点和节点关系构成。为了直观理解这个概念,拿小孩子玩的磁力棒举例,节点是钢珠,节点关系是磁力棒。 图2 -- 节点和关系 很多的钢珠(节点)和磁力棒(关系)相互关联,就构成了一张...
  • 观察者模式本质上是一...意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象得到通知并被自动更新。动机:将一个系统分割成一系列相互协作的类有一个副作用:需要维护相关...
  • 线程同步指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。 线程互斥指对于共享的进程系统资源,在各单个线程访问时的排...
  • Vhost访问网络的所有数据都是由主机提供的,vhost并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Vhost的存在。 虚拟机与主机:虚拟机可以通过网络访问到主机,主机无法通过网络访问到虚拟机。 ...
  • 什么知识图谱?

    2016-01-18 15:35:11
    任何一种网络都是由节点和节点关系构成。为了直观理解这个概念,拿小孩子玩的磁力棒举例,节点是钢珠,节点关系是磁力棒。 很多的钢珠(节点)和磁力棒(关系)相互关联,就构成了一张网络 在知识图谱中,什么是节点,...
  • 相互尊重处理好任何一种人际关系的基础,同事关系也不例外,同事关系不同于亲友关系,它不是以亲情为纽带的社会关系,亲友之间一时的失礼,可以用亲情来弥补,而同事之间的关系是以工作为纽带的,一旦失礼,创伤...
  • 教学测验的信度、效度、区分度及难度,一般考查形式结合每一个考察...一、 理论详解(一)教学测验的信度、效度、区分度及难度设计和编制任何一种测验,必须使其在效度、信度、难度和区分度方面达到一定要求,即...
  • 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。在任何问 题中,数据元素之间不是孤立的,而是存在着一定的关系,这种关系称为结构 (Structure)。根据数据元素之间关系的不同特性,通常有 4 类基本...
  • [离散数学]偏序与全序的区别、解释

    万次阅读 2017-08-08 17:41:01
    转自:https://github.com/liuchuo概念:偏序关系、全序关系都是公理集合论中的一种二元关系。 偏序集合:配备了偏序关系的集合。 全序集合:配备了全序关系的集合。偏序:集合内只有部分元素之间在这个关系下是...
  • 目录数据结构的概念数据结构的逻辑结构与储存结构算法及时间复杂度 数据结构的概念 什么数据结构 数据结构(Data Structure) :相互...第一种是集合, 集合中任何两个数据元素之间没有逻辑关系,组织形式松散...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 199
精华内容 79
关键字:

任何一种关系都是相互的