1-1データベース管理ソフトウェアの起源

データベース管理ソフトウェアの起源

我々の前に学んだことをもとに、永続的にデータを保存するためには、疑いもなく、ファイルは単一マシン上にのみ存在することができ、ファイルに保存されます。

私たちは、ファイルベースのデータの効率に直接アクセスされ、そしてすべてのプログラムコンポーネントがマシン上で実行されていると仮定して時間を無視した場合、データファイルにアクセスし、問題はありません。

残念ながら、これらの仮定は、あなた自身の外にわいせつあり、いくつかの質問には、これらの仮定があります。

1、プログラムのすべてのコンポーネントは、単一のマシン上で実行することはできません

因为这台机器一旦挂掉则意味着整个软件的崩溃,并且程序的执行效率依赖于承载它的硬件,而一台机器机器的性能总归是有限的,
受限于目前的硬件水平,就一台机器的性能垂直进行扩展是有极限的。
于是我们只能通过水平扩展来增强我们系统的整体性能,这就需要我们将程序的各个组件分布于多台机器去执行。

2、データのセキュリティ問題

根据1的描述,我们将程序的各个组件分布到各台机器,但需知各组件仍然是一个整体,言外之意,所有组件的数据还是要共享的。
但每台机器上的组件都只能操作本机的文件,这就导致了数据必然不一致。
于是我们想到了将数据与应用程序分离:把文件存放于一台机器,然后将多台机器通过网络去访问这台机器上的文件(用socket实现),
即共享这台机器上的文件,共享则意味着竞争,会发生数据不安全,需要加锁处理。。。。

3、同時

2の説明によると、私たちは、このマシン(データベースサーバ)上のファイルを管理するためのソケットサーバーを作成する必要があり、その後、以下の機能を完了し、ソケットクライアントを記述します。

1.远程连接(支持并发)
2.打开文件
3.读写(加锁)
4.关闭文件

要約:

我们在编写任何程序之前,都需要事先写好基于网络操作一台主机上文件的程序(socket服务端与客户端程序),于是有人将此类程序写成一个
专门的处理软件,这就是mysql等数据库管理软件的由来,但mysql解决的不仅仅是数据共享的问题,还有查询效率,安全性等一系列问题,
总之,把程序员从数据管理中解脱出来,专注于自己的程序逻辑的编写。

おすすめ

転載: www.cnblogs.com/shibojie/p/11665010.html