第3章关系数据库 关系数据库系统概述 关系数据模型 关系模型的完整性约束 关系代数 关系数据库系统的三层模式结构
第3章 关系数据库 ➢关系数据库系统概述 ➢关系数据模型 ➢关系模型的完整性约束 ➢关系代数 ➢关系数据库系统的三层模式结构
关系数据库系统概述 ●关系数据库的发展 CODAS五L于1962年发表的“信息代数”一文 E.F.Codd从1970年起发表了一系列的论文 20世纪70年代末的实验系统 System R和 Ingres 从20世纪80年代逐步走向成熟 关系数据模型概述 关系数据结构 关系操作集合 关系完整性约束
关系数据库系统概述 ⚫关系数据库的发展 –CODASYL于1962年发表的“信息代数”一文 –E.F.Codd从1970年起发表了一系列的论文 –20世纪70年代末的实验系统System R和Ingres – 从20世纪80年代逐步走向成熟 ⚫关系数据模型概述 – 关系数据结构 – 关系操作集合 – 关系完整性约束
关系数据结构 关系数据结构非常简单,在关系数据模型 中,现实世界中的实体及实体与实体之间的联 系均用关系来表示。从逻辑或用户的观点来看, 关系就是二维表
关系数据结构 关系数据结构非常简单,在关系数据模型 中,现实世界中的实体及实体与实体之间的联 系均用关系来表示。从逻辑或用户的观点来看, 关系就是二维表
关系操作集合 ●传统的集合运算 并( Union) 交( Intersection) 差( Difference) 广义笛卡尔积( Extended cartesian Product) ●专门的关系运算 选择( Select 投影( Project) 连接(Join) 除( Divide) ●有关的数据操作 查询( Query) 插入( Insert) 删除( Delete) 修改( Update)
关系操作集合 ⚫ 传统的集合运算 – 并(Union) – 交(Intersection) – 差(Difference) – 广义笛卡尔积(Extended Cartesian Product) ⚫ 专门的关系运算 – 选择(Select) – 投影(Project) – 连接(Join) – 除(Divide) ⚫ 有关的数据操作 – 查询(Query) – 插入(Insert) – 删除(Delete) – 修改(Update)
●关系是以集合的方式操作的,即操作的对象是元组的集合,操作 的结果也是元组的集合。这和非关系模型的操作结果是一条记录 有着重要区别。 关系的操作能力可以用代数方式和逻辑方式来表示 代数方式是通过关系代数对关系的运算来表达查询要求的方式。 逻辑方式是通过关系演算、用谓词表达对关系的查询要求的方式。 现在关系数据库已经有了标准语言—SQL( Structured Query Language),它是一种介于关系代数和关系演算的语言。 ●综上所述,又可以把关系数据语言分为三类:关系代数语言、关 系演算语言以及具有关系代数和关系演算双重特点的SQL语言
⚫ 关系是以集合的方式操作的,即操作的对象是元组的集合,操作 的结果也是元组的集合。这和非关系模型的操作结果是一条记录 有着重要区别。 ⚫ 关系的操作能力可以用代数方式和逻辑方式来表示: – 代数方式是通过关系代数对关系的运算来表达查询要求的方式。 – 逻辑方式是通过关系演算、用谓词表达对关系的查询要求的方式。 – 现在关系数据库已经有了标准语言——SQL(Structured Query Language),它是一种介于关系代数和关系演算的语言。 ⚫ 综上所述,又可以把关系数据语言分为三类:关系代数语言、关 系演算语言以及具有关系代数和关系演算双重特点的SQL语言
关系完整性约束 ●在数据库中数据完整性是指保证数据正确的特性。 它包括两方面的内容: 与现实世界中应用需求的数据的相容性和正确性; 数据库内数据之间的相容性和正确性。 ●在关系数据模型中一般将数据完整性分为三类 实体完整性 参照完整性 用户定义完整性
关系完整性约束 ⚫ 在数据库中数据完整性是指保证数据正确的特性。 它包括两方面的内容: – 与现实世界中应用需求的数据的相容性和正确性; – 数据库内数据之间的相容性和正确性。 ⚫ 在关系数据模型中一般将数据完整性分为三类 – 实体完整性 – 参照完整性 – 用户定义完整性
关系数据模型 ●关系模型的数据结构和基本术语 ●关系的形式定义 ●对关系的限定(关系的性质)
关系数据模型 ⚫关系模型的数据结构和基本术语 ⚫关系的形式定义 ⚫对关系的限定(关系的性质)
关系模型的基本术语 关系 关系数据库 关系名→仓库 属性 绁性(列)和属性名值域 候选关键字 主关键字 仓库号 城市 面积 关系模式 务,组 〔表结构〕 北京 主属性 370 关系 分量 元组〔集合〕 WH3 广州 200 关系模式踉主属性 关系模塑外部关键字 主关键字 大于零的整数←面积属性的值域 仓库←被参照关系 号 城市 面积 参照关系和被参照关系:在 京 关系数据库中可以通过外 WH2 500 部关键字使两个关系关联, WHS 这种联系通常是一对多 (1n)的,其中主(父) 职工←参照关系 关系(1方)称为被参照 仓库号职工号工资 关系,从(子)关系(n WH2 方)被称为参照关系。 WHI 1210 WH2 F41250 WH3 WHI 1250
关系模型的基本术语 参照关系和被参照关系:在 关系数据库中可以通过外 部关键字使两个关系关联, 这种联系通常是一对多 (1:n)的,其中主(父) 关系(1方)称为被参照 关系,从(子)关系(n 方)被称为参照关系。 关系 属性 值域 元组 分量 关系模式 关系模型 关系数据库 候选关键字 主关键字 主属性 非主属性 外部关键字
关系的形式定义 笛卡儿积定义:设D1,D2,…,Dn为任意 集合,定义D1,D2,…,Dn的笛卡儿积为: D×D2×x…×Dn={(d1,d2…,d)d∈D,i=1l…,n 其中每一个元素(d1,d2,…,an)叫作 个m元组,简称元组,元组中每一个d叫作 元组的一个分量。 关系的形式定义:笛卡儿积D1XD2…X Dn的任意一个子集称为D,D2…,Dn上的 个n元关系
关系的形式定义 笛卡儿积定义:设D1,D2,…,Dn为任意 集合,定义D1,D2,…,Dn的笛卡儿积为: 其中每一个元素(d1,d2,…,dn)叫作一 个n元组,简称元组,元组中每一个di叫作 元组的一个分量。 {( , , , )| , 1, , } 1 2 1 2 D D D d d d d D i n n = n i i = 关系的形式定义:笛卡儿积D1×D2… × Dn的任意一个子集称为D1 ,D2 ,…, Dn上的 一个n元关系
需要说明两点 ●关系是元组的集合,集合(关系)中的元素 (元组)是无序的;而元组不是分量d的集合 元组中的分量是有序的。 例如,在关系中(a,b)(b,a),但在集合中 {a,b}={b,a} ●若一个关系的元组个数是无限的,则该关系称 为无限关系,否则称为有限关系;在数据库中 只考虑有限关系
需要说明两点 ⚫ 关系是元组的集合,集合(关系)中的元素 (元组)是无序的;而元组不是分量di的集合, 元组中的分量是有序的。 例 如 , 在关系中 (a,b)≠(b,a) , 但在集合中 {a,b}={b,a}。 ⚫ 若一个关系的元组个数是无限的,则该关系称 为无限关系,否则称为有限关系;在数据库中 只考虑有限关系