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

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

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

一、关系

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

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

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)

例如

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


三、关系数据库

采用关系模式的数据库

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

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

相关实践学习
体验RDS通用云盘核心能力
本次实验任务是创建一个云数据库RDS MySQL(通用云盘),并通过云服务器ECS对RDS MySQL实例进行压测,体验IO加速和IO突发带来的性能提升;并通过DMS执行DDL,将数据归档到OSS,再结合云盘缩容,体验数据归档带来的成本优势。
相关文章
|
3月前
|
存储 算法 C语言
数据结构基础详解(C语言):单链表_定义_初始化_插入_删除_查找_建立操作_纯c语言代码注释讲解
本文详细介绍了单链表的理论知识,涵盖单链表的定义、优点与缺点,并通过示例代码讲解了单链表的初始化、插入、删除、查找等核心操作。文中还具体分析了按位序插入、指定节点前后插入、按位序删除及按值查找等算法实现,并提供了尾插法和头插法建立单链表的方法,帮助读者深入理解单链表的基本原理与应用技巧。
696 6
|
3月前
MITK中的数据结构和常量定义
本文介绍了MITK中的数据结构、反射机制、常量定义、DataNode类和类宏定义,包括多图映射、反射接口、事件宏和属性列表等高级特性。
|
4月前
|
存储 SQL 监控
ADBPG&Greenplum成本优化问题之ADB PG的数据库管控的定义如何解决
ADBPG&Greenplum成本优化问题之ADB PG的数据库管控的定义如何解决
49 2
|
4月前
|
SQL 数据处理 数据库
|
4月前
|
Cloud Native 关系型数据库 分布式数据库
云原生数据库2.0问题之DBStack的定义如何解决
云原生数据库2.0问题之DBStack的定义如何解决
|
4月前
|
存储 SQL 数据库
数据库与数据结构设计
数据库与数据结构设计【8月更文挑战第22天】
44 0
|
5月前
|
数据采集 分布式计算 大数据
MaxCompute产品使用合集之数据集成中进行数据抽取时,是否可以定义使用和源数据库一样的字符集进行抽取
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5月前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
200 1
|
5月前
|
存储 JSON 数据库
项目管理定义问题之什么是序列化大对象的值对象数据库形态
项目管理定义问题之什么是序列化大对象的值对象数据库形态
|
6月前
|
弹性计算 负载均衡 NoSQL
NoSQL数据库如何支持动态数据结构?
【6月更文挑战第11天】NoSQL数据库如何支持动态数据结构?
55 2