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在對某個數據對象(例如表、記錄等)操作之前,先向系統發出請求,對其加鎖
。
兩段鎖協議:指所有事務必須分兩個階段對數據項加鎖和解鎖
在對任何數據進行讀、寫操作之前,事務首先要獲得對該數據的封鎖