操作系統(tǒng)+MySQL期末筆記小整理

操作系統(tǒng):
存儲(chǔ)類專題:www.cnblogs.com/nolca/p/17398949.html
零散補(bǔ)充:www.cnblogs.com/nolca/p/17372745.html
內(nèi)存分配可按位、按字節(jié)、按字編址,比如物理地址0b0001,可代表1bit內(nèi)存塊,1Byte內(nèi)存塊,或4KB內(nèi)存塊

頁類似物理地址,段類似邏輯地址


死鎖定理:
若有p個(gè)進(jìn)程,都需要同一個(gè)資源n個(gè),則當(dāng)資源總數(shù)≥1+p*(n-1)時(shí)不會(huì)發(fā)生死鎖
解除死鎖:
第一步:先看系統(tǒng)還剩下多少資源沒分配,再看有哪些進(jìn)程是不阻塞(“不阻塞”即:系統(tǒng)有足夠的空閑資源分配給它)的
第二步:把不阻塞的進(jìn)程的所有邊都去掉,形成一個(gè)孤立的點(diǎn),再把系統(tǒng)分配給這個(gè)進(jìn)程的資源回收回來
第三步:看剩下的進(jìn)程有哪些是不阻塞的,然后又把它們逐個(gè)變成孤立的點(diǎn)。
第四步:最后,所有的資源和進(jìn)程都變成孤立的點(diǎn)。這樣的圖就叫做“可完全簡化”。blog.csdn.net/qq_45812180/article/details/118024236

先分配,再額外申請,p1共需要被分配2個(gè)資源
缺頁訪問2號頁,進(jìn)程P若要繼續(xù)訪問,必須往下clock置換掉60H頁框
1 類(A=0,M=0):表示該頁最近既未被訪問,又未被修改,是最佳淘汰頁。
2 類(A=0,M=1):表示該頁最近未被訪問,但已被修改,并不是很好的淘汰頁。
3 類(A=1,M=0):表示該頁最近已被訪問,但未被修改,該頁有可能再被訪問。
4 類(A=1,M=1):表示該頁最近已被訪問且被修改,該頁可能再被訪問。
https://zhuanlan.zhihu.com/p/533159124
MySQL:
各種?join: zhuanlan.zhihu.com/p/59656673
爛尾但還行:www.cnblogs.com/nolca/p/17350659.html
靜態(tài)語句create table之類,不能使用curdate(), now(),只能用時(shí)間戳timestamp
動(dòng)態(tài)語句insert/updaste...則可以
列改名:新建add→復(fù)制update→刪除drop
alter table 表名 change 舊列名 新列名 類型
drop table 刪表結(jié)構(gòu)(主鍵)+數(shù)據(jù)
delete table where... 刪表數(shù)據(jù)
建索引:查詢/連接/聚集/聚簇(order/group by.../distinct) primary key
'admin'@'%'
'admin'@'主機(jī)名'
僅僅提交更新部分的數(shù)據(jù)而不是全部數(shù)據(jù)違反了數(shù)據(jù)庫的(原子性)規(guī)則
若系統(tǒng)在運(yùn)行過程中,由于某種原因,造成系統(tǒng)停止運(yùn)行,致使事務(wù)在執(zhí)行過程中以非控制方式終止,這時(shí)內(nèi)存中的信息丟失,而存儲(chǔ)在外存上數(shù)據(jù)未受影響,這種情況稱為 系統(tǒng)故障
TCSEC(TDI)將系統(tǒng)劃分為 4組 7個(gè)等級
第一范式:列不能再分
第二范式:建立在第一范式基礎(chǔ)上,消除部分依賴
第三范式:建立在第二范式基礎(chǔ)上,消除傳遞依賴。
函數(shù)依賴:
拆右消消左并左
依賴集閉包:與函數(shù)依賴相反,所有子關(guān) 系都包含在內(nèi)
函數(shù)依賴≠分解
最好的分解:
無損分解:A∩B→A-B(或B-A)存在于函數(shù)依賴F中;看視頻
保持函數(shù)依賴FuncDependency:所有 函數(shù)依賴 都能夠投影到 分解 上
{A→B,B→C}投影到分解{AB,BC}√ ? ?{ABC,...}√ ? ? ? ? {AC}×
兩段封鎖協(xié)議→充分條件→可串行化調(diào)度
可能死鎖
①二級封鎖:寫排他鎖,讀共享鎖;(擴(kuò)展)
②釋放鎖后(收縮,只減少鎖,不再加鎖)
讀寫分離
并發(fā)訪問、并發(fā)查詢
lock tables account write;
unlock tables;
where...lock in share mode;共享鎖
where...for update; 排他鎖
select from where group by having order by asc
on:on先過濾,執(zhí)行查詢生成臨時(shí)表
where:作用于表和視圖
having:作用于組,在分組和聚集之后選取分組的行,可以篩選成組后的數(shù)據(jù)
Π()投影select *→σ()選擇where/on→x乘積CROSS JOIN→∞連接(left) join/除→交INTERSECT→并UNION/差EXCEPT,if null,A where not exists B, where f(A) not in f(B)
執(zhí)行效率:if null>not exists>not in
full: ?from A where not exists (B) /from A where f(僅一列) not in (select f() from B)
select distinct
unique主鍵
更名AS,去重distinct
關(guān)系運(yùn)算
除法:選全部課程——f,g(A) ÷g(A),g()為課程列
關(guān)系除法A÷B——Πf(A)-Πf( Πf(A)xB-A ),原理:zhuanlan.zhihu.com/p/269104362
實(shí)現(xiàn):blog.csdn.net/weixin_42217030/article/details/83317634
f()表一個(gè)列名
create temporary table Tfg(A) (select distinct f(),g() from A);
create temporary table 笛卡爾積 (select * from Tfg(A),B);
select distinct f(),g() from 笛卡爾積 where not exists (select * from A where 笛卡爾積.f() = f() and 笛卡爾積.g()= g());
簡記:create temp T(A) (d f(A),g(A)) ,T積 (T(A),B); select distinct f(T積),g(T積) - A{ f(A)=f(T積),g(A)=g(T積) } ;
set @local_var
prepare tmp from @local_var
execute tmp
deallocate prepare tmp
delimiter $$
drop function if exitsts nolc_add$$
create function nolc_add(a int, b int)
returns int
begin
return a+b;
end$$
delimiter ;
abc: LOOP
;
if exp1 then
iterate abc;
else
leave abc;
end if;
end LOOP;
代碼經(jīng)驗(yàn)寫法
建議直接去博客看文字代碼,這里只貼圖
