关系数据库

    关系数据库应用数学方法来处理数据库中的数据。(第2章讲解关系模型的数据结构、关系操作和关系的完整性)

2.1 关系数据结构

  2.1.1 关系

      关系模型只包含单一的数据结构——关系。

      在用户看来,关系模型中数据的逻辑结构是一张扁平的二维表。

      关系模型的数据结构虽然简单却能够表达丰富的语义,描述出现实世界的实体以及实体间的各种关系。

      也就是说,在关系模型中,现实世界的实体以及实体间的各种联系均用单一的结构类型——关系来表示。

      关系模型是建立在集合代数的基础上的,这里从集合论角度给出关系数据结构的形式化定义。

    2. 笛卡尔积(笛卡尔积是域上的一种集合运算)

    定义2.2 给定一组域D1,D2,……,Dn,允许其中某些域是相同的,D1,D2,……,Dn的笛卡尔积为

      D1×D2×…×D= {(d1,d2,…,dn) | di ∈Di,i = 1,2,…,n}

    3. 关系

      关系是笛卡尔积的有限子集(所以关系也是一张二维表)

      表的每行对应一个元组,表的每列对应一个域。

      由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性。

      若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码。

      若一个关系有多个候选码,则选定其中一个为主码。

      候选码的诸属性称为主属性。

      不包含在任何候选码中的属性称为非主属性或非码属性。

      一般来说,D1,D2,……,Dn的笛卡尔积是没有实际意义,只有它的某个真子集才有实际意义。

     关系可以有三种类型:基本关系(通常又称为基本表或基表)、查询表和视图表。

       其中,基本表是实际存在的表,它是实际存储数据的逻辑表示;

       查询表是查询结果对应的表。

       视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。

      当关系作为关系数据模型的数据结构时,需要给予如下的限定和扩充:

        ……

  2.1.2 关系模式

      关系模式是对关系的描述,那么一个关系需要描述哪些方面呢?

          关系是元组的集合,因此关系模式必须指出这个元素集合的结构,

          即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映像关系。

          关系模式应当刻画出这些完整性约束条件。

      关系模式可以形式化地表示为 R(U,D,DOM,F)

      其中,R为关系名,U为组成该关系的属性名集合,D为U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。

        属性间的数据依赖将在第6章讨论,本章中关系模式仅涉及关系名、各属性名、域名、属性向域的映像4部分,即 R(U,D,DOM)

      关系模式通常可以简记为

          R(U) 或 R(A1,A2,… ,An) 

        其中R为关系名,A1,A2,… ,An为属性名。(而域名及属性向域的映像常常直接说明为属性的类型、长度)

      关系是关系模式在某一时刻的状态或内容。

      关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。

      (例如,学生关系模式在不同的学年,学生关系是不同的。)

      (在实际工作中,人们常常把关系模式和关系都统称为关系,这不难从上下文中加以区别)

原文地址:https://www.cnblogs.com/zhangchaoran/p/6973133.html