第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  关系模型的存储结构


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


相关实践学习
体验RDS通用云盘核心能力
本次实验任务是创建一个云数据库RDS MySQL(通用云盘),并通过云服务器ECS对RDS MySQL实例进行压测,体验IO加速和IO突发带来的性能提升;并通过DMS执行DDL,将数据归档到OSS,再结合云盘缩容,体验数据归档带来的成本优势。
相关文章
|
3月前
|
存储 算法 C语言
数据结构基础详解(C语言):单链表_定义_初始化_插入_删除_查找_建立操作_纯c语言代码注释讲解
本文详细介绍了单链表的理论知识,涵盖单链表的定义、优点与缺点,并通过示例代码讲解了单链表的初始化、插入、删除、查找等核心操作。文中还具体分析了按位序插入、指定节点前后插入、按位序删除及按值查找等算法实现,并提供了尾插法和头插法建立单链表的方法,帮助读者深入理解单链表的基本原理与应用技巧。
602 6
|
3月前
MITK中的数据结构和常量定义
本文介绍了MITK中的数据结构、反射机制、常量定义、DataNode类和类宏定义,包括多图映射、反射接口、事件宏和属性列表等高级特性。
|
4月前
|
存储 SQL 监控
ADBPG&Greenplum成本优化问题之ADB PG的数据库管控的定义如何解决
ADBPG&Greenplum成本优化问题之ADB PG的数据库管控的定义如何解决
46 2
|
4月前
|
SQL 数据处理 数据库
|
4月前
|
Cloud Native 关系型数据库 分布式数据库
云原生数据库2.0问题之DBStack的定义如何解决
云原生数据库2.0问题之DBStack的定义如何解决
|
4月前
|
存储 SQL 数据库
数据库与数据结构设计
数据库与数据结构设计【8月更文挑战第22天】
27 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包给服务器,确认收到了服务器的确
194 1
|
5月前
|
存储 JSON 数据库
项目管理定义问题之什么是序列化大对象的值对象数据库形态
项目管理定义问题之什么是序列化大对象的值对象数据库形态
|
6月前
|
弹性计算 负载均衡 NoSQL
NoSQL数据库如何支持动态数据结构?
【6月更文挑战第11天】NoSQL数据库如何支持动态数据结构?
48 2