如果这篇博客帮助到你,可以请我喝一杯咖啡~
CC BY 4.0 (除特别声明或转载文章外)
基本概念
域(domain)
某个属性的值域. 域具有原子性, 在使用上不可再分. 所有域都含有 null.
关系(relation)
一系列域上的笛卡儿积的子集. 关系的元素为一个元组, 对应表的一行. 一个关系中的元素必定相异.
超码(super key)
超码是属性的集合. 一个关系的超码可以唯一标识这个关系中的一个元组.
候选码(candidate key)
如果一个超码的任意真子集都不是超码, 那么这个超码就是候选码. 一个关系的候选码可以有多个.
主码(primary key)
一个关系的主码是数据库设计者选择的候选码.
外码(foreign key)
一个关系模式(r1)的属性如果包含另一个关系模式(r2)的主码, 则这个属性叫做 r1 参照 r2 的外码.
关系代数运算
关系代数运算是非过程化的. 关系代数运算的输入输出都为关系, 所以关系代数运算可以组合.
基本运算
选择运算
选出满足给定谓词的元组.
投影运算
返回关系的某些属性组成的关系.
更名运算
给一个关系赋名, 也可以给其属性赋名.
并运算
返回两个关系的并. 两个关系必须 schema 相同, 即同元(属性数目相同), 相对属性的域也相同.
集合差运算
返回两个关系的集合差, 两个关系必须像并运算一样相容.
笛卡儿积
将任意两个关系拼接起来, 通过重新命名属性名来避免两个关系的属性名如果相同.
附加运算
在不增加关系代数表达力的情况下, 附加一些运算以简化表达式.