資料庫第九章總結!

2021-09-02 17:40:09 字數 2487 閱讀 9449

第九章 關係查詢處理和查詢優化

1.查詢處理的步驟:

1)查詢分析:對語句進行掃瞄、詞法分析、語法分析。

2)查詢檢查:對合法查詢語句進行語義分析,根據資料字典中有關模式的定義檢查語句中的資料庫物件比如關係名、屬性名、是否存在和有效。(這時的完整性檢查是初步的、靜態的檢查)

3)查詢優化:分為代數優化和物理優化

4)查詢執行

2.選擇操作的實現:

1)簡單的權標掃瞄演算法(table scan):假設可以使用的記憶體為m塊,則先按物理次序讀student的m塊到記憶體;檢查記憶體的每個元組t,如果t滿足條件,則輸出t;如果student還有其他的塊未處理,則重複上述步驟。

2)索引掃瞄演算法(index scan):如果選擇條件上有索引,則可以通過索引先找到滿足條件的元組指標,在通過元組指標在查詢的基本表中找到元組。

3.連線操作的實現:

1)巢狀迴圈演算法(nested loop join):也就是兩層for迴圈

2)排序-合併演算法(sort-merge join 或 merge join):先將student表和sc表按照sno排序;取student表第乙個sno,一次掃瞄sc表找到有相同sno的元組,把他們連線起來;掃瞄到第乙個不相同個sno表的時候就停止掃瞄,轉而繼續進行student表的第二個sno元組的連線;重複上述步驟知道student表掃瞄完畢。

3)索引連線演算法(index join):在sc表上對sno建立了索引;對student 的每乙個元組,有sno值通過sc的索引查詢相應的sc元組;將這些sc元組和student元組連線起來;迴圈執行上述步驟知道student表中的元組處理完為止。

4)hash join演算法:第一步,劃分階段(building phase),也成為建立階段,建立hash表,對第乙個表進行hash雜湊處理;第二部,試探階段(probing phase),對另乙個表也進行相同的hash雜湊處理,找到適當的hash桶,把sc元組與桶中來自student表並與之相匹配的元組連線起來。

4.啟發式規則(heuristic rules):

1)選擇運算應盡可能先做

2)把投影運算和選擇運算同時進行

3)把投影及其前或後的雙目運算結合起來

4)把某些選擇同在它前面要執行的笛卡爾積結合起來稱為乙個連線運算

5)找出公共子表示式

5.關係表示式優化演算法簡述:

1)將條件想析取的選擇變成巢狀的單個選擇

2)將選擇操作盡可能先做

3)將投影操作盡可能先做

4)將選擇和投影的串接合併成單個選擇、單個投影、或乙個選擇後跟乙個投影,使多個選擇或投影能同時執行,或在一次掃瞄中全部完成

5)把上述得到的語法樹的內節點分組。每乙個雙目運算子和其直接祖先為一組(其直接祖先為選擇或者投影運算),也就是說進行完連線或者合併之類的雙目運算後可以進行選擇或者投影運算,並且認為他們是一組運算,如果其後代到葉子節點都是單目運算的時候也將他們並為一組,但是當後面是笛卡爾積並且後面不是與他組成等值連線的選擇時,則不能把選擇與這個雙目運算組成同一組,把這些單目運算單獨分為一組。

ps:關於第5步的理解:加上條件後的雙目運算子一般會是直接的雙目運算子的子集,這樣做就可以少一些步驟,比如先笛卡爾積然後再等值連線就會比較慢一點;後面笛卡爾積後面不是與他組成等值連線的選擇的話,本身就是不能作為一組的運算。

6.物理優化的方法:基於規則的啟發式優化;基於代價估算的優化;兩者結合的優化方法

一.說明主鍵、惟一鍵和外來鍵的作用。說明它們在保證資料完整性中的應用方法。

1.主鍵是唯一識別乙個表的每一記錄,作用是將記錄和存放在其他表中的資料進行關聯, 

並與外來鍵構成參照完整性約束。 

2.惟一鍵用於指明建立惟一約束的列上的取值必須惟一。 

3.外來鍵用於建立和加強兩個表資料之間的鏈結的一列或多列。通過將儲存表中主鍵值的 

一列或多列新增到另乙個表中,可建立兩個表之間的鏈結。這個列就成為第二個表的外來鍵。 

外來鍵約束的主要目的是控制儲存在外鍵表中的資料,但它還可以控制對主鍵表中資料的修改。

二.資料完整性包括哪些?如何實現?

資料完整性包括實體完整性,域完整性,引用完整性,使用者定義完整性,通過在表中,列中,表與表之間設定主鍵、惟一鍵、外來鍵、check約束等可以實現。

三.簡述在create table語句和alter table語句中定義外來鍵或關係的語法。

1.在create table語句中定義關係,只要在外鍵列的後面加上以下說明即可。

constraint 關係名 foreign key references 主鍵表(主鍵列) 

其中「關係名「的格式為: fk_外來鍵表名_主鍵表名    

2.alter table語句中定義關係的語法:

alter table 表名 add foreign key (列名) references 主鍵表(主鍵列)

四.將」職工」資料表的」性別」字段設定為只取」男」或」女」。

alter table 職工

add constraint ck_性別

check (性別='男' or 性別='女')

第九章 資料庫

redis 中資料庫的概念 切換資料庫的命令 select 1 資料庫鍵空間 key space redis 每個資料庫都有乙個資料庫鍵空間,資料庫鍵空間是一種字典結構 dict 字典 expires 字典 設定鍵的生存時間和過期時間 過期字典儲存鍵的過期時間 expire,pexpire,expi...

第九章 資料庫安全

第九章 資料庫安全 9.1.1建立使用者 create user user name identified by password default tablespace def tabspace temproary tablespace temp tabspace 乙個使用者要想連線到資料庫上,就必...

第九章 資料安全

資料安全概述 資料庫安全 1 資料庫系統執行安全,包括其所在的主機系統安全 2 資料資訊保安,即資料安全 資料安全 指資料的完整性 可用性 保密性和可靠性 資料安全依賴於資料庫管理系統所採用的安全策略 安全模型和安全機制 資料安全所面臨的威脅 1 授權人員的非故意錯誤行為 2 社交工程 3 內部人員...