QuickDBD − 簡單好上手的線上資料庫設計工具,3大優缺點一次看
QuickDBD 是一款線上資料庫設計工具,簡單易用且支援即時協作,適合軟體開發工程師、系統分析師或者技術PM導入使用,相信在軟體開發時能有很大的助益!
為什麼需要將資料庫視覺化?
相信很多資深的開發者或者主管們可能覺得直接把SQL寫好拿出來看就好,不需要將設計視覺化,但以我個人的觀點跟經驗來看,將設計(不管是資料庫或任何其他種設計)視覺化有非常大的好處,也能節省後續許多不必要的浪費。
而針對資料庫設計視覺化的優點跟必要性我認為有以下兩者:
1.最容易觀察語法漏洞
當資料表一多的時候寫出來的SQL可是密密麻麻,其中如果錯了一個字、兩個字,或者欄位名稱有問題、主鍵(Primary Key)外鍵(Foreign Key)沒建好沒建到,其實單從文字上看起來是很容易遺漏的。
再加上開發過程中一定是修修改改,單看SQL實在很不容易察覺其中遺漏的地方,而如果這些SQL最後正式建立時是要提交給DBA來使用,那反反覆覆的確認、修改、驗證又是一番折騰。
但若將這些SQL視覺化後,當資料有序的變成圖型及符號,那我們可以很容易的看出來哪個地方已經不符合最後的設計結果或使用上的需求。
2.最容易檢查資料架構
舉個例子,以下哪種方式更容易讓人理解呢?
A: 嘰哩呱啦都用講的或純文字敘述
首先我會將主要資訊儲在資料表A並且建立關聯到資料表B並在資料表B儲存一些額外metadata,同時會在資料表B建立關聯到資料表C跟D,哦!剛忘了說資料表A有些欄位也有建關聯到資料表E跟F,所以這樣我們就能把資料串出來。
所以最後到底串了什麼東西出來?串出來的資料是可以用的嗎?日後會不會有維護、擴充上的問題?
B: 將概念繪製成圖表
想當應該是「B:將概念繪製成圖表」更直觀、清晰且不容易引人誤解對吧?
當然更理想的方式是A+B,有圖表並且附上文字說明,讓觀者可以配著服用,對於你想表達的內容能理解的更全面,但這就非常挑戰撰文/繪圖者的表達能力了。
為什麼需要使用線上工具做資料庫設計?
很多資料庫管理軟體(e.g. MySQL workbench、Oracle SQL Developer)都有支援透過SQL產出ER diagram或透過ER diagram產出SQL的功能,功能也都十分齊全也強大,那為什麼還需要用線上工具來做資料庫設計呢?我個人認為有兩個最關鍵的優點:
1.即時同步協作
在資訊量極大的時代,很多設計或計畫常常在短時間內有許多變化,為了能讓產品、團隊都能跟得上腳步,線上工具的導入已經是無法避免的投資之一,而當同一個專案或產品有多個成員同時協作或甚至不同部門一起團隊協作時,資訊的即時同步就會是一個重要的效率提升因素。
2.雲端即時儲存最放心
線上工具最大的好處之一就是「雲端自動儲存」,省去了你在思考過程中不斷按下儲存鍵、深怕工作成果因為電腦突然當機或沒電而付諸流水,儲存在雲端也同時代表你不用擔心內容只能在單一電腦取得,即便原本使用的電腦完全無法使用了也不必擔心。
不能使用線上電子白板就好嗎?
簡短的說,當然可以!
一開始我也是使用Figma、Miro或Microsoft Whiteboard來呈現資料庫設計,當然如果資料表數量不多時沒什麼問題,因為電子白板通常都支援線上即時協作,也都支援在物件之間拉上連結線來表達關聯性,甚至Miro的連結線箭頭還有支援表達不同關聯性(1:1、1:N…etc.),但使用電子白板來做資料庫設計就會遇到以下的兩個關鍵問題:
1.無法將設計輸出成SQL
當團隊好不容易把資料庫設計完成,最終要實際到資料庫內建立資料表時卻發現還是得人工輸入,那其實最終還是無法把人工失誤的風險降低,因為當資料表一多,即便再謹慎的人難免都會輸錯一兩個字。
使用專用的線上資料庫設計工具則可以直接將圖輸出成各資料庫的SQL,讓你從Design無縫接軌至Implement。
2.無法匯入SQL產出圖形
同第一點,電子白板為了不限制使用者的使用目的提供高度的彈性,所以自然也必須人工繪製許多元件,而當你手上已有一大坨的SQL想使用圖形來表示時,電子白板就無法滿足這部分需求,你還是必須得人工檢視一行一行的Script再把對應的圖形畫出來。
QuickDBD優點
1.介面簡潔不複雜
QuickDBD介面十分簡潔,主要分成左半邊的「語法輸入」跟右半邊的「圖形」,語法輸入區會在你輸入的同時檢查輸入內容是否正確,圖形區則是有支援拖拉建立關聯、雙擊資料表進入專注模式等基本功能,並且兩個區塊是即時同步的,操作起來直覺且順暢。
2.語法直覺易學易懂
直接從QuickDBD官網的Demo影片可以看得出來語法的直覺性,基本上只要稍微操作個5~10分鐘就能快速上手。
(影片來源)
3.無痛分享/協作
在QuickDBD上建立的圖形都是預設公開,並且會有一個專屬的公開連結,所以在分享給團隊其他成員時只要將連結貼過去即可,只要透過連結不需登入也都能看到最新、最即時的內容。
而協作的部分則是需要由擁有者寄送邀請連結至協作者的Email信箱,如此一來透過該Email登入QuickDBD的使用者就能有權限編輯設計。
QuickDBD缺點
1.部分語法仍不支援
QuickDBD目前仍有許多資料庫常見的設計語法仍不支援,例如說在設計資料表欄位時,有時我們會為了資料的正確性在特定欄位限制可存入的內容(Enumeration),但這點目前在QuickDBD的語法內是沒有支援的,是個非常可惜的地方,期望未來QuickDBD能逐漸支援資料庫設計時常會使用到的語法。
2.缺乏教學文件
個人觀察QuickDBD目前仍處在非常草創、緩慢進化中的階段,所以還沒有非常完整的生態以外,官方也沒有製作非常多的說明文件來告知使用者如何使用自家產品,只能透過操作介面上非常簡短的文字說明來了解支援的語法或功能。
3.圖形介面仍待優化
QuickDBD的圖形操作區仍有些重要功能還有待優化,例如說當資料表數量眾多、連結線眾多時,QuickDBD並不會主動將連結線自動避開其他圖形上的物件,就會形成許多線條、物件都重疊在一起的情形,又或者在檢視某一條關聯線時,無法雙擊那條線進入專注模式(只顯示該線關聯到的資料表/欄位),很容易不小心按到出現在線上的「叉叉」按鈕,然後那條線就這樣意外的被刪除了,目前我在圖形區進行操作時仍不時會感到困擾、不流暢,我認為在這個區塊還有許多可以優化的部分。
總結
雖然QuickDBD並不是一款完美的線上資料庫設計工具,但相信一般的使用需求跟情境應該已經可以滿足,在我個人的使用過程中QuickDBD成功幫我檢查到欄位命名有問題(e.g. 欄位命名時中間出現空白沒有用底線連接)、資料欄位關聯沒有建立完整的問題。
也因為他是一款還在萌芽中的產品,官方還有推出完成小任務就能限時免費使用Pro版本的方案(詳見官方Pricing頁面說明),若你只是有短期的資料庫設計需求也可以趕緊用起來~
另外有幾款我發現也十分厲害的線上工具,先整理在下方提供大家參考:
其他線上資料庫設計工具
以下幾款線上資料庫設計工具個人認為也很值得納入考慮,但大部分的功能都較複雜、費用較高,之後我會陸續分享使用心得,如果只是初學者或預算有限的讀者可以考慮先從QuickDBD當作暫時的解決方案。