【数据库原理】(5)关系数据库的关系数据结构

关系及相关概念

在关系模型中,无论是实体还是实体之间的联系均由关系(二维表)来表示。

1.域(Domain)

  • 定义:域是一组具有相同数据类型的值的集合。
  • 例子:实数集合、整数集合、英文字母集合等。

2.笛卡儿积(Cartesian Product)

  • 定义:一种数据组合方法,它将多个域的元素组合成所有可能的元组(tuples)。
  • 公式:对于域 D 1 D_1 D1, D 2 D_2 D2,…, D n D_n Dn,其笛卡儿积是 D 1 ∗ D 2 ∗ . . . ∗ D n = { ( d 1 , d 2 , . . . , d n ) ∣ d i ∈ D i , i = 1 , 2 , . . . , n } D_1 * D_2 * ... * D_n=\{(d_1,d_2,...,d_n)|d_i∈D_i,i=1,2,...,n\} D1D2...Dn={(d1,d2,...,dn)diDi,i=1,2,...,n}
  • 应用:例如,书名、作者、出版社的域可以组合成一个二维表,其中每一行是一个元组,表示一本书的信息。

D 1 = 书名集合 B O O K N A M E = { C 语言程序设计、数据结构、数据库技术 } D_1=书名集合 BOOKNAME=\{C 语言程序设计、数据结构、数据库技术\} D1=书名集合BOOKNAME={C语言程序设计、数据结构、数据库技术},
D 2 = 作者集合 A U T H O R = { 王一 , 李二 } D_2=作者集合 AUTHOR=\{王一,李二\} D2=作者集合AUTHOR={王一,李二},
D 3 = 出版社集合 P U B L I S H E R = { 清华大学出版社,天津大学出版社 , 科学出版社 } D_3=出版社集合 PUBLISHER=\{清华大学出版社,天津大学出版社,科学出版社\} D3=出版社集合PUBLISHER={清华大学出版社,天津大学出版社,科学出版社}
D 1 ∗ D 2 ∗ D 3 D_1* D_2*D_3 D1D2D3的笛卡儿积如表所示,共有 18(3*2*3)个元组

![[Pasted image 20240103113822.png]]

3.关系(Relation)

  • 定义:域的笛卡儿积的子集称为关系,用 R ( D 1 , D 2 , . . . , D n ) R(D_1,D_2,...,D_n) R(D1,D2,...,Dn) 表示。
  • 特点:关系也是一个二维表,但它是从笛卡儿积中选取的特定元组集合,根据某些规则或约束。

关系 BAP 的元组是从笛卡儿积中抽取的,但不是任意抽取的,例如元组(C 语言程序设计,王一,科学出版社)就不能成为关系 BAP 的元组,因为它与元组(C 语言程序设计,王一,清华大学出版社)相矛盾。

![[Pasted image 20240103115243.png]]

4.关键字(Key)

  • 定义:关系中的某些属性组,如果能唯一标识一个元组,则称为候选码(Candidate Key)。
  • 主码(Primary Key):从候选码中选定的一个,用于唯一标识元组。
  • 主属性与非码属性:主码的属性称为主属性,不属于任何候选码的属性称为非码属性。

5.关系的约束(Constraints)

  • 规则
    1. 列是同质的(同一域)。
    2. 不同列的属性名不同。
    3. 列的顺序可以任意交换。
    4. 行的顺序可以任意交换。
    5. 关系中不含重复元组。
    6. 分量必须是原子值(不可再分的数据项)。

6.关系的三种类型

  1. 基本关系(Base Relation or Base Table):实际存在的表,存储数据。
  2. 视图表(View Table):由基本表或其他视图表导出的表,是虚拟的,不独立存储数据。
  3. 查询表(Query Table):查询结果对应的表,仅在查询执行时存在。

关系模式

前面已经指出了关系是一个二维表,这种二维表可以存放两类信息,即实体本身的信息和实体间的联系。

1.关系模式的定义

  • 关系模式 是对关系的形式化描述和抽象。在这里,“关系”指的是数据存储的二维表结构,而“模式”则是对这些表的静态、稳定的描述。关系模式定义了表的结构,包括它们的属性(columns)和这些属性的类型(domains)。
  • 形式化地,关系模式可以被表示为一个五元组R(U,D,DOM,F),其中:
    • R 代表关系名。
    • U 是属性组,即表中所有属性的集合。
    • D 是域的集合,指每个属性可能取值的类型。
    • DOM 是属性与域之间的映射关系。
    • F 是属性组上的数据依赖关系集合。

2.关系模式的优点

  • 简单的数据结构:关系模型基于二维表,易于理解和使用。
  • 直接处理多对多关系:与层次或网状模型相比,关系模型能更直接地表示和处理实体间的多对多关系。
  • 一次提供元组集合:能够一次性返回满足特定条件的多个记录。
  • 高数据独立性:用户只需关心数据的逻辑结构,而不必操心物理存储细节。
  • 坚实的理论基础:关系模型建立在集合代数的基础上,提供了坚实的理论支持。

3.关系模式的缺点

  • 查询效率问题:由于关系模型的高级别抽象,复杂查询可能导致效率下降。
  • 实现难度:优化查询和维护数据一致性等任务使得关系数据库管理系统(DBMS)的实现变得复杂。
  • 规范化要求:有效使用关系DBMS需要对关系模型有深入了解,并进行合适的数据库设计。

4.关系系统的六大目标

由 E.F. Codd 提出的这些目标大部分已实现:

  1. 高度的数据独立性:数据的物理存储与逻辑结构分离。
  2. 严格而简明的数据视图:提供清晰的数据表示。
  3. 简化数据库管理员(DBA)工作:通过自动化和优化减少DBA负担。
  4. 建立理论基础:确保数据库设计和操作基于坚实的理论。
  5. 事务管理和文件管理的结合:提高数据处理的效率和可靠性。
  6. 提升基于数据的应用程序设计:操作对象是记录集合,而不仅是单个记录,从而提高编程的抽象级别。

这些目标和优缺点共同描绘了关系模型的理论架构和实践应用的全貌,指明了其在现代数据库管理中的重要性和应用范围。

关系数据库

关系数据库是一个核心概念,在理解这个概念时,可以将其想象为一个由多张表格组成的复杂系统。这里的每张表格都代表了数据库中的不同类型数据和它们之间的关系。以下是对关系数据库中的几个关键概念的简化解释:

  1. 关系数据库模式(Schema):这可以被看作是关系数据库的蓝图或结构。它包括了定义数据库的所有元素,比如不同类型的数据(称为域),以及这些数据如何组织成表(称为关系模式)。这个模式是对数据库的全面描述,包括了数据应该如何存储、关联以及管理。

  2. 关系数据库的值(Instance):这是关系数据库在特定时间点的实际内容。它由多个关系组成,每个关系都是一个表格,包含了特定类型的数据记录。

  3. 表(Table):在关系数据库中,表是逻辑上的结构,而不是物理上的。用户看到的数据表实际上是对物理存储(如硬盘上的文件)的抽象表示。数据库系统在背后处理所有复杂的存储细节,比如数据是如何在硬盘上存储的,它们的存取方式等。

  4. 术语对应关系

    • 关系 ↔️ 表:数据库中的“关系”就是用户看到的数据表。
    • 元组 ↔️ 记录:表中的每一行,代表一个“元组”,在日常用语中,我们称之为记录或条目。
    • 属性 ↔️ 字段:表中的每一列称为“属性”,在常规用语中我们称其为字段,代表记录的一个特定特征或信息。
    • 关系模式 ↔️ 数据库:整个数据库的结构和设计称为“关系模式”。

通过这种方式,关系数据库使数据管理变得更加有序和易于操作,同时也保证了数据的完整性和一致性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/290344.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

职场革命:六款AI助手改写工作效率的故事

引言 在数字化时代,AI助手正快速成为职场的革命者。这些智能助手不仅仅是效率的提升者,它们更是创新的驱动力,重新定义了我们的工作方式。从自动化PPT创建到智能邮件优化,它们的影响深远且多元。本文将深入探讨六款不同领域的AI助…

三、C语言中的分支与循环—if语句 (1)

在这一章节中我们的学习内容如下,咱们一步步来。 分支结构 1. if语句 2. 关系操作符 3. 条件操作符 4. 逻辑操作符:&& , || , ! 5. switch语句 循环结构 6. while循环 7. for循环 8. do-while循环 9. break和conti…

基于VS2019的C++动态链接库DLL生成与调用

一、理论知识及实践经验 实验注意事项及部分程序编写规范(部分源自ChatGPT-3.5): Ⅰ __declspec(dllexport)和__declspec(dllimport)是用于在C中定义动态链接库(DLL)的关键字。在编写动态链接库时,__declsp…

.babky勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

导言: 网络安全威胁不断进化,其中.babky勒索病毒引起了广泛关注。这篇文章91数据恢复将深入介绍.babky的狡猾特征,以及在遭受其袭击时如何高效地恢复被加密的数据,并提供实用的预防方法。当面对被勒索病毒攻击导致的数据文件加密…

mac环境下安装部署mysql5.7

下载安装包 进入官网下载MySQL5.7的安装包 https://www.mysql.com/downloads/ 安装包下载完成后双击pkg文件进行安装,无脑点下一步即可,注意安装完成后记得保存最后弹出框的密码 进入系统偏好设置,找到mysql,开启mysql服务…

详谈电商网站建设的四大流程!

在21世纪的互联网时代,电商网站的建设是每个企业发展不可缺少的一次机遇。企业商城网站建设成功也许会获得更大的了利润;如果网站建设不成功,那么也会带来一定的损失。所以建设电商网站不是那么一件简单的事情。那么电商网站制作流程是怎样的…

DoIP学习笔记系列:(八)车厂一般关于DoIP的相关测试分析

文章目录 1. 前言2. 基本项测试2.1 协议版本默认值2.2 车辆标识请求报文格式2.3 带EID的车辆标识请求报文格式2.4 带VIN的车辆标识请求报文格式2.5 否定响应码0x002.6 否定响应码0x012.7 否定响应码0x022.8 否定响应码0x042.9 路由激活应答码0x002.10 路由激活应答码0x012.11 路…

突发!博世「裁员」

对于未来几年的汽车行业需求变化,一级零部件供应商正在加快「降本增效」举措,犹如下游客户更加倾向于降本,而不是无休止的提升整车性能,比如,续航里程、智能化。 本周,全球汽车零部件龙头供应商博世宣布&am…

Linux学习第48天:Linux USB驱动试验:保持热情,保持节奏,持续学习是作为一个技术人员应有的基本素质和要求

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 最近更新的速度和频率大不如以前,主要原因还是自己有些懈怠了。学习是一个持续努力的过程,一旦中断,再想保持以往的状态可能要…

钡铼分布式IO在玻璃制造中的实时数据采集与监控应用介绍

导读 玻璃行业多年来一直广泛使用 PLC 来帮助管理生产过程所需的精确材料比例,完全依赖其PLC进行数据采集与控制,并且大量依靠人工来操作,所以这些高成本推动了对成本较低的替代方案的需求。 场景描述 某玻璃厂生产的玻璃生产包括配料段、熔…

性能测试之(六):JMeter 元件

元件(多个类似功能组件的容器) 组件:封装的方法,比如取样器中的发送请求的方法 一、常见的元件 1、取样器:发送请求2、逻辑处理:控制语句执行顺序3、前置处理器:在请求(取样器&…

可狱可囚的爬虫系列课程 08:新闻数据爬取实战

前言 本篇文章中我带大家针对前面所学 Requests 和 BeautifulSoup4 进行一个实操检验。 相信大家平时或多或少都有看新闻的习惯,那么我们今天所要爬取的网站便是新闻类型的:中国新闻网,我们先来使用爬虫爬取一些具有明显规则或规律的信息&am…

陪诊系统|北京陪诊小程序提升陪诊服务效果

随着科技的不断发展,人们对于医疗服务的需求也越来越高。在过去,陪诊师和陪诊公司通常需要通过电话或传真等传统方式与医院进行沟通和安排。然而,现在有了陪诊小程序,这些问题得到了解决。本文将介绍陪诊小程序的开发流程和功能&a…

CSDN质量分批量查询

单个文章质量分查询地址(点击右边地址): CSDN质量分查询 创作者身份认证审核标准 优质创作者申请条件: 粉丝数在5000以上近30日(申请日算起)原创文章数不少于4篇原创博文总数不少于100篇垂直领域原创数量…

CloudManager大数据本地环境标准部署文档

一、基本信息 文档目的:标准化、规范化Hadoop在本地化环境中部署所涉及的操作和流程,以便高效、高质地落地本地化环境部署的工作。 二、安装介质 FTP服务器: http://172.16.246.252:81/hadoopteam/cloudmanager/CDH-5.8.2-1.cdh5.8.2.p0.3…

swing快速入门(三十七)标签页

🌈注释很详细,直接上代码 上一篇 ⛱️新增内容 🔥1.设置标签页的位置与溢出内容布局方式 🔥2.设置标签图标与选中显示内容 🔥3.设置默认选中标签 🔥4.禁用标签 🔥5.获取选中标签的索引 &…

【文末送书】TVM编译器原理与实践

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…

QT的坐标系统,回收机制、菜单栏,工具栏,状态栏,对话框及资源文件

QT的坐标系统,回收机制、菜单栏,工具栏,状态栏,对话框及资源文件 文章目录 QT的坐标系统,回收机制、菜单栏,工具栏,状态栏,对话框及资源文件1、QT的坐标系统?2、对象模型…

uni-app 从入门到精通 3天快速掌握 文字版 学习专栏

大家好,我是java1234小锋老师。 近日锋哥又卷了一波课程,uni-app 从入门到精通 3天快速掌握教程,文字版视频版。三天掌握。 2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中..._哔哩哔哩_bilibili2023版uniapp从…

百度Apollo:自动驾驶的领航者

🎬 鸽芷咕:个人主页 🔥 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 粉丝福利活动 ✅参与方式:通过连接报名观看课程,即可免费获取精美周边 ⛳️活动链接&#xf…