关系模型
关系模型由关系数据结构,关系操作集合,关系完整性约束三部分组成
-
关系数据结构——一些概念
-
元组:一条数据库记录
-
分量:元组中某一属性值
-
域(D):一组具有相同数据类型的值的集合
-
笛卡尔积(D1D2D3…*Dn):所有域的所有取值的任意组合
- 笛卡尔积可表示为一张二维表,行表示元组,列表示域
- 笛卡尔积由于是所有组合,因此没有实际意义。它 的子集才有实际意义
-
基数(M):
-
候选码:某一属性值能唯一确定一个元组
-
全码:关系模型中所有属性组都是候选码
-
外码:R的一个属性F是S的主码,称F为R的外码:R为参照关系,S为被参照关系
外码取空值表示尚不存在,不取空值表示是另一个表的主码值。
-
分量必须取原子值:表中不能含表
同一关系模型中任意两个元组值不能完全相同
关系模式
关系模式
- 被定义为 R(U,D,dom,F) 其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合.
关系
- 关系就是一个二维表的具体内容,因为其经常被修改,所以不同时刻的关系是不同的
关系数据库
- 一个给定的应用领域内所有关系的集合
关系模式与关系
- 关系模式是型,关系是值
- 关系模式是对关系的描述,是静态的稳定的
- 关系是关系模型在某一时刻的状态或内容,是动态的,不断随时间变化的
关系名和他的属性集称为关系模式。
关系完整性约束
- 关系的三类完整性约束
- 实体完整性
- 参照完整性
- 用户定义的完整性
实体完整性和参照完整性被称为关系的两个不变性
- 实体完整性
关系的主属性不能取空值 - 参照完整性
外码要么为空值,要么是被参照关系的主码值
关系代数
SQL具有关系代数和关系演算双重特点
关系代数用运算来表达查询,关系演算用谓语来表达查询
- 关系代数
关系代数运算是:以集合运算为基础的运算
并差交集合运算的条件是:1、具有相同的目n,2、属性来自同一个域//属性名可不同。//结果会去除重复记录。
五个基本运算:并,差,选择,投影和笛卡尔积
选择:选择诸元组
投影:选出属性列(本质得到一个集合,会自动去掉重复的,因为集合是不能重复的)
连接:A⋈B
等值连接将R与S中A=B的行相连接//看作笛卡尔积后进行等值筛选。
自然连接:R与横向连接并且除去重复的内容,是去除重复属性(列)的等值连接;1.等值连接属性一定多于自然连接2.没有公共属性时将只进行笛卡尔积操作而不进行筛选。
连接等于笛卡尔积和选择运算的组合而成。自然连接是笛卡尔积,选择,投影运算组合而成。
除:R除于S=挑选满足S内容的(在R中但不存在S)中的属性值
象集:本质是一次选择运算和一次投影运算
关系演算
- 限定检索:查询条件来自工作区内的关系,可以不用元组变量
- 用于存在量词的检索:当查询条件来自工作区(就是括号中是否又)以外的关系时, 要使用元组变量和量词. (条件是若存在)
条件在工作区外
RANGE SC X
GET W (Student.Sname):存在 X(X.Sno=Student.Sno∧X.Cno=2)
条件来自工作区内的关系
GET W (Student.Sname,SC.grade): Student.Sno=SC.Sno ∧ SC.CNO=2
- 存在量词:量词内部只要存在满足条件的记录就输出
- 全称量词:量词内部全部记录都满足条件才输出
- 并集:只要满足了一边的判断就算满足条件
- 交集:全部满足了所有判断才算满足条件
关系代数运算操作对象是集合
关系演算操作对象是元组或域分为元组关系演算和域关系演算。//ALPHA元组关系演算语言 QBE域关系演算语言。