数据库
数据实际上就是描述事物特征的一组符号,数据库指的就是存储数据的仓库。
基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上。
在软件开发过程中,程序的所有组件不可能只运行在一台机器之上,如果这台运行的机器出故障了则意味着整个软件的崩溃,并且程序的执行效率依赖于承载它的硬件,而一台机器机器的性能总归是有限的。
因此,对于程序不同的组件,应该运行在不同的机器上,并且还有备用机器,如果其中一台机器出故障了,备用机器能够迅速接替,保证程序运行的稳定性。
那现在,我的程序运行在了不同的机器上,要读取文件的话该怎么办?总不能在所有的机器上都拷贝一份所需文件吧,先不说浪费的硬盘资源,我如果某台机器要对其中一个文件进行改动,那么所有的机器必须同步进行改动,那就更麻烦了。
基于这种需求,我们可以专门调用一台数据存储机器,程序运行所需的所有文件都放在这台机器上,其它机器需要的时候,可以通过套接字通信来获取或改动。
好了,现在有了这样一台机器,接下来就需要开发一套运行在存储数据机器上的服务端和运行的其它机器上的客户端的套接字文件数据通信系统。
这么一个系统,需要考虑的问题很多,比如,不同的机器同一时间访问同一个文件需要考虑文件加锁,不同文件之间的数据可能存在关系应该怎么整合,而且,不同的人开发的系统肯定不一样,我可能用get表示获取文件内容,但是别人可能用wget获取文件内容。
一系列的问题,造成了很大的混乱,不同的人开发的数据库乱