t依赖数据库
㈠ 数据库中的多值依赖是怎么回事
一条记录在整个表的唯一性由多个值组合决定!
㈡ 如何理解数据库的内部一致性和外部一致性
定义:数据库一致性(Database Consistency)是指事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
数据库状态如何变化?每一次数据变更就会导致数据库的状态迁移。如果数据库的初始状态是C0,第一次事务T1的提交就会导致系统生成一个SYSTEM CHANGE NUMBER(SCN),这是数据库状态从C0转变成C1。执行第二个事务T2的时候数据库状态从T1变成T2,以此类推,执行第Tn次事务的时候数据库状态由C(n-1)变成Cn。
定义一致性主要有2个方面,一致读和一致写。
一致写:事务执行的数据变更只能基于上一个一致的状态,且只能体现在一个状态中。T(n)的变更结果只能基于C(n-1),C(n-2), ...C(1)状态,且只能体现在C(n)状态中。也就是说,一个状态只能有一个事务变更数据,不允许有2个或者2个以上事务在一个状态中变更数据。至于具体一致写基于哪个状态,需要判断T(n)事务是否和T(n-1),T(n-2),...T(1)有依赖关系。
一致读:事务读取数据只能从一个状态中读取,不能从2个或者2个以上状态读取。也就是T(n)只能从C(n-1),C(n-2)... C(1)中的一个状态读取数据,不能一部分数据读取自C(n-1),而另一部分数据读取自C(n-2)。
摆事实
一致写:
定义100个事务T(1)...T(100)实现相同的逻辑 update table set i=i+1,i的初始值是0,那么并发执行这100个事务之后i的值是多少?可能很容易想到是100。那么怎么从一致性角度去理解呢?
数据库随机调度到T(50)执行,此时数据库状态是C(0),而其它事务都和T(50)有依赖关系,根据写一致性原理,其它事务必须等到T(50)执行完毕后数据库状态变为C(1)才可以执行。因此数据库利用锁机制阻塞其它事务的执行。直到T(50)执行完毕,数据库状态从C(0)迁移到C(1)。数据库唤醒其它事务后随机调度到T(89)执行,以此类推直到所有事务调度执行完毕,数据库状态最终变为C(100)。
一致读:
还是上面的例子,假设T(1)...T(100)顺序执行,在不同的时机执行select i from table,我们看到i的值是什么?
1. T(1)的执行过程中。数据库状态尚未迁移,读到的i=0
2. T(1)执行完毕,T(2)的执行过程中,数据库状态迁移至C(1),读到的i=1
㈢ .net数据缓存依赖和文件缓存依赖的问题
虚拟机啊……放弃吧。
自己实现好了,把需要缓存的数据丢内存。然后写一个类控制这块数据的读写。读取的时候直接从内存读,写的时候先写数据库,如果写成功则修改内存数据。注意数据操作时加锁。
㈣ 数据库原理函数依赖有哪些类型
下面是有关 函数依赖的定义:
函数依赖:FD(function dependency)
设有关系模式R(U),X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2,
由t1[X]=t2[X]导致t1[Y]=t2[Y], 则称X函数决定Y,或Y函数依赖于X,记为X→Y。X→Y为模式R的一个函数依赖。
为了抠定义,我试图用一些数据来理解 这个函数依赖的定义:
关系模式R(U)
假设属性集U{学号,姓名,年龄,性别,住址}
假设子集X{学号,姓名}
假设子集Y{年龄,性别}
具体关系r:
学号 姓名 年龄 性别 住址
001 张三 18 F GZ ==>假设这条记录是元组t1
002 李四 19 M BJ ==>假设这条记录是元组t2
现在,我的问题是,请解释定义里的这句话:“由t1[X]=t2[X]导致t1[Y]=t2[Y], 则称X函数决定Y,或Y函数依赖于X,记为X→Y。X→Y为模式R的一个函数依赖。” 重点是解释由t1[X]=t2[X]导致t1[Y]=t2[Y]这个定义想表达什么意思,
按照我对t1[X]=t2[X]这个符号的理解 就是
{学号:001,姓名:张三}={学号:002,姓名:李四} ,这明显是不对。 那么t1[X]=t2[X]具体是什么意思?
㈤ 数据库函数依赖定义的问题
设R(U)是一个属性集U上的关系模式,X和Y是U的子集。
若对于R(U)的任意两个可能的关系r1、r2,若r1[x]=r2[x],则r1[y]=r2[y],或者若r1[x]不等于r2[x],则r1[y]不等于r2[y],称X决定Y,或者Y依赖X。
㈥ 简要说明数据库的基本概念
数据库是长期储存在计算机内,有组织,可共享的数据集合。
数据库特性:冗余度小,数据独立性高,易扩展。
数据库系统(DBS):在计算机系统中引入数据库后的系统构成。
数据库系统的构成:数据库,数据库管理系统(及其开发工具),应用系统,数据库管理员。数据模型就是现实世界的模拟。
数据模式要素:数据结构,
数据操作,
完整性约束条件。
定义属性值间的相互关连(主要体现于值的相等与否),这就是数据依赖,它是数据库模式设计的关键
。
函数依赖:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。
若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或
“Y函数依赖于X”,记作X→Y。
封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁
。
两段锁协议:指所有事务必须分两个阶段对数据项加锁和解锁
在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁