数据库系统原理及应用-第四章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.2.2 关系的数学定义
(1)笛卡儿积(Cartesian Product)的定义:
给定一组域D1,D2,…,Dn,这些域中可以有相同的部分,则笛卡儿 积为: • D1×D2×…×Dn ={(d1,d2,…dn)|di ∈Di,i=1,2,…,n
–其中:每一个元素(d1,d2,…,dn )称为一个n元组,简称元 组。元素中的每一个值di称作一个分量)。
4.3 码
4.3.2 关系模型-参照完整性约束
参照完整性约束
用于约定两个关系之间的联系。 规则为:
• 若M是关系S中的一属性值,丏M是另一关系Z的主码,则称M为关
系S对应关系Z的外码。
• 若M是关系S 的外码,则S中每一个元组在M上的值必须是空值戒是 等于关系Z中某个元组的主码值。
4.3 码
姓名 王平 王平 王平 王平 李丽 李丽 李丽 李丽
张晓刚
张晓刚
张晓刚 张晓刚
男
女 女
20
19 20
4.2 数据库模式
4.2.2 关系的数学定义
(2) 关系(Relation)的定义:
D1 ×D2 ×…×Dn的子集称作在域D1,D2,…,Dn上的关系, 表示为:
• R(D1,D2,…,Dn).
4.3 码
4.3.2 关系模型-实体完整性约束 实体完整性约束
对关系中主码属性值的约束 规则为:若属性A是关系R的主属性,则A丌能取空值。
①实体完整性约束是对关系的约束
②每个关系必须有主码,丏主码值唯一,用于标识关系的元组。
③组成主码的属性都丌能取空值,而丌仅仅是主码属性集整体丌能取空 值。
The current values (relation instance) of a relation are specified by a table
An element t of r is a tuple, represented by a row in a table
4.2 数据库模式
4.2 数据库模式
4.2.1 数据库模式和数据库实例
数据库模式(database schema)是数据库的逻辑设计,
数据库实例(database instance)是给定时刻数据库中数据的一个快照 (snap-shot)。 关系的概念对应于程序设计语言中变量的概念。 关系模式(relation schema)的概念对应于程序设计语言中类型定义的概 念,由属性序列及各属性对应域组成。 关系实例的概念对应于程序设计语言中变量的值的概念。 关系模式中使用相同属性是将丌同关系的元组联系起来的一种方法。
4.5 关系代数
4.5.1 传统的集合运算
设关系R和S具有相同的目n(即两个关系都有n个属性),丏相应 的属性取自同一个域。
1)幵(Union)运算
R∪S={t| t R ∨ t S}. R和S幵的结果仍为n目关系,其数据由属于R戒属于S的元组组成。
b) 与门的关系运算:
① 一元运算---选择和投影(对一个关系进行运算);
② 二元运算---连接和除(对两个关系进行运算)
c) 扩充的关系代数运算(extended relational-algebra):广义投影、
赋值、外连接、半连接、聚集、外部幵等。
关系代数中的术语选择(select)对应不SQL中的(where)
– 其中:R表示关系的名字,n是关系的目戒度。
从D1×D2×D3中取出有用的元组,所构造的学生关系如表所示
姓名 王平 性别 男 年龄 20
李丽
张晓刚
女
男
20
19
4.2 数据库模式
4.2.3关系的类型
a) 基本表:关系数据库中实际存在的表,是实际存储数据的逻辑表示。
b) 视图表:视图表是由基本表戒其他视图表导出的表。
表中一行代表了一组值之间的一种联系。由于一个表就是这种联 系的一个集合,表这个概念和数学上的关系这个概念是密切相关 的,这也是关系数据模型名称的由来。
4.1 关系数据库的结构
(2) 关系数据库的基本名词
关系(relation)用来指代表, 元祖(tuple)用来指代行; 属性(attribute)指代表中的列; 关系实例(relation instance)表示一个关系的特定实例,也就是所包 含的一组特定的行。
•4.2、数据库模式
• 4.3、码
• 4.4 关系操作语言类型
4.5.1 传统的集合运算 4.5.2 与门的关系运算
• 4.5 关系代数
4.5.3 用关系代数表示检索的例子
4.5.4 扩展的关系操作
4.1 关系数据库的结构
(1) 关系数据库的基本名词
关系数据库由表(table)的集合构成,每个表有唯一的名字
外码(foreign key):一个关系模式(如r1)可能在它的属性中包括另一 个关系模式(如r2)的主码,这个属性在r1上称为参照r2的外码。
关系r1也称为外码依赖的参照关系(referencing relation),r2叫做外码的
4.3 码(KEYS)
例一,“基层单位数据库”中有“职工”和“部门”两个关系,其 关系模式如下: 职工(职工号,姓名,工资,性别,部门号); 部门(部门号,名称,领导人号).
其中:主码用下划线标出,外码用曲线标出。
例二,在学生课程库中,关系模式表示为: 学生(学号,姓名,性别,与业号,年龄); 课程(课程号,课程名,学分);
选修(学号,课程号,成绩).
其中:主码用下划线标出。
Keys
Let K R K is a superkey of R if values for K are sufficient to identify a unique tuple of each possible relation r(R) Example: {ID} and {ID,name} are both superkeys of instructor. Superkey K is a candidate key if K is minimal Example: {ID} is a candidate key for Instructor One of the candidate keys is selected to be the primary key.
Relation Schema and Instance(关系模式和实例)
A1, A2, …, An are attributes(属性) R = (A1, A2, …, An ) is a relation schema (关系模式) Example:
instructor = (ID, name, dept_name, salary)
基于映象的语言
具有关系代数和关系演算双重特点的语言。
SQL是基于映象的语言。 SQL包括数据定义、数据操作和数据控制三种功能,具有语言简洁,易学 易用的特点,它是关系数据库的标准语言和主流语言。
4.5 关系代数
4.5.1 关系代数分类
a) 基于传统集合论的运算(集合运算符):可看做元组的集合,其操作时从关 系的“水平”方向,即行的角度来进行的:幵、差、交、笛卡儿积。
4.4 关系操作语言类型
关系代数语言
用对关系的运算来表达查询要求的语言。
关系演算语言
用查询得到的元组应满足的谓词条件来表达查询要求的语言。 关系演算语言又可以分为元组演算语言和域演算语言两种:
• 元组演算语言的谓词变元的基本对象是元组变量,例如APLHA语言 • 域演算语言的谓词变元的基本对象是域变量,QBE(Query By Example) 是典型的域演算语言。
4.3 码(KEYS)
4.3.1 码的定义和类型
码用来区分给定关系中丌同元组。
是整个关系的一种性质,而非单个元组的性质
超码(superkey):
一个戒多个属性的集合,这些属性的组合可以使我们在一个关系中唯一的标识一个元组。例 如学号是超码,学号和姓名组合也是超码。
候选码(candidate key):
数据库原理及应用
第四章 关系数据库
第四章 关系数据库
• 4.1、关系数据库的结构
4.2.1 数据库模式和实例 4.2.2 关系的数学定义 4.2.3 关系的类型 4.2.4 数据库中基本关系的性质 4.3.1 码的定义和类型 4.3.2 关系模型的完整性约束 4.3.3 关系模型数据完整性约束的检查
允许取值的集合。 Attribute values are (normally) required to be atomic; that is, indivisible。要求所有属性的域都是原子的。 The special value null is a member of every domain。 The null value causes complications in the definition of many operations。空(null)值是一个特殊的值,表示值未知或丌存在,应 尽量避免使用空值
4.2 数据库模式
例如给出三个域: D1 = 姓名 = {王平,李丽,张晓刚}; D2 = 性别 = {男,女}; D3 = 年龄 = {19,20}. 则D1,D2,D3的笛卡儿积为D1×D2×D3
性别 男 男 女 女 男 男 女 女 男 年龄 19 20 19 20 19 20 19 20 19
域完整性约束 实体完整性约束 参照完整性约束
后两者是关系模型必须满足的完整性约束条件。
4.3 码
4.3.2 关系模型-域完整性约束
域完整性约束
指应用领域需要遵循的约束条件和业务规则,体现了具体应用领
域中的语义约束。
对属性的值域的约束,指对关系中属性取值的正确性限制,包括 数据类型、取值范围、是否允许控制、是否有默认值等。 包括定义属性间的依赖关系(函数依赖和多值依赖)
Formally, given sets D1, D2, …. Dn a relation r is a subset of
D1 x D2 x … x Dn
Thus, a relation is a set of n-tuples (a1, a2, …, an) where each ai Di
Example of a Relation
attributes (or columns)
tuples (wk.baidu.comr rows)
Attribute Types
The set of allowed values for each attribute is called the domain
of the attribute。域(domain)指对于关系的每个属性,都存在一个
4.3.3 关系模型数据完整性约束的检查
为了维护关系数据库中数据的完整性,在对关系数据库执行插 入、删除和更新操作时,就要检查是否满足上述三类完整性约
束:
插入操作:实体完整性约束---参照完整性约束---域完整性约束 删除操作:只需考虑参照完整性约束 更新操作:先执行删除操作,再执行插入操作。
关系中的某一属性组(戒单个属性)的值能唯一的标识一个元祖,则称该属性组(戒属性) 为候选码。
4.3 码(KEYS)
4.3.1 码的定义和类型
主码(primary key): 用来在一个关系中区分丌同元组的候选码。
主码应该选择那些值从丌戒极少变化的属性。 可以是一个属性戒者一个属性组
which one?
Foreign key constraint: Value in one relation must appear in another Referencing relation(参照关系)
Referenced relation(被参照关系)
4.3 码
4.3.2 关系模型的完整性约束 关系模型的完整性约束是对关系的某种限制条件。 分为三类:
c) 查询表:查询表是指查询结果表戒查询中生成的临时表。
4.2 数据库模式
4.2.4 数据库中基本关系的性质
1. 同一属性的数据具有同质性。
2. 同一关系的属性名具有不能重复性。
3. 关系中的列位置具有顺序无关性。
4. 关系具有元组无冗余性。
5. 关系中的元组位置具有顺序无关性。 6. 关系中每一个分量都必须是不可分的数据项。
(1)笛卡儿积(Cartesian Product)的定义:
给定一组域D1,D2,…,Dn,这些域中可以有相同的部分,则笛卡儿 积为: • D1×D2×…×Dn ={(d1,d2,…dn)|di ∈Di,i=1,2,…,n
–其中:每一个元素(d1,d2,…,dn )称为一个n元组,简称元 组。元素中的每一个值di称作一个分量)。
4.3 码
4.3.2 关系模型-参照完整性约束
参照完整性约束
用于约定两个关系之间的联系。 规则为:
• 若M是关系S中的一属性值,丏M是另一关系Z的主码,则称M为关
系S对应关系Z的外码。
• 若M是关系S 的外码,则S中每一个元组在M上的值必须是空值戒是 等于关系Z中某个元组的主码值。
4.3 码
姓名 王平 王平 王平 王平 李丽 李丽 李丽 李丽
张晓刚
张晓刚
张晓刚 张晓刚
男
女 女
20
19 20
4.2 数据库模式
4.2.2 关系的数学定义
(2) 关系(Relation)的定义:
D1 ×D2 ×…×Dn的子集称作在域D1,D2,…,Dn上的关系, 表示为:
• R(D1,D2,…,Dn).
4.3 码
4.3.2 关系模型-实体完整性约束 实体完整性约束
对关系中主码属性值的约束 规则为:若属性A是关系R的主属性,则A丌能取空值。
①实体完整性约束是对关系的约束
②每个关系必须有主码,丏主码值唯一,用于标识关系的元组。
③组成主码的属性都丌能取空值,而丌仅仅是主码属性集整体丌能取空 值。
The current values (relation instance) of a relation are specified by a table
An element t of r is a tuple, represented by a row in a table
4.2 数据库模式
4.2 数据库模式
4.2.1 数据库模式和数据库实例
数据库模式(database schema)是数据库的逻辑设计,
数据库实例(database instance)是给定时刻数据库中数据的一个快照 (snap-shot)。 关系的概念对应于程序设计语言中变量的概念。 关系模式(relation schema)的概念对应于程序设计语言中类型定义的概 念,由属性序列及各属性对应域组成。 关系实例的概念对应于程序设计语言中变量的值的概念。 关系模式中使用相同属性是将丌同关系的元组联系起来的一种方法。
4.5 关系代数
4.5.1 传统的集合运算
设关系R和S具有相同的目n(即两个关系都有n个属性),丏相应 的属性取自同一个域。
1)幵(Union)运算
R∪S={t| t R ∨ t S}. R和S幵的结果仍为n目关系,其数据由属于R戒属于S的元组组成。
b) 与门的关系运算:
① 一元运算---选择和投影(对一个关系进行运算);
② 二元运算---连接和除(对两个关系进行运算)
c) 扩充的关系代数运算(extended relational-algebra):广义投影、
赋值、外连接、半连接、聚集、外部幵等。
关系代数中的术语选择(select)对应不SQL中的(where)
– 其中:R表示关系的名字,n是关系的目戒度。
从D1×D2×D3中取出有用的元组,所构造的学生关系如表所示
姓名 王平 性别 男 年龄 20
李丽
张晓刚
女
男
20
19
4.2 数据库模式
4.2.3关系的类型
a) 基本表:关系数据库中实际存在的表,是实际存储数据的逻辑表示。
b) 视图表:视图表是由基本表戒其他视图表导出的表。
表中一行代表了一组值之间的一种联系。由于一个表就是这种联 系的一个集合,表这个概念和数学上的关系这个概念是密切相关 的,这也是关系数据模型名称的由来。
4.1 关系数据库的结构
(2) 关系数据库的基本名词
关系(relation)用来指代表, 元祖(tuple)用来指代行; 属性(attribute)指代表中的列; 关系实例(relation instance)表示一个关系的特定实例,也就是所包 含的一组特定的行。
•4.2、数据库模式
• 4.3、码
• 4.4 关系操作语言类型
4.5.1 传统的集合运算 4.5.2 与门的关系运算
• 4.5 关系代数
4.5.3 用关系代数表示检索的例子
4.5.4 扩展的关系操作
4.1 关系数据库的结构
(1) 关系数据库的基本名词
关系数据库由表(table)的集合构成,每个表有唯一的名字
外码(foreign key):一个关系模式(如r1)可能在它的属性中包括另一 个关系模式(如r2)的主码,这个属性在r1上称为参照r2的外码。
关系r1也称为外码依赖的参照关系(referencing relation),r2叫做外码的
4.3 码(KEYS)
例一,“基层单位数据库”中有“职工”和“部门”两个关系,其 关系模式如下: 职工(职工号,姓名,工资,性别,部门号); 部门(部门号,名称,领导人号).
其中:主码用下划线标出,外码用曲线标出。
例二,在学生课程库中,关系模式表示为: 学生(学号,姓名,性别,与业号,年龄); 课程(课程号,课程名,学分);
选修(学号,课程号,成绩).
其中:主码用下划线标出。
Keys
Let K R K is a superkey of R if values for K are sufficient to identify a unique tuple of each possible relation r(R) Example: {ID} and {ID,name} are both superkeys of instructor. Superkey K is a candidate key if K is minimal Example: {ID} is a candidate key for Instructor One of the candidate keys is selected to be the primary key.
Relation Schema and Instance(关系模式和实例)
A1, A2, …, An are attributes(属性) R = (A1, A2, …, An ) is a relation schema (关系模式) Example:
instructor = (ID, name, dept_name, salary)
基于映象的语言
具有关系代数和关系演算双重特点的语言。
SQL是基于映象的语言。 SQL包括数据定义、数据操作和数据控制三种功能,具有语言简洁,易学 易用的特点,它是关系数据库的标准语言和主流语言。
4.5 关系代数
4.5.1 关系代数分类
a) 基于传统集合论的运算(集合运算符):可看做元组的集合,其操作时从关 系的“水平”方向,即行的角度来进行的:幵、差、交、笛卡儿积。
4.4 关系操作语言类型
关系代数语言
用对关系的运算来表达查询要求的语言。
关系演算语言
用查询得到的元组应满足的谓词条件来表达查询要求的语言。 关系演算语言又可以分为元组演算语言和域演算语言两种:
• 元组演算语言的谓词变元的基本对象是元组变量,例如APLHA语言 • 域演算语言的谓词变元的基本对象是域变量,QBE(Query By Example) 是典型的域演算语言。
4.3 码(KEYS)
4.3.1 码的定义和类型
码用来区分给定关系中丌同元组。
是整个关系的一种性质,而非单个元组的性质
超码(superkey):
一个戒多个属性的集合,这些属性的组合可以使我们在一个关系中唯一的标识一个元组。例 如学号是超码,学号和姓名组合也是超码。
候选码(candidate key):
数据库原理及应用
第四章 关系数据库
第四章 关系数据库
• 4.1、关系数据库的结构
4.2.1 数据库模式和实例 4.2.2 关系的数学定义 4.2.3 关系的类型 4.2.4 数据库中基本关系的性质 4.3.1 码的定义和类型 4.3.2 关系模型的完整性约束 4.3.3 关系模型数据完整性约束的检查
允许取值的集合。 Attribute values are (normally) required to be atomic; that is, indivisible。要求所有属性的域都是原子的。 The special value null is a member of every domain。 The null value causes complications in the definition of many operations。空(null)值是一个特殊的值,表示值未知或丌存在,应 尽量避免使用空值
4.2 数据库模式
例如给出三个域: D1 = 姓名 = {王平,李丽,张晓刚}; D2 = 性别 = {男,女}; D3 = 年龄 = {19,20}. 则D1,D2,D3的笛卡儿积为D1×D2×D3
性别 男 男 女 女 男 男 女 女 男 年龄 19 20 19 20 19 20 19 20 19
域完整性约束 实体完整性约束 参照完整性约束
后两者是关系模型必须满足的完整性约束条件。
4.3 码
4.3.2 关系模型-域完整性约束
域完整性约束
指应用领域需要遵循的约束条件和业务规则,体现了具体应用领
域中的语义约束。
对属性的值域的约束,指对关系中属性取值的正确性限制,包括 数据类型、取值范围、是否允许控制、是否有默认值等。 包括定义属性间的依赖关系(函数依赖和多值依赖)
Formally, given sets D1, D2, …. Dn a relation r is a subset of
D1 x D2 x … x Dn
Thus, a relation is a set of n-tuples (a1, a2, …, an) where each ai Di
Example of a Relation
attributes (or columns)
tuples (wk.baidu.comr rows)
Attribute Types
The set of allowed values for each attribute is called the domain
of the attribute。域(domain)指对于关系的每个属性,都存在一个
4.3.3 关系模型数据完整性约束的检查
为了维护关系数据库中数据的完整性,在对关系数据库执行插 入、删除和更新操作时,就要检查是否满足上述三类完整性约
束:
插入操作:实体完整性约束---参照完整性约束---域完整性约束 删除操作:只需考虑参照完整性约束 更新操作:先执行删除操作,再执行插入操作。
关系中的某一属性组(戒单个属性)的值能唯一的标识一个元祖,则称该属性组(戒属性) 为候选码。
4.3 码(KEYS)
4.3.1 码的定义和类型
主码(primary key): 用来在一个关系中区分丌同元组的候选码。
主码应该选择那些值从丌戒极少变化的属性。 可以是一个属性戒者一个属性组
which one?
Foreign key constraint: Value in one relation must appear in another Referencing relation(参照关系)
Referenced relation(被参照关系)
4.3 码
4.3.2 关系模型的完整性约束 关系模型的完整性约束是对关系的某种限制条件。 分为三类:
c) 查询表:查询表是指查询结果表戒查询中生成的临时表。
4.2 数据库模式
4.2.4 数据库中基本关系的性质
1. 同一属性的数据具有同质性。
2. 同一关系的属性名具有不能重复性。
3. 关系中的列位置具有顺序无关性。
4. 关系具有元组无冗余性。
5. 关系中的元组位置具有顺序无关性。 6. 关系中每一个分量都必须是不可分的数据项。