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

数据库系统概论(第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)是描述事物的符号记录&#xff1b; 2、数据库系统的构成&#xff1a;数据库 、数据库管理系统&#xff08;及其开发工具&#xff09; 、应用程序和数据库管理员&#xff1b; 3、数据库是长期存储在计算机内、有组织、可共享的大量数据的集合&…...

算法力扣刷题 二十六【459.重复的子字符串】

前言 字符串篇&#xff0c;继续。 记录 二十六【459.重复的子字符串】 一、题目阅读 给定一个非空的字符串 s &#xff0c;检查是否可以通过由它的一个子串重复多次构成。 示例 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 多处理器架构&#xff0c;逐步扩展 PowerPC 等更多芯片架构支持&…...

分布式事务:理论与实践

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

5、双足机器人mpc动力学模型

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

虚拟机配置与windows之间文件夹共享samba服务:

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

探索音频创作的无限可能——Studio One 5 软件深度解析

Studio One 5 是一款功能强大且备受赞誉的音频制作软件&#xff0c;无论是专业音乐制作人还是业余爱好者&#xff0c;都能在其中找到满足自己需求的强大功能。 对于 Mac 和 Windows 用户来说&#xff0c;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 入门:初学者指南

在分布式系统领域&#xff0c;协调和同步至关重要。Apache ZooKeeper 是一种分布式协调服务&#xff0c;是帮助管理和同步分布式环境中服务的基本组件。本指南旨在深入分析 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. &#xff08;3 4&#xff09;-重构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风格&#xff08;模糊匹配…...

SQL SERVER 设置端口

要在SQL Server中设置端口&#xff0c;可以通过SQL Server Configuration Manager来完成。以下是详细的步骤&#xff1a; 1. 打开SQL Server Configuration Manager 在Windows中&#xff0c;按 Win R 键打开运行窗口。输入 SQLServerManager<version>.msc 并按回车。例…...

华芯微特2024慕尼黑上海电子展预告

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

DETR End-to-End Object Detection with Transformers

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

【后端面试题】【中间件】【NoSQL】ElasticSearch 节点角色、写入数据过程、Translog和索引与分片

中间件的常考方向&#xff1a; 中间件如何做到高可用和高性能的&#xff1f; 你在实践中怎么做的高可用和高性能的&#xff1f; Elasticsearch节点角色 Elasticsearch的节点可以分为很多种角色&#xff0c;并且一个节点可以扮演多种角色&#xff0c;下面列举几种主要的&…...

【TB作品】玩具电子琴,ATMEGA128单片机,Proteus仿真

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

1974Springboot医院远程诊断管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot医院远程诊断管理系统是一套完善的信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库…...

SQL游标的应用场景及使用方法

SQL游标的应用场景及使用方法 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨SQL中游标的应用场景及使用方法。游标在SQL中是一种重要的数据…...

LLama-Factory使用教程

本文是github项目llama-factory的使用教程 注意&#xff0c;最新的llama-factory的github中训练模型中&#xff0c;涉及到本文中的操作全部使用了.yaml配置。 新的.yaml的方式很简洁但不太直观&#xff0c;本质上是一样的。新的readme中的.yaml文件等于下文中的bash指令 PS: …...

Zustand 状态管理库:极简而强大的解决方案

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

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

高频面试之3Zookeeper

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

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

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

Springboot社区养老保险系统小程序

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

算法岗面试经验分享-大模型篇

文章目录 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 &#xff08;1&#xff09;资源 论文&a…...