一、关系数据结构与形式化定义1 .关系模式相关概念:域:域是具有相同数据类型的值集合
笛卡尔积:域上的集合运算
各个元素(d1,d2,d3,……dn )称为鼻祖,鼻祖各自的值称为分量。
【一个域允许的不同取值个数称为这个域的基数】
http://www.Sina.com/D1 D2 . * Dn的子集称为域D1、D2、Dn上的关系,并表示为r(D1、D2、dn )
这里的n是关系的目的或度(在n=1的情况下,为单元关系/单元关系; n=2时,为二元关系)
关系:在某些关系中,一个属性或属性组的值能够唯一地标识关系的始祖,如果不能有子集,则该属性组被称为候选代码
——属性组是候选代码吗?
属性组可以是候选代码
候选码(候选关键字):主代码必须是候选代码中的一个,只有一个
候选代码的属性称为主属性
不包含在任何候选代码中的属性称为非主属性
【不能取空值】
主码(主关键字):是基本关系r的一个或一系列属性,但如果不是关系r的代码,则KS是关系s的主代码,如果f对应于KS,则f被称为关系r的外码
【限制主表中不能出现在子表中的东西】
基本关系r称为参照关系
基本关系s称为被参照关系
【外码也可以为空】
外部码(外码):关系模型的所有属性都是此关系的候选代码
2 .关系类型:全码:实际表,是实际保存数据的逻辑表达
基本关系:对应于查询结果的表是实际上不存在的表
查询表:从基本表或者其他视图表导出的表是虚拟表,值存储定义但没有存储对应的数据,对应的数据仍然存储在基本表中
3 .基本关系性质)列属性相同性质不同列属性必须有不同属性名称(不同列可以来自同一个域)任意两个鼻祖不完全在同一行的顺序无关紧要,“表表表”不允许)
视图表(虚表):R是关系名,u是构成该关系属性名的集合,d是u中属性的由来域,DOM是从属性到域的图像的集合,f是属性间的数据依存关系的集合
关系模型必须指出这个鼻祖集合的结构
关系模型必须具有完整性约束
5 .关系和关系模式:描述:为关系体,关系模式的某一时间点的状态和内容随着数据的更新而不断变化
关系:是关系头,是关系结构的描述,是静态、稳定、固定的
6 .关系数据库和关系数据库模型:关系模式:【类型】是关系数据库的描述。 它包含一些域的定义以及在这些域中定义的一些关系模式
关系数据库模式:【值】关系模式在给定时刻的关系集合根据数据更新而不断变化
7 .关系数据库存储结构:以独立文件格式存储表,交给操作系统管理,以大文件格式存储。 包括由DBMS和OS共同管理2、关系操作2.1、常用关系操作:关系数据库:选择(select )、投影(project )、连接(project )
查询(query):查询(query )、插入(insert )、删除(delete )、修改(update ) )。
【选择、投影、并、差、直积是5个基本的查询操作】
常见的关系操作:
2.2 .关系操作特点:关系操作语言一体化关系操作方式一次集合方式关系操作语言是一种高度非过程化的语言
操作的对象和结果都是集合用对关系的运算表示查询请求的语言
用关系代数语言:查询得到的鼻祖必须满足的谓词条件表示查询请求的语言
关系演算语言:具有关系代数和关系运算双重特征的语言(SQL语言) 2.3 .关系数据语言的分类
三、关系完备性3.1 .关系三类完备性约束基于映像的语言:关系模型需要满足的完备性约束条件被称为关系的两个不变性,应该由关系系统自动支持
实体完整性和参照完整性:应用领域必须遵循的约束条件体现了具体领域中的语义约束
3.2 .实体完整性关系的主属性不能为空
空值是没有意义的值,即“不存在”或“不知道”
实体完整性规则说明:
)1)实体完整性规则为
针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。
(3)关系模型中以主码作为唯一性标识。 (4)主码中的属性即主属性不能取空值。
主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性 3.3.参照完整性
若属性F是基本关系R的外码,它与基本关系S的主码KS相对应,则对于R中的每一个元组在F上的取值满足:
空值&等于S中某个元祖的主码值
在关系模型中实体及实体间的联系都是用关系来描述的
针对某一具体关系数据库的约束条件,反应某一具体应用所涉及的数据必须满足的语义要求
关系模式应提供定义和检验这类完整的机制,一遍用同一的系统的方法处理他们,而不需有应用程序撑到这一切
关系代数是一种抽象的查询语言,它对关系的运算来表达查询
运算对象三要素: 运算对象,运算符,运算结果
二目运算:并,差,交,笛卡尔积
并(union)
其结果仍为n目关系,由属于R或属于S的元组组成
由属于R二不属于S的所有元组组成
由属于R而不属于S的所有元组组成,可用差来表示,R∩S=R-(R-S)
笛卡尔积若R有K1个元组,S有K2个元组,则关系R和关系S的笛卡尔积有K1×K2个元组
选择: 又称为限制【选择是从行角度进行的运算】
F:选择条件,是一个逻辑表达式,取值为真或假。
【集合结构并没有变化,只是个数上的减少】
投影:【是从列角度进行的运算】
从R中选择出若干属性列组成新的关系,取消重复元素
连接: 也称为Θ连接【具体连接由关系Θ决定】
连接运算的含义:从两个关系的笛卡尔积中选取属性间满足一定条件的元祖
自然连接:自然连接是一种特殊的等值连接
两个关系中进行比较的分量必须是相同的属性组
在结果中把重复的属性列去掉
自然连接的含义:
R和S具有相同的属性组B
悬浮元组: 两个关系做自然连接时,关系R中某些元祖有可能在S中不存在公共属性上值相等的元组,从而造成R中这些元组在操作时被舍弃,被舍弃的元组称为悬浮元组。
外连接: 把悬浮元组也保存在结果关系中,而在其他属性上填空值(null)
左外连接:只保留左边关系R中的悬浮元组
右外连接:只保留右边关系S中的悬浮元组
除运算:
设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性的及其值,且T的元组与S的元组的所有组合都在R中。