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