我试图激励自己多次学习数据库,但我很难看到它们的用途。我不做任何网络开发或任何科学计算,所以我可以合理地使用数据库吗?
答案 0 :(得分:8)
我发现你是一名嵌入式CS学生,至少是你的个人资料。我敢打赌,由于许多情况下的软件/硬件限制,你所使用的大多数项目对数据库没有实际用途。
但是,关系数据库现在正在某些小型/嵌入式平台上使用。查看SQLite,这是一个用C编写的小型关系数据库引擎,非常适合嵌入式PC / PC-104项目。该数据库用于各种嵌入式系统,包括手机和MP3播放器。一位着名的嵌入式Linux支持者对数据库进行了一些研究,并确定它适用于软实时应用程序。
答案 1 :(得分:3)
数据库用于存储数据。如果您的应用程序需要以某种方式存储日期,或者从中心位置检索它,那么您通常会使用数据库。
如果您当前正在将数据存储在平面文件中,那么您将失去数据库结构的所有好处。 RDBMS(关系数据库管理系统)可帮助您构建数据以防止冗余(重复数据),确保数据完整性并考虑可伸缩性。它们还可以帮助允许多个用户访问数据,同时避免损坏。大多数RDBMS还提供某种形式的事务访问。这意味着您可以将操作分组为必须完全成功的逻辑事务,或者在不更改任何数据的情况下失败。如果您想要更新数据的各个部分,这非常有用,并且它们保持同步非常重要。如果你要使用一个平面文件并且在更新文件的过程中系统崩溃,那么你将会留下无效/不同步数据。使用RDBMS,在整个事务成功完成之前不会进行任何更改。
在简单的层面上,您几乎可以将任何数据存储机制描述为数据库。无论您当前存储什么信息都可以描述为数据库。问题是,您的数据存储是否会受益于传统RDBMS提供的额外服务。
在我的应用程序中,我经常使用flat / xml文件来存储基本配置信息,但任何复杂或多用户都可以直接在数据库中,即使它是本地SQL Express数据库文件。
答案 2 :(得分:3)
当你必须以结构化的方式存储数据时,数据库(我猜你正在谈论关系数据库)将非常有用,它们之间的关系存储并保存在磁盘上。
我们的想法是,您可以在保持一致性的同时操纵这些数据。
某些替代方法,例如在磁盘上存储XML文件(带结构)或内存转储,或某种序列化,需要您将所有内容加载到内存中,使用结构处理它并将所有内容转储到磁盘以更改数据,同时保持井井有条。
从那里,你可以使用不同的数据库,(关系在内存中或在磁盘上,在进程与否,基于文档,如couchdb,...)具有不同的可伸缩性/简单性权衡,范围从sqlite到Oracle / postgresql
我建议的方法是了解关系数据库的真正含义,理解它,稍微玩一下(使用sqlite)然后尝试理解它如何应用于给定的问题。
只需了解firefox浏览器书签,iPhone数据或大多数企业应用程序(预订票据)的后端都存储为数据库......
如果您曾在excel中存储过与数字无关的内容列表并使用了一些过滤器,那么您应该使用数据库来获取此信息。
答案 3 :(得分:1)
构建一个简单的基于Web的联系人管理器,用于存储姓名,电子邮件地址,电话号码等。这将使您熟悉使用数据库的机制,而不会让人感到疯狂。
答案 4 :(得分:1)
对于轻量级但真实世界的示例,您可以使用Wordpress启动博客。 Wordpress使用MySQL存储所有相关信息。
更好的学习方法是下载免费的数据库并按照教程进行操作。这是一个名为Express Edition的免费版Oracle 10g。
答案 5 :(得分:1)
即使在桌面软件中,您也需要存储,组织,搜索和检索数据。您是否需要在编程中保存多个相同类型的记录?
答案 6 :(得分:1)
这样想。如果您需要存储任何类型的数据,那么您需要某种类型的数据库。
答案 7 :(得分:1)
获取SQLite。它很快,使用了很多地方,免费,快速,完全独立(即没有服务器)。它有一个命令行程序,您可以在其中进行实验而不会弄乱任何东西。
我曾经认为db'ing不是我想弄乱的东西。但这是一个非常好的技能,并且利用互联网上的所有资源,它很容易学习。
想要保存程序状态(并恢复它)?一个小数据库是完美的。想传递一些中间结果?内存数据库可以很好地处理它。
我见过数据库驱动整个软件系统的情况。显然,核心系统使用的是语言X(其中X是您最喜欢的语言),但运行它的步骤是在数据库中,程序的驱动程序包括从数据库中读取步骤,解析它们,并调用相应的功能(内部)。因此,要更改程序的运行方式,您只需提供一个新数据库。非常好,如果你能做好计划的话。
作为一种组织良好的存储和检索数据的方式,数据库很难被击败。
另外,了解SQL是获得女士们的必然方法!
答案 8 :(得分:1)
电子表格有两种常用的用途:它们的设计目的是为数字数据运行计算,另一种用于数据库应用程序。
如果您或您的团队使用电子表格处理非数字数据,并且电子表格比您更喜欢的更广泛和更深......或者似乎不足以满足预期需求(制定决策,学习状态等) ......或者不能防止篡改,或者在需要时不允许进行协作编辑......或者不会为各种目的以有用的格式发布结果......
- 那么您可能有理由使用数据库。
答案 9 :(得分:0)
答案 10 :(得分:0)
您认为SO存储的问题和答案在哪里?您认为您的用户详细信息存储在哪里?
构建一个供您个人使用的小型应用程序。
答案 11 :(得分:0)
如果您不需要具有强大完整性保证,强大查询功能或数据管理的持久性,则不需要关系数据库管理系统,也不应使用它。