售前要懂的資料庫知識|售前全秒懂

資料庫的誕生

❂ 手工階段

不管是在計算機誕生前的人類漫長時期,還是在進入網際網路時代後,凡是不依靠計算機進行記錄資訊或資料的,都處於手工階段。

手工階段,想查找個資訊都非常不易。

售前要懂的資料庫知識|售前全秒懂

❂ 早期儲存階段

在誕生計算機之後,最早採用打孔卡來儲存資料。打孔卡利用在紙板上打洞與不打洞來表示數字訊息。

與這些古老的計算機一樣,打孔卡存在體積大、速度慢等問題。

售前要懂的資料庫知識|售前全秒懂

❂ 檔案系統階段

隨著計算機技術的發展,數字儲存技術取代了打孔卡。這一階段的資料是應用軟體的一部分,對資料的維護在軟體內完成,存在無法對檔案併發訪問等問題。

售前要懂的資料庫知識|售前全秒懂

❂ 資料庫系統階段

為了解決前面的坑,資料庫管理系統誕生了。

售前要懂的資料庫知識|售前全秒懂

啥是資料庫

售前要懂的資料庫知識|售前全秒懂

小白

資料庫不就是MySQL、Oracle這些?

懂郎

嚴格的說,這些是“資料庫管理系統”,DataBase Management System,DBMS,是用來管理資料庫的計算機軟體系統。

售前要懂的資料庫知識|售前全秒懂

售前要懂的資料庫知識|售前全秒懂

小白

懂郎

資料庫,DataBase,DB,是儲存在計算機內的資料集合。

售前要懂的資料庫知識|售前全秒懂

售前要懂的資料庫知識|售前全秒懂

資料庫型別

關係型資料庫

由二維表及表之間的關係組成的資料庫。

優點:

資料結構化

使用方便

易於維護

缺點:

讀寫效能差

查詢效率低

表擴充套件性差

代表DBMS:

Oracle、Microsoft SQL Server、MySQL、PostgreSQL,DB2、Microsoft Access、 SQLite、Teradata。

售前要懂的資料庫知識|售前全秒懂

非關係型資料庫

型別:

鍵值儲存資料庫

:有一個特定的鍵和一個指標指向特定的資料。主要用於處理大量資料的高訪問負載、日誌系統等。如:Redis。

列式資料庫

:鍵仍然存在,但是它們的特點是指向了多個列。用來應對分散式儲存的海量資料。如:Cassandra, HBase, Riak。

文件型資料庫

:鍵值資料庫的升級版,允許之間巢狀鍵值,在處理網頁等複雜資料時,文件型資料庫比傳統鍵值資料庫的查詢效率更高。如:CouchDB, MongoDb。

優點:

讀寫效能高

資料易擴充套件

支援多種資料格式

缺點:

缺乏統一查詢語法

資料非結構化

2020.12 DBMS排名

售前要懂的資料庫知識|售前全秒懂

資料庫技術關鍵概念

正規化

指設計關係資料庫時需遵從的規範要求,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。

正規化的種類

共有8種正規化,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。

在實際開發中最為常見的設計正規化有三個:

1NF,確保每列保持原子性。如果資料庫表中的所有欄位值都是不可分解的原子值,就說明該資料庫表滿足了第一正規化。

2NF,確保表中的每列都和主鍵相關。在一個數據庫表中,一個表中只能儲存一種資料,不可以把多種資料儲存在同一張資料庫表中。

3NF,確保每列都和主鍵列直接相關,而不是間接相關。

三級模式

資料庫三級模式包括外模式、概念模式、內模式,是為了有效地組織、管理資料,提高了資料庫的邏輯獨立性和物理獨立性。使得我們能透過調整索引、分割槽、儲存過程等方式提升系統性能,而不引起應用程式和架構的調整。

外模式:對模式的封裝與隱蔽,降低應用程式與模型間的直接依賴。檢視、儲存過程、自定義函式等屬於外模式。

概念模式:又稱模式或邏輯模式,對應於概念級。它是由資料庫設計者綜合所有使用者的資料,按照統一的觀點構造的全域性邏輯結構,是對資料庫中全部資料的邏輯結構和特徵的總體描述。

內模式:又稱儲存模式,對應於物理級。它是資料庫中全體資料的內部表示或底層描述它描述了資料在儲存介質上的儲存方式和物理結構。索引、表分割槽等屬於內模式。

售前要懂的資料庫知識|售前全秒懂

資料庫內的物件

:儲存資料的地方,由列(欄位)和行(記錄)組成。

檢視

:虛擬的表。行和列資料來自由定義檢視的查詢所引用的表,並且在引用檢視時動態生成。檢視不在資料庫中以儲存的資料值集形式存在。

索引

:如同資料表的目錄,使用索引可快速訪問表中的資料、加快表與表之間的連線。

儲存過程

:為完成特定功能而彙集在一起的一組程式語句。

觸發器

:使用者定義的事物命令的集合。當對一個表進行增刪改時,這組命令就會自動 執行。

事務與鎖

事務:一組可執行的語句組成的獨立單元。

事務的特性

原子性(Atomicity)事務是一個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。

一致性(Consistency),事務前後資料的完整性必須保持一致。

隔離性(Isolation),多個使用者併發訪問資料庫時,資料庫為每一個使用者開啟的事務,不能被其他事務的操作資料所幹擾,多個併發事務之間要相互隔離。

永續性(Durability),一個事務一旦被提交,它對資料庫中資料的改變就是永久性的,接下來即使資料庫發生故障也不應該對其有任何影響

鎖的作用:控制使用者的併發性,保證資料的完整性與一致性。

死鎖:由於對資源訪問順序不一致,導致事務間互相等待現象。

SQL

售前要懂的資料庫知識|售前全秒懂

關鍵知識點

SQL,即結構化查詢語言(Structured Query Language),是用來對關係型資料庫進行操作的程式語言。

不同DBMS都認SQL語法。

DBMS可以透過手工操作,也可透過SQL操作。

SQL語言共分為四大類:

資料查詢語言

DQL: Data Query Language,資料檢索語句,用於從表中獲取資料。

語法:

SELECT FROM WHERE

資料操縱語言

DML:Data Manipulation Language,主要用來對資料庫的資料進行一些操作。常用的就是INSERT、UPDATE、DELETE。

語法:

INSERT INTO (列1,列2,。。。) VALUES (值1,值2,。。。);

UPDATE SET =新值 WHERE =某值;

DELETE FROM WHERE =某值;

資料定義語言

DDL:Data Definition Language,用來建立資料庫、建立表,常用的有CREATE、DROP。

資料控制語言

DCL:Data Control Language,用來控制資料庫的訪問許可權,常用的有GRANT、REVOKE。

售前常見的資料庫應用場景

技術交流

售前在與客戶進行技術交流時,可能遇到資料庫選型的問題。售前主要需記錄客戶的業務需求特點,具體選型還需與公司研發商定。

需求調研

售前在做詳細需求調研時,特別是報表類的需求調研,主要需調研清楚報表的欄位名稱、每個欄位的資料來源或演算法、欄位屬性等資訊。