日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

吉林大学数据库系统原理期末复习笔记

發布時間:2024/3/13 windows 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 吉林大学数据库系统原理期末复习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

看一下題型->書上的知識點看完->做原題

2014原題
2015原題

結合老師給的模擬題。

2023題目大同小異的。

視頻總結筆記

第一章 緒論

所有的基本概念在第一章中都有涉獵

第二章\第六章

基本運算
附加的關系代數運算:
擴展的關系代數運算:如何數據更新,聚集函數的操作(統計)

第三章\第四章\第五章 SQL語句

第三章所有都掌握
第四章定位更高級
第五章SQL語句過程化編程
不要求寫函數、觸發器,不針對任何數據庫產品,只了解基本概念就可。

DDL
DML
DCL
SQL與集合運算、空值
聚集函數、having、not exists
嵌套子查詢
視圖、可更新視圖
完整性約束

第七章 數據庫設計、ER模型

ER模型是工具,最終我們要得到的是關系模型。

ER模型設計、關系模型轉換,ER圖畫完整。
題干就是需求分析的結果,設計非常明確。

實體集的轉換要按規則。

第八章 關系數據庫的設計(難點)

和第七章的設計是兩種不同的方式,通過最原始的想法來設計數據庫。
介紹了范式理論,BC范式、3NF。真正實用的標準是第三范式。

BCNF的判定
3NF的判定(NP問題)與分解
無損連接和保持依賴的證明

第九章

關于數據庫應用程序的開發,未講解。給出了應用程序開發的驅動程序。

未詳細介紹部分

第十四章 事務

可串行化調度
沖突可串行化、視圖可串行化

第十五章(2023未考)

并發控制
鎖有兩階段索協議

嚴格兩階段鎖、強兩階段索
死鎖的檢測與恢復

第十六章 恢復系統

恢復算法不作為考試的內容

CSDN學習筆記

ER圖的理解:
使用數字的映射基數圖靠近實體的一邊才是映射關系(該實體對應多少個對方實體), 另外, 在被約束的一方可以使用雙線表示完全參與.
不使用數字則相反, 遠離實體的一邊才是映射關系(該實體對應多少個對方實體).
弱實體集和它所依賴的強實體集之間的聯系集叫標識聯系集,在ER圖中用雙菱形


無損分解和保持依賴
無損分解:分解為多個部分后通過自然連接可以恢復的分解稱為無損連接分解(定義)。R1∩R2是R1或R2的超碼(判斷法)。
保持依賴:1.每一個函數依賴只能映射到它所在分解后的關系中。(充分條件)
如果不滿足條件1,那么還應進行后續判斷:

對F上的每一個α→β使用下面的過程: result:=α; while(result發生變化)dofor each 分解后的Rit=(result∩Ri)+ ∩Riresult=result∪t

這一篇寫的比較好:正則覆蓋、候選碼的一般求法
總結:右部單屬性、左部冗余屬性(去除左部某個屬性之后剩下屬性的閉包可以包含另一個屬性)、冗余依賴、合并相同的左部。

候選碼的求法: 只左, 兩邊, 均無.
只左的全部 ∪ \cup 均無, 求閉包能覆蓋則結束
只左的全部 ∪ \cup 兩邊的 1 1 1個, 求閉包能覆蓋則加入候選碼, 再刪除.
只左的全部 ∪ \cup 兩邊的任意 l a s t _ c n t + 1 last\_cnt + 1 last_cnt+1個, 求閉包能覆蓋則加入候選碼, 之后求的候選碼不能包含它碼.


3NF和BCNF的分解

課本筆記

第一章 引言

數據庫系統的目標、解決的問題:

  • 冗余、不一致
  • 訪問難:需要篩選時
  • 孤立:分布于不同文件中,且可能格式不同
  • 完整性:需要滿足特定的約束
  • 原子性:操作不能分離,要么完成要么不完成
  • 并發訪問異常:一起訪問時
  • 安全性問題:權限不能太大,可控

數據抽象:

  • 物理層:關注怎樣存儲
  • 邏輯層:存儲什么數據,及之間的關系
  • 視圖層:抽象地關注某個部分

實例:特定時刻信息的集合
模式:數據庫的總體設計。XX模式對應XX層的設計。

關系模型、E-R模型、基于對象的模型、半結構化模型

DDL(Definition):域、完整性約束、斷言、授權

DML(Manipulation)

第二章 關系模型介紹

關系:表
元組:表中的一行
屬性:表中的一列
域:屬性允許取值的集合
域是原子的:域中的所有元素是不可再分的單元
空:表示未知或者不存在的狀態

超碼:一個或多個屬性的集合,可以唯一的標識一個元組。超碼并不一定最簡,因為任何超碼的超集也是超碼。(結合候選碼理解)
候選碼:是最小超碼
主碼:設計者選中的,用來區分元組的一個候選碼
外碼:一個關系模式包含的其它模式的主碼
參照關系:包含外碼的一方;被參照關系:另外一方

模式圖:每個關系外,用箭頭從參照關系的外碼屬性指向被參照關系的主碼屬性
模式圖沒有表現出參照完整性的約束。相應地,實體-聯系圖可以表現。

第三章 SQL

基本類型:

  • char(n); varchar(n)
  • int; smallint
  • numeric(p, d):定點數一共p位,小數點右邊d位
  • real; double precision:浮點數、雙精度浮點數
  • float(n):精度至少為n的浮點數

基本模式定義:

  • create table
  • 破壞完整性約束會被標記為錯誤
  • insert into
  • delete from
  • drop table r;delete from r。前者全部刪除,后者保留關系模式r但刪除所有元組。
  • alter table r add A D。關系r中添加屬性A域是D。
  • alter table r drop A。關系r中刪除屬性A。

SQL查詢:

  • select (all)、from、where
  • distinct
  • select還支持加減乘除運算,如select A * 10 from B,并不會導致原表中值的改變
  • and、or、not以及比較運算符

多關系查詢:將所有關系列在from中,where中可指定匹配條件。兩個關系中都存在的屬性用形如關系名.屬性的形式.

通常地,閱讀順序是from->where->select

理解:
from語句定義了一個新關系,該關系為from后所有關系的笛卡爾積。
where語句中的謂詞可用來篩選關系,留下有意義的。

自然連接:兩個關系模式中,相同名稱屬性的取值相同才連接。最后加using (A)表示僅僅將屬性A作為連接篩選標準。

as:重命名屬性或者關系
重命名的原因:

  • 輸出合適的屬性名稱
  • 簡易
  • 同一關系做笛卡爾積

字符串:

  • 單引號表示字符串,字符串內表示單引號用兩個連續的單引號
  • 字符串是大小寫敏感的
  • 模式匹配用like:%任意字串,_一個字符,轉義字符\讓%、_正常顯示

select *表示所有屬性
order by排序, 其后的字段有desc或asc
between and在一定范圍之間包含端點
(a, b) <= (c, d)表示同時小于

集合的運算:
union: 自動去重復(因為是集合), 相同屬性合并, union all才保留所有
intersect: 自動去重復, (因為是集合)交運算
except: 差運算

null:
null的比較運算的結果是unknown, 是true和false之外的第三個邏輯詞
需要注意的是false and unknown = false; true or unknown = true
null = null 會返回unknown, 使用distinct時需注意, 它會保留所有含空值,且除空值屬性外其它屬性相等的元組

聚集函數:

  • avg
  • min
  • max
  • sum
  • count
  • group by: 沒有group by就一個元組一組
    select后沒有被聚集的屬性只能是group by后的屬性
  • having
    having是對分組的篩選, having子句中的謂詞在形成分組后才起作用, 同樣地, having后沒有被聚集的屬性只能是group by后的屬性
    除count外所有聚集函數忽略輸入的null, 如果輸入全為空值null, 那么輸入值的集合為空集
    空集的count運算值為0, 其它聚集函數返回空值

嵌套子查詢:

  • in, not in
  • where A > some(select A from…), 同理, some可替換為all
  • exists: 空關系測試, 返回值是true或者false
    相關子查詢: 內層的嵌套使用了外層的關系名稱, 進而需要注意的是所定義關系的作用域的問題(可類比編程語言的變量的作用域)

沒有contains運算符, A contains B 可用not exists(B except A)表示

  • unique: 查詢結果是否有重復的元組, 可通過1 > select count…實現等價替換
    盡管一個元組有很多副本, 只要一個元組含null, unique的測試結果可能為真

  • lateral: 可以使from中的相關變量被與之同級的嵌套循環使用

  • with: 提供定義臨時關系的方法with max_budget(value) as (select max(budget) from department) select ...
    (詳細的例子參考教材P53)

標量子查詢: 若某一查詢只返回單個屬性和單個元組, 那么該查詢可以放在返回單個值的表達式能夠出現的任何地方

delete在使用時需要注意的是刪除條件where的謂詞, 可能隨著刪除出現改變
insert在使用時可能出現無限插入的問題, 原因是select選擇的元組剛好被再次插入到了原來的關系中, 同時, 沒有主碼約束

insert into-values
update-set
使用case消除先后順序的影響:

update instructor set salary = casewhen salary <= 100000 then salary * 1.05else salary * 1.03end

第四章 中級SQL

join-on: 比join-using能設置更通用的謂詞

(左、右、全)外連接:保留部分、全部連接結果

左外連接示例:
1. 先進行內連接
2. 對于左邊的每一個元組, 如果未與右邊的任何一個元組匹配, 則向左外連接的結果表中加入一個新元組, 新元組從左側關系中得到的屬性為未匹配的元組的屬性, 其它屬性皆為空

on和where的理解:
外連接實質是先進行內連接, 然后為那些對內連接沒有貢獻的元組補上空值并加入結果, 補上空值并加入結果在on篩選之后, 在where之前

所有連接:

連接類型
inner join
left outer join
right outer join
full outer join
連接條件
natural
on
using (A, B, C)

視圖create view <name> as select...: 在需要時才被創建, 通過計算查詢結果得出的

物化視圖: 定義視圖的實際關系發生改變, 視圖也跟著改變, 方式:
1. 關系變, 視圖馬上變
2. 允許視圖過時, 周期性地更新視圖

視圖可更新的條件:
1. from只包含一個關系
2. select不包含表達式, 聚集, 或者distinct
3. 沒有出現在select中的屬性可以為null
4. 查詢不能有group, having
上述限制不是完整的, 因為即使滿足以上所有, 如果插入的元組仍然不滿足最初選擇條件, 則不會出現在視圖中

  • 事務: 查詢或更新語句的序列

    • 提交: 將當前SQL語句所做更新持久保存
    • 回滾: 撤銷當前事務的SQL語句對數據庫的更新
  • 約束

    • not null
    • unique
    • check
    • 參照完整性 foreign key (<name>) reference <name>
      • on delete/update cascade 刪除/更新外鍵所在元組時, 級聯
  • 斷言create assertion <name> check ... : 上述約束是斷言的特殊形式

  • date/time/timestamp
    time和timestamp可以含小數

  • default

  • index

  • blob/clob: binary/char large object

  • 授權grant <權限: select/update等等> on <關系> to <用戶>; 收回權限用revoke

  • 角色create role <name>

第五章 高級SQL

  • 觸發器create trigger <name> after <op> ...

第六章 形式化關系查詢語言

σ \sigma σ: σ a ( B ) \sigma_a(B) σa?(B)在關系B中選擇滿足條件a的元組
Π \Pi Π: Π a ( B ) \Pi_a(B) Πa?(B)在關系B中選擇屬性a投影
∧ ∨ ? \land\lor\lnot ?: and/or/not
∪ ∩ \cup\cap : 并/交, 需要保證集合的相容性
集合交運算可以被集合差運算替代: a ∩ b = a ? ( a ? b ) a\cap{b} = a - (a - b) ab=a?(a?b)

  • 相容:
  • 屬性數目相等
  • 兩者第 i i i個屬性的域相同. i ∈ min ? ( 關系屬性數目 ) i\in{\min(關系屬性數目}) imin(關系屬性數目)

? - ?: 集合差運算
× \times ×: 笛卡爾積
ρ \rho ρ: ρ a ( b , c ) ( r e l a ) \rho_{a(b,c)}(rela) ρa(b,c)?(rela)關系rela更名為a, 屬性按序為b, c

運用兩個同樣的關系的時候需要更名, 例如, 求出大學里最高工資的導師:
Π s a l a r y ( i n s t r u c t o r ) ? Π i n s t r u c t o r . s a l a r y σ i n s t r u c t o r . s a l a r y < a . s a l a r y ( i n s t r u c t o r × ρ a ( i n s t r u c t o r ) ) \Pi_{salary}{(instructor)} - \Pi_{instructor.salary}\sigma_{instructor.salary < a.salary}{(instructor\times{\rho_a(instructor)}}) Πsalary?(instructor)?Πinstructor.salary?σinstructor.salary<a.salary?(instructor×ρa?(instructor))

? \Join ?: 自然連接運算
← \gets : 賦值運算
? ? \ltimes\rtimes ??: 左右外連接, 全外連接在自然連接左右兩側加上下雙橫線

廣義投影允許在投影的下標下面進行加減乘除運算

a , b , c g f ( p a r a 1 ) , y ( p a r a 2 ) ( r e l a 1 , r e l a 2 ) _{a, b, c}g_{f(para1), y(para2)}(rela1, rela2) a,b,c?gf(para1),y(para2)?(rela1,rela2): d e p a r t _ n a m e g s u m ( s a l a r y ) ( i n s t r u c t o r ) _{depart\_name}g_{sum(salary)}(instructor) depart_name?gsum(salary)?(instructor)聚集函數, 求出每個系的總工資
count-distinct(): 用來去重計數的聚集函數

  • 閱讀順序及關系代數與SQL語句的關系
  • f r o m a , b , c from\ a, b, c from?a,b,c = σ w h a t e v e r ( a , b , c ) \sigma_{whatever}{(a, b, c)} σwhatever?(a,b,c)
  • w h e r e P where\ P where?P = σ P ( w h a t e v e r ) \sigma_{P}(whatever) σP?(whatever)
  • s e l e c t a , b , c select\ a, b, c select?a,b,c = Π a , b , c ( w h a t e v e r ) \Pi_{a, b, c}(whatever) Πa,b,c?(whatever)

利用元組進行關系查詢: { t ∣ P ( t ) } \{t | P(t)\} {tP(t)}
{ t ∣ P ( t ) } \{t | P(t)\} {tP(t)}: 的域是P中顯式出現的值以及名稱出現在P中的那些關系的所有值的集合
域關系演算: 把元組細分

第七章數據庫是合集和E-R模型

  • 設計階段:

    • 概念設計
    • 功能需求規格說明
    • 邏輯設計
    • 物理設計
  • 實體聯系模型

    • 實體
    • 實體集: 具有相同性質 (屬性) 實體的集合
    • 聯系
    • 聯系集: n ≥ 2 個 n\ge2個 n2實體集上的數學關系
  • 屬性

    • 域/值集: 該屬性可取值的集合
    • 簡單或復合屬性
    • 單值或多值屬性
    • 派生屬性: 可以推導出來的
  • 約束

    • 映射基數: 一個實體通過一個聯系集能關聯的實體個數
      • 一對一
      • 一對多
      • 多對一
      • 多對多
        理解: 映射的另一邊都是至多
    • 全部參與
    • 部分參與
  • 聯系集的主碼:

    • 多對多: 兩者主碼并
    • 多對一: 多那一方的主碼
    • 一對一: 任選一方的主碼
  • 刪除冗余:
    結合CSDN資料看

使用數字的映射基數圖靠近實體的一邊才是映射關系(該實體對應多少個對方實體), 另外, 在被約束的一方可以使用雙線表示完全參與.
不使用數字則相反, 遠離實體的一邊才是映射關系(該實體對應多少個對方實體).

  • 弱實體集:沒有足夠屬性形成主碼. 弱實體集被標識實體集擁有. 聯系成為標識性聯系.

特化: 由一般到特殊, 用空心箭頭標識, 表示is a. 對某個關系通過定制屬性, 進而再進行分類.
概化: 由特殊到一般, 是特化的逆過程.
屬性繼承

概化上的約束:

  • 條件定義的: 用具體條件定義
  • 用戶定義的: 由用戶指派
  • 不相交: 上層實體至多屬于一個下層實體
  • 重疊: 可不相交相對
  • 全部概化/特化: 高層一定屬于某一個下層
  • 部分概化/特化: 和全部相對

概化的關系模式:

  • 概化的實體含高層的主碼, 以及自己的特殊屬性
  • 如果概化是不相交(相交則可能不必要地存儲多次)且完全的, 可以不為高層創建模式, 每個下層實體含全部屬性
  • 第八章

    無損分解、有損分解:分解后,再自然連接能不能還原.

    1NF: 關系R中所有屬性的域都是原子的.

    依賴 → \rarr : 一個左邊值只能對應一個右邊

    閉包: 由一個依賴能推導出的所有依賴.

    BCNF: 所有的非平凡依賴左邊都是的超碼.

    將不是BCNF的模式分解為BCNF:
    如果 a → b a\rarr{b} ab是非平凡的, 且 a a a不是原關系 R R R的超碼, 分解為如下兩個模式:

    • a ∪ b a\cup{b} ab
    • R ? ( β ? a ) R - (\beta - a) R?(β?a)

    通常, 對BCNF的分解較少是保持依賴(分解后的依賴全部在一個模式中)的.

    進而, 比BCNF要求弱的3NF可以滿足要求.

    3NF: a → b a\rarr{b} ab依賴平凡, 或左邊是模式的超碼, 或 b ? a ? 候選碼 b - a \sube 候選碼 b?a?候選碼.

    閉包

    自反/增補/傳遞
    合并/分解/偽傳遞 :證明過程細看。

    無關屬性: 去除無關屬性的方法參考CSDN.

    正則覆蓋: 1. 不含無關屬性. 2. 左部唯一.

    無損分解、有損分解:分解后,再自然連接能不能還原.

    保持依賴: 分解后的關系都在一個模式中.

    多值依賴 a → → b a\rarr\rarr{b} a→→b: 表示 a a a b b b之間的聯系獨立于 a a a R ? a R - a R?a之間的聯系.

    • a → b ? a → → b a\rarr{b}\implies{a\rarr\rarr{b}} ab?a→→b
    • a → → b ? a → → R ? a ? b {a\rarr\rarr{b}}\implies{a\rarr\rarr{R - a - b}} a→→b?a→→R?a?b

    4NF: a → → b a\rarr\rarr{b} a→→b平凡或者 a a a R R R的超碼. 它一定是BCNF.

    第十四章 事務

    原子性: "全或無"的特性.
    隔離性: 數據庫具有確保事務正常執行不被干擾的特性.
    持久性: 崩潰后操作也必須是持久的.
    一致性: 隔離執行事務時, 保持數據庫的一致性.

    沖突等價: 經非沖突的指令交換.

    沖突可串行化: 調度與一個串行調度等價.

    優先圖無環沖突可串行化.

    視圖等價: 注意Read Write的對象。

    總結

    以上是生活随笔為你收集整理的吉林大学数据库系统原理期末复习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。