大資料基礎 資料儲存發展史

2022-01-14 11:29:29 字數 2388 閱讀 7195

乙個文明的發展離不開資料,資料報括我們看到的,聽到的,只要能儲存的東西都稱之為資料。

現存中國最早的文字,大多是書寫或契刻在獸骨和龜甲上的刻辭。甲骨文本是從西元前14世紀後期盤庚十四年遷都安陽後,到西元前11世紀中葉帝辛滅亡前這一時期的記錄。

金文通常記載於彝器、樂器、兵器、度量衡、鏡、錢幣、印章之上,其中以彝器所載文本最長。

較早期的銅器,無論是圓形或方形,三足或四足,銘文大多鑄在器物的內部。

金文的字彙不比甲骨文為多。根據容庚的《金文編》和《續編》,周代和周代以前的金文,今日可以通讀的越有1800多字,不可通讀的約有1200字;秦、漢的金文,可讀的將近1000字,不可讀的有300餘字。

秦漢以後,石刻逐漸取代額咯青銅器在記功、追遠等方面的用途。

竹簡和木牘是中國最早的書寫材料。在中國傳統文化上,簡牘制度有其極為重要和深遠的影響。不僅中國文字直行書寫和自右至左的排列順序淵源於此,即是在印刷術發明以後,中國書籍的單位、術語,以及版面上的所謂「行格」的形式,也是根源於簡牘制度而來。

到了殷商時代,甲骨卜辭中常見「絲」、「蠶」、「帛」、「桑」等字。在安陽殷墟中發現的絲帛殘跡,經過仔細的研究,證明殷人的紡織技術已很進步。在長沙和其它幾處楚墓中,新近發現許多絲帛遺物,證明在戰國、漢初不僅已有精美的縑帛,而且還有花紋複雜的織錦和刺繡。

東漢元興元年(公元105年),蔡倫將製紙方法奏聞和帝 ,開啟了紙質時代。

最開始公司個人僅僅通過word,excel,ppt就能記錄一些資訊。但是隨著資料的增多,這樣的儲存維護起來需要耗費很大的精力,而且不便於查詢和搜尋。於是產生了關係型資料庫。

關係型資料庫包括了sqlserer,oracle,mysql。它們通過把現實的物品抽象化,比如記錄書籍就抽象成作者,文章標題,文章內容,文章等關鍵屬性,這些屬性構成乙個個結構儲存到資料庫中。叫關係型資料庫的原因是各個物品之前,屬性之前都是有關聯的,就像人,不可能獨立存在。

隨著資料的增加,關係型資料庫的缺點也漸漸暴露無遺,首先看下它的結構:

​ (關係型資料庫搜尋流程圖)

從上圖可以看到,關係型資料庫為了提高查詢速度使用了b+樹,大大提高了查詢速度,但是這也帶來了乙個問題就是b+樹儲存在記憶體中,索引儲存在磁碟中,這樣查詢就會進行記憶體和磁碟互動,帶來了一定的瓶頸。

再乙個隨著大資料的到來,這種結構化資料因為耦合性大,不利於擴充套件分布式部署,查詢緩慢,所以催生了非關係型資料庫的發展。

關係型資料庫中的事物遵循acid原則:

a代表原子性:比如張三給李四轉賬,這整個事情要不全部成功,要麼全部失敗,不能出現張三轉過去了,李四沒收到。

c代表一致性:這個理解的不深刻,大概意思就是保證結果相同,一般像分布式部署,我們查詢的結果要一致。

i代表獨立性:事物之間是獨立的,也就是事物可以巢狀事物,裡面的事物執行成功並提交了,那麼這個結果就改變了,無論外面的這個事物是否成功,即使失敗也不影響內部事物。

d代表永續性:修改的資料都會存在磁碟裡面,這樣的資料即使重啟也不會像記憶體似的丟失資料。

非關係型資料庫顧名思義,它的資料之間是沒有直接關係的,這對於資料的壓縮,分布式部署提供了便利。同時也提高了查詢速度。

資料庫分為了鍵值對資料庫,列族資料庫,文件型資料庫還有圖形資料庫,如下所示:

分類相關產品

應用場景

資料模型

優點缺點

鍵值資料庫

redis、riak

內容快取,如會話、配置檔案、引數等; 頻繁讀寫、擁有簡單資料模型的應用

鍵值對,通過雜湊表來實現

擴充套件性好,靈活性好,大量操作時效能高

資料無結構化,通常只被當做字串或者二進位制資料,只能通過鍵來查詢值

列族資料庫

bigtable、hbase、cassandra

分布式資料儲存與管理

以列族式儲存,將同一列資料存在一起

可擴充套件性強,查詢速度快,複雜性低

功能侷限,不支援事務的強一致性

文件資料庫

mongodb、couchdb

web 應用,儲存面向文件或類似半結構化的資料

value 是 json 結構的文件

資料結構靈活,可以根據 value 構建索引

缺乏統一查詢語法

圖形資料庫

neo4j、infogrid

社交網路、推薦系統,專注構建關係圖譜

圖結構支援複雜的圖形演算法

複雜性高,只能支援一定的資料規模

非關係型資料庫分布式符合cap原則。

c是一致性:相同的查詢語句,在不同的機器上執行,得到的結果相同。

a是可用性:查詢的伺服器是可用的 ,無論是返回成功也好,失敗也好。

p是分割槽容錯性:伺服器之間是可以通訊的,並且都通訊順暢。

系列傳送門

資料庫發展史

資料庫 database 是按照 資料結構來組織 儲存和管理資料的倉庫,它產生於距今六十多年前,隨著 資訊科技和市場的發展,特別是二十世紀九十年代以後,資料管理不再僅僅是儲存和管理資料,而轉變成使用者所需要的各種資料管理的方式。資料庫有很多種 型別,從最簡單的儲存有各種資料的 到能夠進行海量 資料儲...

密碼儲存的發展史

最早期的時候,使用純文字儲存密碼,不過儲存密碼的檔案是加了密。但是容易到sql注入的風險。後來使用以sha 256為代表的hash加密演算法儲存密碼 不過也容易受到類似彩虹表這樣的演算法的攻擊。再到後來,以sha 256為代表,使用加鹽和hash結合建立乙個唯一的值,倒是有效避免了類似彩虹表這樣的l...

基礎架構 架構發展史簡析

1 定義 1 最早的軟體開發使用的是 機器語言 直接使用二進位製碼 0 和 1 來表示機器可以識別的指令和資料 2 面臨的問題 1 機器語言的主要問題是三難 太難寫 太難讀 太難改 1 定義 1 組合語言又叫 符號語言 用助記符代替機器指令的操作碼,用位址符號 symbol 或標號 label 代替...