軟體設計師——Week 3
2018-09-25 Tuesday:
Chapter 7 資料庫技術基礎
7.1 基本概念
1、資料庫系統(DBS):資料庫(DB)、硬體、軟體、人員(DBA)
2、資料庫管理系統(DBMS)的功能:
- 資料定義(DDL):對資料庫的結構進行定義,包括外模式、模式、內模式
- 資料庫操作(DML):檢索、插入、修改、刪除
- 資料庫執行管理:日誌的組織管理、事務管理、自動恢復
- 資料的組織、儲存、管理:
- 資料庫的建立和維護
3、DBMS分為:關係型資料庫系統、面向物件的資料庫系統、物件關係資料庫系統
4、資料庫系統的體系結構:
- 集中式資料庫系統
- 客戶端/伺服器體系結構
- 並行資料庫系統
- 分散式資料庫系統
6、三級模式結構(三級模式和兩級映像)
7、大資料
- 大量化(Volume)
- 多樣化(Variety)
- 價值密度低(Value)
- 快速化(Velocity)
7.2 資料模型
1、概念資料模型:現實世界到資訊世界的第一抽象E-R模型
2、基本資料模型:現實世界的資料特徵的抽象,層次模型、網狀模型、關係模型、面向物件模型
3、資料模型的三要素:資料結構(靜態描述)、資料操作、資料的約束條件
4、E-R模型:實體、聯絡、屬性、E-R方法
5、層次模型: 採用樹型結構表示資料和資料間的聯絡
6、網狀模型:採用網路結構表示資料與資料間的聯絡的資料模型
7、關係模型:實際上就是表格的形式
7.3 關係代數
7.3.1 關係資料庫的基本概念
1、屬性、域、笛卡兒積
2、關係:目與度、候選碼、主碼
3、主屬性:包含再任何候選碼中的稱為主屬性
4、外碼:是另外的關係的碼 稱為外碼
5、全碼:關係模型的所有的屬性組是這個關係模型的候選碼----全碼
6、關係的三種類型:基本關係、查詢表、視圖表
7、關係資料庫模式
8、完整性約束:實體完整性、參照完整性、使用者定義完整性
7.3.2 五種基本關係代數運算
1、並、差、廣義笛卡兒積、投影、選擇
下面的運算結果,可以很清楚的得到結果
7.3.3 擴充套件的關係代數運算
1、交
2、連線(連線、等值連線、自然連線)
下面展示的是自然連線
3、除法的解釋
4、廣義投影:在投影的過程中可以進行一系列的算術的運算
5、外連線 (如果存在沒有的資訊的話,就直接寫入空值,這樣的防止能夠比較少的丟失資訊)
(1)左外連線
(2)右外連線
(3)全外連線
7.4 關係資料庫SQL語音簡介
- 資料查詢:SELECT
- 資料定義:CREATE、DROP、ALTER
- 資料操縱:INSERT、UPDATE、DELETE
- 資料控制:GRANT、REVORK
7.5 關係資料庫的規範化
1、函式依賴
2、規範化
3、模式分解及分解應具有的特性
7.6 資料庫的控制功能
7.6.1 事務管理
1、BEGIN TRANSACTION:事務開始
2、COMMIT:事務提交
3、ROLLBACK:事務回滾
4、ACID:atomicity 原子性 consistency一致性 isolation隔離性 durability 永續性
7.6.2 資料庫的備份與回覆
1、故障型別:內部故障、系統故障、介質故障、計算機病毒
2、備份方法:靜態儲存和動態儲存、海量儲存和增量儲存、日誌檔案
3、恢復的3步驟:反向掃描日誌、對事物的更新執行逆操作、繼續反向掃描日誌檔案
4、資料庫映象:複製資料會降低系統的執行效率
7.6.3 併發控制
1、下面就是併發操作帶來資料的不一致性問題:丟失更新、不可重複讀、讀髒資料
2、併發控制技術:
(1)封鎖:排它鎖(只允許加在書物件上的失誤進行讀取和修改,其他的事物都不能加X鎖)、共享鎖 (共享鎖還加在上面的時候,不能對這個資料物件進行修改)
(2)三級封鎖協議:一級封鎖協議、二級封鎖協議、三級封鎖協議
(3)活鎖與死鎖:活鎖:一個事務的封鎖請求一直都沒有得到響應,所謂死鎖就是指事務分別清酒對方封鎖對方已經封鎖的資料,導致了長期等待而無法進行
(4)併發排程的可序列性
(5)兩段封鎖協議:
(6)封鎖粒度:封鎖物件的大小稱為封鎖的粒度
Chapter 8 資料結構
8.1 線性結構
8.1.1 線性表
1、兩種儲存結構:順序儲存、鏈式儲存
2、順序儲存:邏輯上相鄰物理的儲存位置上也是相鄰的
3、鏈式儲存:地址上並不要求是連續的
8.1.2 棧和佇列
1、棧:LIFO、順序儲存(容量有限)、鏈式儲存
2、佇列:FIFO、迴圈佇列
8.1.3 串
是一種特殊的線性表,其資料元素是字元
1、空串、空格串(空格也要計算在內)、子串、串相等(長度相等,並且對應的字元也相等)、串比較(相當於字串比較)
2、串的基本操作:順序儲存、鏈式儲存
3、串的模式匹配
- 樸素的模式匹配演算法:福斯演算法
- 改進的模式匹配演算法:KMP
8.2 資料、矩陣、廣義表
1、陣列:陣列的順序儲存(一般定義了資料元素的個數,和元素之間的關係,也就不再發生改變)
2、矩陣:特殊矩陣、稀疏矩陣
8.2.3 廣義表
8.3 樹
1、雙親、節點的度、葉子節點、內部節點、節點的層次、樹的高度
2、二叉樹:
3、二叉樹的遍歷:
- 先序遍歷:根節點-左子樹-右子樹
- 中序遍歷:根節點的左子樹-根節點-右子樹
- 後序遍歷:左子樹-右子樹-根節點
4、線索二叉樹、哈夫曼編碼、樹和森林
8.4 圖
1、圖的遍歷:深度優先搜尋、廣度優先搜尋
8.5 查詢
1、查詢的方法:順序查詢、折半查詢、分塊查詢(索引順序查詢)、
2、動態查詢表:二叉排序樹、平衡二叉樹、B_樹
3、雜湊表
8.6 排序
1、插入排序、氣泡排序、簡單排序、希爾排序、快速排序、堆排序、歸併排序、基數排序
Chapter 9 演算法設計與分析
9.1 演算法設計與分析的基本概念
1、五個重要的特性:有窮性、確定性、可行性、輸入、輸出
2、演算法分析:正確性、可靠性、簡單性、易理解性-----------時間複雜度、空間複雜度
3、演算法的表示方法:自然語言、流程圖、程式設計語言、虛擬碼
9.2 演算法分析基礎
1、時間複雜度
2、漸進符號
3、遞迴式
9.3 分治法
1、分治法的思想就是:將大問題進行分解、求解、合併
9.4 動態規劃法
9.5 貪心法
9.6回溯法
9.7 其他演算法
1、分支限界法
2、概率演算法
3、近似演算法
Chapter 10 面向物件技術
1、面向物件=物件+分類+整合+訊息通訊
- 物件:屬性、行為
- 訊息:訊息傳遞機制
- 類:物件是類的例項
- 繼承:父類子類之間共享資料和方法的機制
- 多型:不同的物件收到同樣的訊息,可以產生不同的動作,這就是多型
- 動態繫結:就是一個把過程呼叫和響應呼叫所執行的程式碼加以結合的過程
2、面向物件的分析
- 認定物件
- 組織物件
- 物件間的相互作用
3、面向物件的程式設計
- 類:我們首先是應該對物件進行抽象得到類,但是當設計的時候,首先面對的就是類
- 繼承和類層次結構:考慮的是實體特徵之間的關聯的相似性部分
- 物件、訊息傳遞和方法:
- 物件自身的引用:
- 重置
- 類屬類:可以看作是類的模板
- 無例項的類:由於存在繼承的關係,所以在較高層次下,是存在抽象的類,也就是沒有例項
4、面向物件的測試
一般來說分以下四個層次進行測試:
- 演算法層
- 類層
- 模板層
- 系統層
10.2 UML
1、結構事物、行為實物、分組事物、註釋事物
2、關係:依賴、關聯、繁華、實現
3、圖:
- 類圖:物件、介面‘協作和他們之間的關係
- 物件圖:
- 用例圖:
- 互動圖
- 狀態圖:
- 活動圖
- 構件圖
- 組合結構圖
- 部署圖
- 包圖
4、設計模式
- 要素:模式名稱、問題、解決方案、效果
Chapter 11 標準化和軟體智慧財產權基礎
Chapter 12 軟體系統分析與設計
幾項最主要的點:
- 結構化分析與設計
- 資料庫分析與設計
- 面向物件分析與設計
- 演算法設計與C程式實現
- 面向物件的程式設計與實現
12.1 結構化分析與設計
12.2資料庫分許與設計
1、資料庫設計的步驟:使用者需求分析、概念設計、邏輯設計、需求設計
第一遍 終於亂七八糟的過完了,,,下一階段就是開始做題,然後進行 題目向書本的過濾了~~