数据库原理与应用(SQL Server)笔记 关系数据库

目录

  • 一、关系数据库的基本概念
    • (一)关系数据库的定义
    • (二)基本表、视图
    • (三)元组、属性、域
    • (四)候选码、主码、外码
  • 二、关系模型
  • 三、关系的完整性
    • (一)实体完整性
    • (二)参照完整性
    • (三)用户自定义完整性
  • 四、关系操作
    • (一)概念
    • (二)关系代数语言
    • (三)结构化查询语言

一、关系数据库的基本概念

(一)关系数据库的定义

关系数据库是一种建立在关系模型的基础上的数据库,是通过二维表来表示实体之间的联系,二维表由行与列组成。

(二)基本表、视图

在关系数据库中,关系通常表示为一个表,也称为基本表,即一个关系对应一个基本表,每个关系(表)都有其特定的行与列。另外,每个基本表是独立存在的,都有其相应的内容。视图是从一个或多个基本表中导出的表,也可以将这个表称为查询表。视图是基于基本表构建的,当基本表的数据发生变化时,视图中的数据也会相应地发生变化,但当视图变化,基本表不一定变化。

例如,只是对视图的展示方式进行修改时,并不会影响基本表;而对视图通过特定的语句来修改,则会影响到基本表。

对于下面两个表,通过销售员信息表和订单信息表查询所有员工中有订单销售员的信息表:
在这里插入图片描述
所导出来的表即为视图,它是基于表1和表2两个基本表构建的:
在这里插入图片描述

可以根据基本表来查询,也可以根据某一个查询来建立新的查询,即嵌套查询,后面的知识会学到。

(三)元组、属性、域

简单的来说,行是元组,列是属性。元组就是数据表中的一行,即表的每行对应一个元组。数据表中每列为属性,且属性的取值范围称为域,即每一个属性都有一个值域。

同一个关系的任意两个元组不能完全相同,否则会违背完整性约束,但不同的元组可以有相同的属性值。

例如,下图商品种类信息表中,包含了一件商品的种类ID、种类名称以及描述,其中每一行(每一元组)都代表了一件商品的相关信息;商品信息表中库存量为一个属性,它有相应的值域(取值范围)。
在这里插入图片描述

(四)候选码、主码、外码

数据表中用于唯一标识一个元组的标识符称为码,也称为数据库关键码。而候选码是码的子集,具有唯一性、最小性以及不可再分性等特点。

在一个关系中一般有多个候选码,只能选择一个候选码作为主码,主码可由一个或多个属性组成;外码是另一个表的主码,用于建立表与表之间的联系,通过外码可以保证表与表之间的一致性。例如,上面有两个表,商品种类信息表和商品信息表中,一件商品关联着其一个商品种类(CategoryID)。另外,外码不一定与主码同名称。

主键=主码,外键=外码,在数据库中的大多数情况下是可以互换使用的。

二、关系模型

关系模型是数据库系统(DBS)的核心和基础,由数据结构、数据操作以及数据完整性约束三要素组成。数据结构是静态特征,数据操作是动态特征,数据完整性约束是一组规则集合。

常用的数据模型有层次模型(树状)、网状模型(网状)、关系模型(关系)、半结构化数据模型等。数据库系统中最常用的模型是关系模型,其通过记录组或数据表的形式来组织数据。

三、关系的完整性

关系的完整性约束有三种,分别是实体完整性、参照完整性和用户自定义完整性,三个完整性要求共同保证了数据库中的数据准确、一致和有效。其中,实体完整性和参照完整性两者是关系模型必须满足的完整性约束。

(一)实体完整性

表中每一元组(行)的主码(主键)都是唯一的,且不能取空值,否则违反了实体完整性约束。例如,下面学生信息表中,学号是主键,实体完整性约束每个学生的学号必须是唯一的,且不能为空,通过学号即可准确地标识学生。

学号年龄姓名
190115李雅雯
190214陈晓涵
190315赵欣怡
16钱梦琪

由于最后一个元组的主码缺失为空,所以违反了实体完整性约束。

(二)参照完整性

参照完整性规则就是定义主码(主键)和外码(外键)之间的引用规则,指的是两个表之间的数据完整性约束,一个表的外码参考另一个表的主码,外码可以为空值或非空值。

(三)用户自定义完整性

用户自定义完整性是可以允许数据库管理员根据特定的实际要求来为数据库制定额外的数据完整性规则。

四、关系操作

(一)概念

关系操作的特点是集合操作,操作的对象和结果都是集合。关系操作语言是数据库管理员用来操作数据库的工具,可分为关系代数语言、关系演算语言以及结构化查询语言三种,关系代数语言通过对关系运算表达查询,关系演算语言通过使用谓词来表达查询,而结构化查询语言具有前两者的共同特点。

关系操作语言
代数语言
演算语言
结构化查询语言
SQL

(二)关系代数语言

关系代数通过对关系的运算来查询,其运算对象和结果都是关系,传统的集合运算有并、交、差和笛卡尔积运算,这些运算都是从元组(行)的角度来进行运算。专门的关系运算有选择、投影、连接、除运算,这些运算不仅涉及元组(行),也涉及属性(列)。

关系运算符号描述备注
传统的集合运算∪、∩、-、×并、交、差、笛卡尔积
专门的关系运算σ、π、⋈、÷选择、投影、连接、除

1、差
关系R和关系S的差记为R-S,运算结果为属于R,但不属于S的所有元组(行)组成。

例如,下图有三个关系R、S和T,关系T是由关系R和S通过差运算得到的。

在这里插入图片描述
2、笛卡尔积(广义)
关系R和关系S的笛卡尔积记为R×S,若关系R有r个元组(行),关系S有s个元组(行),则R×S有r×s个元组。

例如,下图有三个关系R、S和T,关系T是由关系R和S通过笛卡尔积运算得到的,关系R有3行,关系R有3行,所以关系T有3×3=9行。

在这里插入图片描述
3、选择
在关系R中选出满足一定条件F的元组称为选择,其中F为逻辑表达式,记为σF(R)。

例如,下图σA=0(R)是由关系R中选出满足A属性中值为0的元组。

在这里插入图片描述
4、投影
在关系R中选出若干属性(列)A组成新的关系称为投影,记为πA(R)。

例如,下图在关系R中选出A、C、D属性组成。

在这里插入图片描述
5、连接
1、等值连接:记关系R和关系S的笛卡尔积为R×S,从R×S中选取中选取相等属性值(列)的元组(行)组成。
2、自然连接:记关系R和关系S的笛卡尔积为R×S,从R×S中选取中除去重复属性值(列)的元组(行),剩下的元组留下组成。自然连接也可以解释为通过两者的公共域的相等值进行连接,并把重复的属性和列去掉。

例如,下图中关系R和S通过自然连接得到关系T,是通过相等值B进行连接所得的。

在这里插入图片描述
3、外连接:用于返回匹配连接条件的属性值(行)以及不满足连接条件的属性值(行),外连接包括左外连接和右外连接。另外,还有全外连接,其能获取两个表中的所有记录,包括那些没有匹配项的记录,即没有匹配的填充为NULL(空值)。

(三)结构化查询语言

SQL即为结构化查询语言,是关系数据库的标准语言。SQL语言可分为以下四类:
1、数据定义语言DDL
2、数据操纵语言DML
3、数据查询语言DQL
4、数据控制语言DCL

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

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

相关文章

010——服务器开发环境搭建及开发方法(下)

目录 三、 第一个驱动程序 四、 buildroot 4.1 制作根文件系统 4.2 buildroot使用 五、 uboot 009——服务器开发环境搭建及开发方法(上)-CSDN博客 三、 第一个驱动程序 # 1. 使用不同的开发板内核时, 一定要修改KERN_DIR # 2. KERN_DIR中的内核要…

百度智能云推出AI大模型全家桶;抖音发布 AI 生成虚拟人物治理公告

百度智能云推出大模型全家桶 百度智能云昨日在北京首钢园召开「Al Cloud Day: 大模型应用产品发布会」,此次发布会上,百度智能云宣布对以下 7 款产品进行升级。 数字人平台百度智能云曦灵智能客服平台百度智能云客悦内容创作平台「一念」知识智平台「甄…

【计算机网络】第 11、12 问:流量控制和可靠传输机制有哪些?

目录 正文流量控制的基本方法停止-等待流量控制基本原理滑动窗口流量控制基本原理 可靠传输机制1. 停止-等待协议2. 后退 N 帧协议(GBN)3. 选择重传协议(SR) 正文 流量控制涉及对链路上的帧的发送速率的控制,以使接收…

HTTP

HTTP 概念:HyperTextTransferProtocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则 HTTP协议特点: 1.基于TCP协议:面向连接,安全 2.基于请求-响应模型的:一次请求对应一次响应 …

区块链dapp开发 dapp系统开发方案

在区块链技术的兴起和普及的推动下,去中心化应用程序(DApp)成为了当前数字世界中的热门话题之一。DApp 的开发不仅需要考虑技术方面的挑战,还需要深入了解区块链的工作原理和应用场景。本文将介绍一种 DApp 系统开发的基本方案&am…

CSS实现小车旅行动画实现

小车旅行动画实现 效果展示 CSS 知识点 灵活使用 background 属性下的 repeating-linear-gradient 实现路面效果灵活运用 animation 属性与 transform 实现小车和其他元素的动画效果 动画场景分析 从效果图可以看出需要实现此动画的话,需要position属性控制元素…

旧电脑安装个Win11玩玩,看看体验如何!

前言 小伙伴们都很清楚,Windows11的配置要求其实并不是很高,但要求的受信任平台模块(TPM)版本要求2.0 由于受信任平台模块的限制,导致许多电脑都没办法安装Windows11,如果要安装Windows11的旧机器也只能绕…

【QT+QGIS跨平台编译】040:【geos_c+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、geos_c介绍二、文件下载三、文件分析四、pro文件五、编译实践一、geos_c介绍 GEOS_C(GEOS C++接口)是GEOS库的C语言版本,它提供了一套丰富的API,允许开发者在C++程序中执行复杂的几何形状处理和空间关系分析。GEOS_C是基于JTS(Java Topolog…

步态采集平台

🍉步骤一、读取视频每一帧图像 🍉步骤二、对读取的图像进行分割,得到全景下的步态轮廓图。 ​​​​​​​🍉步骤三、对读取的图像进行裁剪得到归一化的步态轮廓图。 ​​​​​​​🍉步骤四、保存这一帧步态轮廓图

新网站收录时间是多久,新建网站多久被百度收录

对于新建的网站而言,被搜索引擎收录是非常重要的一步,它标志着网站的正式上线和对外开放。然而,新网站被搜索引擎收录需要一定的时间,而且时间长短受多种因素影响。本文将探讨新网站收录需要多长时间,以及新建网站多久…

SnapGene 5 for Mac 分子生物学软件

SnapGene 5 for Mac是一款专为Mac操作系统设计的分子生物学软件,以其强大的功能和用户友好的界面,为科研人员提供了高效、便捷的基因克隆和分子实验设计体验。 软件下载:SnapGene 5 for Mac v5.3.1中文激活版 这款软件支持DNA构建和克隆设计&…

网络:udptcp套接字

目录 协议 网络传输基本流程 网络编程套接字 udp套接字编程 udp相关代码实现 sock函数 bind函数 recvfrom函数 sendto函数 udp执行指令代码 popen函数 udp多线程版收发消息 tcp套接字编程 tcp套接字代码 listen函数 accept函数 read/write函数 connect函数 recv/…

UE RPC 外网联机(2)

外网联机配置测试 一、网络配置 开放外网端口开放端口是为了可以进行外网访问;端口包含一个预案管理服务器端口和多个预案服务器端口;(预案管理服务器类似于大厅,预案服务器类似于房间,大厅管理多个房间;) (1)预案管理服务器端口;(如:23001) (2)预案服务器端口…

C++优先队列——priority_queue,函数对象,labmda表达式,pair等

头文件&#xff1a;#include<queue> 内部使用堆来实现&#xff0c;在需要或得最大的几个值或最小的几个值而不关心整个数组的顺序时非常好用。 用法&#xff1a; priority_queue<int, vector<int>, greater<int>>q; 第一个参数为堆中存储的元素。 …

大模型 智能体 智能玩具 智能音箱 构建教程 wukong-robot

视频演示 10:27 一、背景 继上文《ChatGPT+小爱音响能擦出什么火花?》可以看出大伙对AI+硬件的结合十分感兴趣,但上文是针对市场智能音响的AI植入,底层是通过轮询拦截,算是hack兼容,虽然官方有提供开发者接口,也免不了有许多局限性(比如得通过特定指令唤醒),不利于我…

零基础10 天入门 Web3之第1天

10 天入门 Web3 Web3 是互联网的下一代&#xff0c;它将使人们拥有自己的数据并控制自己的在线体验。Web3 基于区块链技术&#xff0c;该技术为安全、透明和可信的交易提供支持。我准备做一个 10 天的学习计划&#xff0c;可帮助大家入门 Web3&#xff1a; 想要一起探讨学习的…

大模型时代下的“金融业生物识别安全挑战”机遇

作者&#xff1a;中关村科金AI安全攻防实验室 冯月 金融行业正在面临着前所未有的安全挑战&#xff0c;人脸安全事件频发&#xff0c;国家高度重视并提出警告&#xff0c;全行业每年黑产欺诈涉及资金额超过1100亿元。冰山上是安全事件&#xff0c;冰山下隐藏的是“裸奔”的技术…

GPT:多轮对话并搭建简单的聊天机器人

1 多轮对话 多轮对话能力至关重要&#xff0c;它不仅能深化交流&#xff0c;精准捕捉对方意图&#xff0c;还能促进有效沟通&#xff0c;增强理解。在智能客服、教育辅导等领域&#xff0c;多轮对话更是提升服务质量、增强用户体验的关键。 注意&#xff1a;大模型没有多轮对话…

uniapp h5 touch事件踩坑记录

场景&#xff1a;悬浮球功能 当我给悬浮球设置了 position: fixed; 然后监听悬浮球的touch事件&#xff0c;从事件对象中拿到clientY和clientX赋值给悬浮球的left和top属性。当直接赋值后效果应该是这样子&#xff1a; 注意鼠标相对悬浮球的位置&#xff0c;应该就是左上角&a…

JAVA使用POI实现Excel单元格合并-02

JAVA使用POI实现Excel单元格合并 实现效果 解释&#xff1a;只要是遇见与前一行相同的数据就合并 引入jar <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.2</version></depe…