第2章 关系数据库数学模型

合集下载

数据库基础知识2

数据库基础知识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),

第2章 数据库-关系模型1

第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 关系数据库

数据库原理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 关系数据库的基本理论

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课件

数据库系统概论王珊最新版第2章-关系数据库PPT课件

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

数据库与数据结构02

数据库与数据结构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章 关系模型

第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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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) ……
相关文档
最新文档