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

server/2024/10/19 7:28:11/

文章目录

  • 一、关系(数据结构)
    • 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中。

五、习题

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


除法运算!!


http://www.ppmy.cn/server/38259.html

相关文章

【编程题-错题集】非对称之美(找规律 / 贪心)

牛客对应题目链接:非对称之美 (nowcoder.com) 一、分析题目 找规律: 判断是否全都是相同字符。判断本身是否是回文。 如果这个字符串每个字符相同,不存在非回文子串,直接返回 0。如果这个字符串不是回文,输出字符串长度…

C++:继承-继承权限

在C中,类的权限分为公有、私有和保护三种。这些权限控制了类的成员(数据成员和成员函数)对外部代码的可见性和访问性。 公有(public)权限: 在公有权限下声明的成员可以被类的外部代码直接访问;公…

基于微信小程序的网上购物系统的设计与实现

基于微信小程序的网上购物系统的设计与实现 “Design and Implementation of an Online Shopping System based on WeChat Mini Program” 完整下载链接:基于微信小程序的网上购物系统的设计与实现 文章目录 基于微信小程序的网上购物系统的设计与实现摘要第一章 绪论1.1 研究…

AWTK 和 QT 资源占用不完全对比

因为没有开发两个完全一样的应用程序,对比的结果并不是很准确,仅供参考。 对比的程序为: AWTK demoui 演示了 AWTK 常用功能。 QT QDesktop 演示了 QT 常用功能。 运行平台为: i.MX6ULL Linux 1. 可以执行文件大小 1.1 AWTK…

Navigation常见场景解决方案

路由跳转场景 页面跳转是路由最常用的能力,Navigation通过NavPathStack提供了诸多方法,下文以pushDestination方法为例,介绍Navigation的路由跳转相关能力。 页面间跳转 NavPathStack提供了路由管理的能力,通过NavPathStack进行…

vue3封装获取当前年、月、季度、周

1.新建在utils文件夹中handleTime.js文件用于封装方法 // 计算当前周的开始和结束时间 export function calcNowWeek() {let startWeek moment().weekday(0).format(YYYY-MM-DD);startWeek moment(startWeek).subtract(2, days).format(YYYY-MM-DD)let endWeek moment().we…

kafka系列一:初识kafka

概述 kafka是由scala语言编写的一个分布式且具备高可用、高性能、可持久化、可水平扩展、支持流数据处理等众多特性的消息系统,常活跃于大数据生态中,而且大名鼎鼎的rocketmq就是参考了kafka的设计原理。 目前越来越多的开源分布式中间件都支持与kafka集…

第十三届蓝桥杯决赛(国赛)真题 Java B 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 重合次数试题 B: 数数试题 C: 左移右移试题 D: 窗口试题 E: 迷宫试题 F : \mathrm{F}: F: 小球称重试题 G: 背包与魔法试题 H: 修路试题 I: 围栏试题J: 好数 发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂&…