三级数据库复习笔记
前言:這是我今年復習三級時自己做的筆記。為了加深記憶,基本上是純手打。但是到最后幾天的時候因為時間緊迫就主要是開始刷題而忘記了做筆記。所以內容不全,但是又懶得補了。。還有幾個漏了的。。但是現在是真的不想再碰數據庫了。。刷題刷的惡心。。
1.數據庫三級模式:外模式、概念模式、內模式,提高數據庫的邏輯獨立性和物理邏輯性
分別對應用戶級、概念級、物理級。這三級又分別對應用戶或應用程序員,面向建立和維護數據庫人員,面向系統程序員
外模式又稱子模式或用戶模式,概念模式又稱邏輯模式,內模式又稱存儲模式
分布式數據庫中用戶模式是概念模式的一個子集
數據模式描述語言:DDL
二級映像:外模式-模式映像;提供邏輯獨立性
? 模式-內模式映像;提供數據獨立性
2.B/S結構:瀏覽器/服務器模式,基于c/s結構(客戶端/瀏覽器結構)
3.按照規范的設計方法,一個完整的數據庫設計一般分為以下六個階段:
⑴需求分析:分析用戶的需求,包括數據、功能和性能需求;
⑵概念結構設計:主要采用E-R模型進行設計,包括畫E-R圖;
⑶邏輯結構設計:通過將E-R圖轉換成表,實現從E-R模型到關系模型的轉換;
⑷數據庫物理設計:主要是為所設計的數據庫選擇合適的存儲結構和存取路徑;
⑸數據庫的實施:包括編程、測試和試運行;會將用戶原有數據按照新的數據結構導入到新系統中。
⑹數據庫運行與維護:系統的運行與數據庫的日常維護。
4.表示屬性的值不能為重復且不能為空。
一個屬性的值必須屬于唯一的域,屬性一般用名詞或名詞短語命名
*5.要求組合的屬性值不能有重復值可以使用unique(地址1,地址2)
*6.create index;
*7.check約束和觸發器可以實現用戶定義的完整性。如要求表中銷售價格調整為進價的1.1倍
check約束的用法:
8.
索引分為兩大類:有序索引和散列索引
9.數據備份:完整數據庫備份,差異數據庫備份,文件備份,差異文件備份,在以上被封方法中,在備份完成之后必須再對日志進行備份的是文件備份(差異文件備份);
10.系統故障不是介質故障,人為破壞也不是系統故障,系統故障是指系統被攻擊,強行關機,斷電等。
11.分布式數據庫:分布式數據庫站點通信的代價是節點分片間傳出代價。分布式數據庫中主要透明性是分片透明性,分布式數據庫與分布式計算機不同。不共同處理數據。但并行數據庫共同處理數據
數據分片類型:
1.水平分片,2.垂直分片,3.導出分片,4.混合分片
數據分配方式
1.集中式,2.分割式,3.全復制式,4.混合式(混合分割式和全復制式)
分布式數據庫中數據分布策略可以從數據分片和數據分配兩個角度來考慮,一般先進性數據分片,在進行數據分配。
數據水平分片以便重構關系,數據庫垂直分片以便通過連接方法恢復關系
分布式數據庫的主要目的是實現場地自治和數據全局透明共享。
分布透明性:分片透明性、位置透明性、局部映像透明性
分片頭民刑是最高級別的透明性,位于全局概念模式與分片模式之間。局部數據模型透明性位于分配模式與局部概念模式之間。
分布式數據庫系統由局部數據庫管理系統、全局數據庫管理系統GDBMS、全局數據字典、通信管理四部分組成。
*12.并行數據庫
并行數據庫系統的目標是高性能(High Performance)和高可用性(High Availability),通過多個處理節點并行執行數據庫任務,提高整個數據庫系統的性能和可用性。
并型數據庫服務器服務器分為兩種結構;完全共享資源結構、完全不共享資源結構;頂層是無共享結構,底層是共享內存或共享磁盤結構。
具有很高的課擴展性,適合于oltp應用。通過提高負載均衡的方法來提高數據庫系統的業務吞吐率。
13.數據庫備份方法:
1完整數據庫備份(整個復制),2.差異數據庫備份(增量備份),3.文件備份,4.差異文件備份。
14.候選碼是唯一能決定一個元祖的屬性組,一個關系中可以有多個屬性組,候選碼簡稱為碼,選定其中一個碼作為主碼
=======================第二套========================
1.存儲管理器負責檢查用戶是否具有數據訪問權限,以實物方式管理用戶對數據的訪問,以確保數據庫并發訪問的正確性。查詢管理器會為編譯好的查詢語句生成執行計劃,并根據執行計劃訪問相關數據。
2.幾種整形的存儲范圍,1.tinyint:0-255,2.smallint:-32761到32761;3.mediumint:從-8388608到8388608,4.int:-214783648到214783648,5.bigint:最大范圍,正負922293782584856646
3.SQLSERVER系統數據庫分為master(系統信息)、model(創建數據庫的模板)、msdb(sql的實例信息存儲在代理服務數據庫)\tempdb(臨時數據庫)
4.聲明主鍵:方法一:工作編號 int primary key,
? ? 方法二:工作編號 int primary key(工作編號),
5.check的使用:只約束一列的話可以放在那列后,
但如果<b>約束條件<b>中涉及兩列或更多,則為對整個數據表的約束,放在表的最后面;
6.對master\model\msdb實行修改后立即備份,對用戶數據庫周期性備份,對tempdb不備份
7.db_writer只有寫權限,包括插入更改刪除,但是不能查看,查看是讀權限。
8.鎖是一種特殊的二元信號量,用來控制多個并發事務對共享資源的使用。
? 數據庫管理系統采用先來先服務的方式防止出現活鎖現象,檢測到死鎖后,采用撤銷死鎖事務的方式解除死鎖。
9.主索引、輔索引、位圖索引
10.數據庫還原備份
backup database MyDatabase to disk='D:\MyDatabase.bak' --備份
restore database MyDatabase from disk='D:\MyDatabase.bak' --還原
在還原非最后一個日志時,都必須加上norecovery來使數據庫處于恢復狀態,禁止對數據庫的訪問,避免產生新的數據導致之后不能繼續還原,不過在還原最后一個日志文件時不能加這個。
11.對master數據庫進行備份只能完整備份,而不能進行其他備份
12.結構圖包括用例圖、類圖、組件圖、對象圖和部署圖
uml中,用于表達一系列的對象、對象之間的聯系以及對詳見發送和接收消息的圖是通信圖(協作圖)
部署圖又叫配置圖,描述系統中軟件和硬件的物理配置情況和系統體系結構
13.常用的信息系統需求分析建模方法有DFD、IDEFO、UML三種
DFD建模方法的核心是數據流,也稱為過程建模和功能建模方法
Idefo是結構化方法的典型代表,DFD也是結構化,uml結構化、動態、圖形化,面向對象
**************************應用題**************************
14.數據庫管理系統提供了數據定義語言(DDL),用于定義各種數據對象。數據定義語言經DDL編譯器變異后,各種對象的描述信息存放在數據庫的數據字典中。數據字典通常包括數據項、數據結構、數據流、數據存儲和處理過程5個部分。
15.數據模型通常由數據結構、數據操作和完整性約束三部分構成。(數據模型三要素)
16.數據庫的選擇、投影、連接、除運算;
選擇:從表中選出某些行
投影:從表中選出某些列
連接:
連接分為內連接 select a.*,b.* from a inner join b on a.id=b.pid、外連接(左外、右外、完整外連接)
內連接:內連接使用比較運算符根據每個表共有的列的值匹配兩個表中的行,不匹配的則不顯示
左外連接:Left join 或者left outer join,select a.*,b* from a left (outer) jin b on a.id=b.pid;
右外連接:和左外連接類似
完整外連接:full join或full outer join,返回左表和右表的所有行。selecct a.*,b.* from a full join on a.od=b.pid;
17.完整性約束包括實體完整性、參照完整性、用戶自定義完整性
18.取前n行元祖使用top n (with ties-也顯示和最后一行并列的行);一般與order by 結合使用;(asc/desc)
19.unique約束允許出現空值但不允許出現重復值
20.在數據庫中(SQL SERVER2008,不知道其他的是不是)中,數據存儲和讀取以數據頁為單位,每個數據頁為8kb(8060字節),128頁為1mb;每頁開頭是96字節的表頭。假設有10000行記錄,每行記錄占用4031字節,那么一頁就存儲不下兩行,所以一頁只能存儲一行,所以存儲10000個數據頁,每個數據頁為8kb,因此總數據量為80000kb,也就是約為8mb空間,空間利用率為4031字節*10000行=4Mb,所以空間利用率大約為50%;
21.在SQL SERVER2008中,Exec sp_addSRVROLemember是賦予登錄賬戶權限之意,在后面更上角色如dbcreator(創建、修改、刪除和還原數據庫),sysadmin(在SQL中進行任何活動),具有最高權限。
22.數據庫管理系統一般通過周期性檢查事務等待圖來實現死鎖檢測;
23.并發操作帶來的數據不一致性主要包括丟失修改、不可重復讀和讀"臟"數據,產生上述三類數據的不一致性主要原因就是并發操作破壞了事務的隔離性。
25.封鎖協議
三級封鎖協議
26.事務
1.事物的定義
2.事物的4個特性(ACID)原子性、一致性、隔離性、持續性
3.事物的執行:Begin transactiion,commit,rollback;
27.數據庫恢復
故障種類:1.事務內部的故障(需要日志文件),2.系統故障(需要日志),3.介質故障、4.計算機病毒
系統故障:斷電重啟、除磁盤外的硬件故障、操作系統故障、DBMS代碼錯誤
恢復技術:1.數據轉儲(backup,后備副本、后援副本) 2.登記日志文件
數據轉儲分為1.靜態轉儲(無運行事務時整個備份,可以建立日志文件,當數據庫毀壞后可以載入后備副本,然后用日志文件來恢復數據庫,也可以不建立,只不過就只能恢復到轉儲時的狀態),2.動態轉儲(轉儲時仍然可以運行事務,導致轉儲完成的數據可能過時,所以必須要建立日志文件,記錄轉儲期間的事務,然后用日志事件更新數據庫到正確一致性狀態)。在轉儲的分類下,又分為海量轉儲,增量轉儲,因此數據轉儲方法可以分為動態海量轉儲、動態增量轉儲、靜態海量轉儲、靜態增量轉儲。海量轉儲是指每次轉儲全部數據庫,增量轉儲是指每次之轉出上一次更新過的數據。海量轉儲得到的數據庫稱為后備副本。
登記日志文件的原則:1.登記次序嚴格按照時間順序
? ? 2.必須先寫日志,后寫數據庫
事務故障恢復和系統故障恢復必須用日志文件。在動態轉儲中必須建立日志文件
恢復策略
1.事務故障的恢復:系統自動完成(RollBack),系統反向掃描日志文件,并撤銷之前的執行,直到遇到事務開始標志結束,是針對當前的單個事務的事務恢復;
2.系統故障的恢復:系統自動完成,從頭開始讀取日志,先處理未完成事務隊列(撤銷,反向掃描),再處理已完成事務隊列(正向掃描)。
3.介質故障的恢復:先載入最近的后備副本,如果是動態轉儲的,則需要轉儲開始時的日志,然后用恢復系統故障的恢復到一致性狀態,靜態則不需要。然后再載入轉儲完成時的日志,正向掃描,重做所有已完成的事務。
具有檢查點的恢復技術
1.檢查點之前完成的事務不處理
2.檢查點后且在故障前完成的事務進行重做,因為可能還未寫入數據就故障了
3.故障點后還未完成的事務進行undo
28.數據倉庫是一個面向主題的、集成的、非易失的、且隨時間變化的數據集合;
29.uml類圖,虛線空心三角表示接口,實現空心三角表示繼承
30.sql中case、when語句,如果是簡單賦值則
case sex
when '1' then '男'
when '2' then '女'
else '其他'
END
? ?如果是條件復雜或包含判斷式等,則
case
when grade beween 900 and 100 then '優'
when grade between 80 and 89 then '良'
else '不及格'
end
update? employee
set? ? ? ? ?e_wage =
case
when? ?job_level = '1'? ? then e_wage*1.97
when? ?job_level = '2'? ?then e_wage*1.07
when? ?job_level = '3'? ?then e_wage*1.06
else? ? ?e_wage*1.05
end
31.sql自定義函數
create function dbo.myfunc(@sno char(10))
returns int as
begin
return (select)
end
32.sql架構:架構是一些數據庫對象的集合,相當于數據庫對象的容器,一個用戶只能擁有(對應)1個架構,但1個架構可以被多個用戶共享。
33.sql servr agent是一個任務規劃器和警報管理器,幫助任務自動運行(SQL SEVER 代理(mssqlserver))
34.數據庫文件,數據庫的數據文件和日志文件最好分別存放在不同的物理磁盤上,用戶數據庫中包含很多系統信息,這些系統信息必須存儲在主要數據文件中,數據庫的主要數據文件必須存放在primary文件組中。
35.數據庫管理員監控數據庫不負責網絡情況額用戶發送的每條sql語句
36.數據庫性能優化:1.增加派生性冗余列可以降低查詢過程中的計算量
? ?2.增加榮譽列可以減少查詢過程中的連接操作
? ?3.適當降低關系模式的規范化程度,可以減少查詢過程中的join操作
? ?4.當一個表的數據量超過一定規模時,可以愛采用分割表的方法提高效率
37.OLTP,OLTP即聯機事務處理,就是我們經常說的關系數據庫,意即記錄即時的增、刪、改、查,就是我們經常應用的東西,這是數據庫的基礎;
OLAP,OLAP即聯機分析處理,是數據倉庫的核心部心,所謂數據倉庫是對于大量已經由OLTP形成的數據的一種分析型的數據庫,用于處理商業智能、決策支持等重要的決策信息;數據倉庫是在數據庫應用到一定程序之后而對歷史數據的加工與分析;是處理兩種不同用途的工具而已。
38.ODBC:開放數據庫互連
39.數據倉庫元數據:對數據的描述,如數據字典,數據表結構說明文檔。
40.數據庫拆分
水平拆分、垂直拆分
水平拆分后需要使用并操作,垂直拆分后需要使用連接操作
41.數據挖掘
42.在olap的實現方式中,以多維數組作為存儲結構的被稱作MLOAP
43.對數據庫系統的監控分為手動監控機制和自動監控機制
=====================第5套===================
1.數據庫應用系統設計包括4個層次,表示層,業務邏輯層,數據訪問層,數據持久層(物理設計方面,包含索引設計)
2.在信息系統的需求分析中,目前廣為使用的結構化分析與功能建模方法主要有DFD、IDEFO等。其中DFD建模方法也被稱為過程建模和功能建模方法,其核心是數據流。
3.數據庫中<>是不等號,union是并集,except是差集,intersect是交集
except是指在第一個集合中存在,但是不存在于第二個集合中的數據
4.創建、調用存儲過程
5.觸發器,用for關鍵字定義的觸發器為后觸發型觸發器。inserted表用于存儲insert和upadate語句所影響行的新值得副本。delete用于存儲delete和update語句影響的舊值的副本。在update后,會產生inserted和deleted表,并分別存入修改后的值和修改前的值
6.什么是索引視圖
***********************重要知識點***********************
一、并發控制:
丟失修改、不可重復讀、讀“臟”數據是為保證事務的隔離性引起的;
鎖:x鎖和s鎖,加x鎖時不能加任何鎖,加s鎖時只能加s鎖
三級封鎖協議:一級封鎖:事務要加x鎖,解決丟失修改問題
? ? ? 二級封鎖:讀取數據時要加s鎖,讀取完后就可釋放,解決丟失修改和讀“臟”數據
? ? ? 三級封鎖:讀數據時要加s鎖,事務完成后在解鎖,解決丟失修改、不可重復讀、讀“臟”數據問題
活鎖:一個事務被插隊導致永遠等待,解決辦法是事務先來先處理
死鎖:一次封鎖法(封鎖所有要用到的數據)
順序封鎖法(預先規定封鎖順序)
將大事務切分成若干小事務
使用綁定連接
死鎖解決辦法:撤銷死鎖事務
并發調度的可串行性:可串行性是并發事務正確調度的準則。
兩端鎖協議:獲得封鎖(申請鎖但是不能釋放任何鎖)和釋放封鎖(釋放鎖但是不能獲得任何鎖)
*沖突可串行化
二、范式
1NF:所有屬性不可再分
2NF:非主屬性必須完全依賴于碼
3NF: 非主屬性不傳遞依賴于碼(屬性不依賴與其他非主屬性)
三、SQLSEVER自定義函數
三種類型:標量函數,內嵌表值函數、多聲明表值函數、
創建標量函數
create function dbo.function_1(@Sex varchar(10)='男')
returns decimal
as
begin
declare @tmpresult?
select @tmpresult=select sage from Student where ssex=@Sex
return @tmpresult
End
創建內嵌值函數
create function dbo.function_2(@Sex vatchar(10)='男')
returns table//只能返回table
as
return(select * from Student where ssex=@Sex)
創建多聲明表值函數
create function dbo.function_3(@Sex varchar(10)='男')
returns @table1 table(
sno varchar(20) primary key,
grade varchar(4))
as
begin
declare @gradex2
select @gradex2=grade from Student where ssex=@Sex
insert into @table1 values ('001',@gradex2)
return @table1
End
四、調優數據庫
1.表結構優化,重新優化數據庫設計結構,數據庫邏輯設計的規范化;射擊主鍵和外鍵,射擊合適大小的字段。
2.硬件優化,增大硬盤,將硬盤做成RAID5,增加服務器個數,擴大服務器內存。
3.索引優化:對經常作為條件查詢的列射擊索引,查詢警察用到的列上建立非聚簇索引,在頻繁進行范圍查詢、排序、分組的列上建立聚簇索引,對于有頻繁進行插入、刪除的表不要建立過多索引。
4.采用師徒,合理使用師徒和分區師徒,在需要更新和刪除不多、查詢操作頻繁的表上建立索引師徒。
5.sql語句優化:擇運算先做,擇運算時,吧想影響小的放在前,避免使用相關子查詢,應使用連接查詢,查詢時避免select *等操作,應需多少,提多少。采用存儲過程、利用存儲過程提高數據庫處理速度。
五、數據恢復模式:
1.簡單恢復模式,不備份事務日志
2.挖不這個表格恢復模式,完整記錄所有事物,并將事務日志記錄保留到對其備份完畢為止。但相對簡單恢復更占時間
3.大容量日志恢復模式,此方法只對大容量操作進行最小記錄,使事務日志不會被大容量加載操作所填充。
六、SQLSERVER中五種約束類型,分別是主鍵約束、外鍵約束、唯一性約束、缺省約束、和檢查約束
七、OLAP的實現技術主要分為以下三類:①基于關系型數據庫的DLAP(ROLAP,Relational OLAP);②基于多維數據庫的OLAP(MOLAP,Multi-Dimensional OLAP);③混合型OLAP(HOLAP,Hybrid OLAP)
八、數據庫應用系統邏輯設計階段工作內容分為三部分:數據庫邏輯結構設計、數據庫事務概要設計、應用程序概要設計。其中Ⅳ系統總體框架設計應該屬于數據庫概念設計。
九、聲明游標
Declare cursorname cursor for select *...
open/close cursorName
fetch next from cursorName
十、簡單恢復一般建議在測試和開發數據庫。不能在生產系統環境使用。
大容量日志恢復模式一般作為完整恢復模式的附加模式。
十一、數據(表)劃分,輪轉劃分、范圍劃分、散列劃分、多維劃分。
范圍劃分(比如成績分布),散列劃分適合點查詢
十二、公用表表達式:with courseInfo(課程名,開課學期,選課人數)as (select..........)
十三、建有唯一聚集索引的視圖稱為索引視圖
十四、將數據轉入到數據倉庫通常需要完成的處理操作包括抽取、轉換和裝載。
十五、行為視圖包括順序圖、交互圖和狀態圖
總結
- 上一篇: 前端学习(2344):高阶组件和函数子组
- 下一篇: bt5 mysql字典,backtrac