三级数据库知识点总结
三級數據庫知識點總結
一、數據庫的基本知識
1.數據庫系統(DBS):主要提供應用數據的組織、存儲、維護、訪問等數據管理功能。
2,。數據庫應用系統(DBAS):不僅為用戶提供數據管理功能,還根據具體應用領域業務規則,通過數據庫應用程序,實現了更為復雜的數據處理功能。
3.數據庫應用系統設計與開發:
(1)根據具體應用領域數據管理和處理需求,設計應用數據在數據庫中的組織和存儲方式,即設計數據庫模式或結構。
(2)數據庫的三級模式:由外模式,模式,內模式構成。外模式是用戶可見的部分數據的存在形式;模式可以等價為全體數據邏輯結構且用戶不可見,是三級模式的中間部分;內模式對應數據庫的物理結構和存儲方式。
4.軟件開發方法
(1)瀑布模型(也稱為軟件生命周期模型):項目規劃、系統分析、總體設計、詳細設計、編碼調試與集成測試、運行維護階段。
(2)快速原型模型:快速分析、設計構造原型、運行原型、評價原型、改進原型。
(3)螺旋模型:項目規劃、風險評估、工程實現、用戶評估。
5.數據庫應用系統(DBAS)
(1)面向數據管理和數據處理的復雜軟件系統
(2)活動組成:項目規劃、需求分析、系統設計、實現與部署、運行與維護
6.規劃與分析
(1)系統規劃與定義:任務陳述、確定任務目標、確定系統范圍與邊界、確定用戶視圖
(2)可行性分析:技術可行性、經濟可行性、操作可行性、開發方案選擇
(3)項目規劃:項目團隊、項目環境、項目活動、成本預算、進度計劃
7.需求分析:需求獲取(面談、實地考察、問卷調查、查閱資料),需求分析(標示問題、建立需求模型、描述需求、確認需求),需求描述與規范說明、需求驗證
(1)數據需求分析:數據字典(數據項、數據結構、數據流、數據存儲、處理)
(2)功能需求分析{
(3)性能需求分析:數據操作或數據訪問相應時間、系統吞吐量(每秒事務數TPS)、允許并發訪問的最大用戶數、每TPS代價值
(4)其他需求分析:存儲需求分析、安全性能需求分析、備份與恢復需求分析
(5)需求分析方法
①DFD需求建模方法(也被稱為過程建模和功能建模方法)(自頂向下):數據流、處理、數據存儲、外部項(也稱數據源或數據終點)
②IDEF0(自頂向下):矩形框(代表功能活動)和箭頭
8.系統設計
(1)概念設計:數據庫概念模型設計(ER方法)、系統總體設計
(2)邏輯設計:數據庫邏輯結構設計(關系模型、層次模型、網狀模型)、數據庫事務概要設計(read、write兩個元操作)、應用程序概要設計
(3)物理設計:數據庫物理結構設計(文件形式存放)、數據庫事務詳細設計、應用程序詳細設計
9.實現與部署:建立數據庫結構,數據加載,事務和應用程序的編碼及測試,系統集成、測試與試運行,系統部署
10.運行管理與維護
(1)日常維護:備份與恢復、完整性維護、安全性維護、存儲空間管理、并發控制
(2)監控與分析:數據采集與統計、操作分析、基準程序評估
(3)性能優化調整:查詢調整與優化、索引調整、事務調整、模式調整、參數調整、硬件調整與升級、應用程序優化
(4)系統進化:應用程序升級、數據庫重組、DBMS和OS升級
二、數據庫結構設計
1.數據庫概念設計:
(1)明確建模目標
(2)定義實體集(分類標識、概括命名)
(3)定義聯系(主要工作:表示依賴、命名聯系及關于聯系的說明)
(4)建立信息模型(ER方法,構造ER模型)
(5)確定實體集屬性
(6)對信息模型進行集成與優化
2.ER建模方法(實體聯系方法)
(1)實體或實例(也稱為實體集實例或實例)
(2)實體集(矩形框表示)
(3)屬性:每個屬性的取值范圍稱為域。屬性的具體取值稱為屬性值。(橢圓或圓角矩形表示)
(4)碼:實體集中能唯一標識每一個實例的屬性或屬性組稱為該實體集的碼
(5)聯系:聯系描述現實世界中實物之間的聯系(菱形表示)
①一對一聯系(1:1))
②一對多聯系(1:n)
③多對多聯系(n:m)
3.IDEF1X建模方法
(1)實體集
(2)聯系:標定型聯系、非標定型聯系、分類聯系、非確定聯系
2.數據庫邏輯設計
(1)任務:把數據庫概念設計的結果(ER模型),轉換為具體的數據庫管理系統支持的數據模型。數據庫邏輯設計是面向機器世界的,這個階段將按照具體數據庫管理支持的數據模型來組織和存儲數據,包括定義和描述數據庫的全局邏輯結構、數據之間的關系、數據的完整性及安全性要求等。
(2)目標:得到實際的數據庫管理系統可處理的數據庫模式,各模式結構合理,數據之間不存在不合理的數據依賴關系,且滿足各類應用的處理和使用要求為數據庫的物理設計及數據庫搞笑、正確地運行打下基礎。
(3)優化關系模式
1NF:每個屬性都不可再分割
2NF:滿足1NF消除了非主屬性對碼的部分函數依賴
3NF:滿足2NF,其次非主屬性之間不存在函數依賴(即傳遞依賴)
3.數據庫物理設計
(1)目的是將數據庫的邏輯描述轉換為實現技術規范,其目標是設計數據存儲方案,以便提供足夠好的性能并確保數據庫的完整性、安全性和可恢復性。
(2)數據庫的物理結構:數據庫中的應用數據是以文件形式存儲在外設存儲介質(如磁盤)上的,文件在邏輯上被組織成記錄的序列,也就是說,每個DB文件可以看作是邏輯記錄的集合。
(3)索引:索引技術的關鍵是建立記錄域取值到記錄的物理地址間的映射關系,這種映射關系成為索引
有序索引:聚集索引和非聚集索引,稠密索引和稀疏索引,主索引和輔索引,唯一索引,單層索引(線性索引)和多層索引(B樹和B+樹索引)
散列索引(也稱為哈希索引機制):利用一個散列函數實現記錄域取值到物理地址間的直接映射關系。
(4)物理設計內容:
①數據庫邏輯模式描述(關系模式及其視圖的轉換):面向目標數據庫描述基本表和視圖、設計基本表業務規則
②文件組織與存取設計:
堆文件:數據量很少,并且插入、刪除、更新等操作非常頻繁;向新建表批量加載數據
順序文件:支持基于查找碼的順序訪問;也支持快速的二分查找
索引文件
散列文件:基于散列域值得等值匹配;訪問順序是隨機的也用散列文件
③數據分布設計(水平劃分和垂直劃分)
④確定系統配置
⑤物理模式評估(時間、空間、維護代價等方面)
三、數據庫應用系統功能設計與實施
系統設計:概要設計、邏輯設計、物理設計
功能設計:總體設計、詳細設計
數據庫事務功能設計:事務概要設計、事務詳細設計
總體上按照DBAS生命周期模型:
1.DBAS總計設計
(1)DBAS體系結構設計
客戶端/服務器(C/S)結構(胖客戶端):人機交互功能、多個客戶端應用提供共享的數據管理功能、通過網絡訪問多個不同數據庫
瀏覽器/服務器(B/S)結構(瘦客戶端):表示層(Web瀏覽器)、功能層(Web應用服務器)、數據層(數據庫服務器)
(2)DBAS軟件總體設計
(3)軟硬件選型與配置設計
(4)業務規則初步設計
2.DBAS功能概要設計
表示層概要設計:人機界面設計
業務邏輯層概要設計:高內聚,松隅合
數據訪問層概要設計:事務的設計(概要設計、詳細設計)
3.DBAS功能詳細設計
表示層詳細設計:原型迭代法
業務邏輯層詳細設計:UML的類圖,活動圖,協作圖(通信圖)
4.應用系統安全構架設計
(1)數據安全設計
數據庫的安全性保護:用戶身份鑒別、權限控制、視圖機制
數據庫的保護(約束):列(值的類型,范圍,精度,排序)、元組(記錄各屬性之間關系)、關系
數據庫的并發控制:排它鎖(x鎖)和共享鎖(s鎖)
數據庫的備份與恢復:雙機熱備、數據轉儲(也稱為數據備份)、數據加密存儲
數據加密傳輸:數字安全證書、對稱密鑰加密、數字簽名、數字信封
(2)環境安全設計:漏洞與補丁、計算機病毒防護(安裝殺毒軟件,計算機實時監控)、網絡環境安全(防火墻、入侵檢測系統(IDS)、網絡隔離(物理隔離和邏輯隔離))、物理環境安全(UPS也被稱為不間斷電源)
(3)制度安全設計
5.DBAS實施
創建數據庫:初始空間大小、數據庫增量大小、訪問性能
數據裝載:篩選數據、轉換數據格式、輸入數據、校驗數據
編寫與調試應用程序
數據庫系統試運行:功能測試、性能測試、系統聯調
四、UML(統一建模語言)與數據庫應用系統
UML語義的四層建模概念框架:元元模型層、元模型層、模型層、用戶模型層
UML包括以下五種視圖:結構視圖、實現視圖、行為視圖、環境視圖和用例視圖
{
(1)業務流程與活動圖
活動圖:主要用于描述系統,用例和程序模塊中邏輯流程的先后執行次序,并行次序
一張活動圖只有一個起點,可有多個終點
活動之間的轉換由箭頭表示,箭頭表示執行方向,其標注為執行下一個活動的條件,加粗直線為同步條
(2)系統需求與用例圖
用例模型由用例圖構成。用例模型由用例、角色(與系統進行交互的外部實體)和系統(邊界以內的區域)三部分組成。
一個角色可以執行多個用例,在用例圖中,用通用化關系來描述角色之間的行為。通用化關系是指把某些角色的共同行為抽取出來作為通用行為,這些通用行為構成他們的超類(用帶空心三角形表示)。
用例與角色之間有連接關系,此關系屬于關聯,又稱作通信關聯
用例之間也有關系,包括擴展(一個用例增加新內容成為另一個用例,<>)、使用(一個用例使用另一個用例<>)、組合(把相關用例打包當作整體)。
2.1系統結構與類圖
(1)屬性(可見性 名稱:類型=缺省值{約束性})
可見性:公有(+)、受保護(#)、私有(-)
缺省值:屬性的初始值
(2)操作(可見性 名稱(參數表):返回類型表達式{約束性})
(3)關系
關聯:通常情況下關聯是雙向的(用直接連接)、導航關聯(單向,帶有方向的箭頭)、聚集(共享聚集,空心菱形、組成,實心菱形)
通用化(繼承):帶實線的空心三角形
依賴:Y=f(x)
精化:帶虛線的空心三角形
2.2系統結構與順序圖(強調時間)
順序圖主要用于描述系統內對象之間的消息發送和接收序列,縱軸表示時間的持續過程,橫向表示對象,每個對象用矩形框表示,縱向的虛線表示對象在序列中的執行情況,稱為對象的“生命線”。
2.3系統結構與通信圖(強調空間)
通信圖中包含一組對象,并在圖中展示這些對象之間的聯系以及對象間發送和接收的信息
3.DBAS系統微觀設計的表達
微觀設計與對象圖
微觀設計與狀態機圖
微觀設計與時間圖
4.DBAS系統宏觀設計的表達
宏觀設計與包圖(可見性:私有、保護、公有和實現,缺省的可見性為公有)
宏觀設計與交互概述圖
宏觀設計與復合結構圖
5.DBAS系統實現與部署的表達
系統實現與組件圖(組件圖展示了一組組價之間的組織和依賴,用于對源代碼、可執行的發布、物理數據庫等的系統建模。組件是邏輯設計中定義的概念和功能在物理架構中的實現)
系統實現與部署圖
五、高級數據查詢
1.使用TOP限制結果集
查詢前n個數的結果:TOP n [precent] WITH TIES
2.使用CASE函數
簡單CASE函數:WHEN 簡單表達式 THEN 結果表達式
搜索CASE函數:
CASE
WHEN 布爾表達式 THEN 結果表達式
3.將查詢結果保存到新表中
SELECT 查詢列表序列 INTO <新表名>(可以是臨時表,局部臨時表#(只能在當前連接中使用),全局臨時表##)
4.并運算(UNION)(ALL表示在結果集中包含所有查詢語句產生的全部記錄,包括重復的記錄,若沒有指定ALL則默認是刪除合并后結果集中的重復記錄)
JOIN 操作是水平地合并數據(添加更多的列)
UNION是垂直地合并數據(添加更多的行)
5.交運算(INTERSECT)
SELECT 語句1 INTERSECT SELECT 語句2
6.差運算(EXCEPT)
7.相關子查詢(聚合函數不能出現在WHERE子句中)
使用子查詢進行基于集合的測試(先執行子查詢再執行外層查詢):WHERE 表達式 [NOT] IN(子查詢)
使用子查詢進行比較測試(不相關子查詢或嵌套子查詢):WHRER 表達式 比較運算符(子查詢)
使用子查詢進行存在性測試(先執行外層查詢再執行內層查詢):WHERE [ONT] EXISTS(子查詢)
DISTINCT:去掉重復行
8.其他形式子查詢
(1)替代表達式的子查詢:AS
(2)派生表(有時也稱為內聯視圖):類似于臨時表
9.其他一些查詢功能
(1)開窗函數(分區或分組計算的函數)
OVER子句與聚合函數結合使用:SELECT----SUM(列)OVER(PARTITION BY----)AS’ —‘
OVER子句與排名函數一起使用
RANK()函數:函數并不一定返回連續整數
DENSE_RANK()返回連續的整數值
NTILE()返回所屬組的編號
ROW_NUMBER()返回結果集中每個分區內的序列號,每個分區的第一行從1開始
(2)公用表表達式(CTE,不允許出現重復的列名)
WITH—AS(SELECT語句)
可以在一個WITH子句中定義多個CTE,也可以在一個查詢中多次引用同一個CTE
六、數據庫及數據庫對象
1.SQL Server數據庫概述
(1)系統數據庫:
Master:記錄所有系統級信息包括實例范圍的元數據(例如登錄賬戶)、端點、連接服務器和系統配置設置
Msdb:供SQL Server代理服務調度報警和作業以及記錄操作員時使用,保存關于調度報警、作業、操作員等信息。作業的執行不需要任何人人工干預
Tempdb:臨時數據庫,每次啟動會重新創建
Resource:只讀數據庫
(2)數據庫的組成
數據文件:主要數據文件(.mdf,只有一個,且不能小于3MB),次要數據文件(.ndf,0個或多個)
事務日志文件.ldf
數據庫存儲空間的分配:1頁有8KB,行不能跨頁存儲
(3)數據庫文件組:主文件組(PRIMARY),用戶定義文件組(FILEGROUP)
(4)數據庫文件的屬性:文件名及其位置、初始大小、增長方式、最大大小
2.創建數據庫
SELECT DATABASE database_name
ON PRIMARY
(NAME=----,
FILENAME=’----‘,
SIZE=—,
MAXSIZE=----,
FILEGOWTH=----)
LOG ON(
)
3.修改數據庫
(1)擴大數據中已有文件的大小
(2)為數據庫添加新的文件
ALTER DATABASE —
ADD FILE(添加新的數據文件)
ADD LOG FILE(添加新的日志文件)
MODIFY FILE(指定要修改的文件)
4.收縮數據庫空間
(1)收縮整個數據庫的大小:DBCC SHRINKDATABASE
(2)收縮指定文件的大小:DBCC SHRINKFILE
5.添加和刪除(REMOVE FILE)數據庫文件
6.分離(EXEC sp_detach_db ‘ ‘,’ ture|false‘)和附加(ON—FOR)數據庫
7.架構
定義架構:create schema(架構)----authorization(授權)----
刪除架構drop schema <架構名> {|}
Cascade:刪除架構的同時將該架構中的所有架構對象一起全部刪除
Restrict:如果被刪除的架構中包含架構對象,則拒絕刪除此架構
8.分區表(水平方式)
創建分區函數:create patition function----as rangeleft|right for values----
創建分區方案:create patition scheme—as partition—to----
9.索引
(1)創建索引:create [unique] [clustered] [nonclustered] index—on—
(2)刪除索引:drop index----
10.索引視圖:建有唯一聚集索引的視圖稱為索引視圖,也稱為物化視圖。
(1)適合建立索引試圖的場合:
如果很少更新基礎數據,則索引視圖的效果更佳
如果經常更新基礎數據,則維護索引視圖的成本可能超過使用索引視圖帶來的性能收益
如果基礎數據以批處理的形式定期更新,但在更新之間主要作為只讀數據進行處理,則考慮在更新前刪除所有索引視圖,然后再重建索引視圖,這樣做可以提高更新的性能。
索引視圖可以提高下列查詢類型的性能:處理大量行的連接和聚合,許多查詢經常執行的連接和聚合操作。
索引視圖通常不會提高下列查詢類型的性能:具有大量寫操作的OLTP系統,具有大量更新操作的數據庫,不涉及聚合或連接的查詢,GROUP BY列具有高基數度的數據聚合(高基數度表示列包含許多不同的值)
(2)定義索引視圖:
定義索引視圖時,視圖不能引用任何其他視圖,只能引用基本表。
視圖引用的所有基本表必須與視圖位于同一個數據庫,并且所有者也與視圖相同
必須使用schemabinding選項創建索引視圖
視圖中的表達式引用的所有函數必須是確定的
對視圖創建的第一個索引必須是唯一聚集索引,之后再創建其他的非聚集索引
定義視圖
Create view — with schemabinding as (select語句)go
在視圖上定義一個唯一聚集索引
Create unique clustered index — on ---- go
六、數據庫后臺編程技術
1.存儲過程(系統存儲過程、用戶自定義存儲過程、擴展存儲過程)
創建存儲過程create proc|procedure ---- as----
執行存儲過程:exce — ---
刪除存儲過程:drop proc -----
2.用戶定義函數(標量函數、內聯表值函數、多語句表值函數)
(1)創建和調用標量函數(返回單個數據值的函數)
定義標量函數:create function— as begin — return — end
調用標量函數(函數擁有者名和函數名必須要有):select ----
(2)創建調用內聯表值函數(返回值是一個表,該表的內容是一個查詢語句的結果)
創建內聯表值函數:create function---- returns(表名)as return(select語句)
調用內聯表值函數:select * from—
(3)創建和調用多語句表值函數(返回一個表,表中的內容類似于存儲過程
創建多語句表值函數:create function—returns— as begin—return end
調用多語句表值函數:select * from----
(4)刪除用戶自定義函數:drop function----
3.觸發器(DML、DDL和登錄觸發器三種)
觸發器是一種特屬于的存儲過程,其特殊性在于它不需要由用戶來直接調用,而是在對表中的數據進行更新,插入或刪除操作時自動觸發執行的。觸發器通常用于保證業務規則和數據完整性,其主要優點是用戶可以用編程的方法來實現復雜的處理邏輯和商業規則,增強了數據完整性約束的功能。
創建觸發器:create trigger—on—as—
創建后觸發型觸發器:create trigger—on—asif exists—begin rollback—end else----
創建前觸發型觸發器:create trigger —on—as if not exists----
刪除觸發器:drop trigger----
4.游標(cursor)
聲明游標:declare----
打開游標:open----(只能打開已聲明的游標)
提取游標:fetch—from
關閉游標:close—
釋放游標:deallocate----
七.安全管理
(1)安全性是指保護數據以防止不合法的使用和造成數據被泄露、更改和破壞(保護數據以防止不合法的用戶故意造成的破壞)
(2)完整性是指數據的準確性和有效性(保護數據以防止合法用戶無意中造成的破壞)
數據庫安全的威脅:可用性的損失、機密性數據的損失、私密性數據的損失、偷竊和欺詐、意外的損害
(3)安全控制模型:身份驗證、操作權限控制、文件操作控制、加密存儲與冗余
授權和認證:
(4)授權和認證:授權是將合法訪問數據庫或數據對象的權限授予用戶的過程。認證是一種堅定用戶身份的機制。
(5)存取控制
自主存取控制:權限種類(語句權限、對象權限),用戶分類(系統管理員、數據庫對象擁有者、普通用戶)
強制存取控制:
敏感度標記:絕密、秘密、可信、公開。
主體的敏感度標記被稱為許可證級別
客體的敏感度標記被稱為密級:僅當主體的許可證級別大于或等于客體的密級時,該主體才能讀取相應的客體;僅當主體的許可證級別等于客體的密級時,該主體才能寫相應的客體。
橘皮書和紫皮書兩份文獻給出了通用安全性分級模式,共定義了D、C、B和A四類安全級別,從D類到A類級別依次增高。D類提供最小保護,C類提供自主保護,B類提供強制保護,A類提供驗證保護。
(6)審計跟蹤:實質上是一種特殊的文件或數據庫,系統在上面自動記錄用戶對常規數據的所有操作。
1.SQL Server的安全控制
Windows身份驗證模式
混合身份驗證模式(SQL Server允許Windows授權用戶和SQL授權用戶登錄到SQL Server數據庫服務器
建立登錄賬戶:create login with — from—windows----with ---- password—
修改登錄賬戶屬性:alter login—
刪除登錄賬戶:drop login—
建立數據庫用戶:create user— login----
Guest用戶:啟用grant connect to—,禁用(回收)revoke connect to—
刪除數據庫用戶:drop user----
角色:系統角色、用戶定義角色
Oracle的安全控制機制可分為數據庫級的安全控制、表級、行級、列級
運行狀態監控與分析:自動監控機制、手動監控機制
事務內部故障分為預期和非預期的,其中大部分是非預期的(運算溢出故障、并發事務死鎖故障、違反了某些完整性限制而導致的故障等)
總結
以上是生活随笔為你收集整理的三级数据库知识点总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL查询是从Select开始的吗?
- 下一篇: 前端学习(2168):url的hash和