数据库基础理论知识

无线渗透-基础理论知识 无线协议标准 IEEE 802.11标准 标准涉及 数据链路层 逻辑链路控制子层LLC 媒体访问控制子层MAC 物理层 无线射频信号编码 DSSS 直序扩频 FHSS 跳频扩频 媒体访问方式—CSMA/CA 根据算法侦听一定时长 发送数据前发包声明 无线网络运行模式 Infrastructure 至少包含一个AP,一个STATION,形成BSS ... 阅读详情

一数据库事务

1什么是事务

事务是数据库并发控制的基本单位,可以看作是一系列SQL语句的集合

事务必须要么全部执行成功,要么全部执行失败(回滚)

比如从A转账到B 100元,A-100,B+100如果B执行失败,A的操作不能凭空减少100,故进行回滚操作

2事务的ACID四个特性:

◆事务的原子性(Atomicity)是指一个事务要么全部执行,要么不执行。也就是说一个事务不可能只执行了一半就停止了。比如你从银行取钱,这个事务可以分成两个步骤(1)存折减款,(2)拿到现金。不可能存折钱少了,而钱却没拿出来。这两步必须同时完成,要么就都不完成。

◆事务的一致性(consistency)是指事务的运行并不改变数据库中数据的一致性。例如,完整性约束了a+b=10,一个事务改变了a,那么b也应该随之改变。

◆事务的独立性(或隔离性Isolation:隔离性指的是事务间是相互独立的,不会互相影响)是指两个以上的事务不会出现交错执行的状态。因为这样可能会导致数据不一致。

◆事务的持久性(Durability)是指事务运行成功以后,就系统的更新是永久的。不会无缘无故的回滚。

3事务的并发控制可能产生哪些问题?

如果不对事务进行并发控制,可能会产生四种异常情况

◆幻读( phantom read):个事务第二次查出现第一次没有的结果

◆非重复读( nonrepeatable read):一个事务重复读两次得到不同结果

◆脏读( dirty read):一个事务读取到另一个事务没有提交的修改

◆丢失修改( ost update):并发写入造成其中一些修改丢失

4为了解决并发控制异常,定义了4种事务隔离级别

◆读未提交( read uncommitted):别的事务可以读取到未提交改变

◆读已提交( read committed):只能读取已经提交的数据

◆可重复读 (repeatable read):同一个事务先后查询结果一样

◆串行化( Serializable):事务完全串行化的执行,隔离级别最高,执行效率最低(锁住一个事务,执行完再释放)A插入了数据,B看不到插入的数据,无法在相同得位置插入信息

5如何解决高并发场景下的插入重复?

高并发场景下,写入数据库会有数据重复问题

◆使用数据库的唯一索引

◆使用队列异步写入   

◆使用 redis等实现分布式锁

6.乐观锁和悲观锁[需要根据响应速度、冲突频率、重试代价来判断使用哪一种]

◆悲观锁是先获取锁再进行操作。一锁二查三更新 select for update

◆乐观锁先修改,更新的时候发现数据已经变了就回滚(check and set)

乐观锁一般通过版本号或者时间戳实现

7共享锁(读锁):在同一时间段内,多个用户可读取同一个资源,读取过程中不会发生任何变化

排他锁(写锁):在任何时刻,只能有一个用户可读取同一个资源,当进行写锁时会阻塞其他的读锁或写锁操作。

8锁颗粒

开销、加锁速度、死锁、粒度、并发性能

  • 表锁:开销小,加锁快;不会出现死锁;锁定力度大,发生锁冲突概率高,并发度最低
  • 行锁:开销大,加锁慢;会出现死锁;锁定粒度小,发生锁冲突的概率低,并发度高
  • 页锁:开销和加锁速度介于表锁和行锁之间;会出现死锁;锁定粒度介于表锁和行锁之间,并发度一般
  • 表锁更适用于以查询为主,只有少量按索引条件更新数据的应用;行锁更适用于有大量按索引条件并发更新少量不同数据,同时又有并发查询的应用。(PS:由于BDB已经被InnoDB所取代,我们只讨论MyISAM表锁和InnoDB行锁的问题)
  • https://www.cnblogs.com/jpfss/p/8890250.html

表锁:一种开销最小的锁策略(一个表一个锁),主键不唯一

行锁:一种开销最大的锁策略

二三大范式

1第一范式(1NF):无重复的列

每一行只包含一个实例信息,每个属性不可再分,不满意1NF就不是关系数据库

2第二范式2NF:属性完全依赖于主键

基于1NF,每一行被唯一区分,实体的属性完全依赖于主关键字

3第三范式3NF

基于2NF,要求不包含已在其他表中存在存在的非主关键字信息

三  SQL注入攻击

所谓SQL注入式攻击,就是攻击者把SQL命令插入到web表单的输入域或页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。

防范SQL注入式攻击闯入并不是一件特别困难的事情,只要在利用表单输入的内容构造SOL命令之前,把所有输入内容过滤一番就可以了。过滤输入内容可以按多种方式进行。

四.SQL语句例题

1内连接和外连接【两个表按照字段拼在一起】

◆内连接( I NNER JOIN):两个表都存在匹配时,才会返回匹配行;将左表和右表能够关联起来,类似于表的交集,的数据连接后返回:select * from A inner join B on a.id=b.id

◆外连接(LEFT/RIGHT JOIN):返回一个左/右表的行,即使另一个没有匹配,没有则用NULL填充

◆全连接( FULL JOIN):只要某一个表存在匹配就返回。完整外部联接返回左表和右表中的所有行。

 左连接

select A.id as a_id,B.id as b_id,A.val as a_val,B.val as b_val from left join B on A.id=B.id

a_idb_ida_valb_val
11abab
2NULLabNULL

数据库原理:基础理论 数据库的三级模式和两级映射;ArmStrong公理;实体的键;求候选键技巧;函数依赖 阅读详情

相关推荐

Oracle Concepts:数据库基础理论与实践指南

本文还有配套的精品资源,点击获取 简介:Oracle Concepts是Oracle数据库管理(DBA)的基础理论知识,涵盖了Oracle数据库概述、SQL语言、数据库实例与数据库、表空间与数据文件、用户与权限管理、事务与并发控制、索引、备份与恢复、数据库性能优化、数据库安全性、数据库架构、PL/SQL等核心概念。本指南将详细阐述这些概念,并提供实践示例,帮助学习者深入理解...

weixin_28968525的博客 802

事务的四大特性(ACID)

因为一直记得不全面,所以加了实例加深印象。 一、定义 1、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么全部不执行。 2、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。 3、隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。 4、持久性(D...

Matrix 2272

「分治法」最近点对距离问题

一、问题描述 给定平面S上n个点,找其中的一对点,使得在n个点组成的 所有点对中,该点对间的距离最小。 假设所讨论的点是以标准笛卡儿坐标形式(x, y)给出的。因 此,在两个点Pi =(xi , yi )和Pj =(xj , yj )之间的距离是标准的欧几里德 距离: d = 根号下( x i − x j ) 2 + ( y i − y j )2 二、问题分析 直接用暴力解法很简单,用结构体把每个点的x、y坐标都存下来之后,用一个二重循环即可获得距离的最大值。但是这样做的时间复杂度也达到了O(n的平方)

Laok0413的博客 9656

深入理解事务--事务ACID特性及隔离级别

简介       ACID,是指在可靠数据库管理系统(DBMS)中,事务(transaction)所应该具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability).这是可靠数据库所应具备的几个特性.下面针对这几个特性进行逐个讲解. 理解原子性(Atomicity)    原

yuanlaishini2010的专栏 7152

从扇束到平行束:等角重排算法在CT重建中的核心原理与MATLAB实践

本文深入解析了CT图像重建中等角扇束重排算法的核心原理与MATLAB实现。通过将实际采集的扇束投影数据,利用几何映射和两次关键插值,转换为适用于经典滤波反投影算法的平行束数据,打通了高效重建的关键路径。文章结合Shepp-Logan模型仿真,提供了完整的MATLAB代码实践,并分析了源-物距、采样率等关键参数对重建质量的影响。

cnn8visionary的博客 647

MTK-AWB 小结 (二)

调试总结:可以将offset 对应的ratio加大,保留更多的喜好色(偏色),影响WF statistic gain,从而影响最终的awb gain。这一部分前期CCT校准的时候就会算出一组默认值,当然这个offset offse 值用于优化T,S,wf 光下的偏色喜好度. offset。后面遇到 A H Shad 光收白或者偏色,还可以优化 A 的offset ,H offset,shad offset.new offset 计算过程(Day locus offset 和M/G offset )

qq_46056347的博客 1167

事务的四大基本特征ACID

1、A(Atomicity)原子性 原子性比较容易理解,也就是说事物里的所有操作要么全部做完,要么都不做,事物成功的条件是事物里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。比如转账,从A账户转100元到B账户,步骤:1)从A账户取100元;2)存入B账户。这个步骤要么一起完成,要么一起不完成,如果只完成第一步,第二部失败,钱就会莫名其妙少100元。(都成功或者都失败) 2、C(Consistency)一致性 一致性就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束

HolyLordHanChaun的博客 317

保姆级教程:在Davinci Configurator里配置BswM的ECU状态机(附状态切换流程图)

本文提供了一份详细的AUTOSAR BswM模块配置指南,通过Davinci Configurator工具实现ECU状态机的构建与管理。内容涵盖从模式请求端口创建到状态切换规则定义的全流程,特别针对Ecu State Handling进行了深入解析,并附有状态切换流程图,帮助汽车电子工程师高效完成ECU状态管理配置。

weixin_28366475的博客 410

数据库理论知识总结

数据库知识总结 一、数据库理论知识 1.1概述 1、4个基本概念:数据(描述事物的符号记录)、数据库(永久存储、有组织、可共享)、数据库系统(由DB、DBMS、DBA、应用程序组成的存储,管理,处理和维护数据的系统)、数据库管理系统(用户与操作系统之间的一层数据管理软件) 2、数据管理技术的发展:人工管理—>文件系统—>数据库系统 3、数据库系统的特点:数据结构化、共享度高冗余度低、数据独立性高、有DBMS统一管理和控制(数据的安全性保护,完整性检查,并发控制,数据库恢复) 1.2数据模型 1、

sunlight_meng的博客 5794

魔兽世界怀旧服宏命令全解析:从自动换装到智能判定,老玩家才知道的黑科技

本文全面解析魔兽世界怀旧服宏命令的高级应用,从自动换装到智能判定,揭秘老玩家专属的黑科技技巧。深入探讨怀旧服特有的宏命令机制,包括施法队列、装备切换系统和职业专属技巧,帮助玩家在经典旧世版本中提升战斗效率。

weixin_29230865的博客 730

Unity引擎开发:复杂动作系统_动作捕捉数据的应用与整合

通过以上步骤,我们可以在Unity中有效地应用和整合动作捕捉数据,以实现更加真实和流畅的动画效果。从导入文件格式的选择,到预处理和优化,再到实时应用和调试验证,每一步都至关重要。希望本文能帮助你在Unity项目中更好地利用动作捕捉数据,提升动画质量和性能。

chenlz2007的博客 957

数据库基础(超详细版)

简介: 数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种 用户或应用共享的数据集合。 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软 件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。 用户通过数据库管理系统访问数据库中的数据。 数据库软件应该为数据库管理系统,数据库是通过数据库管理系统创建和操作的。 数据库:存储、维护和管理数据的集合。 三大范式:

m0_60563771的博客 4万+

姿态传感器/陀螺仪之IIS2DLPC 应用驱动程序设计

* 转换为°C单位 (参考温度为25°C,灵敏度为16 LSB/°C) */

corlin6688的博客 220

数据库原理-基础理论知识手册

《数据库原理知识手册》全面介绍数据库系统核心概念与技术。主要内容包括:1.数据库基础概念(数据、DB、DBMS、DBS)及发展历程;2.数据模型(E-R图、关系模型等)及其转换规则;3.关系数据库理论(关系代数、完整性约束、范式理论);4.事务管理(ACID特性、并发控制、锁机制);5.数据库设计流程与索引优化;6.系统架构(三级模式、主流DBMS对比);7.NoSQL数据库类型与CAP定理。手册以关系型数据库为重点,涵盖从概念设计到物理实现的完整知识体系,同时介绍了新型数据库技术

qq_58096957的博客 581

AD快速上手笔记

本文详细介绍了使用Altium Designer从零创建PCB项目全流程:新建工程、绘制原理图(元件放置、连线、电源端口)、编译检查、生成PCB、布局布线(含铺铜)、DRC检查及输出Gerber与钻孔文件。重点强调了库选择、参数修改、层切换、铺铜设置和生产文件导出规范,确保设计无误,便于顺利下单生产。

qq_53529450的博客 42

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【MySQL数据库】基础理论知识总结

数据库是现代信息技术的重要组成部分,它在各个领域都有广泛应用,因此数据库专业人才的需求也非常高。

Filotimo_的博客 835

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

数据库基础理论知识总结

一、数据库系统的基本概念 1.何为数据库技术? 数据库技术是计算机科学的重要组成部分,是信息技术的核心和基础,主要用于研究如何向用户提供具有共享性、安全性和可靠性数据的方法。 数据库技术解决了计算机信息处理过程中有效地组织和储存海量数据的问题。 数据库的建设规模、数据库信息量的大小和使用频度已成为一个国家信息化程度的重要标志。 2.数据库技术的发展前景? 信息技术的发展极大地促进了数据库技术向各行...

大树 1946

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

DB-TUTORIAL 数据库教程:从原理到实战全面解析

数据库是现代应用开发中不可或缺的核心组件。无论是传统的关系型数据库,还是新兴的 NoSQL 数据库,掌握它们的原理和使用方法对于开发者来说都至关重要。DB-TUTORIAL 项目提供了一个全面系统的数据库学习教程,涵盖了从基础理论到实战应用的各个方面。 ## 数据库基础理论 ### 分布式存储原理 分布式数据库是现代大规模应用的基石,理解其核心原理至关重要: 1. **分布式一致性理论**...

gitblog_00188的博客 444

OLAP与数据仓库和数据湖

本文阐述了OLAP、数据仓库和数据湖方面的基础知识以及相关论文。同时记录了我如何通过ChatGPT以及类似产品(通义千问、文心一言)来学习知识的。通过这个过程让我对于用AI科技提升学习和工作效率有了实践经验和切身感受。

Ahxing1985的专栏 1330

笔记-数据库基础理论知识

数据库 一、关系数据库: 实体完整性(主键)、参照完整性(外键)、用户定义的完整性(列值非空、列值唯一)。 二、SQL语句: 数据定义,操纵,控制和事务控制语言DML:select,insert,update,delete,merge,call 1.基本表 ①Select *[distinct](=去掉重复行) from <table> where...

huang 308

SQL学习笔记——数据库基础理论知识

是长期`存放在计算机内`、`有组织的`、`可共享`的相关数据的集合,它将数据按一定的数据模型组织、描述和存储,具有`较小的冗余度`、`较高的数据独立性`和`易扩展性`,可以被各类用户共享等特点

weixin_45375866的博客 479

计算机基础理论知识到底是什么意思?完整的知识体系包含什么内容?底层原理是什么?

计算机基础理论知识是研究计算机系统的基本原理和运行机制的学科领域,包括硬件、软件、算法、数据结构、操作系统、网络等多方面的内容。它是计算机科学的核心,为后续的技术应用提供了理论支持。

长风破浪会有时的博客 1272

分享hadoop大数据视频教程-数据仓库 百度网盘下载:

主要内容为: 第一部分:数据仓库基础理论与技术圈   第一章:互联网电商大数据环境   第二章:商业智能与数据仓库基础理论   第三章:维度建模基础理论   第四章:电商大数据一般架构   第五章:电商数据平台从零搭建方案参考 第二部分:Hadoop&Hive数据仓库技术   第一章:电商全分布式开发环境搭建   第二章:Hadoop&Hive光速入门   第三章:HiveSQ

fmktokf的专栏 1万+

MySql数据库基础知识点整理

发展历程1995 年:瑞典 MySQL AB 公司发布首个稳定版。2008 年:Sun 公司收购 MySQL AB。2009 年:Oracle 收购 Sun,接管 MySQL 版权。现状:社区版(开源免费)与企业版(付费支持)并行,MySQL 8.0 为当前主流版本(支持 UTF8mb4、窗口函数、CTE 等)。核心特性跨平台:支持 Windows、Linux、macOS 等。多语言 API:支持 Python、Java、PHP、C++ 等。

2401_88419239的博客 863

【数据库】第一章 数据库基础理论

数据:描述事务的符号记录,包含但不限于数字、 文字、图形、图像、声音、语言等。数据有多重形式,它们都可以经过数字化后存入计算机。数据库:数据仓库。是长期存放在计算机内、有组织、可共享的大量数据的集合。数据库中的数据按照一定数据模型组织、描述和存储,特征:较小的冗余度,较高的独立性和易扩展性。为迎合用户的使用和共享,于是它的特征有如下几点:1、数据要具备结构化特征2、数据的冗余度要小,共享性要高,扩充性要强3、针对于原子性数据,独立性要强。

m0_64600810的博客 1050
上一篇: 最长上升子序列
下一篇: 操作系统基本概念
one_zero_one
博客等级 码龄7年 30粉丝 141原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值