数据库之关系数据库-1
关系数据库系统是指支持关系模型的数据库系统
是一个扁平的二维表
关系:
关系数据库就是指其单一的数据结构的关系
父子关系,出生年月与年龄的关系
也就是说显示世界的实体以及实体间的各种联系
域(Domain)
是具有同一种类型的数据的集合统称之为域
如:自然数,实数,整数,{0,1},大于一且小于100的正整数等都可以是域
笛卡尔积(cartersian Product)
笛卡尔积是域上面的一种集合运算()
笛卡尔积 M = D1 * D2 * D3 * …Dn = {(d1 * d2 * d3 * d4 * … dn) | d∈Di , i = 1,2,3,4,5…i }
其中D1,D2,D3,D4…Dn 叫做 域(DOMAIN)
其中的每一个元素(d1,d2,d3 ,d4…dn)叫做元组(Tuple)
每一个值(di)叫做分量(Component)
笛卡尔积可表示为一个二维表。表中的每一行都对应一个元组,而为一行中的数据都可以称之为域,如
D1 = 年级集合 GRADE = 大一,大二,大三
D2 = 专业集合 MAJOR = 计算机专业,信息专业
D3 = 学生集合 STUDENT = 李强,王刚
则用笛卡尔积可以表示为
D1 * D2 * D3 = { (大一,计算机专业,李强),(大一,计算机专业,王刚),(大二,计算机专业,李强),
(大二,计算机专业,王刚),(大三,计算机专业,李强),(大三,计算机专业,王刚),
(大一,信息专业,李强),(大一,信息专业,王刚),(大二,信息专业,李强),
(大二,信息专业,王刚),(大三,信息专业,李强),(大三,信息专业,王刚)
}
则 M = 3 * 2 * 2 = 12 ,CartersianProduct = 12 ,也就是说这些元组可以组成一个二维表
其中 :(大二,信息专业,王刚),(大三,信息专业,李强)称之为元组,而大一,大二,李强,计算机专业称之为分量
GRADE | MAJOR | STUDENT |
---|---|---|
大一 | 计算机专业 | 李强 |
大一 | 计算机专业 | 王刚 |
大一 | 信息专业 | 李强 |
大一 | 信息专业 | 王刚 |
大二 | 计算机专业 | 李强 |
大二 | 计算机专业 | 王刚 |
大二 | 信息专业 | 李强 |
大二 | 信息专业 | 王刚 |
大三 | 计算机专业 | 李强 |
大三 | 计算机专业 | 王刚 |
大三 | 信息专业 | 李强 |
大三 | 信息专业 | 王刚 |
关系(Relation)
D1,D2,D3…Dn的子集叫做在域D1,D2,D3…Dn上的关系 ,表示为R(D1,D2,D3…Dn)
R = 关系的名称
n = 关系的 目 或者 度
当n = 1 ,为单元关系,或叫做一元关系
当n = 2 , 为二元关系
n目关系必有n个属性(每一个属性都有一个关系)
如上边的表可以表示为R(GRADE,MAJOR,STUDENT)
关系表可以分作三种类型:
- 基本关系:实际存在的表
- 查询表: 查询结果所得的表
- 视图:由基本表或其他视图表导出的表,为虚表
倘若关系中的某一属性组的值可以唯一识别一个元组,则称之为 候选键
倘若由多个 候选键 ,则选定其中一个设定为 主键
但是一般来说笛卡尔积是没有实际意义的,只有其子集才会有意义
其子集中大部分也是无意义的,假设李强是大一学计算机专业的,王刚是大二学信息专业的。
如图:
GREADE | MAJOR | STUDENT |
---|---|---|
大一 | 计算机专业 | 李强 |
大二 | 信息专业 | 王刚 |
这样的话在笛卡尔积中的一些子集就是无意义的了,如此假设的话关系又可以是一个无限集合。但是由于笛卡尔积不满足交换律,所以当
关系作为关系数据模型的数据结构时,需要给与限定和扩充:
- 无限关系在数据库系统中是无意义的,所以限定关系模型中的数据关系必须为有限集合
- 为每一列增加个属性名来取消其元组的有序性