数据库系统概论(第5版教材)
第一章 绪论
1、数据(Data)是描述事物的符号记录;
2、数据库系统的构成:数据库 、数据库管理系统(及其开发工具) 、应用程序和数据库管理员;
3、数据库是长期存储在计算机内、有组织、可共享的大量数据的集合;
4、数据库系统的特点:数据结构化、数据共享性高和冗余度低、数据独立性高和统一的数据控制功能;
5、实体:客观存在并且可以相互区别的事物;
码:唯一标识实体的属性集;
6、数据模型的重要组成要素: 数据结构、数据操作和数据的完整性约束条件;
7、E-R图:用矩形表示实体、椭圆形表示关系、椭圆表示属性;
8、关系模型:关系:一个关系对应一张表;
元组:表中的一行为一个元组;
属性:表中的一列为一个属性;
9、三级模式间存在两种映射:逻辑模式与外模式间,逻辑模式与内模式间
10、数据库中模式/内模式映象是唯一的;
第二章 关系数据库
1、关系模式是型 、关系是值;
关系模型的三个组成部分分别是:数据结构、数据操作和数据完整性规则。
2、关系的三类完整性约束:实体完整性和参照完整性,用户定义的完整性;
3、逻辑运算和关系运算:
选择:在关系R中选择满足给定条件的诸元组 σF(R) ---R为表名,
F为条件 σSdept = 'IS' (Student)
投影:从R中选择出若干属性列组成新的关系πA(R) --- R为表名,A属性列 πSdept(Student)
连接: 连接:从两个关系的笛卡尔积中选取属性间满足一定条件的元组
等值连接:从关系R与S中选取A、B属性值相等的那些元组,为R.B和S.B;
自然连接:R和S具有相同的属性组B ,表中只列一个B;
自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。
4、
① 等值连接要求相等的分量,但不一定是公共属性,而自然连接要求相等的分量必须是公共属性
② 等值连接不做投影运算,而自然连接要把重复的属性去掉;
③ 自然连接一定是等值连接,但等值连接不一定是自然连接。
5、自然连接的含义:R和S具有相同的属性组B
第三章数据库的基本操作
1、数据库的基本操作:
创建数据库 CREATE DATABASE<数据库文件名>;
查看数据库 SHOW DATABASES ;
打开数据库 USE <数据库文件名>;
修改数据库参数 ALTER DATABASE|SCHEMA [数据库文件名];
删除数据库 DROP DATABASE<数据库文件名>;
2、表结构:
3、表的基本操作
①创建表
CREATE TABLE [IF NOT EXISTS] <表名> [(<字段名> <数据类型> [完整性约束条件][,…])] ;
IF NOT EXISTS:避免重复创建
完整性约束条件:主键PRIMARY KEY()、外键FOREIGN KEY()、索引、唯一性UNIQUE(),NULL值等
②查看表
SHOW TABLES ; DESC <表名>;
③修改表
ALTER TABLE <表名> {
[ADD <新字段名> <数据类型> [<完整性约束条件>][,…]]
|[ADD INDEX [索引名] (索引字段,...)]
|[MODIFY COLUMN <字段名> <新数据类型> [<完整性约束条件>]]
|[DROP {COLUMN <字段名>| <完整性约束名>}[,…]]
|DROP INDEX <索引名>
|RENAME [AS] <新表名> };
④删除表
DROP TABLE [IF EXISTS] <表名> [,<表名>...];
4、 表数据操作
①添加数据
INSERT INTO <表名> [<字段名>[,…]]
VALUES (<常量>[,…]);
②更新数据
UPDATE <表名> SET <字段名>=<表达式>[,…] [WHERE <条件>];
③删除数据
DELETE FROM <表名> [WHERE<条件>];
删除表中所有记录也可以用truncate table语句:truncate table <表名>;
④查看数据
SELECT * FROM <表名>;
5、索引
①索引的建立
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX <索引名称> [USING index_type] ON <表名> (索引字段[ASC|DESC][,...]);
②索引的删除
DROP INDEX <索引名> ON <表名>;
ALTER TABLE <表名> DROP INDEX <索引名> ;
6、MySQL中的索引有:主索引、全文索引、惟一索引、普通索引
①简单查询
SELECT <查询项>
FROM <查询来源 数据表/视图> [
WHERE <条件表达式>] [
GROUP BY <分组表达式>] [
HAVING <分组条件表达式>] [
ORDER BY <排序项>] [
LIMIT <限制结果行数>] [
UNION <合并查询 其他查询语句>];
②连接查询
FROM <表名1> [别名1] , <表名2> [别名2] [,…] WHERE <连接条件表达式>
例:select a.*,b.* from student a,sc b where a.sno=b.sno;
FROM <表名1> [别名1] INNER JOIN <表名2> [别名2] ON <连接条件表达式>
第四章 数据库安全性
1、授权与回收
①GRANT语句的一般格式:
GRANT <权限>[,<权限>]...
[ON <对象类型> <对象名>]
TO <用户>[,<用户>]...
[WITH GRANT OPTION];
语义:将对指定操作对象的指定操作权限授予指定的用户
②REVOKE语句的一般格式为:
REVOKE <权限>[,<权限>]...
[ON <对象类型> <对象名>]
FROM <用户>[,<用户>]...;
授予的权限可以由DBA或其他授权者用REVOKE语句收回
2、角色的创建 CREATE ROLE <角色名>
第五章 数据库完整性
1、关系模型的实体完整性 CREATE TABLE中用PRIMARY KEY定义
2、关系模型的参照完整性 在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码
用REFERENCES短语指明这些外码参照哪些表的主码
第六章 关系数据理论
1、各种范式之间存在联系:
1NF⊃2NF⊃3NF⊃BCNF⊃4NF⊃5NF
2、
1NF:
如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF
2NF:
若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF。
3NF:
若R∈3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。
BCNF:
若R∈BCNF,所有非主属性对每一个码都是完全函数依赖;所有的主属性对每一个不包含它的码,也是完全函数依赖;没有任何属性完全函数依赖于非码的任何一组属性;等价于:每一个决定属性因素都包含码。
将一个关系从1NF规范到2NF,目的是消除非主属性对键的部分函数依赖,
若进一步规范到3NF,目的是消除非主属性对键的传递函数依赖。
第七章 数据库设计
1、数据库设计的基本步骤
①需求分析:是整个设计过程的基础 (1)信息需求分析 (2)操作需求分析
②概念结构设计:将需求分析的结果用一种工具进行形式化的定义和描述,是整个DB设计的关键。如:E-R图。
③逻辑结构设计:概念模型→数据模型,根据需求分析和概念设计的结果,选择合适的数据模型,并选用某一设计方法构造一数据库模式。
④物理设计:选择合适的物理结构。 包括存储结构和存取方法
⑤实施阶段:根据逻辑设计和物理设计建立数据库;编制和调试应用程序;试运行;
⑥DB运行和维护阶段:根据运行记录对DB进行评价 根据评价对DB调整和修改
2、E_R图转换为关系模式,实质就是将实体和联系转换为关系模式。
3、过程化SQL的基本结构是块。所有的SQL程序都是由块组成的,一般由三部分组成:声明部分,可执行部分,错误处理部分。
4、块结构
块结构如下所示:
[DECLARE]
/* 声明部分 -- 这部分包括PL/SQL变量,常量,游标, 用户自定义异常等的定义 */
BEGIN
/* 可执行部分 -- 这部分包括SQL语句及过程化的语句,这部分是程序的主体 */ [EXCEPTION]
/* 错误处理部分 -- 这部分包括错误处理语句*/
END;
5、DECLARE部分
语法如下:
变量名 [CONSTANT] 数据类型 [NOT NULL][:= | DEFAULT] 表达式]
说明: 1.声明常量时必须加关键字CONSTANT,常量在声明时必须初始化,否则在编译时会出错。
变量赋值
1.直接赋值 变量名 := 常量或表达式; 例如:v_num NUMBER:=5;
2.通过SELECT..INTO赋值 SELECT 字段 INTO 变量名
6、流程控制
语法如下:
IF 条件1 THEN
语句体1;
[ELSIF 条件2 THEN
语句体2;]
…
[ELSE
语句体n;]
END IF;
注意: 每个IF语句以相应的END IF语句结束; IF语句后必需有THEN语句,IF…THEN后不跟语句结束符“;”; 一个IF语句最多只能有一个ELSE语句。 IF条件语句最多只能执行一个条件分支,执行之后跳出整个语句块。
循环语句的基本形式有以下三种。
(1)简单循环 其语法如下:
LOOP
循环体;
[EXIT退出语句;] //满足退出条件,退出循环
END LOOP;
EXIT退出语句的语法如下:
a.IF 条件表达式 THEN EXIT; END IF;
b.EXIT WHEN 条件表达式;
(2)WHILE循环 语法如下:
WHILE 条件表达式
LOOP
循环体;
END LOOP;
说明:
当while条件表达式为TRUE时,执行循环体中的内容,如果结果为FALSE,则结束循环。
】
(3)FOR循环 语法如下:
FOR counter IN [REVERSE] start_range..end_range
LOOP
循环体;
END LOOP;
说明: FOR循环的循环次数是固定的;
counter是一个隐式声明的变量,不用在DECLARE中定义。
start_range和end_range指明了循环的次数。
REVERSE表示循环变量从最大值向最小值叠代。
7、创建存储过程:
在MySQL系统中,可以使用CREATE PROCEDURE语句创建存储过程。
其语法格式如下:
CREATE PROCEDURE <存储过程名称>
([IN|OUT|INOUT] 参数 数据类型[,...])
AS
BEGIN
过程体;
END;
相关文章:

数据库系统概论(第5版教材)
第一章 绪论 1、数据(Data)是描述事物的符号记录; 2、数据库系统的构成:数据库 、数据库管理系统(及其开发工具) 、应用程序和数据库管理员; 3、数据库是长期存储在计算机内、有组织、可共享的大量数据的集合&…...

算法力扣刷题 二十六【459.重复的子字符串】
前言 字符串篇,继续。 记录 二十六【459.重复的子字符串】 一、题目阅读 给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s "abab" 输出: true 解释: 可由子串 "ab" 重复两次构成。示例…...

【Linux】虚拟机安装openEuler 24.03 X86_64 教程
目录 一、概述 1.1 openEuler 覆盖全场景的创新平台 1.2 系统框架 1.3 平台框架 二、安装详细步骤 一、概述 1.1 openEuler 覆盖全场景的创新平台 openEuler 已支持 x86、Arm、SW64、RISC-V、LoongArch 多处理器架构,逐步扩展 PowerPC 等更多芯片架构支持&…...

分布式事务:理论与实践
分布式事务:理论与实践 在现代分布式系统中,分布式事务是一种确保跨多个独立系统的一致性和完整性的方法。本文将介绍分布式事务的基本概念、实现方式、在Java中的具体实现以及在实际应用中的案例。 分布式事务的基本概念 分布式事务涉及多个独立的数…...

5、双足机器人mpc动力学模型
为计算机器人的当前实际状态x,需要建立双足质心动力学模型。 速度模型由控制输入变量推导速度公式: x向速度νx :当前机器人x方向的前进速度,初始值由速度传感器实时测量得到。y向速度νy :机器人y方向的平移速度。z向速度νz :垂直方向的速度,对于双足机器人行走时为0:…...

虚拟机配置与windows之间文件夹共享samba服务:
虚拟机配置与windows之间文件夹共享samba服务: #输入安装命令: 第一步: 下载samba cd /etc/ sudo apt-get install samba第二步: 配置用户 sudo smbpasswd -a 虚拟机用户名第三步: 进入配置文件配置共享文件 sudo vim /etc/samba/smb.conf末尾输入以下内容: [s…...

探索音频创作的无限可能——Studio One 5 软件深度解析
Studio One 5 是一款功能强大且备受赞誉的音频制作软件,无论是专业音乐制作人还是业余爱好者,都能在其中找到满足自己需求的强大功能。 对于 Mac 和 Windows 用户来说,Studio One 5 提供了一个直观且友好的操作界面。其简洁明了的布局让用户…...

CSS Flex弹性布局
一、传统布局与flex布局 1、传统布局 2、flex布局 二、flex布局原理 1、布局原理 2、flex布局体验 三、flex布局父项常见属性 1、常见的父项属性 2、flex-direction设置主轴的方向 3、justify-content 设置主轴上的子元素排列方式 4、flex-wrap 设置子元素是否换行 …...
第十六章:基于开源大模型使用huggingface在deepspeed与accelerator下继承源码权重保存而实现resume与infer
文章目录 前言一、huggingface的_save_checkpoint函数不同阶段保存内容介绍1、_save_checkpoint函数2、save_model函数3、_save函数4、save_pretrained函数5、resume说明二、模型训练Resume相关内容重载1、Resume的一次性权重载入(deepspeed_load_checkpoint)2、Resume的optimi…...
ZooKeeper 入门:初学者指南
在分布式系统领域,协调和同步至关重要。Apache ZooKeeper 是一种分布式协调服务,是帮助管理和同步分布式环境中服务的基本组件。本指南旨在深入分析 ZooKeeper、其架构及其在现代分布式系统中的作用。我们还将探索一个示例来展示其实际影响。 ZooKeeper…...

【数据结构(邓俊辉)学习笔记】二叉搜索树04——AVL树
文章目录 1.重平衡1.1 AVL BBST1.2 平衡因子1.3 适度平衡1.4 接口1.5 失衡 复衡 2. 插入2.1 单旋2.2 双旋2.3 实现 3. 删除3.1 单旋3.2 双旋3.3 实现 4. (3 4)-重构4.1 "34"重构4.2 "34"实现4.3 rotateAt4.4 综合评价 1.重平衡 1…...

SpringMVC基础详解
文章目录 一、SpringMVC简介1、什么是MVC2、MVC架构模式与三层模型的区别3、什么是SpringMVC 二、HelloWorld程序1、pom文件2、springmvc.xml3、配置web.xml文件4、html文件5、执行Controller 三、RequestMapping注解1、value属性1.1、基础使用1.2、Ant风格(模糊匹配…...
SQL SERVER 设置端口
要在SQL Server中设置端口,可以通过SQL Server Configuration Manager来完成。以下是详细的步骤: 1. 打开SQL Server Configuration Manager 在Windows中,按 Win R 键打开运行窗口。输入 SQLServerManager<version>.msc 并按回车。例…...

华芯微特2024慕尼黑上海电子展预告
7月8日-7月10日,2024慕尼黑上海电子展在上海新国际博览中心举办。华芯微特展号:E4.4815,诚意邀请各位莅临参观。 公司介绍 华芯微特是一家由留美归国资深技术团队创立的中国芯片设计公司,是国家高新技术企业。2014年进军MCU产业,专…...

DETR End-to-End Object Detection with Transformers
End-to-End Object Detection with Transformers 论文链接:http://arxiv.org/abs/2005.12872 代码地址:https://github.com/facebookresearch/detr 一、摘要 提出了一种将目标检测视为直接集合预测问题的新方法。该方法简化了检测流程,有效…...

【后端面试题】【中间件】【NoSQL】ElasticSearch 节点角色、写入数据过程、Translog和索引与分片
中间件的常考方向: 中间件如何做到高可用和高性能的? 你在实践中怎么做的高可用和高性能的? Elasticsearch节点角色 Elasticsearch的节点可以分为很多种角色,并且一个节点可以扮演多种角色,下面列举几种主要的&…...

【TB作品】玩具电子琴,ATMEGA128单片机,Proteus仿真
题目 7 :玩具电子琴 基于单片机设计一能够发出中音八个音阶的音乐信号的电子琴,能够实现弹奏和音符显示功 能。 具有 8 个音阶按键,每按下一个按键时,所对应的 LED 点亮,音符进行显示。 具体要求如下: &…...

1974Springboot医院远程诊断管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目
一、源码特点 springboot医院远程诊断管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统具有完整的源代码和数据库…...
SQL游标的应用场景及使用方法
SQL游标的应用场景及使用方法 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨SQL中游标的应用场景及使用方法。游标在SQL中是一种重要的数据…...
LLama-Factory使用教程
本文是github项目llama-factory的使用教程 注意,最新的llama-factory的github中训练模型中,涉及到本文中的操作全部使用了.yaml配置。 新的.yaml的方式很简洁但不太直观,本质上是一样的。新的readme中的.yaml文件等于下文中的bash指令 PS: …...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...