数据库原理(五)- 关系数据结构及形式化定义

前言

前面我们讲了关系模型就是一张扁平的二维表,它只包含一种数据结构-关系,这是一种非形式化的概念,现在我们从出集合论角度给出关系数据结构的形式化定义

在上篇好像是说过的,一组具有相同数据类型的值的集合,比如性别的集合都是char类型,且只能选择男或女两种值,那么它的就是:

{男,女}   //当然如果有第三种,那就自已看着办

笛卡尔积

笛卡尔积是域上的一种集合运算

  • 数学代数式表达:

假设一组域为D1,D2,…,Dn,允许其中某些域是相同的,那么D1xD2x…xD3的笛卡尔积为:

D1xD2x...xDn = {(d1,d2,...,dn) | di∈Di,i=1,2,..,n}

每一个元素的(d1,d2,…,dn)叫做元组,元素中的每一个 di 叫做一个元组的分量,一个域允许的不同取值范围个数称为这个域的基数

  • 实例证明

假设有D1,D2,D3三个域,且域的数据类型相同,并具有一定的联系

D1=导师集合={赵一,钱二}
D2=专业集合={计算机专业,信息专业}
D3=研究生集合={张三、李四}

观察可知笛卡尔积的基数为 2x2x2=8 ,那么它的笛卡尔积为:

D1xD2xD3 = {(赵一,计算机专业,张三),(赵一,计算机专业,李四),
            (赵一,信息专业,张三),(赵一,信息专业,李四),
            (钱二,计算机专业,张三),(钱二,计算机专业,张三),
            (钱二,信息专业,李四),(钱二,计算机专业,李四)}

据结果又可知笛卡尔积的元组数为:2x2x2=8,然后我们将12个元组用二维表展开,如下:

导师 专业 研究生
赵一 计算机专业 张三
赵一 计算机专业 李四
赵一 信息专业 张三
赵一 信息专业 李四
钱二 计算机专业 张三
钱二 计算机专业 李四
钱二 信息专业 张三
钱二 信息专业 李四

关系

关系的结构

如上笛卡尔积可知D1xD2x…xDn的子集叫做在域D1xD2x…xDn上的关系,表示为:

R(D1xD2x...xDn) //这里的R表示关系的名字,n是关系的目或度,也可以看做一张表有多少列

关系中每个元素是关系中的元组,通常用 t 表示
当n=1时,称该关系为单元关系,或一元关系,
当n=2时,称该关系为二元关系,
当n=m时,称该关系为m元关系

  • 候选码,一个关系中的某一属性组的值能唯一地表示一个元组,而其子集不能,则称该属性组为候选码
如R(学号,姓名,性别)中,学号可以知道这个学生的姓名,也可以知道这个学生的性别,那么学号是这个关系的候选码
  • 主码,若一个关系有多个候选码,则选定其中一个为主码
很明显学号是候选码,所以就是这个关系的主码
  • 主属性,候选码的诸属性称为主属性
  • 非主属性,不包含在任何候选码中的属性称为非主属性或非码属性
  • 全码,若一个关系中所有属性是这个关系模式的候选码,称为全码

关系的类型

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

  • 基本表是实际存在的表,它是实际存储数据的逻辑表示
  • 查询表时查询结构对应的表
  • 视图是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据

基本关系的6条性质

  • 列是同质的,即每一列中的分量是同一类型的数据,来自同一个域
  • 不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名
  • 列的顺序无所谓,即列的次序可以任意交换
  • 任意两个元组的候选码不能取相同的值
  • 行的顺序无所谓,即行的次序可以任意交换
  • 分量必须取原子值,即每一个分量都必须是不可分的数据项

关系模式

关系的描述称为关系模式,它可以形式化地表示为

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

示例

subject(   //研究课题关系
    U{name,major,tutor}  //关系的属性集{学生姓名,专业,导师}
    D{char}             //关系的属性所在域的集合{字符串类型}
    DOM{DOM(name)=DOM(major)=DOM(tutor)=char}  //属性向域的映像集合{分别解释关系中的属性来自那个域}   
    F{name->major,(name ,major)->tutor} //属性间数据的依赖关系集合{学生姓名可以确定属于那个专业,学生姓名和专业可以确定导师是谁}
)

借鉴

王珊,萨师煊.数据库系统概论(第五版)[M].北京:高等教育出版社,2014:38-43.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章