YI时间|松子茶碎碎念|MM-DFW|LAMBDA系列星标??松子茶 更新不掉队??
目前,我们已结小结完成数据库系统原理绪论,其中分了三讲来小结这章知识点,即:
第01讲:导学和绪论小结第02讲:数据管理技术的发展及数据模型小结第03讲:数据库三级模式及数据库系统小结
这一章概念多,需要在理解基础上记忆,同时,适当做练习加深对概念理解。在往期内容推送过这章练习与重点知识,即:数据库系统概论|绪论。从本讲开始,我们进入关系模型小结篇章。主要内容如下所示。
0、数据模型(回顾)
数据模型是一个描述数据结构、数据操作以及数据约束的数学形式体系(即概念及其符号表示系统)
根据数据抽象的不同级别,将数据模型划分为3类:
概念模型:概念层次的数据模型,也称为信息模型
逻辑模型:用于描述数据库数据的整体逻辑结构
物理模型:用来描述数据的物理存储结构和存取方法
不同的DBMS提供不同的逻辑数据模型:
层次模型(hierarchical model)
网状模型(network model)
关系模型(relational model)
一、关系模型
系统而严格地提出关系模型的是美国IBM公司的E.F.Codd在1970年提出关系数据模型。
关系数据库系统是支持关系数据模型的数据库系统。关系数据库管理系统是当今的主流数据库管理系统。
关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
二、关系数据结构
1)关系
关系模型的数据结构非常简单,它就是二维表,亦称为关系。
关系数据库是表的集合,即关系的集合。
由于一个表是这种有关联的值的集合(即行的集合),而表这个概念和数学上的关系概念密切相关,因此称为关系模型。
关系模型中,现实世界的实体以及实体间的各种联系都是用关系来表示。
2)关系数据结构的形式化定义
域是一组具有相同数据类型的值的集合。
笛卡尔积:给定一组域D1, D2, …, Dn,它们之中可以有相同的域。D1, D2, …, Dn的笛卡尔积为:
D1×D2×…×Dn={(d1,d2,…, dn)∣di∈Di, i=1,2, …, n}
其中,集合中的每一个元素(d1, d2, …, dn)称为一个n元组,简称为元组;元素中的每一个值di称为一个分量。
关系的形式化定义
D1×D2×…×Dn的有限子集称为在域D1,D2,…, Dn上的关系,表示为 :
r(D1, D2,…, Dn)
其中,r表示关系的名字,n是关系的目或度(degree)。当n=1时,该关系称为单元关系;当n=2时,称为二元关系。
关系是笛卡尔积的有限子集,所以关系也是一个二维表,表的每行对应于关系的一个元组,表的每列对应于关系的一个域。由于域可以相同,为了区别就必须给每列起一个名字,称为属性(attribute)。n目关系共有n个属性。
空值(null)是所有可能的域的一个取值,表明值未知或值不存在。
例如:对于学位的取值域,某员工的学位为空值null,表示不知道该员工所获得的学位,或该员工没有获得学位;
关系的最基本要求:
关系中的每个属性的域必须是原子的,即域中的每个值都是不可再分的一个完整单元。
关系中的每个元组都是可区分的,即存在唯一标识不同元组的属性(集)——码。
3) 关系模式
对于一个二维表,有表头部分和表体部分:
表头部分定义了该表的结构,即定义了该表由哪些列构成,每个列的名字和取值范围等;表体部分对应于关系,每一个数据行对应于关系的一个元组,即关系是元组的集合。关系是值的概念。
表体部分就是所有数据行(元组)的集合,每一个数据行都是由表头部分规定的n列有关联的取值的集合构成。表头部分对应于关系模式,它定义了元组集合的结构,即定义了一个元组由哪些属性构成,每个属性的名字和来自的域等。关系模式是型的概念。
关系的描述称为关系模式(relation schema)。
形式化地表示为:r(U,D,DOM,F)
关系模式通常被简记为:r(U) 或 r(A1, A2,…, An) 其中r为关系名,U为属性名的集合{A1, A2, …, An}
4)码
超码:对于关系r的一个或多个属性的集合A,如果属性集A可以唯一地标识关系r中的一个元组,则称属性集A为关系r的一个超码(superkey)。
候选码:对于关系r的一个或多个属性的集合A,如果属性集A是关系r的超码,且属性集A的任意真子集都不能成为关系r的超码,则称属性集A为候选码(candidate key)。候选码是最小的超码。
主码:若一个关系有多个候选码,则可以选定其中的一个候选码作为该关系的主码 。
外码:设F是关系r的一个属性(或属性集),Ks是关系s的主码。如果F与Ks相对应,则称F是关系r参照关系s的外码(foreign key),简称F是关系r的外码。
5)关系数据库模式
关系数据库也有型和值之分:
型就是关系数据库模式,即它所包含的所有关系模式的集合;
值就是这些关系模式在某一时刻所对应的关系的集合,通常就称为关系数据库实例。
三、关系完整性约束条件
实体完整性 若属性集A是关系r的主码,则属性集A不能取空值null。
参照完整性 若属性(或属性集)F是关系r的外码,它与关系s的主码Ks相对应,则对于关系r中的每一个元组在属性F上的取值要么为空值null,要么等于关系s中某个元组的主码值。
用户自定义完整性 任何关系数据库管理系统都应该支持实体完整性和参照完整性。用户定义完整性是针对某一具体应用要求来定义的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
数据库模式导航图是一个含有主码和外码依赖的数据库模式可以通过模式导航图来表示
四、关系操作
关系操作的特点是集合操作方式,即操作的对象和结果都是集合。这种操作方式也称为一次一个集合的方式。相应地,非关系数据模型的数据操作方式则为一次一个记录的方式。
关系模型中的关系操作有查询操作和更新操作(插入、删除和修改)两大类 。
查询操作是关系操作中最主要的部分。查询操作又可以分为选择、投影、连接(、除、并、交、差、笛卡尔积等。
关系操作可用两种方式来表示——代数方式和逻辑方式。
五、关系模型(总结)
1)关系数据结构:二维表
表头:关系模式、属性
表体:关系、元组
超码、候选码、主码、外码
2)关系操作:关系代数、(元组、域)关系演算
集合操作方式
3)关系完整性约束:(实体、参照、用户自定义)完整性
实体完整性:主码属性不能为空值null
参照完整性:外码属性要么为空值null,要么为参照的主码值
模式导航图