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

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

按照数据模型的三个要素,关系模型主要由关系数据结构、关系操作集合和关系完整性约束三部分组成。

一、关系

  • 关系模型的数据结构非常简单,只包含单一的数据结构——关系。
  • 在用户看来,关系模型中的数据逻辑结构是一张扁平的二维表
  • 关系模型的数据结构简单却能够表达丰富的语义
  • 在关系模型中,显示世界的实体以及实体间的各种联系均用单易的结构类型即关系来表示
  • 关系模型是建立在集合代数的基础上的

下面从集合论的角度给出关系数据结构的形式化定义

1.域(Domain)

一组具有相同数据类型的值的集合

2.笛卡尔积(Cartesian Product)

域上面的一种集合运算

定义

设A,B为集合,用A中元素为第一元素,B中元素为第二元素构成有序对,所有这样的有序对组成的集合叫做A与B的笛卡尔积,记作AxB.

笛卡尔积的符号化为:

A×B={(x,y)|x∈A∧y∈B}

例如,A={a,b}, B={0,1,2},则

A×B={(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}

B×A={(0, a), (0, b), (1, a), (1, b), (2, a), (2, b)}

注意

按照定义,关系可以是一个无限的集合。由于笛卡尔积不满足交换律,所以按照数学定义,需要给予如下的限定和扩充

  1. 无限关系在数据库系统中是无意义的。
  2. 通过为关系的每个列附加一个属性名的方法取消关系元组的有序性

3.关系(Relation)

定义

D1,D2,……,Dn中有关系的行形成的一个子集称为 D1,D2,……,Dn的一个关系,用R( D1,D2,……,Dn)表示,R表示关系名,n表示关系的元或目

性质

  • 同一列的数据类型必须一致
  • 同一关系中,不同列可以有相同的数据类型,但列名必须不一样
  • 同一关系中,任意两行不能重复,且元组(行)的排行不分先后顺序
  • 同一关系中,列的排列不分先后顺序
  • 关系中属性不可再分,满足原子性

列的名称

  • :唯一确定一个元组。一个关系必须有一个码。
  • 候选码:在关系中能唯一标识元组的属性或属性集
  • 主属性:候选码的各个属性
  • 主码:用户选作元组标识的候选码
  • 全码:关系的所有属性是这个关系的候选码

二、关系模式

在关系数据库中,关系模式是型,关系是值,关系模式是对关系的描述

关系模式的表示

R(U,D,dom,F),R表示关系名;

U是组成该关系的属性名集合

D是属性组U中属性来自的域

dom是属性向域的映像关系

F是属性间的数据依赖关系集合。

简记

R(U)或者R(A1,A2,A3…An)

例如

学生情况(姓名,班级,学号,身份证号等)


三、关系数据库

采用关系模式的数据库

在关系模型中,实体以及实体间的联系都是用关系来表示的。

在一个给定的应用领域中,所有的实体以及实体之间的联系的关系的集合构成一个关系数据库。

相关文章
|
1月前
|
存储 搜索推荐 关系型数据库
深度探讨数据库索引的数据结构及优化策略
深度探讨数据库索引的数据结构及优化策略
|
4月前
|
存储 C语言
【数据结构】顺序表的定义和运算
【数据结构】顺序表的定义和运算
64 0
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
99 1
|
6月前
|
存储 搜索推荐 数据库
深入解析向量数据库:定义、原理和应用的全面指南
深入解析向量数据库:定义、原理和应用的全面指南
876 0
|
3月前
|
存储 Ubuntu 关系型数据库
数据库定义,MySQL安装、远程连接以及常见问题
数据库定义,MySQL安装、远程连接以及常见问题
|
4月前
|
存储 NoSQL Java
基于内存的分布式NoSQL数据库Redis(二)数据结构与通用命令
基于内存的分布式NoSQL数据库Redis(二)数据结构与通用命令
183 0
|
4月前
|
SQL 存储 定位技术
数据库基础(七):用户自定义数据类型与标量值、内嵌表值、多语句表值函数等用户定义函数的创建、使用、删除
数据库基础(七):用户自定义数据类型与标量值、内嵌表值、多语句表值函数等用户定义函数的创建、使用、删除
|
4月前
|
存储 SQL 定位技术
数据库基础(六):T-SQL语言程序设计、游标定义与使用及存储过程创建与信息查找
数据库基础(六):T-SQL语言程序设计、游标定义与使用及存储过程创建与信息查找
|
4月前
|
存储 关系型数据库 MySQL
对数据库索引的理解以及索引在MySQL中的数据结构
对数据库索引的理解以及索引在MySQL中的数据结构
|
4月前
|
SQL Java 数据库
为什么数据库索引数据结构使用B+树,而不使用xxx?
为什么数据库索引数据结构使用B+树,而不使用xxx?
25 0