課程:論文研討(一)
日期:101年9月28日
時間:14:00~15:30
地點:S104
主題:From Relational
Databases to Distributed/Parallel Databases to Cloud Databases
講者:陳良弼教授
作者:資工碩一 吳欣蓉
這一週請到政大資科系的陳良弼教授來為我們演講,在這個領域是位非常資深的學者,一開頭就透過簡單的方式讓我們了解什麼是關聯式資料庫(Relational Databases),(如圖一)列舉商店的例子,將進貨商品的相關資料存進資料庫,但將每一件商品的相關內容都存在同一個表格,是非常浪費儲存空間的,而當需要更改資料甚至是後續的維護工作,都很有可能造成失誤及增加困難度。這時關聯式資料庫就有它的好處,我們可以將它拆成兩個表格(如圖二),不管是更改還是維護工作都能增加它的效率,因此我們可以清楚看到關聯式資料庫有以下四種特性:
l 資料的邏輯結構是有關聯性的
l 是一個高階語言-SQL
l 有效率的查詢處理
l 維護人員方便管理
(圖一)
(圖二)
隨著科技的發達,資料庫的數量也越來越龐大,也慢慢的發現到以SQL來建立的資料庫,會造成資料分離的情形,因此大家慢慢的去發展其他處理資料庫的方式,來解決問題,才開始有NoSQL的出現,只要不是用SQL操作的資料庫都叫做NoSQL。
像是GOOGLE、FACEBOOK、TWITTER就是很好的例子,他們每天都需要處理大量的資料,加上處理的速度更是重要,他們就是利用NoSQL的方式來應付每天龐大的資料量。
NoSQL的種類可分成以下這4種:
l Key-value資料庫 - 擁有分散式和高擴充能力的特性
l 記憶體資料庫(In-memory Database) - 透過記憶體件是分散式資料庫,加快資料的讀取速度
l 文件資料庫(Document Database) - 主要用來存取結構鬆散的資料
l 圖學資料庫(Graph Database) - 適合關係複雜的資料
而其中以FACEBOOK為例,相信大家都能清楚知道FACEBOOK擁有大量的使用者,每位
使用者每一天都有可能產生大量的互動資料,這時就是考驗他們如何去解決龐大的資料量,
因此NoSQL資料庫技術就派上用場,FACEBOOK也開發出Cassandra資料庫來解決他們面臨
到的問題(如圖三)。
到的問題(如圖三)。
(圖三)
最後,簡單的來說明一下分散式資料庫和平行式資料庫的差別。分散式資料庫是指將資料分開存放,但對使用者來說只會感覺到只有一個系統。而平行式資料庫是指多台主機同時使用同一個資料庫,因此可提高整個的效能,也能避免主機壞掉整個資料庫都無法使用。不管使用哪一類型的資料庫,都各有他的好和壞,依據自己所需挑選出能提高效能及維護性高的才更是重要。
沒有留言:
張貼留言