簡體   English   中英

SQL 數據庫與將 Java 序列化對象寫入文件?

[英]SQL Database vs Writing Java Serialized Objects To File?

我有一個用 java 編寫的 Web 應用程序,它是關於課程安排的。 我使用文件系統來存儲我的數據。 我序列化了我的 collentions(其中的對象)並將它們收集到一個序列化的對象中。 每個用戶都有一些文件用於系統數據和備份或准備表數據。 我的程序在用戶輸入時讀取該文件(僅系統數據),並在用戶退出時將其寫入該文件。 對象設計非常復雜,我的對象之間有很多多對多的關系。 編寫這個程序的數據需要在SQL中進行如此多的連接操作和良好的設計模式。 此外,用戶通常擁有數千條信息,其中包含數百個課程、教師、房間甚至數千個約束條件。 除此之外,用戶之間沒有任何聯系。 在這個程序中,我沒有看到使用 sql 的任何優勢。 甚至我的系統也運行得非常快。 然而,許多不知道我的程序結構的開發人員建議我將我的數據庫系統移植到 SQL。

SQL 針對文件系統(帶有序列化對象)的優勢是什么,特別是對於我的非凡系統?

僅列舉使用 SQL 數據庫的一些優勢:

  • 可擴展性:您可以將數據移動到單獨的服務器以減少應用程序服務器上的負載。
  • 可訪問性:如果您希望將來發布程序的擴展,該程序可以獨立運行並且仍然可以訪問相同的數據,而不必擔心鎖定文件等。
  • 安全性:數據庫系統允許您將“權限”配置為允許誰寫入數據以及允許誰讀取數據。
  • 可移植性:如果您將來決定將程序升級到不同的技術,SQL 語言是一種行業標准,可以相對輕松地從一個數據庫供應商移植到另一個數據庫供應商。 你也可以將你的主應用程序獨立於你的數據庫移植到另一種技術,因為這兩種技術都有驅動程序/庫/連接/插件/你想要調用的任何東西來與你的數據庫進行通信。
  • 備份:您可以在應用程序在線時輕松運行備份。 對於文件,您可能會遇到鎖定問題,或者必須關閉應用程序才能進行備份。
  • 人力資源:您可以聘請數據庫管理員來管理您的數據庫並減少您的開發人員/工程師的責任,以便他們可以專注於其他任務。
  • 監控:您可以在應用程序運行時監控或檢查您的數據。

然而,通常使用 SQL 數據庫的應用程序從一開始就考慮到關系數據結構。 如果不完全了解您的應用程序,聽起來您的數據結構非常復雜,並且遷移到 SQL 數據庫可能並不容易。 我建議你也看看一個NoSQL 數據庫

  • 允許大量結構化、半結構化和非結構化數據
  • 鼓勵面向對象編程
  • 便於使用
  • 並且比 SQL 靈活得多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM