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.关系数据库管理系统从操作系统那里申请若干个大的文件, 自己划分文件空间,组织表、索引等存储结构,并进行存储管理。

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

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

相关文章

解决 Webpack 中 ERROR in main Module not found: Error: Can‘t resolve ‘./src‘ 问题

出自 BV1MN411y7pw, P98 黑马AJAX-Node.js-Webpack教学视频中webpack部分,打包的时候出错 ERROR in main Module not found: Error: Cant resolve ./src in V:\Web\mycode\webpack\01_webpack_use resolve ./src in V:\Web\mycode\webpack\01_webpack_us…

【2024金三银四】

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

【C++干货基地】面向对象核心概念与实践原理:拷贝构造函数的全面解读

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 哈喽各位铁汁们好啊,我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发,不知道各位的…

ReorderData - 优化阅读笔记

主要实现文件: bolt/lib/Passes/ReorderData.cpp 支持 X86/Arm 测试用例&#xff1a; bolt/test/reorder-data-writable-ptload.c int a1,a2,a3,a4; // 待补充默认关闭&#xff0c;开启选项&#xff1a; # 指定要重排的数据段 --reorder-data<section1,section2,section3…

基于JavaWeb开发的springboot网咖管理系统[附源码]

基于JavaWeb开发的springboot网咖管理系统[附源码] &#x1f345; 作者主页 央顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联系方式 承接各种定制系统 &a…

Android14音频进阶:生产者与消费者模型(六十二)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

力扣每日一题 将标题首字母大写 模拟 String API

Problem: 2129. 将标题首字母大写 文章目录 思路复杂度Code 思路 &#x1f468;‍&#x1f3eb; 灵神题解 复杂度 ⏰ 时间复杂度: O ( n ) O(n) O(n) &#x1f30e; 空间复杂度: O ( n ) O(n) O(n) Code class Solution {public String capitalizeTitle(String title)…

数据结构:栈的创建与使用

今天我们一起来看一种新的数据结构栈&#xff0c;其实这一种结构我们在之前就已经使用过&#xff0c;只是今天我们来强调以下几点&#xff1a; 1、栈是一种数据后进先出的结构 &#xff0c;通过入栈1 2 3 4我们可以得到多种结果 2、我们选用顺序表来实现栈结构&#xff0c;这里…

科技回顾,飞凌嵌入式受邀亮相第八届瑞芯微开发者大会「RKDC2024」

2024年3月7日~8日&#xff0c;第八届瑞芯微开发者大会&#xff08;RKDC2024&#xff09;在福州举行&#xff0c;本届大会以“AI芯片AI应用AloT”为主题&#xff0c;邀请各行业的开发者共启数智化未来。 本届大会亮点颇多&#xff0c;不仅有13大芯片应用展示、9场产品和技术论坛…

软考高级:设计模式分类(创建型、结构型、行为型)概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

Linux之防火墙详解

华子目录 什么时防火墙分类Netfilter&#xff08;数据包过滤&#xff09;定义Netfilter分析内容 防火墙无法完成的任务iptables与firewalld区别iptablesiptables执行原则原则防火墙规则规则链概念分析规则链分类注意例&#xff1a;物业管理公司有两条规定&#xff1a; 规则链之…

作用域链的理解(超级详细)

文章目录 一、作用域全局作用域函数作用域块级作用域 二、词法作用域三、作用域链 一、作用域 作用域&#xff0c;即变量&#xff08;变量作用域又称上下文&#xff09;和函数生效&#xff08;能被访问&#xff09;的区域或集合 换句话说&#xff0c;作用域决定了代码区块中变…

C++初学

1>思维导图 2>试编程 提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数要求使用C风格字符串完成 #include <iostream> #include<string.h> using namespace std;int main() {string str;cout <<…

C++14之std::index_sequence和std::make_index_sequence

相关文章系列 std::apply源码分析 C之std::tuple(一) : 使用精讲(全) 目录 1.std::integer_sequence 2.std::index_sequence 3.std::make_index_sequence 4.运用 4.1.打印序列的值 4.2.编译时求值 4.3.std::tuple访问值 5.总结 1.std::integer_sequence 运行时定义一个…

Linux:进程

进程 知识铺垫冯诺依曼体系结构操作系统&#xff08;OS&#xff09; 进程概念进程的查看ps 命令获取进程 pid文件内查看进程终止进程的方式kill命令快捷键 进程的创建 forkfork 返回值问题 进程状态运行状态 &#xff1a;R休眠状态&#xff1a;S &#xff08;可中断&#xff09…

【3GPP】【核心网】【5G】5G核心网组网方案(超详细)

5G NR RRC协议总体介绍 UE入网过程包括几个子过程&#xff1a; UE分为三种状态&#xff1a;空闲态&#xff0c;连接态和非活动态。 开机入网流程 小区搜索与选择 UE开机选网&#xff0c;小区搜索并完成下行同步。 系统消息广播 UE读取广播信息&#x…

VMD + CEEMDAN 二次分解,CNN-LSTM预测模型

目录 往期精彩内容&#xff1a; 前言 1 二次分解与数据集制作 1.1 导入数据 1.2 VMD分解 1.3 样本熵 1.4 CEEMDAN分解 1.5 数据集制作 2 基于Pytorch的 CNN-LSTM 预测模型 2.1 定义CNN-LSTM预测模型 2.2 设置参数&#xff0c;训练模型 3 模型评估与可视化 3.1 结果…

学习JavaEE的日子 Day26 手撕所有集合类底层源码

Day26 1.手撕ArrayList底层源码 思路&#xff1a; 1.研究继承关系 2.研究属性 3.理解创建集合的过程 – 构造方法的底层原理 4.研究添加元素的过程 public class Test01 { public static void main(String[] args) {//ArrayList<String> list new ArrayList<>();…

【Java从发入门到精通】Java StringBuffer 和 StringBuilder 类

Java StringBuffer 和 StringBuilder 类 当对字符串进行修改的时候&#xff0c;需要使用 StringBuffer 和 StringBuilder 类。 和 String 类不同的是&#xff0c;StringBuffer 和 StringBuilder 类的对象能够被多次的修改&#xff0c;并且不产生新的未使用对象。 在使用 Stri…

在线安装MySQL5.7

在线安装MySQL 安装MySQL5.7 yum -y install mysql57-community-release-el7-10.noarch.rpm 若无可用安装包&#xff0c;执行下面这句 wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm 本地安装 yum localinstall -y mysql57-community-releas…