1. 程式人生 > >軟體設計師——Week 3

軟體設計師——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、連線(\theta連線、等值連線、自然連線)

下面展示的是自然連線

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、資料庫設計的步驟:使用者需求分析、概念設計、邏輯設計、需求設計

第一遍 終於亂七八糟的過完了,,,下一階段就是開始做題,然後進行 題目向書本的過濾了~~