一组具有相同数据类型的值的集合,如整数、实数,对应一张表里面的一列

笛卡尔积

一组域D1 D2 D3 D4…
笛卡尔积:D1D2D3D4…
举例:D1: a b c D2: c d
笛卡尔积:D1
D2={ac,ad,bc,bd,cc,cd}

元组

笛卡尔积中的每一个元素或者说一张表里面的一行

分量

笛卡尔积元素中的每一个值或者说一张表里面一行中的一格

关系

关系是笛卡尔积的子集,是一张二维表

基本关系的一些性质

  • 列是同性质的
  • 不同的列可以来自同一个域
  • 列的顺序没有影响
  • 行的顺序没有影响
  • 任意两个元组不能完全相同,至少主码不能相同
  • 分量(一行中的一格)必须取原子值

关系模式

  • 关系模式是型
  • 关系是值
  • 关系模式是对关系的描述
  • 形式化定义:

    通常简记:R(A1,A2…An)
    R是关系名,A1…An是属性名

关系模式与关系

关系模式:

  • 对关系的描述
  • 静态的、稳定的
    关系:
    关系
  • 在某一时刻的状态或内容
  • 动态的、随时间不断变化的

###关系的完整性

实体完整性

主属性不能取空值

参照完整性

F是基本关系R的外码
F对应基本关系S的主码(R和S可以是同一个关系)
则对于R在F上的取值只能是以下两种情况“
1.取空值,即F的每个属性值均为空值
2.对于S中的某个元组的主码值
举例:
有一个学生表,对于某一元组有一个非主属性专业号
有一个专业表,其主属性为专业号
那么对于学生表的一个学生,他的专业号要么为空,也就是还没有分配专业;或者他的专业号是专业表里面的一个主码;不存在这样一个学生,他的专业号在专业表中不存在。

用户定义的完整性

用户自定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所设计的数据必须满足的语义要求。

例子:

笛卡尔积导致mysql数据库慢 笛卡尔积数据库例子_笛卡尔积导致mysql数据库慢