2.4.1 關系代數表達式的優化問題
考核要求:達到“領會”
層次知識點:關系代數表達式的優化問題
查詢優化的目的就是為了系統在執行時既省時間又能提高效率。
在關系代數運算中,通常是先進行笛卡爾積或聯接運算,再進行選擇和投影。笛卡爾積或聯接運算卻往往花費教多的時間。
因此,恰當地安排選擇、投影和聯接的順序直接影響到整個操作所需要的時間和空間。 如何安排若干關系的運算操作步驟,是查詢優化所要考慮的問題。
2.4.2 關系代數表達式的等價變換規則
考核要求:達到“識記”
層次知識點:等價變換規則
兩個關系代數表達式等價是指用同樣的關系實例代替兩個表達式中相應關系時所得到的結果是完全一樣的。
等價變換規則有很多,不要死記,從語義上理解。
其實,只要在前面的學習中已經掌握關系運算的真正含義,就可以判斷兩個關系代數表達式是否等價。
2.4.3 優化的策略
考核要求:達到“領會”
層次知識點:優化的策略及其簡單應用
優化的策略主要有以下幾點:
(1)在關系代數表達式中盡可能早地執行選擇操作;
(2)把笛卡爾積和隨后的選擇操作合并成F聯接運算;
(3)同時計算一連串的選擇和投影操作;
(4)保留同一子表達式的結果;
(5)適當對關系文件進行預處理 ;
(6)計算表達式之前先估計一下怎么計算合算。
以上優化策略要求會簡單應用:先做選擇,運用投影去除多余屬性等等。
2.4.4 關系代數表達式的優化算法
考核要求:達到“簡單應用”
層次知識點:語法樹
學會畫語法樹,并掌握優化算法。
舉例
在教學數據庫S、SC、C中,用戶有一查詢語句:檢索女同學選修課程的課程名和任課教師名。
(1)試寫出該查詢的關系代數表達式;
(2)試寫出查詢優化的關系代數表達式;
(3)畫出該查詢初始的關系代數表達式的語法樹;
(4)使用2.4.4節的優化算法,對語法樹進行優化,并畫出優化后的語法樹。
3.1.1 SQL發展歷程
考核要求:達到“識記”
層次知識點:SQL的發展歷程
SQL:結構式查詢語言,雖然名為查詢語言,實際上具有定義、查詢、更新和控制等多種功能。
3.1.2 SQL數據庫的體系結構
考核要求:達到“領會”
層次知識點:三級結構的理解
SQL數據庫的體系結構也是三級結構,但術語與傳統關系模型術語不同,在SQL中,關系模式稱為“基本表”,存儲模式稱為“存儲文件”,子模式稱為“視圖”,元組稱“行”,屬性稱“列”。
SQL數據庫體系的結構要點如下:
(1)一個SQL數據庫是表的匯集。
(2)一個SQL表由行集構成,行是列的序列,每列對應一個數據項。
(3)表或者是基本表,或者是視圖。基本表是實際存儲在數據庫中的表,視圖由是由若干基本表或其他視圖構成的表的定義。
(4)一個基本表可以跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表。存儲文件與物理文件對應。
(5)用戶可以用SQL語句對表進行操作,包括視圖和基本表。
(6)SQL的用戶可以是應用程序,也可以是終端用戶。
3.1.3 SQL的組成
考核要求:達到“識記”
層次知識點:四個組成部分
SQL由四部分組成:
(1)數據定義:SQL DDL.定義SQL模式,基本表、視圖和索引。
(2)數據操縱:SQL DML.包括數據查詢和數據更新(增、刪、改)。
(3)數據控制:包括對基本表和視圖的授權、完整性規則的描述,事務控制等。
(4)嵌入式SQL的使用規定
3.2.1 SQL模式的創建和撤消
SQL模式的創建:建立一個SQL模式,定義一個存儲空間。
創建SQL模式的CREATE語句,其句法是:
CREAT SCHEMA <模式名> AUTHORIZATION <用戶名>
撤消SQL模式的DROP語句,其句法為:
DROP SCHEMA <模式名> [CASCADE|RESTRICT]
方括號中的選項參數CASCADE表示連鎖方式,執行時將SQL模式下所有基本表、視圖、索引等元素全部撤消。 RESTRICT表示約束式,只有在SQL模式中沒有任何下屬元素時才能撤消SQL模式,否則拒絕執行DROP語句。
3.2.2 SQL提供的基本數據類型
數值型:包括 integer、smallint、real、double precision 、float(n),numeric(p,d)
字符串型:char(n)、varchar(n),前者是定長,后者為變長串位串型:bit(n),bit varying(n),同上。
時間型:date、time. .
3.2.3 基本表的創建、修改和撤消
(1)基本表的創建:(建立表結構)
CREAT TABLE SQL 模式名。基本表名(列名,類型,……完整性約束……)
完整性約束包括主鍵子句(PRIMARY KEY)、檢查子句(CHECK)和外鍵子句(Foreign KEY)。
(2)基本表結構的修改
增加新列:ALTER TABLE 基本表名 ADD 列名 類型
刪除原有的列:ALTER TABLE基本表名 DROP 列名 [CASCADE|RESTRICT]
CASCADE為連鎖刪除,RESTRICT為約束刪除,即沒有對本列的任何引用時才能刪除。
基本表的撤消DROP TABLE 基本表名 [CASCADE|RESTRICT]
3.2.4 視圖的創建和撤消
(1)視圖的創建:
CREAT VIEW 視圖名(列名表) AS SELECT 查詢語句
(2)視圖的撤消:
DROP VIEW 視圖名
3.2.5 索引的創建和撤消
(1)索引的創建:
CREAT [UNIQUE] INDEX 索引名 ON (列名表 [ASC|DESC])
(2)索引的撤消:
DROP INDEX 索引名
Notice:在各種SQL句法中,創建用CREAT ,刪除都用DROP,改變用alter
3.4.1 數據插入
考核要求:達到“簡單應用”層次
數據插入方式有兩種:(1) 元組值的插入INSERT INTO 基本表名(列名表)
VALUES (元組值)
或
INSERT INTO 基本表名(列名表)
(TABLE(元組值),(元組值),……)
(2) 查詢結果的插入
INSERT INTO 基本表名(列名表)
SELECT 查詢語句
3.4.2 SQL數據刪除考核要求:達到“簡單應用”層次
DELETE FROM 基本表名 [WHERE條件表達式](語義:從基本表中刪除滿足條件表達式的元組)
3.4.3 數據修改考核要求:達到“簡單應用”層次
UPDATE 基本表名SET 列名=值表達式,[列名=值表達式……] [WHERE 條件表達式](語義:修改基本表中滿足條件表達式的那些元組中的列值,需修改的列值在SET子句中指出)
3.4.4 數據修改考核要求:達到“領會”層次
對視圖的查詢(SELECT)操作,和基本表一樣,但是視圖的更新操作受到下列三條規則的限制:
如果視圖是從多個基本表使用聯接操作導出的,則不允許更新。
如果導出的視圖使用了分組和聚合操作,也不允許更新。
如果視圖是從單個基本表使用選擇、投影操作導出的,并且包括了基本表的主鍵或某個候選鍵, 那么這樣的視圖稱為“行列子集視圖”,則可以執行操作。
3.3.1 SELECT語句的基本句法
考核要求:達到“綜合應用”
層次知識點:SELECT-FROM-WHERE句型的應用
(1) SELECT-FROM-WHERE句型
SELECT 列名表(逗號隔開) FROM 基本表或視圖序列 WHERE 條件表達式
Notice:掌握條件表達式中各種運算符的應用。 算術比較運算符=,>,<,<>或!=,<=,>=;
邏輯運算符AND、OR、NOT;
集合成員資格運算符:IN,NOT IN;
謂詞:EXISTS(存在量詞),ALL,SOME,UNIQUE;
聚合函數:(在下面介紹)
(2) SELECT句型使用實例本節內容需要多看例題,多作習題進行掌握。
Notice:嵌套的SELECT語句的用法
(3)聚合函數注意各個函數的含義:
3.3.2 SELECT 語句完整的句法考核要求:達到“綜合應用”層次
知識點:SELECT 語句完整句法的使用
SELECT 列名表(逗號隔開)
FROM 基本表或視圖序列[WHERE 條件表達式] (行條件子句)
[GROUP BY 列名序列] (分組子句)
[HAVING 組條件表達式] (組條件子句)
[ORDER BY列名[ASC|DESC]……] (排序子句)
本節內容需要多看例題,多作習題進行掌握
3.3.3 SELECT語句中的限定
考核要求:達到“領會”層次知識點:種限定的使用目的和方法
(1)SELECT子句中的規定如果要求輸出表格中不允許出現重復元組,則在SELECT后加一DISTINCT
SELECT子句中允許出現+,-,*,/,以及列名,常數的算術表達式
(2) 條件表達式的算術比較操作
WHERE 子句中可以用BETWEEN……AND……來限定一個值的范圍
(3)列和基本表的改名操作
同一個基本表在 SELECT語句中多次引用時可用AS來增加別名
(4)字符串的匹配操作
WHERE子句中字符串匹配用LIKE和兩個通配符,%和下劃線_.
(5)集合的并、交、差操作
查詢結果的結構完全一致時,可將兩個查詢進行并(UNION)交(INTERSECT)差(EXCPT)操作
(6)空值的比較操作
查詢空值操作不是用='null',而是用 IS NULL來測試。
(7)集合的比較操作
集合成員資格比較用 IN/NOT IN集合成員算術比較用元組θSOME/ALL (θ是算術比較運算符)
(8) 導出表的使用
如果在FROM子句中使用了子查詢,可以給子查詢結果起個表名和相應的列名。
(9) 基本表的自然聯接操作
基本表的自然聯接操作是用 NATURAL INNER JOIN來實現的。
2.3.1 元組關系演算
考核要求:達到“領會”和“簡單應用”
層次知識點:元組關系演算的定義及表達式的含義
元組演算表達式的一般形式為:{t|P(t)}
其含義為:這是一個元組集合,其中的每個元組t(t是元組變量)滿足公式P所規定的條件。
理解有關公式和原子公式的定義,對于公式中出現的符號,比如
、、=>、∧、∨、┐
要理解其含義。
Notice:(1)結合例題和習題領會表達式的含義,一定要多做練習。
(2)對于給定的關系計算元組表達式的值。(此部分內容為“簡單應用”)
2.3.2 域關系演算
考核要求:達到“領會”和“簡單應用”
層次知識點:域關系演算的定義及表達式的含義
域演算表達式的一般形式為:{t1……tk|P(t1……,tk)}
其含義為:這是一個域集合,其中每個域變量的取值關系滿足公式P所規定的條件。
理解域公式的寫法Notice:
(1)結合例題和習題領會表達式的含義,一定要多做練習。(熟能生巧)
(2)對于給定的關系計算域表達式的值。(此部分內容為“簡單應用”)
(3)表達式的轉換不用強記,關鍵要從語義上理解。
2.3.3 關系運算的安全性和等價性
考核要求:達到“識記”
層次知識點:安全性和等價性的含義
(1)關系運算的安全性關系代數的運算總是安全性。
關系演算則可能出現無限關系(概念)和無窮驗證(概念)問題。
在數據庫技術中,不產生無限關系和無窮驗證的運算稱為安全運算,相應的表達式稱為安全表達式,所采取的措施稱為安全約束。
約定:運算只對表達式中公式在涉及到的關系的值范圍內操作。
有了這一約定后,關系演算是安全的。
(2)關系運算的等價性并、差、笛卡兒積、投影和選擇是關系代數最基本的操作,并構成了關系代數運算的最小完備集。
已經證明,在這個基礎上,關系代數、安全的元組關系演算、安全的域關系演算 在關系的表達和操作能力上是安全等價的。
2.1.1 二維表格的基本術語
考核要求:達到“識記”
層次知識點:主要是一些基本概念
(1)二維表格 在關系模型中,一張二維表格對應一個關系。
(2)元組(tuple) 表中的一行(即一個記錄),表示一個實體;關系是由元組組成的。
(3)關系:是一個元數為K(K>=1)的元組的集合。 一張二維表格對應一個關系。表中的一行稱為關系的一個元組;表中的一列稱為關系的一個屬性。
在關系模型中,對關系作了下列規范性的限制: 關系中每一個屬性值都是不可分解的;
關系中不允許出現相同的元組(沒有重復元組);
不考慮元組間的順序,即沒有行序;在理論上,屬性間的順序(即列序)也是不存在的;
但在使用時按習慣考慮列的順序。
(4)超鍵(Super Key):在關系中能唯一標識元組的屬性集稱為關系模式的超鍵;
(5)候選鍵(Candidate Key):不含有多余屬性的超鍵稱為候選鍵;
(6)主鍵(Primary Key):用戶選作元組標識的一個候選鍵。
在以上概念中,主鍵一定可作候選鍵,候選鍵一定可作超鍵;反之,則不成立。
比如,在學生表中,如果有“學號”、“姓名”、“出生年月”等字段, 其中學號是唯一的,那么(學號)屬于超鍵,(學號,姓名)的組合也是超鍵。 同時,(學號)是候選鍵,而(學號,姓名)由于含有多余屬性,所以不是候選鍵。 在這三個概念中,主鍵的概念最為重要,它是用戶選作元組標識的一個關鍵字。 如果一個關系中有兩個或兩個以上候選鍵,用戶就選其中之一作為主鍵。
2.1.2 關系模式、關系子模式和存儲模式
考核要求:達到“識記”
層次知識點:三種模式的理解
(1)關系模式:關系模型的定義包括:模式名,屬性名,值域名以及模式的主鍵。它僅僅是對數據特性的描述,不涉及到物理存儲方面的描述。
(2)子模式: 子模式是用戶所用到的那部分數據的描述。除了指出用戶數據外,還應指出模式和子模式之間的對應性。
(3)存儲模式:關系存儲時的基本組織方式是文件,元組是文件中的記錄。
幾個模式的理解(教材30頁的例子):
在教學模型中,有實體類型“學生”,其屬性有學號S#、SNAME、AGE、SEX分別表示學生的學號、姓名、年齡、性別;實體類型“課程”的屬性C#、CNAME、TEACHER分別表示課程號、課程名和任課教師名。學生用S表示,課程用C表示,S和C之間有M:N聯系,聯系類型SC的屬性是GRADE.
關系模式為:
學生關系S (S#、SNAME、AGE、SEX)
課程關系C(C#、CNAME、TEACHER)
學習關系SC(S#、C#、GRADE)
以下則為關系子模式:
成績關系子模式G (S#、SNAME、C#、GRADE,GRADE),它對應的數據來自關系S和SC.
2.1.3 關系模型的三類完整性規則
考核要求:達到“領會”
層次知識點:三類完整性規則的理解
(1)實體完整性規則 要求關系中元組在組成主鍵的屬性上不能有空值。如果出現空值, 那么主鍵值就起不了唯一標識元組的作用。(對關系主鍵的約束)
(2)參照完整性規則 要求外鍵值必須是另一個關系的主鍵的有效值,或者是空值。 (對關系外鍵的約束) 外鍵:(外來關鍵字)將一個關系的主鍵(比如 學生關系S中的S#) 放到另一個關系(比如SC)中,此時稱S#是關系SC的外鍵。
注意事項:
外鍵和相應的主鍵可以不同名,只要定義在相同值于域上即可;
兩個關系可以是同一個關系模式,表示了屬性之間的聯系。
外鍵值是否允許空,應視具體情況而定
假設數據庫有如下關系:
學生關系S (S#、SNAME、AGE、SEX)
課程關系C(C#、CNAME、TEACHER)
學習關系SC(S#、C#、GRADE)
那么(1)S#是關系S的主鍵,因此在關系S中不能為空;(實體完整性規則)
(2)C#是關系C的主鍵,因此在關系C中不能為空;(實體完整性規則)
關系SC中:
S#、C#的組合為主鍵,因此S#、C#不能為空;(實體完整性規則)
S#是來自S的外鍵,因此它必須和關系S中某個元組的S#相同。(參照完整性規則)
C#是來自C的外鍵,因此它必須和關系C中某個元組的C#相同。(參照完整性規則)
(3)用戶定義的完整性規則:這是針對某一具體數據的約束條件,由應用環境決定, 例如,學生的年齡限制為15~30周歲。 用戶定義的完整性規則反映某一具體應用涉及的數據必須滿足的語義要求。 系統提供定義和檢驗這類完整性的機制。
2.1.4 關系模型的形式定義
考核要求:達到“識記”
層次知識點:三個組成部分的了解
關系模型有三個組成部分:
數據結構、數據操作和完整性規則關系模型的的數據結構是關系;
關系模型提供一組完備的高級關系運算(關系代數+關系演算),支持數據庫的各種操作;
關系模型包括三類完整性規則。
2.2.1 關系代數的五個基本操作
考核要求:達到“簡單應用”
層次知識點:五個基本操作的含義和運算應用
(1)并(∪):兩個關系需有相同的關系模式,并的對象是元組,由兩個關系所有元組構成。
RUS≡{t| t∈R ∨t∈S}
(2) 差(-):同樣,兩個關系有相同的模式,R和S的差是由屬于R但不屬于S的元組構成的集合。
R-S≡{t| t∈R ∧t 不屬于S}
(3)笛卡爾積(×):對兩個關系R和S進行操作,產生的關系中元組個數為兩個關系中元組個數之積。
R×S≡{t| t=< tr,ts>∧tr∈R∧ts ∈S}
(4) 投影(σ):對關系進行垂直分割,消去某些列,并重新安排列的順序。
(5) 選擇(π):根據某些條件關系作水平分割,即選擇符合條件的元組。
2.2.2 關系代數的四個組合操作
考核要求:達到“簡單應用”
層次知識點:四個組合操作的含義和運算應用
(1)交(∩):R和S的交是由既屬于R又屬于S的元組構成的集合。
(2)聯接:包括θ(算術比較符)聯接和F(公式)聯接。
選擇R×S中滿足iθ(r+j)或F條件的元組構成的集合;
概念上比較難理解,關鍵理解運算實例等值聯接(θ為等號“=”的聯接)。
(3)自然聯接(RS):在R×S中,選擇R和S公共屬性值均相等的元組,并去掉R×S中重復的公共屬性列。 如果兩個關系沒有公共屬性,則自然聯接就轉化為笛卡爾積。
(4)除法(÷):首先除法的結果中元數為兩個元數的差, R÷S的操作思路如下——把S看作一個塊,如果R中相同屬性集中的元組有相同的塊, 且除去此塊后留下的相應元組均相同,那么可以得到一條元組, 所有這些元組的集合就是除法的結果
對于上述的五個基本操作和四個組合操作,應當從實際運算方面進行理解和運用。
應用舉例
2.2.3 關系代數表達式及應用
考核要求:達到“簡單應用”
層次知識點:關系代數表達式的應用
本節的內容是有關實際應用,應該多看例題,多做習題,必須達到以下要求: 能夠根據給出的關系代數表達式計算關系值,也能夠根據相應查詢要求列出關系表達式。
(1)在列關系表達式時,通常有以下形式:
π……(σ……(R×S))或者π……(σ……(RS))
首先把查詢涉及到的關系取來,執行笛卡爾積或自然聯接操作得到一張大的表格,然后對大表格執行水平分割(選擇)和垂直分割(投影)操作。
(2)當查詢涉及到否定或全部的邏輯時,往往要用到差或除法操作。
關系代數表達式舉例
2.2.4 擴充的關系代數操作
考核要求:達到“識記”
層次知識點:了解“外聯接”和“外部并”的含義
注意:(1)“外聯接”、“左外聯接”、“右外聯接”和“自然連接”的差異。
(2)“外部并”和“并”的差異
聲明:
(一)由于考試政策等各方面情況的不斷調整與變化,本網站所提供的考試信息僅供參考,請以權威部門公布的正式信息為準。
(二)本網站在文章內容來源出處標注為其他平臺的稿件均為轉載稿,免費轉載出于非商業性學習目的,版權歸原作者所有。如您對內容、版權等問題存在異議請與本站聯系,我們會及時進行處理解決。
相關推薦
2022年浙江自考《當代中國政治制度》復習筆記匯總
09-152023年10月浙江自考傳播學概論復習資料:有限效果論
08-30自考輔導資料:2019年10月《美學》知識點-崇高的內涵與特點
09-172023年4月浙江自考外國文學史復習筆記:高爾基
12-262022年浙江自考中國古代文學史(一)第三編第九章復習資料
10-31自考輔導資料:2021年10月《學前教育史》—論幼稚師范教育
06-05自考輔導資料:2019年10月《美學》知識點-優美及優美的內涵與特點
09-172023年4月浙江自考中外教育簡史復習筆記:英國近代教育制度
12-082022年浙江自考心理學復習筆記:情緒情感的功能
11-03自考輔導資料:2021年10月《學前教育史》—雅典的學前教育
06-07