当前位置: 首页 > news >正文

计算机四级 - 数据库原理 - 第3章 「关系数据库系统概述」

3.1 关系数据库系统概述

关系数据模型的三大要素关系数据结构关系操作集合(一次一个集合)关系完整性约束

1. 关系语言的特点是高度非过程化的, DBMS会自动帮用户选择存取路径,用户不需要依靠循环和递归完成数据的重复操作。关系操作的对象和结果都是集合

2. 关系数据语言可以分为三类:关系代数语言关系演算语言以及兼具两者双重特点的语言

3. 数据库的数据完整性是指数据库中数据的正确性相容性(R和S具有相同的度,且每个相对应的属性都具有相同的域)和一致性

3.2 关系模型的数据结构

1. 在一个二维表中,属性的个数成为关系的元或度。二维表中的行,即对关系的描述称为关系模式, 关系模式和元祖的集合通称为关系

2. 码:选出一个属性或者属性的组合,如果这些属性的值能够唯一标识该关系的元组,则称这些属性为关系的码或键(举个例子,学生的姓名可以唯一标识一个学生,那么姓名就可以成为该关系的码;同样的,如果班里有重名的学生的话,使用学号和姓名才能唯一标识学生,所以学号+姓名就是一个称为码的属性组)

3. 超码(超键):如果对于一个属性组,如果移除某个属性,该属性组仍然还是关系的码,那么就称原来的属性组为超码, 所有属性的组合称为该关系的最大超码(比如学号+姓名+性别就是一个超码,因为把性别去掉之后仍然可以唯一标识该关系的元组)

4. 候选码:只要不是超码的码就可以称作候选码,比如姓名+学号和姓名+身份证号都能唯一标识一个学生,那么这两个属性组都是候选码。包含在任何一个候选码中的属性都可以称为主属性

5. 主码:从候选码中指定一个属性或者属性组,可以作为该关系的主码或主键,比如就选定学号+姓名作为主码,它可以唯一标识某个学生,并且它不是超码

6. 全码:如果所有属性的组合可以作为候选码,则称该组合为全码或全键

7. 从数学观点定义关系:1.用集合论的观点定义关系 2.用值域的概念定义关系,关系是属性值域笛卡尔积的一个子集

3.3 关系模型的完整性约束

1. 实体完整性:如果属性A是关系R的主属性,则属性A不能取空值

2. 参照完整性:若属性F是关系R的外码,它与关系S的主码K相对应,则对于R中每个元组上F的值要么为空,要么等于S中某个元组的主码值

3. 用户自定义完整性:主要包括域完整性约束和其他特殊约束,域完整性指的是对属性的取值的限制。域完整性约束较为广泛,与属性的含义和行为相关。域完整性还包括定义属性间的依赖关系,包括函数依赖和多值依赖

3.4 关系操作语言——关系代数

1. 并、差、笛卡尔积、投影、选择这五种操作称为基本的操作(注意这里面没有交)

2. 并、交、差必须满足相容性条件, 该条件指的是参与运算的两个关系具有相同的属性个数,并且对应的属性的域是相同的

3. 笛卡尔积:比如有表R和S,简单来讲就是R关系的每一个元组分别与S关系的每个元组连接,然后形成一个新的表

4. 选择:类似sql中的where语句,选择满足选择条件的元组

5. 投影:选择制定的若干属性组成新的关系,与选择的区别是,选择是对于行来讲的,而投影是对于属性来讲的。投影还会消除重复元祖

6. 连接分为等值连接和自然连接,等值连接是选取属性值相等的哪些元组。自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。如果两个关系没有公共属性,那么它们的自然连接就变为笛卡尔积

7. 外连接:分为左外连接和右外连接,即sql中的left join和right join,A 左外 B表示A的所有值都要保留,即使对应的B属性有空值, 写题的时候哪外连接,另一边的属性里面就有null,比如A 右外连接B,连接后的表中A包含的属性就会有null值

  • 全外连接:是在等值连接的基础上将左表和右表的未匹配数据都加上。

8. 半连接:R和S自然连接只保留R或S的属性就是半连接


其余章节进我主页进行查看

相关文章:

  • React(二):JSX语法解析+综合案例
  • Java 大视界 -- Java 大数据在智慧交通自动驾驶仿真与测试数据处理中的应用(136)
  • 一次Linux下 .net 调试经历
  • 游戏成瘾与学习动力激发策略研究——了解“情感解离”“创伤理论”
  • 电磁兼容|RC电路
  • C或C++中实现数据结构课程中的链表、数组、树和图
  • count(1),count(列名),count(*)详解!
  • 系统思考全球化落地
  • 【DeepSeek应用】本地部署deepseek模型后,如何在vscode中调用该模型进行代码撰写,检视和优化?
  • Unity--GPT-SoVITS接入、处理GPTAPI的SSE响应流
  • 操作系统——进程优先级切换调度与调度算法
  • 【从零开始学习计算机科学】设计模式(二)工厂模式、抽象工厂模式、单例模式、建造者模型、原型模式
  • 一级运动员最小几岁·棒球1号位
  • ThinkPad T480s更换开机BIOS图片的详细步骤
  • KNN算法原理及python代码实现
  • PyTorch 实现 Conditional DCGAN(条件深度卷积生成对抗网络)进行图像到图像转换的示例代码
  • RabbitMQ可靠性进制
  • C语言每日一练——day_9
  • 【AHE数据集】 NCAR Anthropogenic Heat Flux (AHF) 数据集
  • Flask应用调试模式下外网访问的技巧
  • 腾讯重构混元大模型研发体系:成立大语言和多模态模型部,提升AI长期技术作战能力
  • 辽宁辽阳市白塔区一饭店发生火灾,事故已造成22人遇难3人受伤
  • 阿里千问3系列发布并开源:称成本大幅下降,性能超越DeepSeek-R1
  • 葡萄牙总理:未来几小时内将全面恢复供电
  • 庆祝中华全国总工会成立100周年暨全国劳动模范和先进工作者表彰大会隆重举行,习近平发表重要讲话
  • 早睡1小时,变化有多惊人?第一个就没想到