資料庫技術是管理資訊系統、辦公自動化系統、決策支援系統等各類資訊系統的核心部分,是進行科學研究和決策管理的重要技術手段。
資料庫是伴隨著網際網路的興起而蓬勃發展的,自從有了第一臺電子計算機。
「資訊」這個詞語就被越來越多的人使用,在計算機中,想存放資訊,開始人們使用的是文本檔案。
但是文本檔案有太多的不方便之處,於是後來就有一些科學家編寫了一個叫做「資料庫」的軟體。
眾人在使用了之後,都感覺這個叫做「資料庫」的軟體用著挺好,比用文本檔案存資料方便了很多。
於是越來越多的人在使用資料庫存放資料,同時也是因為越來越多的人使用資料庫,也使資料庫的發展呈現了多樣化。
最初資料庫只是像表格一樣能儲存固定的行和列,還是以行為單位。這就是關係型資料庫,比如mysql、mariadb(mysql的衍生版本)、postgresql、oracle、db2(來自ibm)。
網際網路中使用廣泛的有mysql,但是java系的企業級的用oracle的也不在少數。
再後來有了nosql,他們中的典型代表有redis、memchache、mongodb、cassandra(redis和memcache還是記憶體資料庫,資料存放在記憶體裡面)。
還有基於穀子哥的論文「bigtable」而開發的hbase資料庫,hbase是一個分散式的、面向列的開源資料庫。
還有面向特殊用途,比如基於時間的資料庫,influxdb、rrdtool、opentsdb……
這些資料庫各自有各自的用途,每一種基本上都是為了解決特定問題而產生的。
每一個都有每一個的價值,不能單純的說誰好誰壞,誰比誰好用。
林奇開發的生物計算機作業系統,裡面也有存放資料的功能,但是隻是一個檔案系統,不是資料庫。
鑑於資料庫這麼重要,所以林奇想開發一個生物計算機上的基礎軟體,首先想到的就是資料庫軟體。
不管是開發關係型資料庫,還是nosql資料庫,記憶體資料庫,檔案資料庫,key-value資料庫,時間資料庫,面向列的資料庫,他們都有共同的目標。
每秒的讀寫次數越高越好,每秒能讀寫的內容越大越好。
資料庫的開發是需要站在巨人的肩膀上面的,為了研究現在資料庫都有什麼功能,林奇進入了開源世界的懷抱。
其中涉及到的知識也是相當多的,比如資料庫的儲存技術涉及到儲存於檔案結構、索引技術;併發控制技術涉及到事務管理、併發控制、死鎖處理;資料庫管理與維護技術涉及到資料完整性、資料庫安全性、資料庫可靠性、監控分析、引數調整、查詢最佳化、空間管理;還會涉及到分散式、物件、並行、資料倉儲與資料探勘。
學過資料庫都熟知的1234範式,這是資料庫設計的時候的規範和開發資料庫本身沒有任何關係。
上次開發生物計算機的系統時候,林奇採用的是別人寫設計概要,他來進行開發,而這次他想換一個種方式,他準備自己設計概要設計,讓開發部去進行開發。
不過首先需要找一個由頭,把自然語言推廣到全公司,要不然還用c或者c++來開發生物計算機上面的軟體,那第二智慧可以大批的招兵買馬,養幾十萬個程式設計師,來開發一些最常用的軟體。
生物計算機的推出將會遙遙無期。