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

news2024/11/16 9:17:17

关系及相关概念

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

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. 术语对应关系

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习Vue单文件组件总结

今天主要学习了组件实例对象的一个重要内置关系和单文件组件。先说一下实例对象的内置关系,在这里要对JS中的原型链有一定的基础,Vue构造函数的prototype原型指向的是Vue的原型对象,new出来的Vue实例对__proto__同样指向的是Vue的原型对象&am…

Hex 文件类型字段详解

文章目录 地址类型字段详解02(扩展段地址记录):指定后续数据记录的向左移动4位后开始计算地址04(扩展线性地址记录):指定后续数据记录的起始地址的高16位 地址类型字段详解 02(扩展段地址记录&…

18、BLIP

简介 github BLIP提出了一种基于预训练的方法,通过联合训练视觉和语言模型来提升多模态任务的性能。 BLIP(Bootstrapping Language-Image Pretraining)是salesforce在2022年提出的多模态框架,是理解和生成的统一,引入了跨模态的编码器和解码…

RocketMQ5.0延时消息时间轮算法

前言 RocketMQ 相较于其它消息队列产品的一个特性是支持延时消息,也就是说消息发送到 Broker 不会立马投递给消费者,要等待一个指定的延迟时间再投递,适用场景例如:下单后多长时间没付款系统自动关闭订单。 RocketMQ 4.x 版本的延…

【LeetCode-剑指offer】-- 9.乘积小于K的子数组

9.乘积小于K的子数组 方法:滑动窗口 关于为什么子数组数目为j-11。这时候就要理解采用滑动窗口的思路其实是枚举子数组的右端点,然后来找到满足条件的最小左端点。也即当得到满足条件的窗口时,就意味着得到了以 j 作为右端点时满足条件的左端…

框架的灵魂之笔-反射

反射:框架的灵魂 类加载器 概述:当程序要使用某个类的时候,如果该类还未被加载到内存中,则系统会通过以下三个步骤 ①类的加载 ②类的连接 ③类的初始化来对类进行初始化。如果不出现意外情况,JVM将会连续完成这三个步…

momentjs计算两个时间差返回时分秒

// 导入 Moment.js 模块 const moment require(moment);// 定义起始时间和结束时间 const startTime 2021-09-30T14:30:00; // 格式必须符合 ISO8601(YYYY-MM-DDTHH:mm:ss) const endTime 2021-09-30T15:45:00;// 创建 Moment.js 对象来表示起始时间和…

CentOS 7 实战指南:文本处理命令详解

前言 在Linux系统中,文本处理是非常基础却又必不可少的一项技能。如果你正在使用CentOS系统,那么学会如何利用文本操作命令来高效地处理文本文件无疑将会是一个强有力的工具。 本篇文章将介绍一些最常用和最实用的文本操作命令,并通过详尽的…

如何自动生成 API 接口文档 - 一份详细指南

本篇文章详细教你如何使用 Apifox 的 IDEA 插件实现自动生成接口代码。好处简单总结有以下几点: 自动生成接口文档: 不用手写,一键点击就可以自动生成文档,当有更新时,点击一下就可以自动同步接口文档;代码…

金和OA UserWebControl.UserSelect.ashx 信息泄露漏洞

产品简介 金和网络是专业信息化服务商,为城市监管部门提供了互联网监管解决方案,为企事业单位提供组织协同OA系统升开发平台,电子政务一体化平台智慧电商平合等服务 漏洞概述 金和OA UserWebControl.UserSelect.AjaxServiceMethod,UserWeb…

秋招复习之迭代与递归

目录 前言 递归 1. 调用栈 2. 尾递归 3. 递归树 总结 前言 复习中ing,递归我总是迷迷糊糊的,这里有点醍醐灌顶。迭代是自下而上,从最基础的步骤开始,然后不断重复或累加这些步骤,直到任务完成。递归是自上而下&…

共识算法介绍

文章目录 共识算法Paxos 算法三种角色一致性提交算法prepare 阶段accept 阶段commit 阶段 CAP 定理BASE 理论Zookeeper 算法实现三类角色三个数据三种模式四种状态消息广播算法Leader选举算法 共识算法 Paxos 算法 Paxos 算法是莱斯利兰伯特(Leslie Lamport)1990 年提出的一种…

精彩回顾 I DatenLord Hackathon 2023圆满结束!

DatenLord Hackathon 2023已经顺利完赛。达坦科技基于其跨云分布式文件系统DatenLord项目,结合AI大模型时代背景,搭建了擂台。我们邀请参赛者为DatenLord的极端场景设计并实现缓存 p2p 传输和同步模块。 本届赛题为“Explore the Possibilities”&#…

71.乐理基础-打拍子-三连音的变体

上一个内容:70.乐理基础-打拍子-三连音-CSDN博客 首先常见的三连音如下图的样子: 三连音的变体遇到的次数并不会很多,可以不用看不用懂 三连音的变体: 1.三连音节奏型依然有可能藏有休止符,如下图 2.在这之前的三连音…

Spring之 国际化:i18n

1、i18n概述 国际化也称作i18n,其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数。由于软件发行可能面向多个国家,对于不同国家的用户,软件显示不同语言的过程就是国际化。通常来讲,软件中的国…

Ant Design Vue 编译后的网页特点是什么,怎么确认他是用的前端 Ant Design Vue 技术栈的呢?

Ant Design Vue 是一个前端 UI 框架,使用 Vue.js 构建。它包含了大量的预设样式和组件,如按钮、表单、表格等,可以帮助开发者快速构建出优雅且功能丰富的网页。但是,要确定一个编译后的网页是否使用了 Ant Design Vue,…

缓存和数据库,1+1如何大于2?

一、缓存的本质 缓存,简单说就是为了节约对原始资源重复获取的开销,而将结果数据副本存放起来以供获取的方式。 首先,缓存往往针对的是“资源”。我们前面已经多次提到过,当某一个操作是"幂等"的和“安全"的&#…

Cesium特效-2023年汇总

1-3dTiles建筑实现随机贴图 使用3dTiles的customShader接口,在前端实现不同白模建筑贴不同的图片 2-淡入淡出的扩散雷达效果 在扩散雷的基础上,实现渐隐渐现的效果 3-不规则多边形的扩散效果 指定一个中心点,改变每个多边形的顶点位置来实现动…

Vue - 多行文本“展开、收起”功能

TextClamp 使用 js 实现文本展开、收起,并非纯 CSS 实现。 Props: fontSize:Number,默认:14lines:Number,默认:1lineHeight:Number,默认:20 F…

在mac上怎么方便的编辑xml文件

在Mac上 XML 文件不能默认以较直观的方式在“文本编辑”中打开,如果已安装 Xcode,你可以使用 Xcode 打开 XML 文件。在 Xcode 中,XML 文件通常会以可视化的方式显示,使得编辑更加直观,但是如果你不想安装 XCode&#x…