第2章 关系数据库——2.1关系数据结构及形式化定义

简介: 第2章 关系数据库——2.1关系数据结构及形式化定义

2.1  关系数据结构及形式化定义


     关系数据库系统是支持关系模型的数据库系统。第一章初步介绍了关系模型及其基本术语。本章将深入地介绍关系模型。


2.1.1  关系


01 域(domain)


     定义2.1  域是一组具有相同数据类型的值的集合。


02 笛卡儿积(cartesian product)


笛卡儿积是域上的一种集合运算。

     定义2.2  给定一组域D1,D2,···,Dn,允许其中某些域是相同的,D1,D2,···,Dn的笛卡儿积为D1×D2×···×Dn={(d1,d2,···,dn)|di∈Di,i=1,2,···,n}

     其中,每一个元素(d1,d2,···,dn)叫作一个n元组(n-tuple),或简称元组(tuple)。元素中的每一个值di叫作一个分量(component)。


一个域允许的不同取值个数称为这个域的基数(cardinal number)。


       若Di(i=1,2,···,n)为有限集,其基数为mi(i=1,2,···,n),则D1×D2×···×Dn的基数M

c520531a402ca490ac5476a1068c0199_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg


03 关系(relation)


     定义2.3  D1×D2×···×Dn的子集叫作在域D1,D2,···,Dn上的关系,表示为R(D1,D2,···,Dn),这里R表示关系的名字,n是关系的目或度(degree)。

n=1时,称该关系为单元关系(unary relation),或一元关系。

n=2时,称该关系为二元关系(binary relation)。


       关系是笛卡儿积的有限子集,所以关系也是一张二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为 属性(attribute)n目关系必有n个属性

     若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码(candidate key)

    若一个关系有多个候选码,则选定其中一个为主码(primary key)

     候选码的诸属性称为主属性(prime attribute)。不包含在任何候选码中的属性称为非主属性(non-prime attribute)或非码属性(non-key attribute)

    在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码(all-key)


ecee409dbcafe554ebc9f9b537264fb1_640_wxfrom=5&wx_lazy=1&wx_co=1.png

1  关系的类型



     基本关系具有以下6条性质:

    (1)列是同质的(homogeneous),即每一列中的分量是同一类型的数据,来自同一个域。

    (2)不同的列可出自同一个域,不同的属性要给予不同的属性名。

    (3)列的顺序无所谓,即列的次序可以任意交换。

    (4)任意两个元组的候选码不能取相同的值。

    (5)行的顺序无所谓,即行的次序可以任意交换。

    (6)分量必须取原子值,即每一个分量都必须是不可分的数据项。

     关系模型要求关系必须是规范化(normalization)的,即要求关系必须满足一定的规范条件。这些规范条件中最基本的一条就是,关系的每一个分量必须是一个不可分的数据项。规范化的关系简称为范式(Normal Form,NF)


2.1.2  关系模式


    关系数据库中,关系模式是,关系是。关系模式是对关系的描述。


     定义2.4  关系的描述称为关系模式(relation schema)。它可以形式化地表示为R(U,D,DOM,F)。其中R为关系名,U为组成该关系的属性名集合,D为U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。


       关系是关系模式在某一时刻的状态或内容。关系模式静态的、稳定的,而关系动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。


2.1.3  关系数据库


    关系数据库也有型和值之分。关系数据库的也称为关系数据库模式,是对关系数据库的描述。关系数据库的是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库


2.1.4  关系模型的存储结构


    在关系数据模型中实体及实体间的联系都用表来表示,但表是关系数据的逻辑模型。在关系数据库的物理组织中,有的关系数据库管理系统中一个表对应一个操作系统文件,将物理数据组织交给操作系统完成;有的关系数据库管理系统从操作系统那里申请若干大的文件,自己划分文件空间,组织表、索引等存储结构,并进行存储管理。


相关文章
|
17天前
|
弹性计算 负载均衡 NoSQL
NoSQL数据库如何支持动态数据结构?
【6月更文挑战第11天】NoSQL数据库如何支持动态数据结构?
20 2
|
22天前
|
存储
数据结构学习记录——堆的插入(堆的结构类型定义、最大堆的创建、堆的插入:堆的插入的三种情况、哨兵元素)
数据结构学习记录——堆的插入(堆的结构类型定义、最大堆的创建、堆的插入:堆的插入的三种情况、哨兵元素)
12 2
|
22天前
|
机器学习/深度学习 存储
数据结构学习记录——哈夫曼树(什么是哈夫曼树、哈夫曼树的定义、哈夫曼树的构造、哈夫曼树的特点、哈夫曼编码)
数据结构学习记录——哈夫曼树(什么是哈夫曼树、哈夫曼树的定义、哈夫曼树的构造、哈夫曼树的特点、哈夫曼编码)
19 1
|
5天前
|
SQL 分布式计算 MaxCompute
MaxCompute操作报错合集之通过UDF(用户定义函数)请求外部数据库资源并遇到报错,是什么原因
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
7天前
|
SQL 关系型数据库 MySQL
零基础学习数据库SQL语句之定义数据库对象的DDL语句
零基础学习数据库SQL语句之定义数据库对象的DDL语句
13 0
|
17天前
|
SQL 安全 数据库
数据库||数据定义
数据库||数据定义
|
22天前
|
存储 SQL 关系型数据库
MySQL数据库——存储过程-变量(系统变量、用户定义变量、局部变量)
MySQL数据库——存储过程-变量(系统变量、用户定义变量、局部变量)
12 0
|
22天前
|
存储 机器学习/深度学习
数据结构学习记录——什么是图(抽象数据类型定义、常见术语、邻接矩阵表示法、邻接表表示法)
数据结构学习记录——什么是图(抽象数据类型定义、常见术语、邻接矩阵表示法、邻接表表示法)
22 0
|
22天前
|
算法
数据结构和算法学习记录——平衡二叉树(基本介绍、平衡因子、平衡二叉树的定义、平衡二叉树的高度)
数据结构和算法学习记录——平衡二叉树(基本介绍、平衡因子、平衡二叉树的定义、平衡二叉树的高度)
14 0
|
22天前
|
算法
数据结构和算法学习记录——初识二叉树(定义、五种基本形态、几种特殊的二叉树、二叉树的重要性质、初识基本操作函数)
数据结构和算法学习记录——初识二叉树(定义、五种基本形态、几种特殊的二叉树、二叉树的重要性质、初识基本操作函数)
9 0