数据库系统概论(个人笔记)(第二部分)

数据库系统概论(个人笔记)

文章目录

  • 数据库系统概论(个人笔记)
  • 2、关系模型简介
    • 2.1 关系数据库的结构
    • 2.2 数据库模式
    • 2.3 键
    • 2.4 模式图
    • 2.5 关系查询语言
    • 2.6 关系代数

2、关系模型简介


2.1 关系数据库的结构

Structure of Relational Databases

在逻辑级别上,关系数据库是一个名为 Relations 的二维表的集合。

Relations 表示一个实体集或一个关系集。 (集合)

Relations 的一行表示一个实体或一个关系。(个体)

在这里插入图片描述


Basic Structure

关系的每一行都可以称为元组 tuple

关系的每一列都有一个名称 → 关系的命名列称为属性 attributes

每个属性允许的值的集合称为属性的域 domain

属性值(通常)必须是原子的 atomic ;也就是说,它是不可分割的:

  • 属性上的元组的值可以是一个帐号,但不能是一组帐号

特殊值 null 是每个域的成员。

在这里插入图片描述


Relation

笛卡尔积 Cartesian Product

在这里插入图片描述
在这里插入图片描述


Tuple Variable

元组变量 Tuple Variable

  • 是一个变量,代表一个元组
  • 其域是一个特定关系的所有元组的集合

在这里插入图片描述


2.2 数据库模式

Database Schema

Relation Schema

关系模式 relation schema

在这里插入图片描述


Relations are Unordered

元组的顺序是无关的(元组可以以任意顺序存储)。

在这里插入图片描述


Relational Database

一个数据库由多个关系组成。

有关企业的信息被分成若干部分,每个关系存储一部分信息。

在这里插入图片描述

将所有信息存储为一个简单的 relation。

university(instr_id, inst_name, stu_id, stu_name,...)

  • 重复的信息——(会导致)如果两个导师给一个学生建议(What gets repeated?)
  • 空值的需要——来代表一个没有老师的学生

规范化理论(第7章)涉及如何设计关系模式


2.3 键

Keys

K 是一组属性,设K ⊆ R

如果 K 的值足以识别每个可能关系 r® 的唯一元组,则K是R的超键 superkey

  • ”可能的 r“ 是指可能存在于我们正在建模的企业中的关系。

在这里插入图片描述

如果K最小,则超键 K 为候选密钥 candidate key

  • 极小意味着它的任何子集都不是超级密钥

在这里插入图片描述

主键 Primary key:作为识别关系中元组的主要手段而选择的候选键

  • 应该选择一个其值永远或很少改变的属性

电子邮件地址是唯一的,但可能会改变,不适合主键


Foreign Keys

关系 r1 可能具有与另一个关系 r2 的主键相对应的属性。该属性称为外键 foregin key

  • r1 是引用关系 r1 is referencing relation
  • r2 是被引用的关系 r2 is referenced relation

在这里插入图片描述

在这里插入图片描述


Referencing Constraint

Referencing Constraint 引用约束

只有出现在被引用关系 referenced relation 的主键属性中的值才可能出现在引用关系 referencing relation 的外键属性中

在这里插入图片描述


2.4 模式图

Schema Diagrams

Schema Diagram for University Database

在这里插入图片描述


2.5 关系查询语言

Relational Query Languages

用户从数据库请求信息的语言。

语言类别

  • 程序性
  • 非程序性,或声明性

“纯 Pure” 的语言: 形成人们使用的查询语言的基础

  • 关系代数 程序性
  • 元组关系演算 非程序性
  • 域关系演算 非程序性

以上3种纯语言在计算能力上是等价的在本章中

我们将集中讨论关系代数

  • 不是图灵机等价物
  • 由6个基本操作组成

2.6 关系代数

The Relational Algebra

一种由一组操作组成的过程语言,这些操作把一个或两个关系作为输入,并产生一个新的关系作为其结果。

六种基本运算符
select 选择σ
project 投影
union 并
set difference 集合差-
Cartesian product 笛卡尔积×
rename 重命名ρ

Select Operation

选择满足给定谓词的元组

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


Project Operation

一元操作,选取某些列

在这里插入图片描述

在这里插入图片描述

结果被定义为通过擦除未列出的列而获得的k列之间的关系

从结果中删除重复行,因为关系是集

在这里插入图片描述


Composition of Relational Operations

关系代数运算的结果是关系,因此关系代数运算可以组合成一个关系代数表达式 reletional-algebra expression

考虑这个查询——查找物理系所有教员的姓名。
∏ n a m e = ( σ d e p t . . n a m e   =   " P h y s i c s " " ( i n s t r u c t o r ) ) ) \prod _{name}=(\sigma _{dept..name\,=\,"Physics""}(instructor))) name=(σdept..name="Physics""(instructor)))
我们不给出关系的名称作为投影操作的参数,而是给出一个计算结果为关系的表达式。


Union Operation

类似于集合并运算

在这里插入图片描述

在这里插入图片描述

对 r ∪ s 才有效:

  1. r,s 必须具有相同的参数数量 arity (相同数量的属性)
  2. 属性域必须兼容 compatible

r 的第二列处理的值与 s 的第二列处理的值类型相同

在这里插入图片描述


Set Difference Operation

类似于集合差运算

在这里插入图片描述

在这里插入图片描述

集合差必须处在兼容关系之间

  • R和S必须具有相同的参数数量 arity
  • 属性R和S的域必须兼容

在这里插入图片描述


Set-Intersection Operation

Set-Intersection Operation 交集运算

在这里插入图片描述

Example

在这里插入图片描述
在这里插入图片描述


Cartesian-Product Operation

将一个关系的每个元组与另一个关系的每个元组配对

在这里插入图片描述
在这里插入图片描述

Composition of Operations***

可以使用多个运算生成表达式

在这里插入图片描述
在这里插入图片描述

The instructor x teaches table

在这里插入图片描述


Join Operation

Join Operation 连接运算

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


Rename Operation

允许我们命名,从而引用关系代数表达式的结果

在这里插入图片描述

允许我们用多个名称来引用一个关系

在这里插入图片描述
在这里插入图片描述


The Assignment Operation

The Assignment Operation 赋值运算

有时通过将关系代数表达式的一部分分配给临时的关系变量来编写关系代数表达式是很方便的。

赋值操作用<–表示,其工作方式类似于程序设计语言中的赋值操作。

在这里插入图片描述

通过赋值操作,可以将查询编写为一个顺序程序,该程序由一系列赋值和一个表达式组成,表达式的值显示为查询的结果。


Equivalent Queries

Equivalent Queries 相同的查询

在关系代数中编写查询的方法不止一种。

在这里插入图片描述
在这里插入图片描述

这两个查询并不相同。但是,它们是等价的——它们在任何数据库上都给出相同的结果。

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

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

相关文章

网络2--MAC地址,IP地址的理解

引入&#xff1a; 每一张主机都会有一张网卡&#xff0c;每一张网卡都有一个48bit位的序列号 当我们的热点被连上&#xff0c;你查看时&#xff0c;就会出现MAC地址&#xff0c;IP地址 那么他们两个是什么呢&#xff1f;&#xff1f;&#xff1f; MAC地址 在同一个局域网中…

【C++】每日一题 17 电话号码的字母组合

给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 可以使用回溯法来解决这个问题。首先定义一个映射关系将数字与字母对应起来…

在js中table表格中进行渲染轮播图

效果图&#xff1a;示例&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8"><title></title><script src"js/jquery-3.6.3.js"></script><style>/* 轮播图 */.basko {width: 100%;h…

51单片机小车制造过程记录

首先感谢B站up主好家伙vcc的资料。 这次小车做出来虽然资料挺全的&#xff0c;但中间还是犯了很多不该犯的错误。 第一个&#xff0c;物料这次我们搞错了挺多&#xff0c;最离谱的应该是最小系统板都错了。 资料里用的stm32f103c8t6&#xff0c;我们开始买成了stm32f103c8t6。…

Qt学习笔记1.3.4 QtCore-Qt资源系统

文章目录 资源收集文件(.qrc)外部二进制资源内编译(compiled-in)资源压缩使用应用程序中的资源使用库中的资源 Qt资源系统是一种 独立于平台的机制&#xff0c;用于在应用程序的可执行文件中存储二进制文件。如果您的应用程序总是需要一组特定的文件(图标、翻译文件等)&#x…

信息与未来2017真题笔记

T1. 龟兔赛跑 题目描述 兔子又来找乌龟赛跑啦&#xff01;同样的错误兔子不会犯两次&#xff0c;所以兔子提出赛跑的时候&#xff0c;乌龟就觉得这场比赛很不公平。于是兔子进一步放宽了条件&#xff0c;表示他可以在比赛开始以后先睡 t t t 分钟再开始追乌龟。 乌龟这下没…

java+jsp+sql server 医院住院管理系统论文(二)

⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️ ➡️点击免费下载全套资料:源码、数据库、部署教程、论文、答辩ppt一条龙服务 ➡️有部署问题可私信联系 ⬆️⬆️⬆️​​​​​​​⬆️…

TikTok起号的八大技巧分享

国内的传统生意都是可以在抖音上做&#xff0c;那么也可以在TikTok 上重新做一遍。那该如何才能把握住这片巨大的蓝海&#xff0c;TikTok 账号的运营就成为了主要的关键了&#xff0c;对于TikTok账号运营的八大秘籍&#xff0c;大家一起看看是如何做的&#xff1f; 一、固定节…

机器视觉运动控制一体机在点胶胶路检测上的应用

市场应用背景 点胶通过使用不同类型的粘合剂&#xff0c;实现产品的密封、绝缘、导热和耐腐蚀等作用&#xff0c;广泛应用于各种产品的制造。在点胶加工生产中&#xff0c;通过检测胶水的宽度、点胶位置和胶路连续性等&#xff0c;可确保产品性能的可靠性和稳定性。 在现实生…

骨传导耳机哪个品牌值得入手?盘点5款高人气热门机型推荐!

随着人们对健康生活方式的追求和户外运动的普及&#xff0c;骨传导耳机的需求也日益增长。然而&#xff0c;随着骨传导耳机的热度增加&#xff0c;市场上也开始出现一些低质量的骨传导耳机产品&#xff0c;这些劣质耳机在音质、佩戴舒适度或安全性上存在各种不足&#xff0c;甚…

Dubbo全局处理业务异常 (自定义dubbo异常过滤器)

自定义dubbo异常过滤器 一、前置问题介绍&#xff1a;问题一问题二 二、Dubbo的异常过滤器源码如下&#xff1a;三、实现方案 - 重写Dubbo的Filter异常过滤器至此&#xff0c;Dubbo自定义异常过滤器已完结&#xff01; 一、前置问题介绍&#xff1a; 问题一 在dubbo框架中&am…

多臂老虎机

多臂老虎机 有n根拉杆的的老虎机&#xff0c;每根拉杆获得奖励(值为1)的概率各不相同。 期望奖励更新 Q k 1 k ∑ i 1 k r i 1 k ( r k ∑ i 1 k − 1 r i ) 1 k ( r k k Q k − 1 − Q k − 1 ) Q k − 1 1 k [ r k − Q k − 1 ] Q_k\frac 1k \sum^{k}_{i1}r_i\\…

oracle10g dbca和netca报错

oracle10g dbca和netca报错 [oraclecqnew database]$ netcaOracle Net Services Configuration: Warning: Cannot convert string "-b&h-lucida-medium-r-normal-sans-*-140-*-*-p-*-iso8859-1" to type FontStruct Configuring Listener:LISTENER不影响使用&am…

一键监控多台服务器磁盘使用情况的神奇脚本!

在当今这个数据为王的时代&#xff0c;服务器的磁盘空间使用情况成为了系统管理员日常关注的重要指标之一。磁盘空间不足可能导致服务中断&#xff0c;数据丢失&#xff0c;甚至整个系统崩溃。因此&#xff0c;及时监控磁盘空间&#xff0c;预防潜在风险&#xff0c;成为了每个…

上下左右翻转照片以及标注信息扩充数据集

目录 前言&#xff1a; 示例项目数据结构&#xff1a; 源代码&#xff1a; 运行代码后生成的项目结构&#xff1a; 效果&#xff1a; 前言&#xff1a; 使用yolo训练模型时&#xff0c;遇到数据集很小的情况&#xff08;一两百张&#xff09;&#xff0c;训练出来的模型效…

2024年电工杯数学建模B题思路 中国电机工程学会杯建模思路分析

文章目录 1 赛题思路2 比赛日期和时间3 竞赛信息4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间&#xff1a;2024…

四天学会JS高阶(学好vue的关键)——作用域解构箭头函数(理论+实战)(第一天)

一、作用域 提到作用域&#xff08;作用域又分为局部作用域和全局作用域&#xff09;&#xff0c;就要想到变量。因为作用域规定了变量能够被访问的范围&#xff08;也就是作用域是为变量而服务的&#xff09;&#xff0c;为了避免全局变量污染这一情况&#xff0c;所以需要使…

关闭 Visual Studio Code 项目中 的eslint的语法校验 lintOnSave: false;; 项目运行起来之后 自动打开浏览器 端口

1、在 vue.config.js 配置 一个属性 lintOnSave: false 2、配置两个属性 open: true, // 自动打开浏览器 port: 3000 // 端口 port 端口号根据自己的项目实际开发来 配置

C++类细节,反汇编,面试题02

文章目录 2. 虚函数vs纯虚函数3. 重写vs重载vs隐藏3.1. 为什么C可以重载&#xff1f; 4. struct vs union4.1. 为什么要内存对齐&#xff1f; 5. static作用6. 空类vs空结构体6.1. 八个默认函数&#xff1a;6.2. 为什么空类占用1字节 7. const作用7.1 指针常量vs常量指针vs常量…

用友网络的危与机:2023年亏损约10亿元,王文京面临严肃拷问

“企业在新的产业浪潮来临时&#xff0c;应该主动推进新阶段的产品和业务创新&#xff0c;这样才能够在新的浪潮成为主流的时候&#xff0c;走到行业前面&#xff0c;否则就会从产业发展的潮流中掉下来”。用友网络创始人王文京&#xff0c;曾用“冲浪理论”形容一家企业成功的…