![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库SQL
文章平均质量分 70
刘大冬
在校大学生一枚,目前在总结数据库的知识点,后续会持续更新Blink和博客。
展开
-
数据库的并发控制(3)
可串行化调度可串行化调度:多个事务的并发执行是正确的,当且仅当其结果与按某一次串行的执行这些事务时的结果相同。可串行化:是并发事务正确调度的准则;一个给定的并发调度,当且仅当它是可串行化的,才认为是正确调度。举个栗子:存在事务T1:读B;A=B+1;写回A同时存在事务T2:读A;B=A+1;写回B。(假设A、B的初值均为2)存在正确的调度(a):T1T2Slock BY=R(B)=2Unlock BXlock AA=Y+1=3W(A)原创 2021-01-04 15:04:08 · 927 阅读 · 0 评论 -
数据库的并发控制(2)
不同的封锁协议使事务达到的一致性级别不同封锁协议:活锁和死锁使用封锁机制,得不到锁的事务就要一直等待,就会出现以下局面:1. 活锁数据对象不断处于上锁、开锁的交替状态,某个事务有可能为该对象上锁,但始终没有得到上锁机会而永久等待下去的情形:避免活锁的办法:采用先来先服务的策略:当多个事务请求封锁同一数据对象是,按请求封锁的先后次序对这些事务排队,该数据对象上的锁一旦释放,首先批准申请队列中第一个事务获得锁。(操作系统做详细解释,数据库要求掌握一种)2. 死锁:多个事务因封锁冲突(竞原创 2021-01-03 16:21:45 · 212 阅读 · 0 评论 -
数据库的并发控制(1)
不同的多事务执行方式:事务串行执行:每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行。交叉并发方式:在单处理机系统中,事务的并行执行是这些并行事务的并行操作轮流交叉运行。同时并发方式:多处理机系统,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并行运行。并发控制概述:在多个用户数据库系统中,当多个用户并发存取数据库时就会产生多个事务同时存取同一数据的情形,若不加控制,可能会存取或存储不正确的数据,造成数据库的不一致性。在并发操作情况下,对事务原创 2020-12-30 15:26:29 · 447 阅读 · 0 评论 -
数据库的安全性
数据库的不安全性因素:1.非授权用户对数据库的恶意存取和破坏2.数据库中重要或敏感的数据被泄露3.安全环境的脆弱性安全标准:1.TCSEC/TDI标准:安全级别定义A1验证设计B3安全域B2结构化保护B1标记安全保护C2受控的存取保护C1自主安全保护D最小保护由A1到D,安全性逐渐减小2.CC标准:评估保证级定义EAL1功能测试EAL2结构测试(相当于TCSEC中的C1级别)EAL原创 2020-12-28 16:29:28 · 347 阅读 · 0 评论 -
数据库的规范化--基础三大范式了解
什么是范式:范式是符合某种级别的关系模式的集合范式的种类:第一范式:1NF、第二范式:2NF、第三范式:3NF、BC范式:BCNF、第四范式:4NF、第五范式:5NF各范式之间存在的联系:第一范式:定义:关系的每个分量必须是不可再分的数据项,记作R∈1NF,第一范式是对关系的最起码的要求,但远远不够满足1NF的关系称为规范关系注:第一范式中每个属性必须是原子的属性不可再分(不允许出现嵌套的属性定义)属性下的值不可再分(不允许出现多个值)第一范式存在的缺点:(满足第一范式的关系原创 2020-11-07 23:21:15 · 1045 阅读 · 0 评论 -
数据查询--连接查询
连接查询SC表:(下面例子会用到这些表)Student表:连接查询:同时涉及多个表的查询连接条件或连接谓词:是用来连接两个表一般格式:[<表名1>.]<列名1><比较运算符>[<表名2>.]<列名2>[<表名1>.]<列名1>BETWEEN[<表名2>.]<列名2>AND[<表名2>.]<列名3>连接字段:连接谓词的列名称一、 等值与非等值连接查询等值连原创 2020-08-17 16:46:31 · 5639 阅读 · 1 评论 -
单表查询2(ORDER BY子句、聚集函数、GROUP BY子句)
单表查询2ORDER BY子句:可以按一个或多个属性排列。升序:ASC 降序:DESC,缺省为升序对于空值,排序时显示的次序由具体系统实现来决定例1.1:查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列:SELECT Sno,Grade,FROM Cno='3'ORDER BY Grade DESC;聚集函数:计数:COUNT([DISTINCT|ALL]*)COUNT([DISTINCT|ALL]<列名>)例1.2:查询学生总人数:SELECT原创 2020-08-12 17:53:05 · 1754 阅读 · 0 评论 -
数据查询--单表查询(选择表中的若干列、若干元组(比较、确定范围、确定集合、字符匹配))
单表查询语句格式:SELECT[ALL|DISTINCT]<目标列表达式>…FROM<表名或视图名>…[WHERE<条件表达式>][GROUP BY<列名1>[HAVING<条件表达式>]][ORDER BY<列名2>[ASC|DESC]];SELECT子句:指定要显示的属性列FROM子句:指定查询对象(基本表或视图)WHERE子句:指定查询条件GROUP BY子句:对查询结果按指定列的值分组,该属性列值相等的元组为原创 2020-08-03 16:42:06 · 2737 阅读 · 1 评论 -
基本表的定义、修改与删除(级联与限制)
定义基本表:CREATE TABLE<表名>(<列名><数据类型>[<列级完整性约束条件>][,<列名><数据类型>[<列级完整性约束条件>]…[,<表级完整性约束条件>]);<表名>:索要定义的基本表的名字<列名>:组成该表的各个属性(列)<列级完整性约束条件>:涉及相应属性列的完整性约束条件<表级完整性约束条件>:涉及一个或多个属性列的完整性约原创 2020-07-25 16:52:35 · 2899 阅读 · 0 评论 -
索引的建立与删除(引入一个数据字典的简介)
索引的建立与删除:建立索引的目的:加快查询速度。常见索引包括:顺序文件上的索引、B+树索引、散列(hash)索引、位图索引等。顺序文件上的索引:是针对制定属性值升序或降序存储的关系,在该属性上建立一个顺序索引文件,索引文件由属性值和相应的元组指针组成。B+树索引:是将索引属性组织成B+树形式,B+树的叶结点为属性值和相应的元组指针组成。B+树索引具有动态平衡的优点。散列索引:是建立若干个桶,将索引属性按照其散列函数值映射到相应的桶中,桶中存放索引属性值和相应的元组指针;散列索引查找速度较快。原创 2020-07-28 21:32:33 · 502 阅读 · 0 评论