時間:2024-03-13 13:57作者:下載吧人氣:22
數(shù)據(jù)庫完整性:是指數(shù)據(jù)庫中數(shù)據(jù)在邏輯上的一致性、正確性、有效性和相容性
實體完整性(Entity Integrity 行完整性):實體完整性指表中行的完整性。主要用于保證操作的數(shù)據(jù)(記錄)非空、唯一且不重復。即實體完整性要求每個關(guān)系(表)有且僅有一個主鍵,每一個主鍵值必須唯一,而且不允許為“空”(NULL)或重復。
域完整性(Domain Integrity 列完整性):是指數(shù)據(jù)庫表中的列必須滿足某種特定的數(shù)據(jù)類型或約束。其中約束又包括取值范圍、精度等規(guī)定。表中的CHECK、FOREIGN KEY 約束和DEFAULT、 NOT NULL定義都屬于域完整性的范疇。
參照完整性(Referential Integrity)屬于表間規(guī)則:對于永久關(guān)系的相關(guān)表,在更新、插入或刪除記錄時,如果只改其一,就會影響數(shù)據(jù)的完整性。如刪除父表的某記錄后,子表的相應記錄未刪除,致使這些記錄稱為孤立記錄。
參照完整性規(guī)則(Referential Integrity)要求:若屬性組F是關(guān)系模式R1的主鍵,同時F也是關(guān)系模式R2的外鍵,則在R2的關(guān)系中,F的取值只允許兩種可能:空值或等于R1關(guān)系中某個主鍵值。
Sql Server的存儲結(jié)構(gòu),頁、區(qū)、堆
頁:用于數(shù)據(jù)存儲的連續(xù)的磁盤空間塊,SQL Server中數(shù)據(jù)存儲的基本單位是頁,磁盤I/O操作在頁級執(zhí)行,頁的大小為8KB。每頁的開頭是96字節(jié)的頁頭,用于存儲有關(guān)頁的系統(tǒng)信息,包括頁碼、頁類型、頁的可用空間以及擁有該頁的對象的分配單元ID;其他便是存儲數(shù)據(jù)的數(shù)據(jù)行與剩下可用空間,結(jié)構(gòu)圖如下(個人繪制)
區(qū)間:區(qū)是管理空間的基本單位,一個區(qū)是8個物理上連續(xù)的頁(即64KB)的集合,所有頁都存儲在區(qū)中。SQL Server有兩種類型的區(qū):統(tǒng)一區(qū)和混合區(qū)。
堆:堆是指不含聚集索引的表,它的數(shù)據(jù)不按任何順序進行存儲。
聯(lián)系一個堆中的數(shù)據(jù)的唯一結(jié)構(gòu)是被稱為索引分配映射(IAM)的一個位圖頁,當掃描對象時,SQl server使用IAM頁來遍歷該對象的數(shù)據(jù)。
堆表內(nèi)的數(shù)據(jù)頁和行沒有任何特定的順序,也不鏈接在一起。數(shù)據(jù)頁之間唯一的邏輯連接是記錄在IAM頁內(nèi)的信息
假設某訂單明細表中有100萬條數(shù)據(jù),需要查詢某個訂單的明細數(shù)據(jù),如下:
select*fromT_EPZ_INOUT_ENTRY_DETAILwhereentry_apply_id=’31227000034000090169′
網(wǎng)友評論