• AA-6 周期性复习干线


     概率论与数理统计:
      1.伽马函数:

      伽马函数对于幂函数以及自然指数函数相结合的复杂积分有很大的应用价值。比如说,如果想要积分x3e-x,如果按照传统的解决方式势必会牵扯到多次的分部积分,会消耗大量的时间。这是如果使用伽马函数将会大大加快速度。这是因为伽马函数具有十分特别的性质,如果函数的参数是一个整数那么会有Γ(n)=n!,十分方便计算。

      比如伽马函数的形式。

      对于这个积分只需要将z=4代入公式中可以立即得到结果4!=24

      此外还有一种形式:

      这种欧拉函数可以解决相应形式的复杂积分,同时对于正态分布的矩估计过程也可以起到加速运算的效果。另外有一个特殊值:

    正好可以验证其正确性。

      2.几何分布的统计学特征:G(p)则EX=1/p DX=(1-p)/p2推导过程中利用公式: ∑nxn-1=∑(xn)'=1/(1-x) (0<x<1) 可快速行进。

      3.吉米多维奇题型提炼与技巧精炼:

        1).三大分布的判断:三大分布的形式首先得清楚。

        χ2卡方分布的形式是n个互相独立的标准正态分布的平方和,参数为平方项的个数。

        t分布的形式是一个分式,分子是一个标准正态分布,分母是一个卡方分布除以其参数的平方根,参数为分子的卡方分布系数。而且要求分子和分母相互独立。

        F分布的形式也是一个分式,分子分母是两个相互独立的卡方分布分别比上其参数。参数为分子分母卡方分布的系数(共两个参数)。也会要求分子和分母相互独立。

        在判断的题型中,并不一定一出现就是标准形式,大多数时候都是需要自己进行化归的。标准形式的参数经常会在分式中上下约掉,这个时候就需要自己有方向的化简。比如,向标准正态分布化归可以使用函数U=√n(x-μ)/σ/(这里分子之所以会多出一个根号n是因为这里的X很有可能会以一个统计量,比如如果是一个平均值,这时候就需要加上这个因子,如果不是则不需要。),向卡方分布化简则可以将平方项下的变量向标准正态分布化简。同时需要注意的是:一个经常用到的公式——(n-1)S2/σ~χ2(n-1)。S2作为样本的方差,对于样本中的每个变量都有1/n的部分是相关的,因此会有一个参数的衰减,课本上通过线性代数的二次型标准化的方式进行了证明。对三种分布进行分别的尝试,总会找到具体最后的目标分布。

        有些经验性的结论:上下都是平方和就向F分布化简,如果本身是个平方和则向卡方分布化简,单个的平方项也可以怀疑是参数唯一的卡方分布。裸体的一次方项或者裸体的一次和式都可以向标准正态分布化简,如果有分母绝对值就只能是t分布了。通过平方后开放的形式刚好能凑出来参数为1的t分布。如果分式比较复杂难以分析就主要找关键的统计量,比如S,X这些都将是一种分布的核心成员。

        2).利用抽样分布确定参数:在判断三大分布形式的过程中参数很自然地就能确定了。

        3).利用抽样分布求概率以及分位点的相关问题:这个题型刚好就用到了1)首先根据其特征判断符合三大分布的中的哪一种,随后将事件的条件公式向这个方向整理,最后得到一个P{三大分布(参数)>化归过程中左右同时运算的因子x原来的参数}然后使用原题的约束进行求解即可。分位点应该会给出。对照参数化好形式就没问题。

        4).复习一下:最大值分布函数:Fmax=Fn,最小值分布函数:Fmin=1-(1-F)n,P{|X|>u}=2(1-Φ(u)),P{|X|<u}=2Φ(u)-1(当X为标准正态分布时)。∑nxn-1=∑(xn)'=1/(1-x) (0<x<1) 。

        5).应用题千篇一律:首先根据题干提取最基础的测量量(如X、Y),如果没有符号表示就自己设出来,然后将题目所研究的统计量用这些测量量表达出来(如平均值,方差等)。并且将已知的单变量特征列出来(每个单独变量的平均值、方差)。随后利用这些特征将所研究的统计量的分布与系数列出来,最后,将这个统计量与约束量联合起来根据要求构造出概率不等式,最后在概率表达式内部将统计量化归为常用的分布形式,最后根据分布的分位点确定概率即可。如果是根据概率反求约束条件(比如 平均值大于多少时概率不超过0.01)仍然按照这个步骤即可,只不过查表时查的东西不一样罢了。经常性的,由于三大分布都是统计量,因此统计量的样本数量就会经常性地考察,这时将样本数量n作为一个参数即可。

        6).统计量求数字特征:这一类题目很多都是利用简单的统计量性质来进行求解。经验常用:EX=μ,DX=σ2,EX平均值=μ ,DX平均值2/n,ES22,DS=4σ2/(n-1)(这一个会在后面参数一致性估计中用上,可以加速一些计算,可以用来支持更简单的做法。)。

        7).综合题型往往是以上集中思路的组合。并不复杂。不过有个经验需要注意:那就是对于形如D(Xi-X平均值)的计算。这个变量Xi显然与平均值并非独立。当然,对于方差形式,直接带公式即可,但是这里是一次方项。这里就可以用经验化归。因为平均值中与Xi相关的只有1/n乘上Xi因此在平均值中将其减去,通过填减项操作后,会多出来一个-1/n Xi 然后将这个Xi合并到前边的Xi中即可得到:Xi-X平均值=(1-1/n)Xi-1/n∑Xj ( j != i ) 。此后,这两个项就独立了,按照常规方法就可以求得方差。

      4.参数估计

        1).基础概念要掌握:点估计是指用观测值带入表达式后反向计算得到的参数。矩估计是指对一次、二次或多次中心距进行求值,令其与表达式相等获得方程组从而求得参数的过程,往往不需要多重矩估计,大多数止步于二次中心矩,并且二次中心矩往往是以方差的形式出现的。最大似然估计需要一个似然函数L(Θ),如果是离散型随机变量,则参开分布律与分布函数得到概率乘积,如果连续性随机变量则将概率密度函数进行连积,随后,说明其非负性,并且将其取对数,求导,令其等于零。

        2).千篇一律的吉米多维奇:矩估计:根据已知统计量(如μ或σ2)求一下表达式的对应含参值,令其相等,解方程组即可。

                    极大似然估计:根据基础概念1).列出极大似然函数,顺着做下去。

        3).极大似然函数具有不变性。极大似然估计的函数仍然是该形式的极大似然估计。这一点在变量标准化求概率时会有用。如Θ=P{X>2}=1-P{X<=2}=1-Φ(2-μ)这里的μ是一个极大似然估计的结果,代表着一个极大似然估计值,那么Θ也将会是一个极大似然估计值。

        4).估计量的评选标准:无偏性:期望趋向于该趋向的地方。有效性:方差最小则成为最小方差无偏估计或者最佳无偏估计。一致性:估计值极限趋于理想值,更简单的判别方式是:同期望,方差为零。

        5).估计量评选标准相关吉米:求方差、求期望而已。不过有个经验要注意:平均值公式是样本平均值的最佳无偏估计。推导过程中用到了柯西不等式,用于将平均参数的1因子向不定参数的a因子联系起来。

      5.区间估计

        公式,推导一下,背过。吉米多维奇照样是枯燥的千篇一律。统一的步骤是;先找到一个枢轴变量比如与参数相关的平均值等等。然后对于给定的置信水平1-a定出两个常数a,b构造出枢轴变量在两点之间的概率表达式并且令其等于置信水平。然后,将概率表达式中的不等式进行化归,并且根据分位点确定好两个变量之后,将不等式再从枢轴变量为中心变成以参数为中心,就得到了置信区间。特别的,对于对称的凸函数,置信区间往往式对称的,比如正态分布就是如此。

        中间会用到一些三大分布判别与划化归等相关技巧。综合一下即可。但是背一下这张表更顺手一些。

        后面的正态总体只需要将这个表特化一下。

      概率论完结了。后面的线性回归没有什么价值了,高中就学过了。

    数据结构、算法与应用

      在上一期完结了。

    数据库系统概念

      整体来看需要复习的内容有:SQL,关系模式的相关基础概念,考虑到双语授课,需要额外熟悉一下相关基础术语的英文表达。

      数据库设计中的元胞、域运算符、关系代数三种形式的查询语句书写。根据实际问题进行E-R简图的规则运用与作图。

      数据库优化中的四种范式,以及BCNF范式。以及BCNF范式与第三范式的算法。第三范式第四范式与BCNF范式的判定。求闭包,求正则覆盖,求各种码属于基础能力可能会出成小题。

      处理事务冲突的规则以及几种渐进式的解决事务冲突的机制。调度可串行化的标准与判定理由。

      名词的解释将会是很大=重的考点。因为轻视,所以沉重。需要特别地理清概念。

      1.概念们:

    数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合。

    数据库管理系统(Database Management System,简称DBMS)由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。是位于用户与操作系统之间的一层数据管理软件。

    数据库系统(Database System,简称DBS)是指在计算机系统中引入数据库后的系统构成。

    关系与元组之间的关系一行(元组tuple)代表一组值之间的联系。一个表就是这种联系的一个集合(元组的集合)。属性:表中的列。关系:二维表,由关系名标识。 元组:表中的一行,称之为n元组 ,记录属性:表中的一列,属性名标识, 字段 域:属性的取值范围。;

    域domain:每个属性允许取值的集合

    数据库模式:数据库的逻辑设计;
    数据库实例:给定时刻数据库中的一个快照

    :能够唯一确定一个元组的最小属性集
    超码:包含码的属性集
    候选码:一个关系的每个码都称候选码
    主码:定义表时指定一个候选码
    外码:本关系的属性集,另一关系的码
    全码:表中找不出码, 所有属性组成
    主属性:任一候选码中的属性
    非主属性:不在任何一个候选码中
    注意,确定一个关系侯选码要根据事物的语义说明。例如,如果所有学生都不重名,姓名属性也可作为侯选码。

    参照完整性约束在参照关系中任意元祖在特定属性上的取值必然等于被参照关系中某个元组的特性属性上的取值

    实体完整性关系的主码中的属性值不能为空值

    物化视图:某些DBS允许存储视图,但保证如果定义视图的实际关系改变,视图也跟着修改。

    with check option视图定义时,指定with check option,检查通过视图进行修改时,结果必须在视图中(满足视图创建时使用的规则),否则拒绝更新。

    事务由查询和(或)更新语句的序列组成

    完整性数据的正确性和相容性

    实体(Entity)客观存在并可相互区分的事物叫实体 

    实体集(Entity Set)同型实体的集合称为实体集,如全体学生

    实体型实体名和属性名组成实体型。对关系模型就是关系模式。

    派生属性从其他相关的属性或实体派生出来的属性值

    映射基数(mapping candinality),基数比率:一个实体通过一个联系集能关联的实体的个数

    E-R图多和一:用箭头或者线段来表示联系的映射基数。如教师和学生之间的班主任联系。

    角色(Role)实体在联系中的作用称为实体的角色

    存在依赖(Existence Dependency)如果实体x的存在依赖于实体y的存在,则称x存在依赖于y

    弱实体集(Weak Entity Set)没有足够的属性以形成主码的实体集称为弱实体集。

    强实体集(Strong Entity Set)有主码的实体集称为强实体集。

    分辨符(Discriminator)弱实体集中用于区别依赖于某个特定强实体集的属性集合。也称作部分码(partial key)

    特化(specialization)
    实体集中某些子集具有区别于该实体集内其它实体的特性,可以根据这些差异特性对实体集进行分组。在实体集内部进行分组的过程称作特化。自顶向下、逐步求精。父类、子类
    子类=特例=更小的实体集=更多的属性。
    实体集person(ID,name,address) 可进一步划分为employee、student
    student可以特化为graduate、undergraduate

    重叠特化(overlapping specialization)一个实体集可能属于多个特化实体集
    不相交特化(disjoint specialization)一个实体集必须属于至多一个特化实体集

    超类-子类联系

    概化各个实体集根据共有的性质,合成一个较高层的实体集。概括是一个高层实体集与若干个低层实体集之间的包含关系
    自底向上、逐步合成与特化相反。

    原子域:该域的元素不可分,不具有子结构。
    范式(normal form)是关系模式的集合。一个关系模式R达到某种级别,记为R∈nNF。
    1NF:如果关系模式R的所有属性都是原子的。=

    函数依赖:表达唯一标识某些属性的值的约束

    如果r(R)的每个合法实例都满足函数依赖α → β,则该函数依赖在模式r(R)上成立(hold)

    平凡函数依赖与非平凡函数依赖
    X→Y,但Y⊆X 则称X→Y是平凡的函数依赖
    X→Y,但Y⊈X则称X→Y是非平凡的函数依赖

    完全函数依赖与部分函数依赖
    如果X→Y,并且对于X的任何一个真子集X’, 都有 X’ ↛ Y, 则称Y对X完全函数依赖,记作X → Y。
    若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X →p Y

    例] 在关系SC(Sno, Cno, Grade)中,有:
    由于:Sno ↛Grade,Cno ↛ Grade,
    因此:(Sno, Cno) →f   Grade
    (Sno, Cno)→pSno
    (Sno, Cno) →pCno

    主属性 :所有候选码中的属性为主属性。
    非主属性 : 不在候选码中的属性。

    第二范式(2NF)定义:若关系模式R∈1NF并且所有的非主属性都完全函数依赖于R的码,则R∈2NF。
    (以非主属性完全函数依赖于码的条件,加强对码的限定)

    函数依赖集的闭包定义:关系模式R=(U)中,函数依赖集F及F所蕴涵的全体函数依赖称为F的闭包,记为F+

    BCNF,具有函数依赖集F的关系模式R,对F+中所有的型如α → β的函数依赖(其中α  R且β  R),下面至少有一项成立:
    α → β 是平凡的函数依赖(即β  α)
    α是模式R的一个超码。
    (加强对F+中所有α 的限定)

    第三范式 3NF,具有函数依赖集F的关系模式R,对F+中所有型如α → β的函数依赖(其中α  R且β  R),下面至少有一项成立:
    α → β 是平凡的函数依赖(即β  α)
    α是模式R的一个超码。
    β - α 中的每个属性A都包含于R的一个候选码中。

    函数依赖集的闭包定义:关系模式F及F所蕴涵的全体函数依赖称为F的闭包,记为F+。

    属性集闭包:能够由函数依赖闭包中的依赖推出的所有属性集合。

    函数依赖集的逻辑蕴涵定义设F是关系模式R的一个函数依赖集,X、Y是R的属性子集,如果从F中的函数依赖能够推出X→Y,则称F逻辑蕴涵X→Y

    函数依赖的推理规则Armstrong公理如下三条

    自反律(reflexivity rule):如果 Y  X  U,则F 蕴涵X→Y

    增补律如果X→Y,且Z 属于U,则XZ→YZ成立

    传递律如果X→Y和Y→Z,则X→Z成立。

    合并律(union rule)如果X→Y,X→Z,则有X→YZ。

    分解律(decomposition)如果α → βγ,则α → β和α → γ成立。或,如果X→Y,且 Z  Y ,则X→Z成立

    伪传递律(pseudotransitivity rule)如果X→Y,WY→Z,则XW→Z。

    函数依赖集的等价定义 设R=(U)的两个函数依赖集F和G,如果F+=G+,则称F和G是等价的,如果F和G是等价的,则称F覆盖G且G覆盖F。

    冗余的函数依赖:  {A->B,   B->C, A->C}中, A->C 是冗余

    无关属性的定义去除函数依赖中的一个属性不改变该函数依赖集的闭包,称该属性为无关属性对。F,去掉f中的某一个属性后,记为F‘。不影响F的表示能力,即F+=F’+

    正则覆盖:满足下列条件的函数依赖集 F 称为正则覆盖,记作 Fc:1)Fc 与 F 等 价 2)Fc 中任何函数依赖都不含无关属性 3)Fc 中函数依赖的左半部都是唯一的

    正则覆盖不是唯一的,有时候无关属性的选则会造成信息丢失。

    最小覆盖定义:关系模式R(F),F 的最小覆盖记为Fm, Fm满足: FmF,并且:1)Fm不含无关属性 2)Fm中函数依赖右端属性只有一个

    无损分解令r(R)为一个关系模式,F为r(R)上的函数依赖集。令R1和R2为R的分解。如果用两个关系模式r1(R1)和r2(R2)替代r(R)时没有信息损失,则称该分解是无损分解(lossless decomposition),也称分解是无损的。

    人话就是,砍断了,自然连接回去重生了那就是无损,否则就是有损。

    保持依赖:分解完了所有关系中的函数依赖并起来还能得到原来的函数依赖集,那么就是保持依赖。

    多值依赖关系模式R, α,β 属于 R,γ=R-α-β;如果给定一个α值,有一组β值与之对应,β取值与γ无关,则称α→→β。

    人话就是——A是B的媳妇,与C何关?

    依赖的闭包(另一个定义)关系模式R(D), D其上成立的函数依赖和多值依赖的集合;D逻辑蕴含的所有函数依赖和多值依赖的集合,称作D的闭包,记作D+;

    第四范式4NF定义一:关系模式r(R)属于4NF的条件:
    对D+中所有型如α→→β的多值依赖(α R且βR) ,至少一下之一成立:
    1) α→→β 是一个平凡的多值依赖,即: β属于α或 α∪β=R
    2) α是R的一个超码
    则称关系模式R为4NF,记作R4NF
    定义二:
    多值决定因素必含码

    定义二就是人话了。

    就是说所有以来都是多值依赖或者左侧为超码则符合4NF范式

    4NF的本质(在只考虑函数和多值依赖的前提下)4NF只讲一件事。

    无损分解的条件定理:对关系模式r(R),D为R上的函数依赖和多值依赖的集合。 {R1,R2}是R的一个分解,该分解是无损的当切仅当下面的多只依赖中至少有一个属于D+:R1∩R2→→R1       R1∩R2→→R2 

    事务(transaction):访问并可能更新数据的逻辑工作单位,一组操作序列,一个或一段应用程序。事务以BEGIN TRANSACTION 语句开始,以COMMIT 语句或ROLLBACK语句结束

    事务特征:ACID Atomicity,原子性,一个事务是一个不可分割的工作单位

            Consistency,一致性,事务必须是使数据库从一个一致性状态变到另一个一致性状态。当数据库成功事务提交的结果时,就说数据库处于一致性状态。

            Isolation,隔离性,一个事务的执行不能被其它事务干扰。即一个事务内部的操作及使用的数据对并发的其它事务是隔离的,并发执行的各个事务之间不能相互干扰。如有干扰,要加隔离机制。

            Durability,持久性,持续性也称永久性, 是指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。后面的其它操作或故障不应对其有任何影响。 

    调度(schedule):按某运行顺序来排定事务

    串行调度:属于同一事务的指令在调度中邻接执行

    可串行化的(serializable)调度

    多个事务并发执行的结果,和这组事务的某一个串行调度执行结果一致。

    执行结果一致包括:

    1)最终对数据库的影响;

    2)对各事务运行的影响(事务Read到的值影响)

    可串行化是并发执行正确性的判定标准

    (并发调度是正确的,当且仅当调度是可串行化的)

    优先图(Precedence Graph前驱图,顺序图)判断调度S是否是冲突可串行化。T1,T2,...Ti,...Tj...表示为结点。如果 Ri(Q)之后有Wj(Q),或Wi(Q)之后有Rj(Q),或 Wi(Q)之后有Wj(Q), 则Ti、Tj之间加有向边Ti→Tj (i≠j)。若图无环,S是冲突可串行化的。等价的串行调度是,按有向边出口依次截取结点。

    人话就是两个事务之间不管是读还是写,只要是对同一个数据进行读写,那就有边。

    视图可串行化:如果两个调度中,对于读取的数据,在两个视图中都是由同一个事务进行操作的。那么就称之为视图等价。如果调度是可串行的那么也就是视图可串行化的。

    调度的可恢复性Recovery:如果调度在进行完成某些步骤之后无法进行rollback则称此调度为不可恢复的调度。可恢复性的调度应该是每对事务i,j在另一个事务读取之前如果是同一个事务那么另一个事务必须先于做出修改的事务进行提交。

    级联回滚:rollback会引发其他事务的回滚。

    无级联回滚:rollback不会造成其他事务的回滚。

    无级联调度:要求不能读取脏数据(即该数据被另外一个事务修改还没有提交)

    隔离性等级:可串行化,可重复读,已提交读,未提交读

    排它锁(eXclusive lock,简记为X锁)若事务T对数据对象Q加上S锁,其它事务还能再对Q加上S锁,但加不上X锁。保证了T释放Q上的S锁之前,其它事务可以读Q,不能对Q做任何修改。

    共享锁(Share lock,简记为S锁)又称为写锁(为写操作而加的锁)。若事务T对数据对象Q加上X锁,则只允许T读取和修改Q,直到T释放Q上的锁,其他任何事务都不能对Q加上任何类型的锁,提出加锁请求,只能等待。保证了其它事务在T释放A上的X锁之前,不能再读取和修改Q。

    死锁由于锁的排他性造成某个事务无法进行又无法停止。

    封锁协议(Locking Protocol) ,何时申请X锁或S锁,持锁时间、何时释放

    饿死(starved ):事务Ti可能永远不能取得进展

    避免事务饿死:当事务Ti申请对数据项Q加M型锁时:不存在数据项Q上持有与M型锁冲突的锁的其他事务;不存在等待对数据项Q加锁且先于Ti申请加锁的事务

    两阶段封锁协议:保证可串行性的封锁协议;每个事务分两个阶段提出加锁和解锁申请;

      增长阶段:事务可以获得锁,但不能释放锁

      缩减阶段:事务可以释放锁,但不能获得新锁

      严格两阶段封锁协议除了要求封锁是两阶段之外,还要求事务持有的所有排他锁必须在事务结束后,方可释放。

      严格两阶段封锁可以避免级联回滚。

    强两阶段封锁协议:事务提交之前,不得释放任何锁。在强两阶段封锁协议下,事务可以按其提交的顺序串行化

    锁转换:Upgrade:从共享锁提升为排他锁;Downgrade:从排他锁降级为共享锁

        锁升级只能发生在增长阶段,锁降级只能发生在缩减阶段。

    事务的原子性要求:Atomicity (原子性) requirement 事务在执行过程中不能对数据库有影响。

    事务的一致性要求:Consistency (一致性) requirement 如果两个数据之间存在恒定关系,则不事务不应该改变这个关系。

    事务的隔离性要求:Isolation (隔离性) requirement 如果一个事务正在执行,另一个事务不应该读取到这个正在执行事务的中间结果。

        这一点加入调度是可串行的那么一定就会满足隔离性的要求。

    事务的持久性要求:Durability (持久性) requirement 即便软件或者数据库崩溃了数据也应该被保留。

    基于锁的协议Lock-Based Protocols 使用两种锁来让一个事务独占该数据的读写权限,避免冲突。

    死锁恢复:当检测到死锁时:一些交易将不得不回滚(成为受害者)打破僵局。选择该事务作为受害者将产生最低费用。回滚-确定回滚交易的距离>总回滚:中止事务,然后重新启动。>更有效地将事务回滚至最大有必要打破僵局。如果始终选择相同的事务作为,则会发生饿死受害者。在成本因素中包括回滚数避免饿死。

    时间戳排序协议Timestamp-Based Protocols:任何一个数据上会维护两个时间戳一个是R,一个是W,如R(T)在W之前那么已经被修改过,拒绝并回滚。如果读取R(T)在W之后则执行并更新。如果W(T)在R之前则会导致脏数据。拒绝并回滚。如果W(R)在W之前则将会写入过期数据,拒绝并回滚。此外的情况下,将会执行并更新。

    我们居然不学托马斯写规则

    数据库恢复算法Recovery Algorithms:恢复算法分为两部分

      1.在正常交易处理期间采取的措施以确保足够存在从故障中恢复的信息

      2.无法将数据库内容恢复到数据库后采取的措施确保原子性,一致性和持久性的状态

    事务标记:transaction identifier:是执行write操作事务的唯一标识。

    数据项表示data-item identifier:所写数据项的唯一标识。(说明数据项所在的块和偏移量)

    旧值old value:数据项的写前项

    新值new value:数据项的写后项

    数据访问:必须在第一次访问X之前执行读(X)读取可以来自本地副本);可以在事务提交之前的任何时间执行写(X)

    可恢复性和原子性的保证:要不就全部完成修改,要不就一点也不修改。在未全部完成并提交之前,只输出预计将会做出的修改的描述而不会修改数据库。

    基于日志的恢复:Log-Based Recovery:日志记录所有发生过的修改与变化。包括:start启动信息,update更新信息,transaction commit事务提交记录,transaction abort事务废止记录。

    数据库发生修改前产生日志的情况:如果事务完成前需要废止则会产生记录,如果事务在完成任何储存前系统崩溃了那么产生记录。

    数据库的修改类型:

      Immediate database modification (立即修改): If database modifications occur while the transaction is still active.

      Deferred database modification (延迟修改): If a transaction does not modify the database until it has committed.

      undo使用一个日志记录将日志记录中的数据项设置为旧值。

      redo使用一个日志记录将该日志中指明的数据项设置为新值。

    事务提交commit:事务中的最后一个日志记录输出到了稳定的存储器中。

    检查点checkpoint:执行过程将所有的主存内的日志以及被修改后的缓存块都写入到稳定存储器后,将所活跃的事务都存入一个checkpoint L列表中。之后如果恢复,直接找第一个check point即可。

    数据访问:包括主要四种操作:input将存储块从磁盘传送到主存内进行缓存,output将数据块从缓存存进磁盘。read将缓存内的数据读入变量,write将变量写入缓存块中。

    可恢复性和并发控制(更基础的解释):所有的事务共享一个缓存和日志。同一时间只能有一个事务使用缓存。各种食物的日志之间可能会是互相穿插的。

    撤销abort:从事务T的最后一个日志开始进行undo,每个被恢复的数据项都会在此留下一个修改日志。所有撤销完成后记录下来一个abort日志。

    重做redo:从该事务的第一个日志开始再次执行。不生成新的日志。

    系统崩溃之后的恢复:如果start之后没有commit或者abort就undo.如果start之后有commit或abort就redo.事实上这就是重复执行历史记录,但是确实会提高回复效率。

      2.技巧们

        1)绝了。使用CASE结构进行更新。

        把student元组的tot_cred属性设为该生成功学完的课程学分总和。没成功学完任何课程的学生tot_cred为0

    update student  S 
          set  tot_cred =( 
                 select case 
              when sum(credits) is not null then sum(credits)
               else 0
                     end
           from takes  natural join course
                     where S.ID = takes.ID  and
                takes.grade <>‘F’and
                takes.grade is not null ) ;

        2)计算函数依赖集闭包F+:就利用已有依赖不断地造新的依赖即可,直到造到不能再造位置。

        3)计算属性集的闭包:首先选一个或几个属性通过已知的依赖再找到其他的属性加到集合里。然后再通过这个集合继续找其他的属性。不断壮大。最后如果全纳进来了就说名这个初始的选择是个超码。最终的书写形式应该是形如(ABC)这样的形式。

        4)求候选码:凭感觉选几个闭包对了那就是了。

        5)计算正则覆盖:求Fc的算法

        Step1:左端相同的函数依赖合并;(如果刚开始的函数依赖集之中含有复合的函数依赖,可以尝试使用阿姆斯壮分解律来进行分解不过要注意的是,分解律只能分解右侧,如果左侧为复合型,那么可以怀疑存在无关属性。后续再进行检验这一步先保留。)
        Step2:逐个属性判断是否为无关属性;(左无关属性,右无关属性,如果删掉该属性后的函数依赖放回原来的函数依赖集得到的新的函数依赖集仍然能够推出原先的函数依赖集,那么就可以说这个属性是无关的。)
        Step3:发现无关属性,去掉该属性,并重新进行step2;直到没有无关属性;

        6)判断无损分解:自然连接能恢复。

        7)判断保持依赖:计算一下关系闭包。相等则保持。或者挨个验证原来的函数依赖是否都在新的关系们中存在。

        8)判定BCNF: 检查所有依赖是否满足为平凡函数依赖或者左侧为超码。如果成立则符合。

        9)BCNF分解算法:把每个关系中不符合条件的函数依赖都拉出来单独作为一个关系。完事。

        10)判定3NF:检查所有函数以来是否满足为平凡函数依赖或者左侧为超码,或则右侧属性与左侧属性的差集在候选码之中。如果是则成立。

        11)3NF分解算法:先计算正则覆盖,然后对每一个属于郑则覆盖的函数依赖都拉出来单独作为一个关系,结束之后如果所有模式都不含有码,则将候选码单独作为一个关系。完事。

        12)4NF分解算法:将所有不符合4NF范式的函数依赖全部拉出来作为单独的新关系。

        13)死锁检测:使用图检测循环算法。

        14)判断调度的冲突可串行化:首先将所有的事务做成数个圆圈。开始作图。如果一个事务中有读操作R(一个属性),而另一个事务中有写操作W(同一个属性)那么就从这个事务向另一个事务画一个箭头。

                  如果一个事务中有写操作R(一个属性)而另一个事务中有读操作或者写操作R(同一个属性),W(同一个属性)那么就从这个事务向另一个事务画一个箭头。

                  如果最后形成了环那么就说明冲突不可串行。

                  如果没有形成环那么就说明冲突可串行。等价的串行调度是:从有向边的出口处依次截取节点即可。

       3.原理:

        为什么使用弱实体集?
        通过为弱实体集加上合适的属性,可转变为强实体集,为什么还要使用弱实体集?
        避免数据冗余(强实体集码重复),以及因此带来的数据的不一致性
        弱实体集反映了一个实体对其它实体依赖的逻辑结构
        弱实体集可以随它们的强实体集的删除而自动删除
        弱实体集可以物理地随它们的强实体集存储

        各种范式之间的关系:
        1NF

        消除非主属性对码的部分函数依赖

        2NF

        消除非主属性对码的传递函数依赖

        3NF

        消除主属性对码的传递函数依赖

        BCNF

        消除非平凡的多值依赖

        4NF

        为什么允许并发:

        并发的必要性:提高吞吐量,减少等待时间。

        预防死锁

        1>死锁预防( Deadlock Prevention )协议可确保系统将永远不会进入死锁状态。一些预防策略:要求每个事务都锁定其所有数据项在开始执行之前(预声明)。对所有数据项强加部分排序,并要求事务只能将数据项锁定在由偏序指定的顺序(基于图协议)

         2>等候制计划—非抢占式(非抢占式)wait-die scheme — non-preemptive;当事务Ti请求当前由其持有的数据项时Tj,Ti仅在时间戳较小时才允许等待比Tj(即Ti比Tj大),否则Ti为回滚(死)。老的事务可能会等待新的事务发布数据项目。新的事务永远不会等待老的事务,而是回滚。事务可能在取得所需数据项之前多次死亡。

        3>伤口等待方案-抢占(抢占式)wound-wait scheme — preemptive当事务Ti请求当前由其持有的数据项时Tj,Ti仅在时间戳较大时才允许等待比TJ,否则TJ回滚(TJ被Ti伤害)。老的事务会伤害新的(导致回滚)交易,而不是等待它。新的事务可能会等待老的交易。回滚的数量可能比等待机制少。

        4>基于超时的方案:Timeout-Based Schemes:事务仅等待指定的锁定多少时间。之后,等待超时,事务回滚,因此不可能出现死锁。实现简单;但饥饿是可能的。很难确定好的超时间隔值

        

    计算机组成原理

      相关的题型。回顾以往的几期。第七八九章的题目在掌握基础的前提下没有什么门槛。

      1.操作码:固定编码技术中操作码的位数是固定的。而地址码的位数也是固定的,但是会有零地址命令、一地址命令以及而地址命令的区别,在这些命令中,地址码会占用操作码剩余的位数。因此,固定编码的操作码会需将其操作码的位数限制在总位数减去二地址码以及相应的寻址标记之后剩余的位数内。而扩展编码技术则会充分地利用由于地址的缩减所空余出来的位数用于扩展编码。固定位数地操作码总数固定,可以直接减掉算得。扩展编码中,加入地址地位数为r,设C=2r,那么一地址码、二地址码、零地址码之间会有这样的关系:每少一个二地址码,将会多出C个一地址码,每少一个一地址码将会多出C个零地址码,由此可以得到地址码数量之间的关系。有公式:

      (二地址操作码最大值 - 二地址码数量) x C - 一地址码数量) x C = 零地址码数量

      2.寻址在之前记录过。指令个格式设计应用题按需分配位数即可。如果指令字长不够使用,可以将指令扩展为双倍字长的指令。

      3.CPU结构和功能:指令周期:取指周期、间址周期、执行周期、中断周期。其中中断周期又称中断响应,这其中执行的任务即为中断隐指令,包括:程序断点入栈、关中断】生成服务程序向量地址并将其发送到PC中。

      4.中断屏蔽字——会看优先等级。

      5.机器指令中常用的微指令组成:
        取指周期:   T0  PC->MAR

                 1->R

              T1  M(MAR)->MDR、 (PC)+1->PC

              T2  MDR->IR、OP(IR)->ID(微程序控制电路,视具体情况而定,有就加上)

        执行周期:   按照电路图的指示进行书写。时钟周期并不一定相同。

                但是都具有相似的流程。取出存在IR中的数据或者数据地址,然后进行进一步的操作。如果时钟周期溢出了小于三个,则在新的

                三个时钟周期内空出前面的一到两个时钟周期。

        间址周期:  T0  Ad(IR)->MAR 、1->R

               T1  M(MAR)->MDR

               T2  MDR->Ad(IR)

      6.冯诺依曼计算机特点回顾:1.五大组成:ALU,CU,存储器,输入、输出设备。2.指令和数据同等存放。3.都是二进制的。4.他们两个挨一块组成指令,顺序执行,可以看情况跳转。5.运算器为中心。

      7.区分指令和数据:时间:取值周期执行周期、空间:指令寄存器、数据寄存器。

      8.动态RAM不断电信息就不丢失,功耗大集成度低,速度快,每位价格高,适合做Cache或者要求高的小容量主存,静态RAM反之,适合做大容量主存。

      9.RAM刷新方式特点:1)集中式刷新,集中在一段时间刷新所有存储单元——死区过长。2)分散式刷新:安排在存取周期内进行——加长了存取周期

    降低了效率。不适用于高速存储器。3)异步式刷新:将存储单元的刷新均匀分布到刷新间隔时间中。使用的比较多。

      10.1)响应中断的条件是有中断请求、EINT=1即开中断、一条指令执行结束。2)中断周期的操作由中断隐指令完成(硬件),包括:关中断、保存程序断点(程序断点入栈),寻找中断服务程序的入口地址(形成中断服务程序的入口向量,向量事实上式服务程序的入口的地址,相当于间址寻址)

      11.DMA工作流程:1)预处理:将主存其实地址送给DMA中的AR,将设备地址送给DMA指定设备,将传送数据个数补码送给WC,启动设备。

              2)数据传送,向CPU请求传送数据,允许后将数据送到主存或者接接收数据,AR,WC自增。如果还有数据则继续传输,如果没有了就结束传输。并告知CPU。

              3)后处理:中断服务程序,校验数据等等.CPU回到主程序。

      12.DMA不能取代程序中断方式,因为DMA方式适用于高速外设与内存之间的简单数据传递,布恩那个想中断方式那样处理复杂的随机事件。并且DMA的后处理本身就会需要终端的方式继续宁后处理。

      13.概念:算是长长见识了。

    主存:主存储器,用于存放正在执行的程序和数据。CPU可以直接进行随机读写,访问速度较高。

    辅存:辅助存储器,用于存放当前暂不执行的程序和数据,以及一些需要永久保存的信息。

    Cache:高速缓冲存储器,介于CPU和主存之间,用于解决CPU和主存之间速度不匹配问题。

    RAM:半导体随机存取存储器,主要用作计算机中的主存。

    SRAM:静态半导体随机存取存储器。

    DRAM:动态半导体随机存取存储器。

    ROM:掩膜式半导体只读存储器。由芯片制造商在制造时写入内容,以后只能读出而不能写入。

    PROM:可编程只读存储器,由用户根据需要确定写入内容,只能写入一次。

    EPROM:紫外线擦写可编程只读存储器。需要修改内容时,现将其全部内容擦除,然后再编程。擦除依靠紫外线使浮动栅极上的电荷泄露而实现。

    EEPROM:电擦写可编程只读存储器。

    CDROM:只读型光盘。

    Flash Memory:闪速存储器。或称快擦型存储器。

      14.汉明码的管辖:假设信息有4位则校验码有3位,总共有7位,其中校验码位于1,2,4位。首先根据汉明码的规则。最后一位一定会被全部的校验码选中,那么接下来可以按照组合的思路进行确定。如果有N位校验码,除了最后一位需要被选中N次之外其余的都需要被选中N-1次。在这个例子中,由于第7位被选中了而位于4的校验码前方一共只有3位因此剩余的两位都会被4号选中,现在,5,6位都被选中了一次,根据N-1,都只能再选中一次。而假设5,6的一共两个名额都被2号位选中,那么1号位的两个名额将会分配到同一个位置3号位,这是不可以的。因此只能1,2号位分别选择一个,5,6位之一,再一起选中3号位,因此最终的校验分配为:4-567、1-357、2-367。(选择5,6位的时候考虑了一下先后)。确定了校验分配之后就可以进行奇偶校验或者校验码的生成了。汉明码生成的校验码如果出错了指向的就会是出错的那一位,更正过来后就能得到正确的信息。

      15.I/O的编址方式:1)内存统一编址;与主存单元采用完全一样的格式。和主存占用同一个地址空间。不需要单独的I/O指令。2)独立编址会为I/O设备单独设计一套完全不同于主存地址格式的地址编码。是两个独立的空间。需要专门的I/O指令来访问I/O空间。

      16.I/O接口、端口:I/O接口是CPU和I/O设备之间的连接部件。而端口则是I/O接口内部能够被CPU访问的寄存器。端口机上控制逻辑就是I/O接口。

      17.中断向量是个地址,指向中断服务程序入口的地址。

      18.DMA请求和中断服务请求相应的差别:DMA是在存取周期结束之后(这时候进行后处理相当于进行一次中断请求),而中断程序则是在执行周期结束的时刻。

      19.如果设备的传输速度大于CPU的处理素的则不能再使用中断方式而应该使用DMA方式尝试一下。 

      20.中断屏蔽表内,关中断值为1,开中断值为0.

      21.控制单元CU功能是发出各种不同的控制信号。输入受时钟信号,指令寄存器的操作码字段,标志和来自兄台那个总线的控制信号的控制。

      22.指令格式设置的时候需要注意:如果指令有4条应该给3位,因为无指令也应该作为一种指令因此实际上是4+1=5条指令。

  • 相关阅读:
    python中函数中的实参和形参以及默认参数和收集参数
    数组的三种初始化方式
    python :列表的近亲,元组tuple
    python :列表的近亲,元组tuple
    python中的列表,添加元素,获取元素,删除元素,列表分片,常用操作符
    python中的列表,添加元素,获取元素,删除元素,列表分片,常用操作符
    python中的分支和循环:for 循环,while循环,三元操作符,断言,assert关键字,rang()函数总结
    python中的分支和循环:for 循环,while循环,三元操作符,断言,assert关键字,rang()函数总结
    用python制作打飞机游戏
    用python制作打飞机游戏
  • 原文地址:https://www.cnblogs.com/PRCdefender/p/14116219.html
Copyright © 2020-2023  润新知