SQL数据库与编写Java序列化对象到文件?

时间:2016-09-30 11:22:19

标签: java sql database serialization

我有一个用java编写的Web应用程序,它是关于课程安排的。我使用文件系统来存储我的数据。我序列化了我的同事(其中的对象)并将它们收集到一个serialalized对象中。每个用户都有一些文件用于系统数据和备份或准备好的表数据。我的程序在用户输入时读取该文件(仅限系统数据),并在用户退出时将其写入该文件。 对象设计非常复杂,我的对象之间存在许多多对多的关系。编写此程序的数据需要在SQL中进行如此多的连接操作和良好的设计模式。此外,用户通常具有数千个包含数百个课程,教师,房间甚至数千个约束的信息。除此之外,用户之间没有联系。 在这个程序中,我没有看到使用sql的任何优势。甚至我的系统运行速度也非常快。然而,许多不了解我程序结构的开发人员建议我将我的数据库系统带到SQL。

SQL对文件系统(带有序列化对象)的优势是什么,特别是对于我的非凡系统?

1 个答案:

答案 0 :(得分:1)

仅列举使用SQL数据库的一些优点:

  • 可伸缩性:您可以将数据移动到单独的服务器,以减轻应用程序服务器的负载。
  • 辅助功能:如果您希望将来发布程序扩展程序,该程序可以独立运行并仍然可以访问相同的数据,而无需担心锁定文件等。
  • 安全性:数据库系统允许您配置"特权"允许谁写数据,谁被允许读取数据。
  • 可移植性:如果您决定将程序升级到其他技术,那么SQL语言是一种行业标准,可以相对轻松地从一个数据库供应商移植到另一个数据库供应商。您还可以将主应用程序独立于数据库移植到另一种技术,因为这两种技术都有驱动程序/库/连接/插件/您希望调用它来与数据库进行通信。
  • 备份:您可以在应用程序联机时轻松运行备份。使用文件时,您可能会遇到锁定问题,或者必须关闭应用程序以进行备份。
  • 人力资源:您可以聘请数据库管理员来处理您的数据库,并减少开发人员/工程师的责任,以便他们可以专注于其他任务。
  • 监控:您可以在应用程序处于活动状态时监控或检查数据。

但是,通常使用SQL数据库的应用程序从一开始就考虑了关系数据结构。如果没有完全理解您的应用程序,听起来您的数据结构非常复杂,并且迁移到SQL数据库可能并不那么容易。我建议你也看一下NoSQL database

  • 允许大量结构化,半结构化和非结构化数据
  • 鼓励面向对象的编程
  • 易于使用
  • 并且比SQL
  • 更灵活