乙個程式如果是本機執行或者是單機執行的,還需要需要資料庫嗎?

時間 2021-05-31 03:39:02

1樓:

人家開發資料庫是為了把資料儲存規範化

為什麼要考慮資料能不能這樣那樣儲存的問題

既然有資料庫了,為什麼會出現

'有沒有類似資料庫'

這種莫名其妙的需求

另外乙個程式要不要用到資料庫,這個跟你的程式需求有關,而不是說本機執行,剪斷網線它就不需要資料庫了,程式不是自己寫的嗎,要不要用資料庫,自己都不知道?

2樓:自稱都會派

好幾個問題, 分別看:

以下用 {} 表示程序邊界

為什麼需要把資料存到硬碟上/檔案裡

因為需要資料在程式關閉 - 重啟後還能恢復關閉前的狀態。 程式執行在記憶體裡, 程式內的狀態也在記憶體裡, 而記憶體的狀態是會在關閉後消失的,那麼想要儲存狀態, 就必然需要某種不是記憶體的, 持久的儲存方式。 它是硬碟, 形式也就是檔案。

在最直接的做法下, 這樣的程式會類似:

-> 硬碟上的檔案

2. 為什麼需要資料庫

上面的做法已經可以完美解決持久化的需求了, 但是也有一些明顯的弊端:訪問檔案很複雜, 想要效率的做好很困難, 而我們要為每個有資料持久化需求的程式都實現這樣一套成本駭人,另外多個程式想要訪問同個檔案(資料集)時會出現衝突。 而資料庫就是為了解決這些問題而設計的:

↘ -> -> 資料檔案 (硬碟上的檔案)

↗如圖, 資料庫解決這些問題的方式是:

用統一的, 通用的 (針對資料而不是檔案的)的查詢語言/介面代替直接的檔案訪問, 把複雜的檔案操作隱藏在簡單的介面後面。 以及乙個始終在執行的資料庫程序來伺服所有對其背後的資料集的操作來支援多個應用程式對同個資料集的訪問。

3. 單機程式能不能不要資料庫

現在回到題主的問題。 我將這個問題理解為:如果不需要多個應用共享資料集, 我們能不能省去單獨開乙個資料庫程序的開銷(複雜度和效能)?

那麼答案是能。

在大部分情況下, 需求沒有這麼簡單, 資料的潛在大小通常會遠大於記憶體以至於不能簡單的全讀進來。 在這種情況下, 我們還可以用嵌入式資料庫來避免單獨的資料庫程序, 比如 @langu 提到的 sqlite. 這類資料庫表現為乙個庫引用, 在你的應用程式程序裡工作:

-> 資料檔案

這樣我們就既能夠享受簡單通用的資料介面, 又避免了額外的資料庫程序.

鬧騰是不是乙個音譯詞?或者是乙個出口詞?

風雨狂客 至於 naughty 這個形容詞,描述為頑皮,淘氣 不聽話 沒規矩 不適當 下流的等等,事實上作為字母國家,也會有很多很多不安分 無事生非等生活現象,這是常識。有相近意義的詞,應該很正常,不然它們不都變成外星人啦?所以可以想見,鬧騰 也不完全是輸出的詞。當然,有一點可以思考。從 鬧騰 詞義...

如果有乙個同班同學或者是同事長得很像前任,這是一種什麼感受?

這個問題可以分為兩個 如果有乙個同學 同事長得像前任一樣帥怎麼辦?如果有乙個同學 同事長得像前任一樣醜怎麼辦?不說了,我反正是要瘋了,新同事就坐我斜對面,動作全在我餘光範圍內,我反正是要瘋了,估計今晚做噩夢. 班上有個南韓男孩兒跟我前任長得很像 起初只是覺得他呀怎麼跟那誰長得那麼像還真是臭味相投後來...

如果是你,你會選擇哪乙個?

多啦呆萌 我選勤勞的 善良的 有擔當的 結過婚你就知道乙個人原生的品質遠比你愛不愛他更重要 你會愛乙個到家就玩手機,從來不幹家務,什麼都是他媽媽說的對,過節從來沒禮物,逼你一直生直到生男孩,一起還貸房子沒你名字,去你爸媽家從來沒好臉色,看你買啥都覺得敗家的人嗎?建議跟第乙個分手,跟第二個談戀愛。長遠...