- 博客(16)
- 收藏
- 关注
原创 数据库系统原理----并发控制
冲突可串行化:特殊的可串行化调度,可以通过将两个不冲突的操作调换位置来变成可串行化调度。正确性标准:一个调度序列和串行调度序列结果相同,称其为可串行化,正确。一级协议:写前加X锁(不能被其他加锁),事务结束释放。应对机制:加锁,分为排他锁(X锁)和共享锁(S锁)三机协议:一级基础上,读前加S锁,事务结束释放。二级协议:在一级基础上,读前加S锁,读后释放。并发控制的目的:增加数据库的运行和利用效率。指批量进行锁的申请和释放,释放完锁不再申请。基于2PL锁的调度:是可串行化的充分条件。
2025-06-17 22:37:15
138
原创 数据库系统原理----数据库恢复技术
数据库故障修复机制摘要:数据库故障分为事务故障、系统故障和介质故障三类,主要通过日志系统实现恢复。日志采用"先行写入"原则,记录操作细节以维护事务原子性。故障修复时:事务故障执行undo;系统故障建立redo/undo队列;介质故障需加载备份。为优化redo开销引入检查点机制,定期将已提交事务写入磁盘,并记录活动事务集,通过专门文件快速定位检查点位置,减少扫描开销
2025-06-17 16:54:53
768
原创 数据库系统原理----关系查询处理和优化
基于规则的优化:1.关系规模:小:全表扫描 大:主码值等值查询,索引;非主码值范围查找,10%以内进行索引,否则全表扫描。2.操作优化:系统为当前查找找到最为高效的策略,如哈希查找给到定值查询,B+树索引查找给到范围查找,嵌套循环等。3.选择运算和笛卡尔积结合成为连接运算。基于代价的优化:维护统计信息 、中间结果集大小估算、I/O代价估算。1.代数优化:找到等价且更高效的查询方式,例如减少中间结果大小。启发式规则:1.选择运算尽早进行;方法:等值变换、 选择和投影变换。——->查询计划-——
2025-06-17 14:49:02
190
原创 数据库系统原理----关系数据理论
本文概述了关系模式的异常类型及其解决范式,主要包括数据冗余、更新异常等问题。通过函数依赖理论(完全依赖、传递依赖等)分析异常成因,介绍了1NF至4NF的规范化过程。重点阐述了属性闭包的应用(求码步骤)、最小依赖集的求法,以及关系模式分解的两个核心特性(无损连接性和依赖保持性)的判定方法。最后提及三种模式分解算法,并指出该部分需要进一步复习。全文系统性地梳理了关系数据库规范化理论的关键概念与操作流程。
2025-06-17 01:06:29
469
原创 数据库系统原理--数据库安全性
role的创建和授予:create role r1;具体规则:向上写,向下读(高级别用户可以读低级别数据;低级别用户可以写高级别数据;问题:仅对存取权限进行控制,数据本身无安全性限制访问,从而造成敏感数据传播。相关语法:grant语句:grant 权限 on 表 to 用户。revoke语句: revoke 权限 on 表 from 用户。开放数据源,不限制访问,一定会存在漏洞。=>强制存取:对数据进行安全性标记。自主:用户层面进行存取权限控制。数据访问:存取性控制、视图。
2025-06-16 03:12:11
298
原创 Unity场景管理:LoadScene的使用与注意事项
性能方面:频繁的场景加载和卸载可能会导致内存碎片,影响性能。如果需要在多个场景之间快速切换,可以预加载下一个场景,从而减少加载时间。当你加载一个新的场景时,旧的场景通常会被自动卸载,以释放内存资源。然而,我不确定这是不是在所有情况下都适用,或者是否有一些特殊情况需要手动卸载当前场景。资源管理方面:会释放掉当前场景的所有资源,不适用某些资源在多个场景中被共享的情况;如果你有需要保留的数据或状态,应该将其存储在场景外的管理类中。该方法可以帮你自动卸载当前场景,加载目标场景,简化了开发流程,十分方便简洁。
2025-06-16 01:18:16
292
原创 程设---DPLL算法
CNF公式化简:单子句设置true or fause,去除相关子句,结果为两个字句相反就回溯,结果为空就为正解(分支回溯策略)
2024-09-02 10:21:30
2287
原创 C#学习笔记---词法,类型,变量,方法
编译器能识别的部分 关键字,操作符,标识符,标点符号,文本(字面值,如数字,字符等) msdn文档学习:分组学习 1.不能是关键字,除非加上@;必须是字符或下划线开头 命名规范:属性名词,方法动词,大小写规范:驼峰法(中间大写)类,命名空间处处大写(pascal法) 字符串:string类型。
2024-08-07 13:07:53
323
原创 C#学习笔记--初识类
当引用的若干个命名空间中存在名字相同的类时会发生冲突。例如在WPF程序中,IO和system中都有path类。当使用时若不加区分便会报错。using指令引用命名空间,以便使用命名空间里的类;使用为引用的命名空间里的类的时候,需要在该类前加上所属的命名空间。名称空间(namespace)以树型结构组织类,可以有效地避免类名冲突。类库编写说明:需要文档说明;分类:黑盒引用,白盒引用;依赖关系:耦合关系,高内聚,低耦合,类库与类库尽量不相互依赖。类:(class)构成程序的主体。Console是微软的类。
2024-07-25 16:48:57
374
原创 C#学习笔记——基本语法之变量声明及初始化
1)类型区别:var是一个静态变量,编译器会自动推断变量类型,且一经确定就无法再改变;而dynamic表示的动态变量类型在运行时才被确定,可以随时重新定义类型,可以改变。2)性能:由于var只需要开始检查一次,而dynamic运行时通过反射需要多次检查,所以var的性能更高。3)类型安全:var提供了编译时的类型安全,而dynamic提供了更灵活的类型不安全的环境。有点类似dynamic,同样用于不确定类型变量的声明,是用于类型推断的关键字。1)声明: 浮点类型:decimal ,十进制数,更高精度。
2024-07-20 11:42:00
891
原创 C#学习--#region使用技巧
2. #region 不适合在大方法中使用,当你在一个方法中使用#region 的时候,停下来想想你刚刚写了什么代码?大多数时候,你可以将这些代码段独立成一个函数。region可以看成控制阅读源代码的复杂度的一种方式。在遇到需要分组的情况下使用#region会非常有用。用来对类中不同的结构进行分组。#region与#endregion搭配使用,用来隐藏一段代码,使整体代码更加简洁。1.不要为了使用#region而使用,有时并不会显得简洁。代码完成后,region旁会出现可以隐藏的标志。
2024-07-13 09:13:16
550
原创 C#学习笔记——类
类本身是抽象的结果,同时也是抽象数据、行为的载体,起到枢纽作用;教材里面没有写出具体类的定义是什么,只是针对它的特点和作用进行了说明。可能更有助于提高代码的清晰度,特别是当方法内部有局部变量或参数与成员变量名称相同时。new操作符创建类的实例的时候,类就像模板一样帮助创建实例,调用其中的构造器可以对实例进行参数定义。在 C# 中,如果您访问的属性或方法是当前类的实例成员,通常来说是可以省略。关键字指代的是当前正在被访问或调用的对象,也就是正在实例化的。可以明确指出我们是在引用类的实例成员。
2024-07-11 14:45:46
611
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人