关系模型知识点总结(1)—— 关系数据结构

news/2024/7/8 13:11:23/文章来源:https://blog.csdn.net/Alita233_/article/details/127046828

关系数据结构

  • 一、前言
  • 二、概述
  • 三、关系的定义及相关概念
    • 1.域(Domain)
    • 2.基数
    • 3.元组
    • 4.分量
    • 5.笛卡儿积
    • 6.关系
    • 7.关系的目/度
    • 8.属性
  • 四、关系的码
    • 1.候选码
    • 2.主码、主属性、非码属性
    • 3.全码
    • 4.外码
  • 五、关系的性质
  • 六、关系模式和关系数据库
    • 1.关系数据库
    • 2.关系数据库的型与值
    • 3.关系模式
    • 4.两者关系
  • 七、结语

一、前言

本文将总结关系数据结构的有关知识点

二、概述

关系模型的组成部分

  • 关系数据结构
  • 关系操作集合
  • 关系完整性约束

三、关系的定义及相关概念

1.域(Domain)

  • 一组具有相同数据类型的值的集合
  • 也可称为值域(D)
  • 介于0和100间的正整数

举例:
{0,1,2,3}、{老师、学生}

2.基数

  • 域中包含的值的个数(m)

举例:
D1 = {1,2,3,4,5},那么 m = 5;
D2 = {老师,学生},那么 m = 2;

3.元组

  • 关系中每个元素(d1,d2,...,dn)叫做一个n元组(t),简称为元组
  • 关系中的元组个数是关系的基数

例如:
D1 = {张三,李四,王五,老六},那么张三、李四、王五、老六都是元组,因为有4个元组,所以关系的基数m = 4

4.分量

  • 关系中元组的一个值
    列如:
    D1 = {(张三,23),(李四,25),(王五,27)},那么**(张三,23)、(李四,25)、(王五,27)都是元组**,而每个元组内的张三、李四、王五、23、25、27都是分量

5.笛卡儿积

  • D1 * D2 * ··· * Dn = {(d1,d2...,dn)}
  • 基数M = m1 * m2 * ···* mn
  • 可以表示为一张二维表,行对应元组,列对应域

例如:
D1 = name = {张三,李四}
D2 = age = {20,22}
笛卡尔积 D1 × D2 = {(张三,20),(张三,22),(李四,20),李四(22)};基数M = 2 * 2 = 4,即有四个元组;生成的二维表如下

nameage
张三20
张三22
李四20
李四20

6.关系

  • D1 × D2 × ··· ×Dn的子集叫做D1,D2 ··· Dn上的关系
  • 表示为R(D1,D2 ··· Dn)

7.关系的目/度

  • 关系中的R是名字
  • n是关系的目/度
  • n = 1 为单元/一元关系

8.属性

  • 关系中不同的列
  • 每个属性有一个名字
  • n目关系一定有n个属性
    例如:
    D1 = name = {张三,李四}
    D2 = age = {20,22}
    那么表中的列就是name和age,这两个就是属性

四、关系的码

1.候选码

  • 关系中某一属性组的值能唯一地识别一个元组,而其子集不能的属性组
  • 候选码只有一个属性

例如:

学号姓名年龄
001张三21
002李四23
003王五20

那么通过学号我们可以对应一个人,如果年龄的话会有重复的人,但是学号不重复,所以学号就是候选码;同样的,如果表格中没有重复姓名的话,姓名也可以作为一个候选码

2.主码、主属性、非码属性

  • 若一个关系中有多个候选码,那么选定其中一个为主码
  • 主码的每个属性为主属性
  • 除了主码以外的属性都是非码属性

例如:
在上述例子中,如果我们选定学号为候选码,那么学号就是主码和主属性,姓名就是非码属性

3.全码

  • 候选码就包含一个属性或者关系模式的所有属性组是关系模型的候选码

4.外码

  • 两种关系不一定是相同关系
  • 目标关系的主码和参照关系的外码要定义在一个/一组域上
  • 外码不一定与相应主码名字相同

在这里插入图片描述
例如:
学生(学号、姓名、性别、专业编号
专业(专业编号、专业名称)
在专业这个关系中,专业编号是主码,但是在学生这个关系中是非主码,所以专业编号是学生关系的外码

五、关系的性质

  • 每一列中分量是同一类型的数据,来自同一个域
  • 不同的列可以出自同一个域
  • 任意两个元组的候选码不能相同
  • 行或者列的顺序可以任意交换
  • 分量必须取原子值,每个属性都有原子性,不可分解

六、关系模式和关系数据库

1.关系数据库

  • 在一个给定应用领域中,所有关系的集合

例如:学生信息表

学号姓名年龄
001张三21
002李四23
003王五20

关系数据库:

2.关系数据库的型与值

  • 关系数据库的型:关系数据库模式,是对关系数据库的描述
  • 关系数据库的值:关系模式在某一时刻对应的关系的集合

3.关系模式

  • R(U,D,DOM,F)
  • R–关系名
    U–属性名集合
    D—U中属性所来自的域
    DOM–属性向域的映像集合
    F–属性间数据的依赖关系集合
  • 简记为:R(U)或 R(A1,A2,…,An)

4.两者关系

  • 关系模式是关系的框架,是对关系结构的描述,是静态的、稳定的
  • 关系是动态的、随时间不断变化的,关系是关系模式在某一时刻的状态或内容,是因为关系的各种操作引起了数据库中的数据不断更新
  • 关系模式和关系往往笼统称为关系

七、结语

下一章将总结关系完整性约束的知识点

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

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

相关文章

多御安全浏览器迎来小更新,优化后更方便使用

每个人的电脑都有一款不可或缺的软件应用,那就是浏览器。作为上网的媒介,浏览器为我们的生活提供了很多便利的服务。近日,多御安全浏览器又迎来了一次小更新,这次更新主要是对浏览器进行优化,更加方便用户使用了。一起…

计算空间物体包围球的两种算法实现_charlee44的博客

1. 概述 在进行二维空间几何运算的之前,往往会用包围盒进行快速碰撞检测,从而筛掉一些无法碰撞到的可能。而在三维中,比较常用的就是包围球了。当然,如何计算包围球是一个问题。 2. 详论 2.1. naive算法 一个最简单的思路就是,计算空间顶点在X、Y、Z方向上的最大值和最小值…

linux配置当前用户java环境

cd ~ ls -al 这里可以看到一个 .bash_profile 的文件 然后vim 它 vim .bash_profile 插入如下代码 PATH=$PATH:$HOME/binexport JAVA_HOME=/apps/upgrade_sjzx/jdk/jdk1.8.0_162export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$JAVA_HOME/b…

JAVA代码操作HDFS

1、客户端环境准备 (1)将Hadoop-2.9.2安装包解压到非中文路径(例如:E:\hadoop-2.9.2) (2) 配置HADOOP_HOME环境变量 (3) 配置Path环境变量。 (4)…

使用SqlSugar连接多个数据库(sqlserver,sqlite,mysql)

有时候,一个项目只有一个数据库,比如只有SQLite,或者MySQL数据库,那么我们只需要使用一个固定的数据库即可。但是一个项目如果写好了,有多个用户使用,但是多个用户使用不同的数据库,这个时候&am…

多测师肖sir_疑难杂症_linux中设置中文,数据库中插入中文

一、linux中如何切换出中文 讲解是Centos6.5版本 (1)第一步打开控制台输入安装中文输入法: yum install “Chinese Support” (2)查清自己目前的系统版本:cat /etc/issue 查看系统版本: 下载好…

操作系统漏洞利用思路

目录 前言: (一)漏洞发现工具 0x01、Goby 0x02、Nmap 1、vuln 2、vulscan 0x03 Nessus (二)漏洞利用 0x01、框架利用 0x02、单点EXP 0x03 搜索文章 (三)修补 1、打上补丁 2、关闭…

node.js基于微信小程序的外卖订餐系统 uniapp 小程序

美食是人类永恒的话题,无论是在古代还是现代人们对美食都有一种非常的热爱在里面,但是随着时代的发展,人们可能没有更多的时间去研究美食,很多时候人们在下班或者放学之后更希望通过网络来进行订餐,为此我开发了本基于…

顺序栈和链式栈(C++实现)

数据结构(面向对象方法与C语言描述)(第2版)顺序栈和链式栈内容整理 栈 栈(stack)可定义为只允许在表的末端进行插入和删除的线性表。允许插入和删除的一端叫做栈顶(top)&#xff0…

学习:网络基础知识 HTTP协议之请求报文

HTTP协议 和 安全版 HTTPS协议 HTTP(Hyper Text Transfer Protocol)超文本传输协议 HTTP协议 是基于TCP协议 默认端口是80 功能:用来规定客户端和服务端的数据传输格式 特点:基于请求与响应模式的、无状态、无连接的应用层协议 示例:粉色部分是请求 紫色是响应部分 HTTP请…

Pro09丨高频波动率RSJ与成交量因子迭代升级

量化策略开发,高质量社群,交易思路分享等相关内容 『正文』 ˇ 大家好,今天我们分享Pro系列第9篇量化策略及内容说明。 在2021年7月中,某开源平台发布一个研报策略复现文章,而后大家象征性的积极讨论了一番&#xf…

大裁员时代,我们究竟该如何提升自己?

我以为进大厂可以逃过 35 岁的坎儿,结果还没到 35 呢就遇上了大裁员。。。被裁的那一个月,我拿着公司给的 2N 在家躺了大半个月,刚开始是不甘,到后面每个月一万多的房贷催着我不得不重新审视自己,随后踏上了海投之路。…

贤鱼的刷题日常--P2671 [NOIP2015 普及组] 求和

🏆今日学习目标: 🍀学会求和题目 ✅创作者:贤鱼 🎉个人主页:贤鱼的个人主页 🔥专栏系列:c 求和题目[NOIP2015 普及组] 求和题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例…

电脑屏幕监控,员工行为监控,上网行为监控解决方案

本文镜像:https://linkpi.cn/archives/1612 本文链接:https://blog.csdn.net/weixin_45326556/article/details/127050574 电脑屏幕监控,员工行为监控,上网行为监控解决方案1. 背景2. 设备清单3. 设备连接示意图3.1 灵派编码器 USB摄像头方式3.2 灵派编…

C++运算符重载

运算符重载引入一.运算符重载是什么二.运算符重载的格式三.部分运算符重载的实现3.1 简单‘ ’ ‘ - ’ ‘ * ’运算符重载3.2 ,- - 运算符3.3 运算符3.4 <<&#xff0c;>>运算符四.运算符重载注意事项五.运算符重载的限制六.MyString的简单实现引入 对于基本类型…

java中的IO流

IO流1、File类1.1 获取文件或目录信息1.2 操作文件1.3 操作目录1.4 案例&#xff1a;递归列出目录的下一级1.5 案例&#xff1a;递归列出目录下的所有Java源文件2、IO流的分类和设计2.1 输出纯文本数据2.2 读取纯文本数据2.3 按行读取2.4 复制文件基本版2.5 复制文件提升效率版…

硬件基础:电路基础知识

电路的研究方式&#xff1a;从电路模型出发&#xff0c;研究电路基本理论、分析方法以及工程技术中典型类电路的特点和规律。 电路的四类知识 基础知识 电路模型&#xff0c;电路基本物理量&#xff0c;电路基本元件&#xff0c;基尔霍夫定律&#xff0c;磁路的基础知识。。。工…

CloudCompare——软件汉化

目录1.效果预览2.软件实现1.效果预览 如图所示&#xff0c;软件界面上显示内容翻译成中文。 2.软件实现 1、下载最新版本的CloudCompare&#xff0c;如图所示&#xff0c;下载箭头所指的任意一个版本即可。 官网下载链接&#xff1a;http://www.danielgm.net/cc/release/ …

数据分析:单元4 Matplotlib库入门

Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化&#xff0c;并且提供多样化的输出格式。在这里我将介绍一下它的相关知识&#xff0c;你可以在这里快速学会如何用它画出好看的数据图像&#xff0c;如果你想学习到更多的知识&#xf…

跟 HTML 说hello

目 录 ​1.HTML的骨架标签 2.迎接自己的第一个HTML网页 聊起前端,最最最基础的应该就是HTML语言了哈!首先, HTML 指的是超文本标记语言 (Hyper Text Markup Language)是用来描述网页的一种语言 。超文本的含义就在于它可以加入图片、声音、动画、多媒体等内容&#xff08…