Logo

新人日誌

首頁關於我部落格

新人日誌

Logo

網站會不定期發佈技術筆記、職場心得相關的內容,歡迎關注本站!

網站
首頁關於我部落格
部落格
分類系列文

© 新人日誌. All rights reserved. 2020-present.

網頁資料該存在哪裡?為什麼我們需要資料庫

最後更新:2025年12月30日資料庫

學網頁開發的時候,你一定會遇到一個問題:資料要存在哪裡?

存在瀏覽器裡?存在使用者的電腦裡?還是存在其他地方?

這個看似簡單的問題,背後牽涉到資料的安全性、可用性、還有多人協作等等考量。而這些考量,正是「資料庫」存在的原因。

這篇文章會帶你從「資料該存在哪裡」這個問題出發,一步步理解為什麼我們最終需要資料庫。

網頁本身不會儲存資料

在討論資料該存在哪裡之前,我們要先理解一件事:網頁本身是「無狀態」的。

什麼是「無狀態」?

當你打開一個網頁時,背後發生了什麼事?

簡單來說,你的瀏覽器會向伺服器發送請求,伺服器收到後,會把一份 HTML 檔案(也就是網頁的內容)傳回給你。瀏覽器拿到這份檔案後,就把它「畫」在螢幕上讓你看到。

但重點來了:這份 HTML 只是一個「模板」,它描述的是畫面長什麼樣子,而不是用來儲存資料的地方。

伺服器把網頁丟給你之後,它的工作就結束了。它不會記得你是誰、你剛才做了什麼、你在表單裡填了什麼——這就是所謂的「無狀態」。

實際的例子

想像你正在登入某個網站,在登入框裡輸入 Email 和密碼,輸入到一半,不小心按到「重新整理」——會發生什麼事?

沒錯,你剛才輸入的資料全部消失了,必須重新輸入。

為什麼會這樣?因為當你按下重新整理,瀏覽器會重新向伺服器要一份「全新的網頁模板」。而伺服器根本不知道你剛才輸入了什麼,它只是再丟一份空白的模板給你。

這就是網頁「無狀態」的特性:每次重新整理,網頁都會回到最初的狀態,之前的輸入內容不會被保留。

所以問題來了

如果網頁本身不儲存資料,那當我們需要保留使用者的資料時(例如:登入狀態、購物車內容、留言紀錄),這些資料該存在哪裡?

這就是接下來要討論的問題。

資料可以存在瀏覽器嗎?

第一個直覺的選項是:把資料存在瀏覽器裡。

瀏覽器確實提供了一些儲存機制,像是 LocalStorage、SessionStorage 或 Cookie。但這些方式都有明顯的限制:

資料不會永久保存

前端技術(如 HTML、JavaScript)主要是用來「呈現畫面」,它沒有能力長期儲存資料。

即使透過瀏覽器的儲存機制,這些資料也存在以下問題:

  • 容易被清除:使用者只要清除瀏覽紀錄,資料就全部消失
  • 只存在單一裝置:你用電腦登入和用手機登入,是兩個完全獨立的世界
  • 無法跨裝置同步:今天在公司電腦做的事,回家換一台電腦就看不到了

如果你登入一個網站,明天換一台電腦或手機再登入時,資料卻全都不見了——這樣的系統根本沒有實用性。

每個使用者各自為政,資料無法整合

想像你做了一個留言板應用,每位使用者的留言都只存在自己的瀏覽器裡。這會導致什麼問題?

  • 小明留言,只有小明自己看得到
  • 小美進來什麼也看不到,以為沒有人使用過這個留言板
  • 系統無法呈現「全部留言」的統一清單
  • 更別說管理、檢舉、刪除不當留言了

📌 只有將資料統一儲存在一個中心位置,所有人才能共用、互動、整合資料。

資料安全性非常低

若將帳號、密碼、信用卡資訊等敏感資料存在前端,不僅容易被竄改,也可能被他人「偷看」:

  • 前端程式碼對使用者來說是完全透明的
  • 有經驗的使用者可以開啟瀏覽器「開發者工具」,看到你儲存的所有內容
  • 資料未經加密就儲存在 LocalStorage,形同沒鎖

📌 資料應該存在有權限管理的地方,才能透過驗證機制來保護安全。

無法做統一管理與查詢

前端只能顯示畫面,沒有強大的資料查詢與管理能力。想做以下這些功能?前端幾乎做不到:

  • 搜尋某位使用者的所有訂單
  • 統計哪個商品最熱賣
  • 找出近一週內註冊的新用戶
  • 刪除某筆不當留言

📌 這些都需要「結構化資料」搭配強大的查詢語言(像是 SQL),這正是資料庫的核心工作。

資料可以存在使用者的電腦裡嗎?

瀏覽器不行,那直接存在使用者的電腦硬碟裡呢?

事實上,這在現代網頁應用中幾乎不可行,原因有兩個:

資訊安全問題

如果一個網站可以隨意把資料存進你的電腦,會發生什麼事?

沒有人希望瀏覽一個網站,結果它就把一堆奇怪的東西塞進自己的電腦裡。因此,現代瀏覽器對網站存取本地端檔案有非常嚴格的限制,必須經過使用者明確同意才行。

這會導致使用者體驗變差——每次都要跳出確認視窗,誰受得了?

資料完整性與可得性無法保證

讓我們用一個銀行的例子來說明:

假設你是一家銀行,有一位客戶叫小民,在你的銀行開了戶頭。如果你把小民的帳戶資料(包括餘額)存在小民的電腦裡,會發生什麼問題?

問題一:資料可能被竄改

小民可以偷偷打開檔案,把帳戶餘額從 1,000 元改成 2,000,000 元——而銀行可能完全不知道這件事發生了。

就算你把資料加密,只要資料存在使用者的電腦上,就永遠存在被破解、被竄改的風險。

📌 資料完整性(Data Integrity):資料必須保持完整、正確,不能被未經授權的方式增刪修改。

問題二:其他人無法取得資料

想像小民要用金融卡刷卡消費。刷卡機需要確認小民的帳戶裡有沒有足夠的錢,才能決定是否允許交易。

但如果小民的帳戶資料存在小民的電腦裡,刷卡機要怎麼拿到這個資料?

除非小民的電腦 24 小時開機、持續連網、而且允許外部存取——這顯然是荒謬的。

📌 資料可得性(Data Availability):有權限的人或系統,在需要時必須能夠隨時取得資料。

所以資料要存在哪裡?答案是遠端伺服器

綜合以上討論,我們可以得出結論:

需求瀏覽器/使用者電腦遠端伺服器
資料永久保存❌ 難以保證✅ 可以
跨裝置同步❌ 不行✅ 可以
多人共用資料❌ 不行✅ 可以
資料安全性❌ 很低✅ 可控制
資料完整性❌ 易被竄改✅ 可保護
資料可得性❌ 依賴單一裝置✅ 隨時可取得
統一管理與查詢❌ 做不到✅ 可以
瀏覽器/使用者電腦❌ 難以保證
遠端伺服器✅ 可以
瀏覽器/使用者電腦❌ 不行
遠端伺服器✅ 可以
瀏覽器/使用者電腦❌ 不行
遠端伺服器✅ 可以
瀏覽器/使用者電腦❌ 很低
遠端伺服器✅ 可控制
瀏覽器/使用者電腦❌ 易被竄改
遠端伺服器✅ 可保護
瀏覽器/使用者電腦❌ 依賴單一裝置
遠端伺服器✅ 隨時可取得
瀏覽器/使用者電腦❌ 做不到
遠端伺服器✅ 可以

答案很明顯:我們必須把資料放在遠端伺服器上。

為什麼是遠端伺服器?因為它不屬於任何單一使用者,而是由服務提供者統一管理。這樣一來,所有使用者都能透過網路存取同一份資料,不會因為換了裝置就看不到,也不會因為某個人亂改就影響到資料的正確性。

而負責在伺服器上儲存、管理、查詢這些資料的系統,就是——資料庫。

資料庫就像是伺服器上的「資料管理中心」,它提供了一套有規則的方式來存放資料,並且讓我們可以快速地新增、讀取、修改、刪除資料,同時還能控制誰有權限做這些操作。

小結:資料庫解決了什麼問題?

資料庫的核心價值,就是提供一個集中、安全、可查詢、可管理的資料儲存方案:

  1. 集中儲存:所有使用者的資料統一存放,方便整合與共用
  2. 安全保護:透過權限控管,確保只有授權的人才能存取或修改資料
  3. 資料完整:防止未經授權的竄改,維護資料的正確性
  4. 隨時可用:只要連上網路,任何有權限的系統都能取得資料
  5. 強大查詢:支援複雜的搜尋、統計、分析功能

掌握資料庫,就等於掌握了網頁開發的核心基礎。祝你學習順利!

目前還沒有留言,成為第一個留言的人吧!

發表留言

留言將在審核後顯示。

資料庫

目錄

  • 網頁本身不會儲存資料
  • 什麼是「無狀態」?
  • 實際的例子
  • 所以問題來了
  • 資料可以存在瀏覽器嗎?
  • 資料不會永久保存
  • 每個使用者各自為政,資料無法整合
  • 資料安全性非常低
  • 無法做統一管理與查詢
  • 資料可以存在使用者的電腦裡嗎?
  • 資訊安全問題
  • 資料完整性與可得性無法保證
  • 所以資料要存在哪裡?答案是遠端伺服器
  • 小結:資料庫解決了什麼問題?