第2章 关系数据库数学模型
合集下载
数据库基础知识2

厂长
生产副厂长
技术副厂长
经营副厂长
车间主任
处长
部门经理
层次模型具有层次分明、结构清晰的优点。 层次模型具有层次分明、结构清晰的优点。但只能反映实体 一对多”的联系。 间“一对多”的联系。
网状模型用 图结构” 网状模型用“图结构”来表示数据之间的联 系
网状数据模型反映现实世界较为复杂的事物间的联系。特点是: 网状数据模型反映现实世界较为复杂的事物间的联系。特点是: (1)可以有两个以上的根结点。 可以有两个以上的根结点。 一个父结点可以有多个子结点, (2 ) 一个父结点可以有多个子结点, 一个子结点也可以有多个父 结点。 结点。 专业系
2.1 数据模型概述
2.1.2 数据模型的组成三要素
1、数据结构——用于描述现实世界数据(系统)的静态特性 数据结构——用于描述现实世界数据(系统) ——用于描述现实世界数据 规定数据的存储和表示方式。 规定数据的存储和表示方式。 2、数据操作—用于描述现实世界数据(系统)的动态特性 数据操作—用于描述现实世界数据(系统) 是数据库中各种数据的操作集合以及相应的操作规则。 是数据库中各种数据的操作集合以及相应的操作规则。 如:创建、插入、替换、删除、查询、统计等操作。 创建、插入、替换、删除、查询、统计等操作。 3、数据的约束条件—一组完整性规则的集合 数据的约束条件— 是给定的数据模型中的数据及其联系所具有的制约和依存关 系,用以保证数据的正确、有效、相容。 用以保证数据的正确、有效、相容。 如:有效性规则,参照完整性,触发器等。 有效性规则,参照完整性,触发器等。
层次模型用 树结构” 层次模型用“树结构”来表示数据之间的联系
把客观问题抽象为一个严格的自上而下的层次关系。 把客观问题抽象为一个严格的自上而下的层次关系。 其特点是:(1)只有一个根结点. 其特点是:(1)只有一个根结点. 只有一个根结点 (2) 一 个 父 结 点 可 以 有 多 个 子 结 点 , 但 每 个 子 结点只能有一个父结点。 结点只能有一个父结点。
生产副厂长
技术副厂长
经营副厂长
车间主任
处长
部门经理
层次模型具有层次分明、结构清晰的优点。 层次模型具有层次分明、结构清晰的优点。但只能反映实体 一对多”的联系。 间“一对多”的联系。
网状模型用 图结构” 网状模型用“图结构”来表示数据之间的联 系
网状数据模型反映现实世界较为复杂的事物间的联系。特点是: 网状数据模型反映现实世界较为复杂的事物间的联系。特点是: (1)可以有两个以上的根结点。 可以有两个以上的根结点。 一个父结点可以有多个子结点, (2 ) 一个父结点可以有多个子结点, 一个子结点也可以有多个父 结点。 结点。 专业系
2.1 数据模型概述
2.1.2 数据模型的组成三要素
1、数据结构——用于描述现实世界数据(系统)的静态特性 数据结构——用于描述现实世界数据(系统) ——用于描述现实世界数据 规定数据的存储和表示方式。 规定数据的存储和表示方式。 2、数据操作—用于描述现实世界数据(系统)的动态特性 数据操作—用于描述现实世界数据(系统) 是数据库中各种数据的操作集合以及相应的操作规则。 是数据库中各种数据的操作集合以及相应的操作规则。 如:创建、插入、替换、删除、查询、统计等操作。 创建、插入、替换、删除、查询、统计等操作。 3、数据的约束条件—一组完整性规则的集合 数据的约束条件— 是给定的数据模型中的数据及其联系所具有的制约和依存关 系,用以保证数据的正确、有效、相容。 用以保证数据的正确、有效、相容。 如:有效性规则,参照完整性,触发器等。 有效性规则,参照完整性,触发器等。
层次模型用 树结构” 层次模型用“树结构”来表示数据之间的联系
把客观问题抽象为一个严格的自上而下的层次关系。 把客观问题抽象为一个严格的自上而下的层次关系。 其特点是:(1)只有一个根结点. 其特点是:(1)只有一个根结点. 只有一个根结点 (2) 一 个 父 结 点 可 以 有 多 个 子 结 点 , 但 每 个 子 结点只能有一个父结点。 结点只能有一个父结点。
(第二讲)数据库(第二章:关系数据库的基本概念)

表2-5 学生表 XS_Sex XS_Age ZY_Id
类型 char(10) char(10) char(2) Int char(4) 学号,主码 姓名:字符类型
说明
性别:只能为男或女 年龄:整形 所在专业编号,外码,参照专业表
4. 选课表(XK_Tab):记录学生的选课结果,对于任意一门课,每 个学生一年最多只能选一次,因此用课程编号、学号和年份联合作为 选课表的主码。选课表通过学号参照学生表,通过课程编号参照课程 表。
2. 课程表(KC_Tab):存放多门课程,主码为课程编号。
表2-4 课程表(KC_Tab)
列名 KC_Id KC_Name KC_KC_Id KC_Point
类型 char(4) char(50) char(4) Float
说明 课程编号,主码 课程名称 先修课课程编号 课程的学分
3. 学生表(XS_Tab):记录学生的基本信息,主码为学号,通过专业 编号参照专业表。
2.3 关系模型规范化
关系模型规范化的目的是为了消除存储异常,减少数据冗余, 保证数据的完整性和存储效率。 关系数据库中的关系是要满足一定的规范化要求的。对于不 同规范化程度,可以使用“范式”来衡量。满足最低要求的为I范 式。。在I范式的基础上,进一步满足一些要求的为II范式,以次 类推。一般情况下,在实践中关系模式满足3范式就基本可以。
元素的每一个值 di 叫作一个分量。关系模型中要求每一 个分量必须属于某种基本数据类型,如整形或字符串型。
关系:笛卡尔积的子集就是一个关系。
R( D1 , D2 ,, Dn )
这里R表示关系的名字,n是关系的目或度。
例: 我们给出如下三个域: D1 =导师集合。导师={王新,赵阳} D2=专业集合。专业={计算机,通信} D3=学生集合。学生={(张三,101),(李四,201)} 则笛卡尔积为: D1XD2XD3={(王新,计算机,张三,101), (王新,计算机,李四,201),
类型 char(10) char(10) char(2) Int char(4) 学号,主码 姓名:字符类型
说明
性别:只能为男或女 年龄:整形 所在专业编号,外码,参照专业表
4. 选课表(XK_Tab):记录学生的选课结果,对于任意一门课,每 个学生一年最多只能选一次,因此用课程编号、学号和年份联合作为 选课表的主码。选课表通过学号参照学生表,通过课程编号参照课程 表。
2. 课程表(KC_Tab):存放多门课程,主码为课程编号。
表2-4 课程表(KC_Tab)
列名 KC_Id KC_Name KC_KC_Id KC_Point
类型 char(4) char(50) char(4) Float
说明 课程编号,主码 课程名称 先修课课程编号 课程的学分
3. 学生表(XS_Tab):记录学生的基本信息,主码为学号,通过专业 编号参照专业表。
2.3 关系模型规范化
关系模型规范化的目的是为了消除存储异常,减少数据冗余, 保证数据的完整性和存储效率。 关系数据库中的关系是要满足一定的规范化要求的。对于不 同规范化程度,可以使用“范式”来衡量。满足最低要求的为I范 式。。在I范式的基础上,进一步满足一些要求的为II范式,以次 类推。一般情况下,在实践中关系模式满足3范式就基本可以。
元素的每一个值 di 叫作一个分量。关系模型中要求每一 个分量必须属于某种基本数据类型,如整形或字符串型。
关系:笛卡尔积的子集就是一个关系。
R( D1 , D2 ,, Dn )
这里R表示关系的名字,n是关系的目或度。
例: 我们给出如下三个域: D1 =导师集合。导师={王新,赵阳} D2=专业集合。专业={计算机,通信} D3=学生集合。学生={(张三,101),(李四,201)} 则笛卡尔积为: D1XD2XD3={(王新,计算机,张三,101), (王新,计算机,李四,201),
第2章 数据库-关系模型1

• 在关系数据模型中一般将数据完整性分为三类
– 实体完整性
– 参照完整性 – 用户定义完整性
需要说明两点
• 关系是元组的集合,集合(关系)中的元素(元组) 是无序的;而元组不是分量di的集合,元组中的分量
是有序的。
例如,在关系中(a,b)≠(b,a),但在集合中{a,b}={b,a}。
• 若一个关系的元组个数是无限的,则该关系称为无限
实体完整性规则
• 实体完整性是要保证关系中的每个元组都是可识别和唯一的。 • 实体完整性规则要求关系中元组的主键值不可以为空值。
• 实体完整性是关系模型必须满足的完整性约束条件,也称作是
关系的不变性。 • 关系数据库管理系统用主键实现实体完整性,这是由关系系统 自动支持的。
对实体完整性规则的几点说明
关系数据语言
• 关系代数语言:如ISBL
• 关系演算语言:
– 元组关系演算语言(如Aplha,Quel)
– 域关系演算语言(如QBE)
• 具有关系代数和关系演算双重特点的语言:如SQL
返回
关系完整性约束
• 在数据库中数据完整性是指保证数据正确的特性。
它包括两方面的内容:
– 与现实世界中应用需求的数据的相容性和正确性; – 数据库内数据之间的相容性和正确性。
部门表(R1)
部门编号 01 02 03 04 部门名称 经理办公室 人事部 公关部 技术部 …
02 03
外部关系键
主关系键
注意事项:
• 外部关键字和相应的主关键字可以不同名,只要 定义在相同值域即可。 • 两个关系(R和S)也可以是同一个关系模式,表 示了属性之间的联系。 • 外部关键字的值是否为空,应视具体问题而定。
数据库原理2 关系数据库

三、用户定义的完整性(User-defined integrity)
实体完整性和参照性适用于任何关系数据 库系统。除此之外,不同的关系数据库 系统根据其应用环境的不同,往往还需 要一些特殊的约束条件。用户定义的完 整性就是针对某一具体关系数据库的约 束条件,它反映某一具体应用所涉及的 数据必须满足的语义要求。关系模型应 提供定义和检验这类完整性的机制,以 便用统一的系统的方法处理它们,而不 要由应用程序承担这一功能。
体和实体间的联系的关系的集合构成一 个关系数据库。同样,关系数据库也有 型和值之分。
型:关系数据库模式 是对关系数据库的描 述。
值:一般就称为关系数据库。
2.3 关系的完整性
关系模型的完整性规则是对关系的某种约 束条件。
关系模型的三类完整性:
1. 实体完整性 2. 参照完整性 3. 用户定义的完整性
2.4 关系代数
本节要求
给定关系和关系代数表达式,要会算。
给定关系模式和查询(语义)要求,要会写 关系代数表达式。
关系代数是一种抽象的查询语言,用对
关系的运算来表达查询,作为研究关系 数据语言的数学工具。
关系代数的运算对象是关系,运算结果
亦为关系。关系代数用到的运算符包括 四类:集合运算符、专门的关系运算符、 算术比较符和逻辑运算符。
第二章 关系数据库
2-5章为本课程重点与难点 关系数据库的理论基础 1970, E.F.Codd “A Relational Model of Data for Shared Data Banks” 现代主流数据库几乎全部支持关系模型 Oracle(甲骨文),Sybase, IBM DB2, MS SQL Server, Ingres
引用的时候,必须取基本表中已经存在的 值。由此引出参照的引用规则。
02 关系数据库的基本理论

2.2.4 关系系统
2.关系系统的分类 按照E.F.Codd的思想,可以把关系系统分 类如下: (1)最小关系系统 (2)关系上完备的系统 (3)全关系系统
2.2.4 关系系统
3.全关系系统的12条基本准则 【准则2-0】一个关系型的DBMS必须能完全通过 它的关系能力来管理数据库。 【准则2-1】信息准则。 【准则2-2】保证访问准则。 【准则2-3】空值的系统化处理。 【准则2-4】基于关系模型的动态的联机数据字典。 【准则2-5】统一的数据子语言准则。
第2章 关系数据库的基本理论
关系数据库系统具有独特的风格,概括起 来有以下五个特点。
(1)简单明了的数据模型。 (2)具有严谨的理论基础。 (3)实体表示方法和实体之间联系的表示 方法一致。 (4)处理多对多的联系方便。 (5)使用的关系数据语言功能强大。
2.1 关系模型概述
关系模型是关系数据库的基础。关系模型由数据 结构、关系操作集合和完整性约束三部分组成。 2.1.1 关系数据结构
其中,姓名、职称、X称为域名,姓名域和职称域各有4个值, X域有2个值,一般称它们的基数分别为4、4、2。
2.2.1 数学定义
【 定 义 2-2】 给 定 一 组 域 D1,D2,…,Dn , 则 D1×D2×…×Dn = { (d1,d2,…,dn) | d1∈Di , i = 1,2,…,n } 称 为 D1,D2,…,Dn 的 笛卡尔积。其中每个(d1,d2,…,dn)叫做一个n元组,元组中的 每个di是Di域中的一个值,称为一个分量。
表达(或描述)关系操作的关系数据语言 可以分为三类,具体分类情况如下:
2.1.2 关系操作
(1)关系代数 关系代数是用对关系的运算来表达查询要
求的方式。 (2)关系演算
数据库系统概论王珊最新版第2章-关系数据库PPT课件

-
9
1. 关系数据结构
单一的数据结构----关系
现实世界的实体以及实体间的各种联系均用 关系来表示
数据的逻辑结构----二维表
从用户角度,关系模型中数据的逻辑结构是 一张二维表
可以用:关系名(属性1,属性2,...,属性n)表示
-
10
2. 关系操作
常用的关系操作 关系操作的特点 关系数据语言的种类 关系数据语言的特点
{(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏),(张清玫,信息专业,李勇), (张清玫,信息专业,刘晨),(张清玫,信息专业,王敏), (刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨), (刘逸,计算机专业,王敏),(刘逸,信息专业,李勇), (刘逸,信息专业,刘晨),(刘逸,信息专业,王敏) }
-
11
关系操作 (续)
常用的关系操作
查询
• 选择、投影、连接、除、并、交、差
数据更新
• 插入、删除、修改
查询的表达能力是其中最主要的部分
关系操作的特点
集合操作方式,即操作的对象和结果都是集合。
• 非关系数据模型的数据操作方式:一次一记录
-
12
关系操作(续)
关系数据语言的种类
关系代数语言
• 用对关系的运算来表达查询要求
典型商用系统
ORACLE SQL Server SYBASE INFORMIX DB2
-
4
关系数据库简介
-
5
关系数据库简介
目前关系数据库是数据库应用的主流,许多数据 库管理系统的数据模型都是基于关系数据模型开 发的。
1)关系数据库 :在一个给定的应用领域中,所 有实体及实体之间联系的集合构成一个关系数据 库。
数据库与数据结构02

由定义可以看出,关系模式是关系的框架,或 者称为表框架,指出了关系由哪些属性构成, 是对关系结构的描述。 一组关系模式的集合叫做关系数据库模式。
20
关系数据库模式是对关系数据库结构的描述, 或者说是对关系数据库框架的描述,是关系的 型。与关系数据库模式对应的数据库中的当前 值就是关系数据库的内容,称为关系数据库的 实例。 例如,在教学数据库中,共有五个关系,其关 系模式分别为:
13
下面是一个全码的例子:
假设有教师授课关系 TCS ,分别有三个属性 教师( T )、课程( C )和学生( S )。一个 教师可以讲授多门课程,一门课程可以为多个 教师讲授,同样一个学生可以选听多门课程, 一门课程可以为多个学生选听。 在这种情况下, T , C , S 三者之间是多对多 关系,(T,C,S)三个属性的组合是关系TCS的 候选码,称为全码,T,C,S都是主属性。
例如:表示教师关系中姓名、性别两个域的笛卡尔积为: D1×D2={ (李力,男),(李力,女),(王平, 男),(王平,女),(刘伟,男),(刘伟,女)} 其中: (李力、王平、刘伟)、(男、女)都是分量 (李力,男),(李力,女)等是元组 其基数M=m1×m2=3*2=6 元组的个数为6
7
4. 笛卡尔积可用二维表的形式表示。 例如,上述的6个元组可表示成表2.1。
23
2.3 关系的完整性
为了维护数据库中数据与现实世界的一致性,对关系 数据库的插入、删除和修改操作必须有一定的约束条 件,这就是关系模型的三类完整性:
实体完整性 参照完整性 用户定义的完整性
1. 实体完整性(Entity Integrity) 实体完整性是指主码的值不能为空或部分为空。 关系模型中的一个元组对应一个实体,一个关系则对 应一个实体集。现实世界中的实体是可区分的
第2章 关系模型

4. 关系模式
关系模式是关系的形式化描述。
最简单的表示为:
关系名(属性名1,属性名2,…,属性名n)
注意:主键要用下划线表明。但有时,关系模式 中并没有表明主键。 例如:Students关系的关系模式为:
Students(Sno,Sname,Ssex,Sbirthdate,Sdept)
一个二维表就是一个关系
字段
属性
元组 学号 1001 1002 1003 姓名 张军 李红 王伟
学生表
记录
年龄 21 22 19
性别 男 女 男
系号 D01 D01 D02
域:关系中一个属性的取值范围。例如,Ssex的取值 范围是{‘M’, ‘F’},代表性别为男性和女性。。
关系示例:
关系的等价术语之间的对应关系
实体(Entity):实体是客观存在的并且相互区分的事务。实体 可以是实际事务,也可以是抽象事件。例如,一个职工、一 个部门等属于实际的事务;一次订货、借阅若干本图书、一 场比赛等活动是比较抽象的事件。 实体集( Entity Set):同型实体的集合称为实体集。例如 全体职工集合,全馆图书等。 实体型( Entity Type):具有相同属性的实体具有共同的 特征和性质,用实体名及其属性名来抽象和刻画同类实体称 为实体型。例如实体型“职工”表示全体职工的概念,并不 具体指职工甲或职工乙。每个职工是职工实体“型”的一个 具体“值”,必须明确区分“型”与“值”的概念。在数据 模型中的实体均是指“型”而言的。以后在不致引起混淆的 情况下,说实体即是实体型。
关系模式即是一个表的表头描述。 表头也称为关系的结构、关系的型等。
除表头一行以外的所有行的集合(即表内 容), 称为关系的值。 一个关系(表),由表头和表内容两部分组 成,表头是相对不变的,而表内容是经常 改变的。如Students表中,当有新学生入 学时,就增加若干行,当学生毕业时,就 要删除若干行,所以表是动态的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关系——二维表(行列),实体及其联系 都用关系表示。在用户看来关系数据的逻辑模 型就是一张二维表。
关系数据模型概述(续I)
关系操作 查询: 1)选择Select; 4)除Divide; Intersection; 编辑: 1)增加Insert; Update;
2)投影Project; 3)连接Join; 5)并Union; 6)交 7)差Difference;
三元关系的转换 一般要引入分离关系 如公司、产品和国家之间的m:n:p的三元关系及销 售联系。
关系代数
关系代数概述 关系代数的运算符 集合运算符
并U 交∩ 差 专门的关系运算符
笛卡尔积 × 选择σ 投影π 连接 除 算术比较符
> ≥ < ≤ = ≠ 逻辑运算符
EER模型到关系模式的转换(续IV)
为此,本例中引入一个分离关系On_Load(借 出的书),可以避免空值的出现。 这样,存在以下三个关系模式: Borrower(B#,Name,Address,……) Book(ISBN,Title,……) On_Load(ISBN,B#,Date1,Date2) 只有借出的书才会出现在关系On_Load中, 避免空值 的出现,并把属性Date1和Date2加到 关系On_Load中。
D1 x D2 x…x Dn={(d1,d2,…,dn) | di∈Di, i=1,2,…,n} (d1,d2,…,dn) --------n元组(n-tuple) di--------元组的每一分量(Component) Di为有限集时,其基数为mi,则卡积的基 数为M=m1*m2*…*mn
关系数据库
实体自身及实体间的联系都用关系来表 示; 在DBMS中,关系对应于多个表。
关系完整性
关系的完整性约束条件 实体完整性 (Entity Integrity) 若属性A是基本关系R的主属性,则属性A不 能为空值; 如学生关系中的“学号”属性。
参照完整性 (Referential Integrity ) 外码(Foreign key) 设F是关系R的非码属性(组)。如果F与关系 S的主码K相对应(定义在同一个(组)域 上),则称F是关系R的外码。 参照关系(Referencing Relation) 如上述关系R 被参照关系(或目标关系)(Referenced Relation) 如上述关系S 规则: 定义外码与主码之间的引用规则,即外码 F取值。 1)空NULL; 2)目标关系中存在的值; *表内属性间的参照也要有存在的值;
范式(Normal Form):规范化的关系。
关系模式
关系模式(Relation schema)
对关系的描述 关系是元组的集合(属性、域及其映象关系) 元组语义(使n目谓词<属性>为真的卡积 中的元素的全体) 形式化定义:R(U, D, dom, F) 5元组 R 关系名 完整性约束 U 组成关系的属性名的集合 D 为属性组U中属性的域 Dom为属性向域的映象集合 F 为属性间数据的依赖关系集合
关系完整性(续I)
样例: 学生(学号,姓名,年龄,性别,专业号) 专业(专业号,专业号) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩)
实体完整性规定基本关系的所有主属性不能取空值。
参照完整性规定基本关系的外码取值。如上述学生关系 的“专业号”属性与专业关系的主码“专业号”对应, 因此“专业号”属性是学生关系的外码。它的取值规定 如下: a.空值表示尚未给该学生分配专业 b.非空值 必须是目标关系-专业关系中某个元 组的“专业号”值。
关系(续I)
候选玛(Candidate key):可唯一 标识每一元组的属性(组)。 主码( Primary key):候选码中选 择其一称为主码。相应属性组为主 属性。 非码属性(Non-key attribute):不 包含在任何候选码中的属性。 全码(All-Key):用所有属性来唯一 标识表中元组时的候选码。
2)删除Delete;
3)修改
关系代数语言 - 用对关系的运算来表达查询要求 关系数据语言 关系演算语言 – 用谓词来表达查询要求 双重特点语言 如SQL(集查询、DDL、DML、DCL为一体)
关系数据模型概述(续II)
三类完整性约束 实体、参照 —— 用户自定义
DBMS保证
特点 关系:集合方式(操作对象和结果都是关系—— 元组的集合——关系) 非关系:层次/网状,以记录为操作单位。
第二章 关系数据库数学模型
内容
关系数据模型 关系数据结构与形式化定义 关系完整性 EER模型到关系模式的转换
关系代数
关系演算
关系数据模型概述
关系数据库系统是支持关系模型的数据库系统。 关系数据模型概述( RDBMS)
关系模型: 关系数据结构 关系操作集合 关系完整性约束 关系数据结构 单一的数据结构——关系
EER模型到关系模式的转换(续II)
转换方法 对于强制性成员类 如果一个实体是某个联系的强制性成员,则在 二元关系转化为关系模式的实现方案中要增加 一条完整性约束。具体操作为:如果实体类型 E2在实体类型E1的n:1联系中是强制性成员, 则的E2关系模式中要包含E1的主属性。 如规定每一项工程必须有一个部门管理,则实 体类型Project是联系”Runs”的强制性成员, 因而在Project的关系模式中包含部门 Department的主属性。
EER模型到关系模式的转换
实体类型的转换 每种实体型可由一个关系模式来表示。 实体类型的属性为关系的属性; 实体类型的主键作为关系的主键。 如前面所述“学生”实体类型可以由如下关系模 式表示: 学生(学号,姓名,性别,出生年月,入学时间, 系) 二元关系的转换 分析一个1:n 的二元关系:
即: Project(P#,DName,Title,Start_Date,End_Date, ……) 这里DName既是关系Department的主属性,又是 关系Project的外键。 对于非强制性成员类
如果一个实体是某个联系的非强制性成员,则 通常新建一个分离关系来表示这种联系和属性。 具体操作为:如果
关系数据结构及形式化定义(续I)
若 A={a, b}, B={1, 2, 3} 则A x B= {(a,1), (a,2), (a,3), (b,1), (b,2), (b,3) } 卡积D1 x D2 x…x Dn={(d1,d2,…,dn) | di∈Di, i=1,2,…,n} 从每一集合中抽一个元素做组合;(有 序) 卡积没有交换率; 亦可看成是一个二维表;基数,二维表 的行数,集合元素的个数; 参考离散数学。 上述AxB卡积的6个元组n的二元关系通常要引入一个分离关系 来表示两个实体类型之间的联系,该关系 由两个实体类型的主属性及其联系属性组 成。如学生与课程的m:n联系及学生选课 的关系转换。
EER模型到关系模式的转换(续V)
实体内部之间联系的转换 实体内部之间1:1的联系 如非强制性的婚姻关系,可引入一个分离关系 实体内部之间1:n的联系 如职工与管理人员的联系。分强制与非强制联系。 实体内部之间m:n的联系 一般要引入分离关系
EER模型到关系模式的转换(续III)
实体类型E2在与实体类型E1的n:1联系中是一个 非强制性的成员,引入一个分离模式来表示联系 和属性。分离的关系模式包含E1和E2的主属性。 如在图书馆数据库的EER模型中,有两个实体类 型借书者(Borrower)和书(Book)之间的联系如下:
Borrower
关系数据结构及形式化定义
关系数据结构及形式化定义(集合论角度)
关系 1.域(Domain) 一组具有相同数据类型的值的集合。 例:自然数,实数,英文字母
2.笛卡尔积(Cartesian Product)---Descartes CPT:给定一组域D1,D2,…,Dn,这些域中可以有 相同的。则 D1,D2,…,Dn的笛卡尔积为:
A a a a b b b
B 1 2 3 1 2 3
关系
3.关系
D1 x D2 x…x Dn的子集叫做在域 D1,D2,..Dn上的关系。
表示为: R(D1,D2,…,Dn) 其中,R为关系名;n为关系的度或目。 关系中的每个元素是关系中的元组,通常用t表示。 n=1,单元关系(unary relation); n=2,二元关系(Binary relation)。 关系为卡积的有限子集,也为二维表,行对应元 组,列对应于域。
关系(续III)
在许多实际的数据库产品中,基本表并不 完全具有上述性质。如Oracle、Foxpro等,它 们都允许关系表中存在两个基本点完全相同的 元组,除非用户特别定义了相应的约束条件。 关系模型还要求关系必须是规范化的,即 必须满足一定的规范条件。基本条件:关系的 每一个分量必须是一个不可分的数据项。
1
On_Load
n
Book
可以转换为以下两个模式 Borrower(B#,Name,Address,……) Book(ISBN,B#,Title,……) 关系Book中的外键B#表明借书者的信息, 但图书馆的书很多,可能有许多书没有借出, 则B#的值为空。此时,对于不能处理空值的 DBMS,会出现问题。
此外,还须注意: 外码并不一定与目标关系的主码同名; 参照关系与目标关系可以是同一个关系。如学生关 系(学号,姓 名,性别,年龄,班长)中,“班 长”属性的取值情况。
关系完整性(续II)
用户自定义完整性(User-defined Integrity) 根据客观实际的一些约束条件。 例:性别(男,女) 年龄(15-25) ……