2.1 关系数据结构及形式化定义 数据库概论

目录

2.1.1 关系

关系:概念

1. 域(Domain)

2.笛卡尔积

元组(Tuple)

分量(Component)

基数(Cardinal number)

3. 关系

候选码(Candidate key)

主码(Primary key)

全码(All-key)

主属性(Prime attribute)与非主属性(Non-Prime attribute)

三类关系

基本关系的性质

2.1.2 关系模式 数据库系统概论

1.什么是关系模式

2.定义关系模式

关系模式与关系

2.1.3 关系数据库

2.1.4 关系模型的存储结构


2.1.1 关系

单一的数据结构----关系,现实世界的实体以及实体间的各种联系均用关系来表示。

逻辑结构----二维表,从用户角度,关系模型中数据的逻辑结构是一张二维表。

关系:概念

关系模型是建立在集合代数的基础上.

1. 域(Domain)

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

2.笛卡尔积

域上的一种集合运算;

定义:给定一组域 𝐷1,𝐷2, … ,𝐷𝑛,允许其中某些域是相同的, 则𝐷1,𝐷2, … ,𝐷𝑛的笛卡尔积为: D1×D2×…×Dn = 𝑑1, 𝑑2, … , 𝑑𝑛 𝑑𝑖 ∈ 𝐷𝑖 , 𝑖 = 1,2, … , 𝑛}

所有域的所有取值的一个组合;元素不能重复(集合)

个人理解:前组属性值的一个元组配对后一个的全部元组。类似于排列。

例子:给出3个域:D1=导师集合SUPERVISOR={张清玫,刘逸}; D2=专业集合SPECIALITY={计算机专业,信息专业}; D3=研究生集合POSTGRADUATE={李勇,刘晨,王敏};

元组(Tuple)

笛卡尔积中每一个元素 𝑑1, 𝑑2, … , 𝑑𝑛 叫作一个n元组(简称元组)例:(张清玫,计算机专业,李勇) 等都是元组。

分量(Component)

笛卡尔积元素 𝑑1, 𝑑2, … , 𝑑𝑛 中的每一个值di 叫作一个分量。张清玫、计算机专业、李勇、刘晨等都是分量。

基数(Cardinal number)

若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…, n),则D1×D2×…×Dn的基数M为:

一个域允许的不同取值个数,可用于描述笛卡尔积空间的大小。

个人理解:就是域理论上能产出多少组合。(多个域比如3个域那就把这三个域里的属性个数乘起来)

3. 关系

定义:D1×D2×…×Dn的子集叫作在域 𝐷1,𝐷2, … ,𝐷𝑛上的关系, 表示为 R( 𝐷1,𝐷2, … ,𝐷𝑛 )

R:关系名,n:关系的目或度(Degree)

关系是笛卡尔积的有限子集

关系中的每个元素是关系中的元组,通常用t表示。

当 n=1 时 , 称 该关系为单元关系( Unary relation )或一元关系,当n=2时,称该关系为二元关系(Binary relation)。

关系也是一个二维表,表的每行对应一个元组,表的每列对应一 个域。

关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute)

n目关系必有n个属性

例:“导师”与“研究生”所在的域都是人名,可以取相同的域

候选码(Candidate key)

若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码

主码(Primary key)

若一个关系有多个候选码,则选定其中一个为主码

例:学生没有重名时,学生关系中姓名、学号都可以是候选码。 可以选择候选码之一的学号作为主码。

全码(All-key)

极端的情况:关系模式的所有属性是这个关系模式的候选码,称为全码。

主属性(Prime attribute)与非主属性(Non-Prime attribute)

候选码的诸属性称为主属性;不包含在任何侯选码中的属性称为非主属性或非码属性

三类关系

基本关系:实际存在的表,是实际存储数据的逻辑表示

查询表:查询结果对应的表

视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据

基本关系的性质

1.列是同质的:每一列中的分量是同一类型数据,来自同一个域.

2.不同的列可出自同一个域,其中的每一列称为一个属性,不同的属性要给予不同的属性名。

3.列的次序可以任意交换

4.任意两个元组的候选码不能相同

5.行的次序可以任意交换

6.分量必须取原子值(不可表中有表)

关系与笛卡尔积的区别:无限的关系在数据库中是无意义的。所以限定关系数据模型中的关系必须是有限集合。笛卡尔积的域不满足交换律,但是关系可以通过为其每个列附加一个属性名取消关系属性的有序性。

2.1.2 关系模式 数据库系统概论

1.什么是关系模式

关系模式(Relation Schema)是型,关系是值,关系模式是对关系的描述。

关系模式应当描述的内容

元组集合的结构:属性构成,属性来自的域,属性与域之间的映象关系。

完整性约束条件。

2.定义关系模式

关系的描述称为关系模式,关系模式可以形式化地表示为:R(U,D,DOM,F)

R 关系名

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

D U中属性所来自的域

DOM 属性向域的映象集合

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

关系模式通常可以简记为:R (U) 或 R (A1,A2,…,An ),R: 关系名,A1,A2,…,An : 属性名。

关系模式与关系

关系模式:对关系的描述,静态的、稳定的。

关系:关系模式在某一时刻的状态或内容;动态的、随时间不断变化的,在关系操作下不断更新。

关系模式和关系往往笼统称为关系

2.1.3 关系数据库

关系数据库:在一个给定的应用领域中,所有关系的集合构成一个关系数据库。

关系数据库的型与值

关系数据库的: 又称关系数据库模式,是对关系数据库的描述。包括域的定义以及域上定义的若干关系模式。

关系数据库的: 关系模式在某一时刻对应的关系的集合, 通常称为关系数据库。

2.1.4 关系模型的存储结构

关系数据库的物理组织(两种情况)

1.关系数据库管理系统中一个表对应一个操作系统文件,将物理数据组织交给操作系统完成。2.关系数据库管理系统从操作系统那里申请若干个大的文件, 自己划分文件空间,组织表、索引等存储结构,并进行存储管理。

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

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

相关文章

软件设计师17--磁盘管理

软件设计师17--磁盘管理 考点1:存储管理 - 磁盘管理调度算法磁盘调度 - FCFS磁盘调度 - SSTF例题: 考点1:存储管理 - 磁盘管理 存取时间寻道时间等待时间,训导时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇…

网工内推 | 上市公司网工,IE认证优先,最高18K*13薪,包吃住

01 深圳市宝腾互联科技有限公司 招聘岗位:网络工程师 职责描述: 1、是整个数据中心的网络技术及安全问题的负责人,确保数据中心业务的正常进行; 2、负责规划、设计、搭建、维护数据中心的网络环境,确保IDC /云平台&a…

python INI文件操作与configparser内置库

目录 INI文件 configparser内置库 类与方法 操作实例 导入INI文件 查询所有节的列表 判断某个节是否存在 查询某个节的所有键的列表 判断节下是否存在某个键 增加节点 删除节点 增加节点的键 修改键值 保存修改结果 获取键值 获取节点所有键值 其他读取方式 …

[Kali] 安装Nessus及使用

在官方网站下载对应的 Nessus 版本:Download Tenable Nessus | TenableDownload Nessus and Nessus Managerhttp://www.tenable.com/products/nessus/select-your-operating-system这里选择 Kali 对应的版本 一、安装 Nessus 1、下载得到的是 deb 文件,与

【爬虫开发】爬虫从0到1全知识md笔记第1篇:爬虫概述【附代码文档】

爬虫开发从0到1全知识教程完整教程(附代码资料)主要内容讲述:爬虫概述。selenium的其它使用方法。Selenium课程概要。常见的反爬手段和解决思路。验证码处理。chrome浏览器使用方法介绍。JS的解析。Mongodb的介绍和安装,小结。mongodb的简单使…

为什localhost被forbidden而127.0.0.1不被绊?

原因: 判段网关的时候判127.0.0.1,所以最好改localhost 其他参考: 【计算机网络】localhost不能访问,127.0.0.1可以访问?_ping localhost和ping 127.0.0.1-CSDN博客

基于springboot实现驾校信息管理系统项目【项目源码+论文说明】

基于springboot实现驾校信息管理系统演示 摘要 随着人们生活水平的不断提高,出行方式多样化,也以私家车为主,那么既然私家车的需求不断增长,那么基于驾校的考核管理也就不断增强,那么业务系统也就慢慢的随之加大。信息…

一文了解Cornerstone3D中窗宽窗位的3种设置场景及原理

🔆 引言 在使用Cornerstone3D渲染影像时,有一个常用功能“设置窗宽窗位(windowWidth&windowLevel)”,通过精确调整窗宽窗位,医生能够更清晰地区分各种组织,如区别软组织、骨骼、脑组织等。…

mac【启动elasticsearch报错:can not run elasticsearch as root

mac【启动elasticsearch报错:can not run elasticsearch as root 问题原因 es默认不能用root用户启动,生产环境建议为elasticsearch创建用户。 解决方案 为elaticsearch创建用户并赋予相应权限。 尝试了以下命令创建用户,adduser esh 和u…

C# ListView 控件使用

1.基本设置 listView1.Columns.Add("序号", 60); //向 listView1控件中添加1列 同时设置列名称和宽度listView1.Columns.Add("温度", 100); //下同listView1.Columns.Add("偏移", 100);listView1.Columns.Add("分割", 50);listView1…

ssm蛋糕甜品商城系统(程序+文档+数据库)

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一、研究背景…

计算机视觉研究院 | EdgeYOLO:边缘设备上实时运行的目标检测器及Pytorch实现

本文来源公众号“计算机视觉研究院”,仅用于学术分享,侵权删,干货满满。 原文链接:EdgeYOLO:边缘设备上实时运行的目标检测器及Pytorch实现 代码地址:https://github.com/LSH9832/edgeyolo 今天分享的研究…

【LeetCode】升级打怪之路 Day 21:二叉树的最近公共祖先(LCA)问题

今日题目: 236. 二叉树的最近公共祖先1644. 二叉树的最近公共祖先 II235. 二叉搜索树的最近公共祖先 目录 LCA 问题LC 236. 二叉树的最近公共祖先 【classic】LC 1644. 二叉树的最近公共祖先 II 【稍有难度】LC 235. 二叉搜索树的最近公共祖先 ⭐⭐⭐ 今天做了几道有…

python备份库

个人简介 👨🏻‍💻个人主页:九黎aj 🏃🏻‍♂️幸福源自奋斗,平凡造就不凡 🌟如果文章对你有用,麻烦关注点赞收藏走一波,感谢支持! 🌱欢迎订阅我的…

SAM分割 图片bbox提示任意数量目标输出mask

前提条件:labelimg打标签得到bbox 1.代码 import torchfrom segment_anything import SamPredictor, sam_model_registry import cv2 import numpy as np import os import glob import xml.etree.ElementTree as ETcheckpoint "./weight/sam_vit_h_4b8939.…

分布式数据处理MapReduce简单了解

文章目录 产生背景编程模型统计词频案例 实现机制容错机制Master的容错机制Worker的容错机制 产生背景 MapReduce是一种分布式数据处理模型和编程技术,由Google开发,旨在简化大规模数据集的处理。产生MapReduce的背景: 数据量的急剧增长&…

通过OceanBase 3.x中not in无法走hash连接的变化,来看OB优化器的发展

作者简介: 张瑞远,曾从事银行、证券数仓设计、开发、优化类工作,现主要从事电信级IT系统及数据库的规划设计、架构设计、运维实施、运维服务、故障处理、性能优化等工作。 持有Orale OCM,MySQL OCP及国产代表数据库认证。 获得的专业技能与认…

C#,数值计算,矩阵相乘的斯特拉森(Strassen’s Matrix Multiplication)分治算法与源代码

Volker Strassen 1 矩阵乘法 矩阵乘法是机器学习中最基本的运算之一,对其进行优化是多种优化的关键。通常,将两个大小为N X N的矩阵相乘需要N^3次运算。从那以后,我们在更好、更聪明的矩阵乘法算法方面取得了长足的进步。沃尔克斯特拉森于1969年首次发表了他的算法。这是第…

【刷题】双指针进阶

请看入门篇 :双指针入门 送给我们一句话: 如今我努力奔跑,不过是为了追上那个曾经被寄予厚望的自己 —— 约翰。利文斯顿 双指针进阶 Leetcode 611 有效三角形的个数Leetcode LCR179.查找总价格为目标值的两个商品Leetcode 15.三数之和Thanks…

手把手教你使用Python第三方模块

1.第三方模块 一般是别人解决特定问题的功能进行了封装,可以通过安装直接使用 注意 第三方模块需要先安装,才能使用 常见的安装方式:通过pip工具或者通过pycharm编辑器进行安装 2.pip指令安装 pip -V # 查看pip的版本 pip 23.2.1 fr…