要想成為一名數(shù)據(jù)工程師,你必須理解數(shù)據(jù)庫的主要概念。這一概念不僅適用于數(shù)據(jù)工程師,也適用于使用數(shù)據(jù)庫的專業(yè)人士:數(shù)據(jù)科學家、機器學習工程師、軟件開發(fā)者等。接下來,小編就將介紹數(shù)據(jù)庫工程師需要掌握哪些技術,一起來看看吧。
數(shù)據(jù)庫工程師需要掌握哪些技術
Relationalmodel是對數(shù)據(jù)進行結構化和管理的一種方法。
該模型中的數(shù)據(jù)被組織成表格。每一個表都有自己的模式,這意味著它有一個預定義的列名,只能把滿足模式的數(shù)據(jù)寫到表中。每個列有一個數(shù)據(jù)類型(數(shù)字、字符串、Boolean等)。表格中的列通常稱為字段,行稱為記錄。
根據(jù)原來的數(shù)據(jù)庫理論,表格被稱為“關系”,關系模型就是從這里產(chǎn)生的。別把這個定義和表之間的關系搞混了,表之間我們通常用鍵來定義這個關系。在本文稍后的部分中,我們討論鍵。
最終,遵循該模型的數(shù)據(jù)庫被稱為關系型數(shù)據(jù)庫,它使用SQL(結構化查詢語言)來訪問存儲的數(shù)據(jù)。
正規(guī)化(Normalization)是使數(shù)據(jù)適合于關系數(shù)據(jù)庫的過程。
有時候,標準化就是刪除數(shù)據(jù)冗余的過程,這很容易理解和實現(xiàn)。正常化可以幫助消除數(shù)據(jù)冗余,提高數(shù)據(jù)完整性,簡化數(shù)據(jù)結構,幫助發(fā)現(xiàn)錯誤。
正常化一般有兩種方法:
是表中記錄的唯一標識符。
如果希望建立另一張表的關系,您必須首先創(chuàng)建主鍵。如果表字段包含對其他表的引用,那么這個字段就是外鍵。
假定有一個客戶表,其中包含customer_id字段,這是該表的主鍵。與此同時,orders還包含customers_id字段,并引用customers表,這是orders表的外鍵。
索引是數(shù)據(jù)庫內(nèi)部的一種特殊對象,它可以幫助在數(shù)據(jù)內(nèi)部進行快速搜索。
設想一下,你有一個包含數(shù)百萬條記錄的大表,需要尋找滿足特定條件的子集,比如,某個客戶有多少訂單。在一個表中插入記錄是無序的,因此,為了執(zhí)行搜索,數(shù)據(jù)庫需要完全掃描,這意味著從開始到結束都要逐行遍歷,直到找到合格的記錄。
要加速這個過程,我們可以為字段創(chuàng)建索引,該字段存儲字段中每個值的位置。在用索引列執(zhí)行查詢時,數(shù)據(jù)庫首先會搜索索引來查找數(shù)據(jù)的位置,然后根據(jù)位置提取所需的行。
交易(transaction)通常指不可分的工作單位。這是必要的,當我們希望在一個數(shù)據(jù)庫中執(zhí)行多個操作,并且希望確保所有操作都成功或失敗。
數(shù)據(jù)庫交易可理解為銀行轉帳,當您需要將資金從一個賬戶轉到另一個賬戶時,需要三個步驟:
Replication將數(shù)據(jù)庫與其他節(jié)點或服務器同步,換句話說,復制就是將數(shù)據(jù)從一個源復制到另一個源。
復制可以使我們在主副本數(shù)據(jù)出現(xiàn)問題時避免數(shù)據(jù)丟失。
資料庫復制優(yōu)點:
資料庫分片(Shiting)是指以某種方式拆分表格中的資料,并將其傳送給不同節(jié)點。
切分是一種水平切分技術。把一個表劃分為幾個邏輯分區(qū),每個分區(qū)的模式都相同(因為我們用行而不是用列來劃分數(shù)據(jù)),每個分區(qū)都是原始表的邏輯分區(qū)。
當節(jié)點之間進行分布時,它們變成物理碎片,一個數(shù)據(jù)庫節(jié)點可以容納多個邏輯碎片。
怎樣實施分割?常見的三種方法:
可以使用多種方法來實現(xiàn)切分,但您必須在所有情況下提供分發(fā)密鑰。這個鍵決定了數(shù)據(jù)在集群中的分布方式。分配鍵的兩種常用方法是基于散列的鍵和基于值的鍵。以上就是數(shù)據(jù)庫工程師需要掌握哪些技術的內(nèi)容,感謝您的閱讀。
[免責聲明]
文章標題: 數(shù)據(jù)庫工程師需要掌握哪些技術
文章內(nèi)容為網(wǎng)站編輯整理發(fā)布,僅供學習與參考,不代表本網(wǎng)站贊同其觀點和對其真實性負責。如涉及作品內(nèi)容、版權和其它問題,請及時溝通。發(fā)送郵件至36dianping@36kr.com,我們會在3個工作日內(nèi)處理。