二、关系数据库
1 关系
域:一组具有相同数据类型的值的集合。
笛卡尔积:所有域(域可相同)中所有取值的组合
例如:D1={1,2,3},D2={A,b},那么D1与D2的笛卡尔积:
D1×D2={(1,A),(1,B),(2,A),(2,B),(3,A),(3,B)}
- 元组:笛卡尔积中的每一个元素称为一个元组
- 分量:笛卡尔积元素的每一个值叫做一个分量
- 基数:两个集合的元素个数乘积
- 注:笛卡尔积不满足交换律,即 D1×D2≠D2×D1
关系:笛卡尔积D1×D2的子集叫做在D1、D2上的关系,表示为R(D1,D2)
- R代表关系名。关系是一个二维表
- 每行对于一个元组,每列对应一个域
- 由于域可以相同,所以每列取一个名字加以区分,称为属性
- 因为有了属性,因而取消了关系元组的有序性,即关系满足交换律(顺序交换了可由列名来区分,而不依赖于顺序来区分)
一般来说,域的笛卡尔积无意义,从中取出有实际意义的元组才能构成关系。
更严格说,关系是笛卡尔积的有限子集,无限关系在数据库中是无意义的。
候选码:能唯一标识关系中一个元组的某一属性组
- 候选码可有多个;选定一个为主码
- 候选码的诸属性称为主属性,不存在于任何候选码的属性称为非主属性
关系的性质:
- 每个属性必须不可区分(基本要求)
- 表中各列取自同一个域。不同列可以来自同一域。
- 列的次序可以交换,不影响实际意义
- 不允许出现完全相同的两行。行的顺序也不重要。
关系模式:关系模式是对关系的描述。
- 关系模式是型,静态。关系是值,动态的。
- 关系模式可以表示为R(U,D,DOM,F)
- R为关系名
- U为组成该关系的属性名集合
- D为属性组U中属性所来自的域
- DOM为属性向域的映像集合
- F为属性间数据的依赖关系集合
关系操作的对象和结果都是集合
2 关系数据库
关系数据库的值:这些关系模式在某一时刻对应的关系集合
关系数据库的操作:
- 查询:连接、投影、并、差、笛卡尔积
- 数据更新:插入、删除、修改
- 特点:操作的对象和结果都是集合,一次一集合的方式
3 完整性约束
实体完整性:
- 关系模式中以主码作为唯一标识,主码中的属性即所有主属性都不能取空值
参照完整性:
- 实体和实体间的联系用关系来描述,关系和关系间也存在引用
- 外码:是本关系的一个或一组属性,但不是本关系的码,外码是另一个关系的主码。虽然外码不是本关系的码,但多个外码可以组成本关系的主码
- 参照完整性规则:本关系的外码或者取空值,或者等于目标关系的某个主码值。如果多个外码构成本关系的主码,则本关系的外码只能取对应目标关系的主码值。
用户自定义完整性:争对具体的应用环境,给出关系数据库的约束条件,反映具体应用设计数据库必须满足的语句要求
- 包括:
- 唯一值约束(
UNIQUE
) - 非空值约束(
NOT NULL
) - 检查约束(
CHECK
),例如只能取{男,女} - 缺省值约束(
DEFAULT
),也就是默认值
4 关系运算
传统的:并,交,差,广义笛卡尔积
注:并交差运算的属性个数必须相同
五种基本的关系运算:并、差、笛卡尔积、投影、选择。其他的是衍生出来的。
几个记号:
-
分量:
-
分量的集合:
-
元组的连串:
-
象集:
1. 选择运算:
实质是从关系从选择满足条件的元组。
例子:查询信息管理专业的女生: σ M a j o r = ′ m i s ′ ∧ G e n d e r = ′ 女 ′ ( S t u d e n t ) \sigma_{Major='mis' ∧Gender='女'}(Student) σMajor=′mis′∧Gender=′女′(Student)
2. 投影运算:
从关系中选择出若干属性列组成新的关系
例子:查询商品的价格和名称: π G o o d s N a m e , S a l e P r i c e ( G o o d s ) \pi _{GoodsName,SalePrice}(Goods) πGoodsName,SalePrice(Goods)
3. 连接运算:
θ θ θ连接
- 笛卡尔积,求R×S
- 选择R中属性A和S中属性B满足条件的元组组成新的关系
A和B是关系R和S中度数相等且可比 的 属性组
等值连接
- 笛卡尔积,求R×S
- 选择R中属性A和S中属性B相等的元组组成新的关系
自然连接
- 笛卡尔积,求R×S
- 选择R中属性A和S中属性B相等的元组组成新的关系
- 在新关系中去掉重复的属性列
其实就是特殊的等值连接
4. 除运算(表达查询)
R ÷ S R÷S R÷S得P(X),由R中某些X属性构成,这些属性满足:
元组在X上分量值x得象集 Y x Y_x Yx包含S在Y上投影的集合。
(看不懂,直接看例子好了)
实例:
理解:“某个属性对应的另一个属性的象级,这个象级和另一个关系的在某个属性上的投影相等”。
看到题目中出现“全部”时用除运算。找出含某个属性所有可能取值的元素