数据库系统理论——关系数据库

文章目录

  • 一、关系(数据结构)
    • 1、概述
    • 2、名词解释
    • 3、关系模式、关系数据库、关系数据库模式
    • 4、基本关系的性质
  • 二、关系操作(数据操作)
  • 三、关系的完整性
    • 1、实体完整性
    • 2 、参照完整性
    • 3、用户自定义的完整性
  • 四、关系代数
  • 五、习题

前言:理解关系数据模型的有关概念和各种运算的含义。

一、关系(数据结构)

1、概述

在用户看来,关系只是一张扁平的二维表。

2、名词解释

  • 域:域是一组具有相同数据类型的值的集合;
  • 基数:一个域允许的不同取值个数称为这个域的基数;
  • 目或度:关系的属性的个数
  • 候选码:某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码(键);
  • 主码:若一个关系中有多个候选码,选择其中一个为主码;
  • 主属性:候选码的所有属性称为主属性,不含在候选码的属性称为非主属性或非码属性;
  • 全码:所有属性都是候选码;
  • 外码:设a是A上的一个或一组属性,但不是关系A的码,b是关系B的主码,并且a与b相互照应,则称a是A的外码;
    这个地方简单点来说,就是在本关系中的一个属性或属性组,到其他关系里面充当主码;
  • 超码:超码也叫做“超级码”,是一个或多个属性的集合,这些属性可以让我们在一个实体集(所谓的实体集就是student表中多条记录的集合)中唯一地标识一个实体。如果K是一个超码,那么K的任意超集也是超码,也就是说如果K是超码,那么所有包含K的集合也是超码。

3、关系模式、关系数据库、关系数据库模式

(1)关系模式():关系的描述称为关系模式;
关系模式是型,关系是值;关系是元组的集合,关系模式要指出这个元组集合的结构。
例子:R(A1,A2,A3…)
这里R是关系名,A1,A2等等是属性名;
注意:关系是关系模式在某一时刻的状态和内容。因此,关系模式是静态的,稳定的,而关系是动态的。

(2)关系数据库:在关系模型中,实体与实体之间是通过关系来表示的;例如,研究生与导师之间的多对一关系。在给定的一个领域内,所有关系的集合构成了一个关系数据库。
一句话概括该点:关系数据库的值就是这些关系模式在某一时刻对应的关系的集合,通常就成为关系数据库;

(3)关系数据库模式:关系数据库模式是对关系数据库的型的描述,包括若干个域的定义,以及在这些域上定义的若干关系模式。

4、基本关系的性质

① 列是同质的,即来自同一个属性
② 不同的列可出自同一个域(域是一组具有相同数据类型的值的集合)
③ 列的顺序无所谓,列的次序可以任意交换
④ 任意两个元组的候选码不能相同
⑤ 行的顺序无所谓,行的次序可以任意交换
⑥ 分量必须取原子值(规范化)

**注意:**外码和所引用的主码是可以不同名。

二、关系操作(数据操作)

集合运算:并、差、交、笛卡儿积
关系运算:选择(行)、投影(列)、连接(行列)、除(行列)的定义

三、关系的完整性

1、实体完整性

  • 现实含义:事物(元组)可区分、是唯一的
  • 实现:主码
  • 内容:主属性不能取空值(或:主码值唯一、非空)
  • SQL实现:Primary Key

2 、参照完整性

  • 现实含义:不能引用不存在的事物
  • 实现:外码
  • 内容:外码值可以等于一个已经存在的主码值,或取空值,但是当外码是本关系的主属性时候,不可取空值;
  • SQL实现:Foreign key

3、用户自定义的完整性

  • 现实含义:某一具体应用所涉及的数据必须满足的语义要求
  • 实现:第五章的完整性实现方法
  • SQL实现:Check()

四、关系代数

代数运算是指关系运算,最后结果还是关系!!!
1、集合运算:并交差笛卡尔积
这四个需要注意的是笛卡尔积,它的最后元组数(行数)即为,两个关系的元组数之积;

2、专门关系运算符
选择、投影、连接;
其中连接分为自然连接,外连接;
在这里插入图片描述

除运算:
定义:设关系R除以关系S的结果为关系T,则T包含所有在R中但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中。

五、习题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:一般是先自然连接,然后在选择,最后在投影。


除法运算!!

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

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

相关文章

Twitch赠送暗区突围测试资格 超简单暗区突围测试资格领取教程

作为直播界的领航者,Twitch平台不仅是全球游戏文化直播的中心舞台,更是频繁联袂各路游戏大作,为粉丝们奉上别具匠心的互动盛宴,让观赛的同时解锁诱人的游戏内惊喜。正值《暗区突围》PC版测试的热潮涌动,Twitch乘势加强…

详细分析McCabe环路复杂度(附例题)

目录 前言1. 基本知识2. 例题 前言 该知识点常出在408或者软考中,对此此文重点讲讲理论知识以及例题 对于例题平时看到也会更新 1. 基本知识 McCabe环路复杂度是一种用于衡量软件代码复杂性的指标,主要是通过计算代码中的控制流图中的环路数量来衡量…

华为数据之道第一部分导读

目录 导读 第一部分 序 第1章 数据驱动的企业数字化转型 非数字原生企业的数字化转型挑战 业态特征:产业链条长、多业态并存 运营环境:数据交互和共享风险高 IT建设过程:数据复杂、历史包袱重 数据质量:数据可信和一致化…

逆向中webpack需要补充的模块很多怎么办

如下面这种典型的形式 进入i找到加载器 找到加载器所在函数r,在 return e[a].call(c.exports, c, c.exports, r),打上断点。 在控制台打印e,会发现它总共有的模块,这些模块需要我们在别的webpack中复制,有时很多,很麻烦。 我们可以注入代码在…

es6语法总结

【1】语法 (1)声明变量(let-var-const) 变量提升: 是JavaScript引擎在代码执行前将变量的声明部分提升到作用域顶部的行为。尽管变量的声明被提升了,变量的赋值(即初始化)仍然保留在原来的位置。因此&…

紫外激光打标机适合在哪些材料表面进行标记

紫外激光打标机适合在多种材料表面进行标记,特别是那些对热敏感或者需要高精度、高清晰度标记的材料。以下是一些常见的适用材料: 1. 塑料:紫外激光打标机在塑料材料上表现尤为出色,因为紫外激光的短波长和高能量密度使得它能够在…

基于树莓派的六足机器人方案设计+源代码+工程内容说明

文章目录 源代码下载地址项目介绍项目内容说明简单预览 项目备注源代码下载地址 源代码下载地址 点击这里下载源码 项目介绍 项目内容说明 hardware为项目相关硬件设计 机械结构为六足机器人的3d建模工程,包括本体和云台遥控器在ESP32最小开发板上集成了MPU605…

ChatGPT DALL-E绘图,制作各种表情包,实现穿衣风格的自由切换

DALL-E绘图功能探索: 1、保持人物形象一致,适配更多的表情、动作 2、改变穿衣风格 3、小女孩的不同年龄段展示 4、不同社交平台的个性头像创作 如果不会写代码,可以问GPT。使用地址:我的GPT4 视频,B站会发&#…

茅台申购,多平台签到与通知 | 使用极空间NAS部署一个神级脚本『DailyCheckIn』

茅台申购,多平台签到与通知 | 使用极空间NAS部署一个神级脚本『DailyCheckIn』 哈喽小伙伴们好,我是Stark-C~,今天为大家分享一个极空间上非常实用且好玩的项目。 小伙伴们都知道,目前很多平台为了促进用户的活跃度和黏性&#…

ENVI拓展工具资源去哪里找

ENVI拓展工具资源去哪里找? 文章目录 ENVI拓展工具资源去哪里找?前言网站(链接见文末)ENVI应用商店(App Store)ENVI官方提供第三方制作自己制作 总结参考 前言 ENVI 拓展工具是指 ENVI 软件的扩展功能或插…

WordPress插件:链接自动识别转为超链接

WordPress插件&#xff1a;链接自动识别转为超链接 <?phpfunction open_links_in_new_tab() {add_filter(the_content, make_clickable);function autoblank($text) {$return str_replace(<a, <a target"_blank", $text);return $return;}add_filter(th…

海外市场成 ISV 新掘金地?生成式 AI 如何加速业务创新实践?Zilliz 有话说

期望了解 Zilliz 最新动态&#xff1f;想要与 Zilliz 线下探讨 AI 时代向量数据库的全球化布局思考及典型实践&#xff1f; 机会来啦&#xff01;5 月 10 日&#xff0c;Zilliz 将闪现亚马逊云科技的两场活动现场&#xff08;苏州、西安&#xff09;&#xff0c;与大家共话行业…

【Kubernetes集群一主二从安装教程】

文章目录 环境准备主机间做信任安装ansible工具 升级内核版本使用elrepo源升级内核查看最新版内核安装最新的内核版本设置系统默认内核设置默认内核为我们刚才升级的内核版本 初始化关闭防火墙关闭selinux关闭swap修改主机名修改hosts文件将桥接的IPv4流量传递到iptables的链配…

52岁前宝丽金小花懒理旧爱郭晋安离婚,大晒美腿甜蜜放闪

TVB三届视帝郭晋安与欧倩怡早前在社交平台共同宣布离婚&#xff0c;并透露二人已分居两年&#xff0c;18年夫妻情画上句号&#xff0c;惊爆全城。郭晋安曾受访指&#xff0c;遇上欧倩怡前只有两段深刻的感情&#xff0c;一段是初恋&#xff0c;另一段则是刘小慧。 旧爱刘小慧懒…

贪吃蛇游戏(C语言实现)

目录 游戏效果展示文件代码的展示test.cSnake.cSnake.h 下一个坐标不是食物 游戏效果展示 QQ录屏20240507163633 文件 代码的展示 test.c #define _CRT_SECURE_NO_WARNINGS#include<locale.h> //设置本地化 #include"Snake.h"//游戏的测试逻辑 void test() {…

【服务治理中间件】consul介绍和基本原理

目录 一、CAP定理 二、服务注册中心产品比较 三、Consul概述 3.1 什么是Consul 3.2 Consul架构 3.3 Consul的使用场景 3.4 Consul健康检查 四、部署consul集群 4.1 服务器部署规划 4.2 下载解压 4.3 启动consul 五、服务注册到consul 一、CAP定理 CAP定理&#xff…

STM32使用ADC单/多通道检测数据

文章目录 1. STM32单片机ADC功能详解 2. AD单通道 2.1 初始化 2.2 ADC.c 2.3 ADC.h 2.4 main.c 3. AD多通道 3.1 ADC.c 3.2 ADC.h 3.3 main.c 3.4 完整工程文件 1. STM32单片机ADC功能详解 STM32单片机ADC功能详解 2. AD单通道 这个代码实现通过ADC功能采集三脚电…

掌握Android Fragment开发之魂:Fragment的深度解析(上)

Fragment是Android开发中用于构建动态和灵活界面的基石。它不仅提升了应用的模块化程度&#xff0c;还增强了用户界面的动态性和交互性&#xff0c;允许开发者将应用界面划分为多个独立、可重用的部分&#xff0c;每个部分都可以独立于其他部分进行操作。本文将从以下几个方面深…

ttkbootstrap界面美化系列之PanedWindow(七)

在界面设计中经常用PanedWindow控件来对整个界面进行切割布局&#xff0c;让整个界面看上去有层次感&#xff0c;不至于说杂乱无章。在我之前的文章中有对tkinter的该控件做了详细的介绍&#xff0c;链接如下基于Tkinter的PanedWindow组件进行窗口布局-CSDN博客 本文主要是介绍…

无人直播需要什么软件系统?最新AI实景自动无人直播软件:智能化引领直播拓客新时代

随着互联网的快速发展&#xff08;无人直播招商加盟&#xff1a;hzzxar&#xff09;直播行业已经成为商家品牌推广和商品销售的热门方式。近年来&#xff0c;人工智能技术的飞速发展&#xff0c;催生了一款令人惊叹的AI实景自动无人直播软件&#xff0c;为商家提供了全新的直播…