第十四周翻译(Transaction Isolation Levels)

 事务隔离级别 最近,我在SQL Server Central上发布了锁定和死锁的文章。本文继续讨论事务隔离级别,以及事务隔离级别的选择如何影响前面文章中前面讨论的锁定机制。 如果我们看一下数据库引擎中的联机丛书(BOL)主题隔离级别,我们可以看到事务隔离级别控制着: 数据读取时是否进行锁定,以及请求何种类型的锁。 读锁持续了多长时间。 是否引用由另一个事务修改的读操作: 阻塞,直到该行的排它锁被释放。 检索在语句或事务开始时存在的行的提交版本。 读取未提交的数据修改。 注意这些都只影响数
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

第十四周学习笔记(事务的并发控制的知识点)

一.思维导图 二.说明 1. 事物的并发控制主要有三种数据不一致问题:丢失修改,不可重复读,读脏数据。 (1)丢失修改指的是两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失。 (2)不可重复读指的是事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。 (3)读脏数据指的是事务T1修改某一数据并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时被T1修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

第十五周翻译(Stairway to Transaction Log Management in SQL Server, Level 1: Transaction Log Overview)

 本文是阶梯系列的一部分:SQL Server中事务日志管理的阶梯。 当事情进展顺利时,没有必要特别注意事务日志的作用或工作方式。您只需要确信每个数据库都有正确的备份机制。当事情出错时,对事务日志的理解对于采取纠正措施非常重要,特别是当需要一个时间点恢复数据库时,这是非常紧急的!Tony Davis提供了每个DBA都应该知道的适当的细节级别。 级别1:事务日志概述 事务日志是一个文件,其中SQL Server存储与日志文件相关联的数据库上执行的所有事务和数据修改的记录。如果发生导致SQL
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

第十五周学习笔记(日志的知识点)

一、思维导图 二、说明 1.日志文件是用于记录系统操作事件的 记录文件或文件集合, 操作系统有操作系统日志文件, 数据库系统有数据库系统日志文件。 2.日志文件的结构有虚拟日志文件和日志文件。 3.检查点用来检查数据的完整性,如果数据完整将写入日志当中。 
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

学习笔记(ADO.Net中SqlConnection、Sqlcommand的应用)

一、思维导图 二、知识点 开发界面代码开头需添加引用using System.Data.SqlClient,包含访问SQL SERVER所需的各类对象; 连接,open()打开连接,close()关闭连接 直接声明并实例化SQL连接,在在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性,用sqlConnection.State.ToString()显示当前的连接状态; 先声明并实例化SQL连接,然后利用SQL连接字符串构造器分别将各控件的内容赋予SQL连接字符串构造器的相应
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

小甲鱼-C++快速入门笔记(17)之this指针、类的继承

1、通过一个典型的例子来认识它(this指针) class Human { char fishc; Human(char fishc); } Human::Human(char fishc) { fishc = fishc; } Human()构造器有一个名为fishc的参数,虽然它与Human类里面的属性同名,但却是不相干的两样东西,所以并没有错. 可是,问题是怎样让构造器知道哪个是参数,哪个是属性呢? 这时候就需要用到this指针 : this-> fishc
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

小甲鱼-C++快速入门笔记(18)之继承机制中的构造器和析构器

1、调用顺序 比如基类有个构造器,如Animal(),它将在创造Pig类型的对象时最先被调用,如果Pig类也有一个构造器,它将排在第二个被调用。因为基类必须在子类之前初始化。 如果构造器带有参数呢?? class Animal{ public: Animal(std::string theName); std::string name; } class Pig:public Animal{ public: Pig(std::string theName); } 如何定义方法呢? An
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

小甲鱼-C++快速入门笔记(19)之访问控制

在此前的例子中,我们无论是Animal,pig和Turtle类的所有成员都是用public:语句声明。 注意: (1)一定要记住使用这些访问级别,即使只有你一个人再开发某个项目,全部记住各个类的调用方法也是一件困难的事情 (2)给每个方法和属性加上protected或private访问级别,就由编译器替你记住那些禁令并在你违反的时候发出警报 (3)使用访问级别只有好处没有坏处 (4)使用private的好处是,今后可以只修改某个类的内部实现,而不必重新修改整个程序,因为其他代码访问不到priv
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

可移植操作系统接口POSIX介绍

POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准。 POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。 简单总结: 完成同一功能,不同内核提供的系统调用(也就是一个函数)是不同的,例如创建进程,linux下是fork
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

论文参考文献GB/T 7714格式生成

因为要用到GB/T 7714的论文参考文献,而在百度学术中生成的很多都不全,经常是少东少西的,还得自己去手动补全。最近发现一种好的方法,可以较好得到该格式的参考文献。 谷歌学术镜像:http://ac.scmor.com/ 之后点击进入https://xs.glgoo.top/scholar?hl=zh-CN&as_sdt=0%2C5&q=&btnG=搜索相关论文就可以了。 还有另一个网站也可以生成: https://www.bigan.net/reference/ , 但感觉搜索库不是很全
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

小甲鱼-C++快速入门笔记(20)之覆盖方法和重载方法

关于从基类继承来的方法和属性的保护: ----class Pig : public Animal {...} C++不仅允许你对在类里定义的方法和属性实施访问控制,还允许你控制子类可以访问基类里的哪些方法和属性。 public: 是在告诉编译器:继承的方法和属性的访问级别不发生任何改变,即public仍可以被所有代码访问,protected只能由基类的子类访问,private则只能由基类本身访问。 protected: 使得这个子类外部的代码无法通过子类去访问基类的public private
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

word 论文公式编号快捷方法

论文在word中编辑时,总要求公式居中,编号右对齐,下面介绍一种快捷方法---制表位法。 步骤: 1、计算居中制表符和右制表符的位置(纸张大小为21*29.7, 页边距为2.54*3.18) 中间制表符: 右边制表符: 2、把鼠标光标放置公式所在行,点击段落,点击制表符 3、将制表位窗口中按照步骤1计算的参数填入,7.32cm等于17.29字符,14.64cm等于34.59字符,至于右边的默认制表位选择默认就可以了。 对齐前: 对齐后:
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

小甲鱼-C++快速入门笔记(21)之友元关系

定义: 友元关系是类之间的一种特殊关系,这种关系不仅允许友元类访问对方的public方法和属性,还允许友元访问对方的protected和private方法和属性。 声明方式: 声明一个友元关系的语法很简单,只要在类声明里的某个地方加上一条friends class ** 就行了。 注意:这条语句可以放在任何地方,放在public,protected,private段落里都可以。 练习: 题目: ----Lovers类有两个子类:分别为Boyfriend类和Girlfriend类; ----Lo
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

小甲鱼-C++快速入门笔记(22)之静态属性和静态方法

创建一个静态属性和静态方法: 只需要在它的声明前加上static保留字即可 静态成员的提出是为了解决数据共享的问题。实现共享有许多方法,如:设置全局性的变量或对象是一种方法。但是,全局变量或对象是有局限性的。这一章里,我们主要讲述类的静态成员来实现数据的共享。 静态数据成员   在类中,静态成员可以实现多个对象之间的数据共享,并且使用静态数据成员还不会破坏隐藏的原则,即保证了安全性。因此,静态成员是类的所有对象中共享的成员,而不是某个对象的成员。   使用静态数据成员可以节省内存,因为它是所有
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

小甲鱼-C++快速入门笔记(23)之静态方法

静态成员函数   静态成员函数和静态数据成员一样,它们都属于类的静态成员,它们都不是对象成员。因此,对静态成员的引用不需要用对象名。   在静态成员函数的实现中不能直接引用类中说明的非静态成员,可以引用类中说明的静态成员(这点非常重要)。如果静态成员函数中要引用非静态成员时,可通过对象来引用。从中可看出,调用静态成员函数使用如下格式:<类名>::<静态成员函数名>(<参数表>); 重点: (1)对象与对象之间的成员变量是相互独立的。要想共用数据,则需要使用静态成员和静态方法。 (2)只要在类中
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

小甲鱼-C++快速入门笔记(24)之虚方法

先来介绍两个c++保留字:new和delete 在c或者C++中完全可以在没有创建变量的情况下为有关数据分配内存。也就是直接创建一个指针并让它指向新分配的内存块: int *pointer = new int; *pointer = 110; cout << *pointer; delete pointer; new和malloc没什么区别,new只是malloc的进化版本,进行了封装 注意:最后一步非常必要和关键,因为程序不会自动释放内存,程序中的每一个new操作都必须有一个与之对应的de
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

小甲鱼-C++快速入门笔记(25)之抽象方法

1、课前练习(虚函数的使用): #include <iostream> using namespace std; class animal { public: void sleep() { cout << "animal sleep" << endl; } virtual void breathe() //利用虚函数使得子类的方法能顺利覆盖父类的方法 //void breathe() { cout << "animal breathe" << endl; } }
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

小甲鱼-C++快速入门笔记(26)之运算符重载

所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新的功能。 而运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。运算符重载时通过定义函数实现的,运算符重载实质上是函数的重载。 重载运算符的函数一般格式如下: 例如我们重载运算符+,如下: int operator+(int a,int b) { return (a-b); } 举个例子:实现复数加法 (3,4i)+(5,-10i)=(8,-
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

小甲鱼-C++快速入门笔记(27)之运算符重载2

重点要掌握的: 1、欧几里得算法 2、运算符重载 #include <iostream> #include <string> #include <cmath> using namespace std; class Rational { public: Rational(int num, int denom); //num=分子,denom=分母 Rational operator+(Rational rhs); //rhs = right hand side Rational
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0

小甲鱼-C++快速入门笔记(28)之重载《操作符

通过重载<<操作符来实现print打印分数的功能。 例如: std::cout << "Hello FishC!"; c标准库对左移操作符(<<)进行了重载,让它可以把值发送到一个流去。 但是在这个例子中,iostream库对新的Rational类表示一无所知,所以不能直接用<<来输出我们的有理数(分数)。另外一个原因也比较重要:因为,重载的含义本身就是可以用相同的名字去实现不同的功能:输入参数方面有所差异就不会有问题。当然,我们无法在现有的ostream类里专门添加一个新的operator
分类: 其他 发布时间: 03-23 23:11 阅读次数: 0