大數據基礎---數據存儲發展史


一個文明的發展離不開數據,數據包括我們看到的,聽到的,只要能存儲的東西都稱之為數據。

在沒有計算機之前,我們只能通過器具,骨頭,紙制品來進行存儲。這些介質也限制了我們只能存儲文字和手工繪畫,我們一起來看看古代都有哪些存儲介質:

一.古代的存儲介質

1.1甲骨文

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

1.2金文和陶文

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

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

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

1.3玉石刻辭

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

1.4竹簡和木牘

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

1.5帛書

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

1.6紙卷

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

隨着人類文明的進步,迎來了電子時代,我們可以通過鍵盤錄入文字,還可以將視頻圖片音頻上傳到網站,另外還有一些信息采集器,比如攝像頭,遙感,這些信息都會源源不斷的保存到服務器里面,我們僅僅通過一部手機就可以瀏覽巨量的信息,隨着數據的增加,存儲的方式也在悄悄改變!

二.現代的存儲介質

2.1文件存儲

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

2.2關系型數據庫

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

隨着數據的增加,關系型數據庫的缺點也漸漸暴露無遺,首先看下它的結構:

關系型數據庫查詢流程圖

​ (關系型數據庫搜索流程圖)

從上圖可以看到,關系型數據庫為了提高查詢速度使用了B+樹,大大提高了查詢速度,但是這也帶來了一個問題就是B+樹存儲在內存中,索引存儲在磁盤中,這樣查詢就會進行內存和磁盤交互,帶來了一定的瓶頸。

再一個隨着大數據的到來,這種結構化數據因為耦合性大,不利於擴展分布式部署,查詢緩慢,所以催生了非關系型數據庫的發展。

關系型數據庫中的事物遵循ACID原則:

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

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

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

D代表持久性:修改的數據都會存在磁盤里面,這樣的數據即使重啟也不會像內存似的丟失數據。

2.3非關系型數據庫

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

數據庫分為了鍵值對數據庫,列族數據庫,文檔型數據庫還有圖形數據庫,如下所示:

分類 相關產品 應用場景 數據模型 優點 缺點
鍵值數據庫 Redis、Riak 內容緩存,如會話、配置文件、參數等; 頻繁讀寫、擁有簡單數據模型的應用 <key,value> 鍵值對,通過散列表來實現 擴展性好,靈活性好,大量操作時性能高 數據無結構化,通常只被當做字符串或者二進制數據,只能通過鍵來查詢值
列族數據庫 Bigtable、HBase、Cassandra 分布式數據存儲與管理 以列族式存儲,將同一列數據存在一起 可擴展性強,查找速度快,復雜性低 功能局限,不支持事務的強一致性
文檔數據庫 MongoDB、CouchDB Web 應用,存儲面向文檔或類似半結構化的數據 <key,value> value 是 JSON 結構的文檔 數據結構靈活,可以根據 value 構建索引 缺乏統一查詢語法
圖形數據庫 Neo4j、InfoGrid 社交網絡、推薦系統,專注構建關系圖譜 圖結構 支持復雜的圖形算法 復雜性高,只能支持一定的數據規模

非關系型數據庫分布式符合CAP原則。

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

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

P是分區容錯性:服務器之間是可以通信的,並且都通訊順暢。
系列傳送門


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM