1. 一個好的資料庫加密系統應該滿足哪些方面的要求
您好,很高興為您解答。 1.欄位加密 ----在目前條件下,加/脫密的粒度是每個記錄的欄位數據。如果以文件或列為單位進行加密,必然會形成密鑰的反復使用,從而降低加密系統的可靠性或者因加脫密時間過長而無法使用。只有以記錄的欄位數據為單位進行加/脫密,才能適應資料庫操作,同時進行有效的密鑰管理並完成「一次一密」的密碼操作。 2.密鑰動態管理 資料庫客體之間隱含著復雜的邏輯關系,一個邏輯結構可能對應著多個資料庫物理客體,所以資料庫加密不僅密鑰量大,而且組織和存儲工作比較復雜,需要對密鑰實現動態管理。 3.合理處理數據 這包括幾方面的內容。首先要恰當地處理數據類型,否則 DBMS將會因加密後的數據不符合定義的數據類型而拒絕載入;其次,需要處理數據的存儲問題,實現資料庫加密後,應基本上不增加空間開銷。在目前條件下,資料庫關系運算中的匹配欄位,如表間連接碼、索引欄位等數據不宜加密。文獻欄位雖然是檢索欄位,但也應該允許加密,因為文獻欄位的檢索處理採用了有別於關系資料庫索引的正文索引技術。 4.不影響合法用戶的操作 加密系統影響數據操作響應時間應盡量短,在現階段,平均延遲時間不應超過1/10秒。此外,對資料庫的合法用戶來說,數據的錄入、修改和檢索操作應該是透明的,不需要考慮數據的加/脫密問題。 如若滿意,請點擊右側【採納答案】,如若還有問題,請點擊【追問】 希望我的回答對您有所幫助,望採納! ~ O(∩_∩)O~
2. 資料庫加密的最小粒度是什麼
就是通常我們所說的鎖級別。
資料庫引擎具有多粒度鎖定,允許一個事務冊山鎖定不同類型的資源。 為了盡量減少鎖定的開銷,資料庫引激閉擎自動將資源鎖定在適合任務的級別。 鎖定在較小的粒度(例如行)可以提高並發度,但開銷較高,因為如果鎖定了許多行,則需要持有更多的鎖。 鎖定在較大的粒度(例如表)會降低了並發度,因為鎖定整個表限制了其他事務對表中任意部分的訪問。 但其開銷較低,因為需要維護的鎖較少。
資料庫引擎通常必須獲取多粒度級別上的鎖才能完整地保護資源。 這組多粒度級別上的鎖稱為鎖層次結構。 例如,為了完整地保護對索引州鉛中的讀取,資料庫引擎實例可能必須獲取行上的共享鎖以及頁和表上的意向共享鎖。
MySQL有三種鎖的級別:頁級、表級、行級。
MyISAM和MEMORY存儲引擎採用的是表級鎖(table-level locking);BDB存儲引擎採用的是頁面鎖(page-level
locking),但也支持表級鎖;InnoDB存儲引擎既支持行級鎖(row-level locking),也支持表級鎖,但默認情況下是採用行級鎖。
MySQL這3種鎖的特性可大致歸納如下:
表級鎖:開銷小,加鎖快;不會出現死鎖;鎖定粒度大,發生鎖沖突的概率最高,並發度最低。
行級鎖:開銷大,加鎖慢;會出現死鎖;鎖定粒度最小,發生鎖沖突的概率最低,並發度也最高。
頁面鎖:開銷和加鎖時間界於表鎖和行鎖之間;會出現死鎖;鎖定粒度界於表鎖和行鎖之間,並發度一般。
每種鎖可以在網上查詢詳細說明。主要看你用什麼存儲引擎。
3. 數據倉庫之數據粒度
確定數據倉庫中數據的恰當粒度是數據倉庫開發者需要面對的一個最重要的設計問題。數據粒度主要針對指標數據的計算范圍,如人口這個數據項在統計部門是以街區范圍還是一個社區為范圍統計的。人口數據細化程度越高,粒度級就越小;相反,細化程度越低,粒度級就越大。粒度是數據倉庫主要設計問題,因為它極大地影響存放在數據倉庫中的數據量的大小,同時影響數據倉庫所能回答的查詢類型。在設計數據倉庫的時候權衡數據量大小和查詢類型得出合理的粒度大小。下面我們通過規劃設計和建設兩個階段來講解數據倉庫粒度的確定。
1.規劃階段
「規劃」——對未來整體性、長期性、基本型問題的思考和考量,設計未來整套行動的方案。在規劃階段過程中首先粗略估算數據量,估算的目的是掌握數據倉庫中數據量的一個范圍。第二步預測未來數據集市中應用需要的粒度,數據倉庫存儲數據集市使用的最小粒度。
1.1. 建立良好的循環反饋機制是很重要的。
首先就要建立完善的循環反饋機制。數據倉庫是面對模糊需求開始建立的,粒度不可能一次就能規劃好,先導入少量數據,建立一部分應用提交給用戶使用,並聆聽用戶使用意見,根據用戶的使用意見調整粒度的大慧好小。
1.2. 對存儲數據進行粗略估算對設計體系結構的人員來說非常有用。
粗略估算數據倉庫的亂碧橘數據量,可跟好的規劃數據倉庫架構。如果數據只有10 000行,那麼數據倉庫採用粒度級越小的數據存儲,數據倉庫中存儲所有明細數據。如果明細數據有10 000 000行,進入數據倉庫的數據就需要進行初步匯總。如果有100億行,數據倉庫不但需要有一個高粒度級,還可能將大部分數據移到溢出存儲器上去。
估算方法如下:
1.3. 預測數據集市中可能使用的數據粒度是很必要的。
為了合適地填充所有的數據集市,數據倉庫中的數據必須在一個所有數據集市所需要的最低粒度水平上。
規劃階段的成果是數據倉庫建設的重要依據內容。規劃階段對組織架構,數據量大小和後期應用的摸底,可以制定方案,並對可能的結果有預先的認知,對可能存在的問題設計上進行避免。
2. 建設階段
2.1.根據估算的空間結果,在體系架構設計上可以根據數據量大小進行存儲設備選擇。需要多少直接存取存儲設備,是否需採用雙重粒度設計。
2.2.設計溢出數據的管理。溢出數據是指數據倉庫將不經常被訪問的過時的數據轉移到存儲量更大的訪問速度慢的存儲器上的數據。管理溢出數據可以方便索引定位歷史數據並可以快速取出該數據。
跨介質存儲管理器和數據活動監控器可以對溢出數據進行有效的管理。磁碟存儲器和大容量低速存儲器之間的數據移動是通過一種稱為「跨介質存儲管理器(CMSM)」的軟體來控制的。數據活動監控器,用來確定哪些數據正在被訪問,哪些沒被訪問。數據活動監控器能提供數據存儲的位置信息。
2.3.實施數據倉庫過程中粒度的確定是一個往復循環的過程。利用規劃階段建立的反饋循環方法,不斷的從分析員獲得反饋,不斷的優化數據倉庫。
從圖可以看出成功建立數據倉庫離不開分析人員的通力協作。建設者要不斷的聆聽分析員的意見。分析人員在建立數據倉庫的時候並不知道自己需要什麼,只有在他們看到最終分析結果,才能告訴數據倉庫工作人員什麼才是他們真正有用的。為了有效的獲得反饋,以下幾點技巧可供參考:
快速建立數據倉庫很小的子集並認真聽取用戶的反饋意見;
使用原型方法;
參考別人的經驗;
與有經驗的用戶協同工作;
以企業中已有的功能需要作參考;
定期舉行數據倉庫建設例會。
3.例舉銀行粒度小例子
3.1.銀行環境中粒度嘩團級別,下圖是銀行中的數據粒度例子。
銀行的操作層存放的是以日為單位粒度的數據。銀行的各個業務系統只存放最近60天交易活動明細內容,方便用戶查詢最近兩個月的交易信息詳情,這段時間用戶對交易數據明細最為關心。
數據倉庫層將數據匯聚成以月為單位粒度的匯總數據。銀行將過去長達十年的數據按每個賬戶每月交易信息進行匯聚,存儲在直接存儲設備,供高速查詢訪問,用戶對過去很久的交易明細並不在意,但是用戶需要快速查詢得出結果,此時提供以月為單位的匯總數據可以滿足用戶的需求。
所有的歷史數據以日為單位存放在溢出存儲區,該區域數據量極大,訪問頻率極低。一般銀行不受理長達十年的歷史明細數據查詢的請求,如果一些特殊情況需要查詢超過十年的歷史數據,查詢時間會相當緩慢。
4.小結
數據倉庫粒度的確定是一個困難的過程,要求一個合適的級別,既不能太高也不能太低。
選擇粒度級別很大程度上基於常識。建設之前作好適當的規劃,估算數據量並建立相應的反饋制度。在實施的過程中,首先建立數據倉庫的一小部分,並讓分析人員使用。然後聆聽他們的意見,根據他們的反饋對粒度級別進行適當的調整。
4. 深入理解MySQL資料庫各種鎖(總結)
MyISAM和InnoDB存儲引擎使用的鎖:
封鎖粒度小:
由於InnoDB存儲引擎支持的是行級別的鎖,因此意向鎖(因為意向鎖是表鎖)其實不會阻塞除全表掃以外的任何請求。故表級意向鎖與行級鎖的兼容性如下所示
參考
參考
行鎖的三種演算法:
這條語句阻止其他事務插入10和20之間的數字,無論這個叢棚數字是否存在。 間隙可以跨越0個,單個或多個索引值。
https://blog.csdn.net/u014316026/article/details/78726459
共享鎖:
排他鎖:
https://www.cnblogs.com/mysql-hang/articles/11027685.html
樂觀鎖:總是假設最好的情況,每次去拿數據的時候都認為別人不會修改(天真), 操作數據時不會上鎖 ,但是 更新時會判斷在此期間有沒有別的事務更新這個數據,若被更新過,則失敗重試 ;適用於讀多寫少的場景。
樂觀鎖的明逗實現方式 有:
關閉自動提交後,我們需要手動開啟事務。
上述就實現了悲觀鎖,悲觀鎖就是悲觀主義者,它會認為我們在事務A中操作數據1的時候,一定會有事務B來修改數據1,所以,在第2步我們將數據查詢出來後直接加上排它鎖(X)鎖,防止別的事務來修滲槐則改事務1,直到我們commit後,才釋放了排它鎖。
5. 一個好的資料庫加密系統一般應滿足哪些方面的要求
您好,很高興為您解答。
1.欄位加密
----在目前條件下,加/脫密的粒度是每個記錄的欄位數據。如果以文件或列為單位進行加密,必然會形成密鑰的反復使用,從而降低加密系統的可靠性或者因加脫密時間過長而無法使用。只有以記錄的欄位數據為單位進行加/脫密,才能適應資料庫操作,同時進行有效的密鑰管理並完成「一次一密」的密碼操作。
2.密鑰動態管理
資料庫客體之間隱含著復雜的邏輯關系,一個邏輯結構可能對應著多個資料庫物理客體,所以資料庫加密不僅密鑰量大,而且組織和存儲工作比較復雜,需要對密鑰實現動態管理。
3.合理處理數據 這包括幾方面的內容。首先要恰當地處理數據類型,否則 DBMS將會因加密後的數據不符合定義的數據類型而拒絕載入;其次,需要處理數據的存儲問題,實現資料庫加密後,應基本上不增加空間開銷。在目前條件下,資料庫關系運算中的匹配欄位,如表間連接碼、索引欄位等數據不宜加密。文獻欄位雖然是檢索欄位,但也應該允許加密,因為文獻欄位的檢索處理採用了有別於關系資料庫索引的正文索引技術。
4.不影響合法用戶的操作
加密系統影響數據操作響應時間應盡量短,在現階段,平均延遲時間不應超過1/10秒。此外,對資料庫的合法用戶來說,數據的錄入、修改和檢索操作應該是透明的,不需要考慮數據的加/脫密問題。
如若滿意,請點擊右側【採納答案】,如若還有問題,請點擊【追問】
希望我的回答對您有所幫助,望採納!
~ O(∩_∩)O~
6. 資料庫加密粒度
樓主是啥意思?
7. 存儲粒度小是什麼意思
粒度是指數據倉庫的數據單位中保存數據的細化或綜合程度的級別。 細化程度扒寬搜越高,粒度級就越小。
粒度就是同一維度下,數據統計的粗細程度,計算機領域中粒度指系統內存擴展增量的最小值。粒度問題是設計數據倉庫的一個最重要方面。粒度是指數據倉庫的數據單位中保存數據的細化或綜合程度的級別巧畝。細化程度越高,粒度級就越小;相反,細化程度越低,粒度級就越大。數據的粒度一直是一個設計問題。春歷
8. 解釋下什麼是數據顆粒度
我的理解是數據顆粒度就是對數據按照不同規模進行統茄攔計。比如你的粒度有性別(男,女),那就按照這個粒度下的分類來進行統計。如果是選擇時間中的天作為統計,就把數據按照每一天進行統計,得出每一天的數據量一起其他的信息。我也是在我們自己的顫消胡系統開發中感悟的,希望橋扮有用。
9. 數據倉庫中的粒度是什麼意思
粒度是指數據倉庫的數據單位中保存數據的細化或綜合程度的級別。 細化程度越高,粒度級就越小;相反,細化程度越低,粒度級就越大。 數據的粒度一直是一個設計問題。在早期建立的操作型系統中,粒度是用於訪問授權的當詳細的數據被更新時,幾乎總是把它存放在最低粒度級上。 但在數據倉庫環境中,對粒度不作假設。 在數據倉庫環境中粒度之所運型以是主要的設計問題,是因為它深深地影響存放在數據倉庫中的數據量的大小,同時影響數據倉庫早悄春所能回答的查詢類型。 在數據倉庫中的數據量大小與查詢的詳細程度之間要作出權衡陸耐。