- 1970年IBGM提出关系数据模型。
- 1972年提出了关系的第一、第二、第三范式
- 1974年提出了关系的BC范式
- 80年代后,关系数据库系统成为最重要、最流行的数据库系统
数据系统结构及形式化定义
关系
- 单一的数据结构——关系
- 逻辑结构——二维表
- 关系模型是建立在集合代数的基础上
域(domain):域是一组具有相同数据类型的值的集合 - 整数、实数、介于某个取值范围的整数、字符串集合、{”男“,”女“}等等
笛卡尔积:给定一组域$D_1,D_2,...,D_n$,这些域可以是相同的,也可以是不同的。$D_1,D_2,...,D_n$的笛卡尔积为:$$D_1*D_2*...*D_n={(d_1,d_2,...,d_n)|d_i\in{D_i},i=1,2,...,n}所有域的所有取值的一个组合$$
举个例子:

元组(Tuple):笛卡尔积中每一个元素$(d_1,d_2,...,d_n)$称作一个n元组或简称元祖 - (张清玫,计算机专业,李勇)
分量:笛卡尔积元素$(d_1,d_2,...,d_n)$中的每一个值$d_i$称作一个分量 - 张清玫、计算机专业、李勇、刘晨等都是分量
基数:若$D_i(i=1,2,...,n)$为有限集,其基数为$m_i(i=1,2,...,n)$,则$D_1*D_2*..*D_n$的基数M为:$$M = \prod_{i=1}^{n} m_i$$
- 一个集合的元素数量就是基数。比如$D_1=\{瓶子君,范式\}$的基数就是2
笛卡尔积的表示方法:笛卡尔积可表示为二维表,表中每行对应一个元祖,表中的每列对应一个域 - 举个例子:

关系:
- 关系:$D_1*D_2*...*D_n$的子集称作在域$D_1,D_2,...,D_n$上的关系,表示为$R(D_1,D_2,...,D_n)$。R表示关系名,n表示关系的目的度。
- 元组:关系中的每个元素中的元组,通常用t表示
- 单元关系与二元关系:当n=1时,称该关系为单元关系/一元关系;当n=2时,也就是二元关系
- 关系的表示:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域,一个属性。如图:

- 属性:关系中不同列可以对应相同的域,为了加以区分,给列起一个名字,称为属性。n目关系必有n个属性。
- 码:
- 候选码:若关系中的某一属性组的值能唯一的标识一个元组,则称该属性组为后选码。简单的情况:候选码只包含一个属性
- 全码:我们说的码不一定是一个属性,有时候仅靠一个属性组您你确定不了唯一元组,需要两个属性才可以。最极端的情况下,关系模式的所有属性组都是这个关系模式的候选码,称为全码
- 主码:若一个关系有多个候选码,则选定其中为主码
- 主属性:候选码的诸属性称为主属性
- 非主属性:不包含在任何候选码中的属性或非码属性
- 三类关系:
- 基本关系(基本表):实际存在的表,是实际存储数据的逻辑表达
- 查询表:查询结果对应的表
- 视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据
- 基本关系的性质:
- 每列的性质都相同。
- 不同的列可出自于同一个域,其中的每一列称为一个属性,不同的属性要给予不同的属性名
- 列的顺序无所谓,列的次序可以任意交换
- 任意两个元组的候选码不能相同
- 行的顺序无所谓,行的次序可以任意交换
- 分量必须取原子值,这是规范条件中最基本的一条。如图:

关系模式
什么是关系模式:关系模式是对关系的描述。关系模式是型,关系是值。类似于类和对象。
- 元组集合的结构:属性构成、属性来自的域、属性和域之间的的映像关系
- 一个关系通常由赋予它的元组语义定义
- 现实的世界中还存在着完整性约束
定义关系模式:关系模式可以形式化地表示为:R(U,D,DOM,F)。和关系的表示不一样。 - R:关系名
- U:组成该关系地属性名集合
- D:属性组U中属性所来自的域
- DOM:属性向域的映象集合
- F:属性间的数据依赖关系集合
关系模式与关系 - 关系模式是静态的、稳定的
- 关系是动态的、随时间不断变化的
- 关系是关系模式在某一时刻的状态或内容,在实际工作中关系模式和关系往往统称为关系,需要结合上下文语境。
关系数据库
关系数据库:在一个给定的应用领域中,所有关系的集合构成一个关系数据库
关系数据库的型与值:
- 关系数据库的型:关系数据库模式,对关系数据库的描述
- 关系数据库模式:若干域的定义,在这些域上定义的若干关系模式。类似于正则。
- 关系数据库的值:关系模式在某一时刻对应的关系的集合,简称关系数据库
关系模型的存储结构
有的关系数据库管理系统中一个表对应一个操作系统文件,将物理数据组织交给操作系统完成。
有的关系数据库管理系统从操作系统那里申请若干个大的文件,自己划分文件空间,组织表、索引等存储结构,并进行存储管理。
说些什么吧!